@@ -87,17 +87,17 @@ /* Interp is unused. */ interp = interp; } -static int TlsCloseProc2(ClientData instanceData, /* The socket state. */ +static int TlsClose2Proc(ClientData instanceData, /* The socket state. */ Tcl_Interp *interp, /* For errors - can be NULL. */ int flags) /* Flags to close read and/or write side of channel */ { State *statePtr = (State *) instanceData; - dprintf("TlsCloseProc2(%p)", (void *) statePtr); + dprintf("TlsClose2Proc(%p)", (void *) statePtr); if ((flags & (TCL_CLOSE_READ|TCL_CLOSE_WRITE)) == 0) { return TlsCloseProc(instanceData, interp); } return EINVAL; @@ -971,29 +971,30 @@ tlsChannelType = (Tcl_ChannelType *) ckalloc(size); memset((void *) tlsChannelType, 0, size); /* Init structure */ tlsChannelType->typeName = "tls"; -#ifdef TCL_CHANNEL_VERSION_5 + /* TCL 8.5 and later */ +#if TCL_MAJOR_VERSION > 8 || defined(TCL_CHANNEL_VERSION_5) tlsChannelType->version = TCL_CHANNEL_VERSION_5; tlsChannelType->closeProc = TlsCloseProc; tlsChannelType->inputProc = TlsInputProc; tlsChannelType->outputProc = TlsOutputProc; tlsChannelType->seekProc = NULL; tlsChannelType->setOptionProc = TlsSetOptionProc; tlsChannelType->getOptionProc = TlsGetOptionProc; tlsChannelType->watchProc = TlsWatchProc; tlsChannelType->getHandleProc = TlsGetHandleProc; - tlsChannelType->close2Proc = TlsCloseProc2; + tlsChannelType->close2Proc = TlsClose2Proc; tlsChannelType->blockModeProc = TlsBlockModeProc; tlsChannelType->flushProc = NULL; tlsChannelType->handlerProc = TlsNotifyProc; tlsChannelType->wideSeekProc = NULL; tlsChannelType->threadActionProc = NULL; tlsChannelType->truncateProc = NULL; #else - tlsChannelType->version = TCL_CHANNEL_VERSION_2; + tlsChannelType->version = TCL_CHANNEL_VERSION_4; tlsChannelType->closeProc = TlsCloseProc; tlsChannelType->inputProc = TlsInputProc; tlsChannelType->outputProc = TlsOutputProc; tlsChannelType->seekProc = NULL; tlsChannelType->setOptionProc = TlsSetOptionProc; @@ -1002,9 +1003,11 @@ tlsChannelType->getHandleProc = TlsGetHandleProc; tlsChannelType->close2Proc = NULL; tlsChannelType->blockModeProc = TlsBlockModeProc; tlsChannelType->flushProc = NULL; tlsChannelType->handlerProc = TlsNotifyProc; + tlsChannelType->wideSeekProc = NULL; + tlsChannelType->threadActionProc = NULL; #endif } return(tlsChannelType); }