diff options
| author | stanton <stanton> | 1998-06-09 13:09:02 (GMT) | 
|---|---|---|
| committer | stanton <stanton> | 1998-06-09 13:09:02 (GMT) | 
| commit | 571cec9ea62ec5efe56305e888aaef60fe0c6eeb (patch) | |
| tree | e8ed58dfc3d4a7730515332b12779afdeaf91837 /unix/tclUnixChan.c | |
| parent | cb4a15daedc1bd750818ce0ae24098b6454e7dc0 (diff) | |
| download | tcl-571cec9ea62ec5efe56305e888aaef60fe0c6eeb.zip tcl-571cec9ea62ec5efe56305e888aaef60fe0c6eeb.tar.gz tcl-571cec9ea62ec5efe56305e888aaef60fe0c6eeb.tar.bz2  | |
changed so server sockets can't be trashed by fileevent
Diffstat (limited to 'unix/tclUnixChan.c')
| -rw-r--r-- | unix/tclUnixChan.c | 20 | 
1 files changed, 14 insertions, 6 deletions
diff --git a/unix/tclUnixChan.c b/unix/tclUnixChan.c index c194b66..28e62e5 100644 --- a/unix/tclUnixChan.c +++ b/unix/tclUnixChan.c @@ -1769,12 +1769,20 @@ TcpWatchProc(instanceData, mask)  {      TcpState *statePtr = (TcpState *) instanceData; -    if (mask) { -	Tcl_CreateFileHandler(statePtr->fd, mask, -		(Tcl_FileProc *) Tcl_NotifyChannel, -		(ClientData) statePtr->channel); -    } else { -	Tcl_DeleteFileHandler(statePtr->fd); +    /* +     * Make sure we don't mess with server sockets since they will never +     * be readable or writable at the Tcl level.  This keeps Tcl scripts +     * from interfering with the -accept behavior. +     */ + +    if (!statePtr->acceptProc) { +	if (mask) { +	    Tcl_CreateFileHandler(statePtr->fd, mask, +		    (Tcl_FileProc *) Tcl_NotifyChannel, +		    (ClientData) statePtr->channel); +	} else { +	    Tcl_DeleteFileHandler(statePtr->fd); +	}      }  }  | 
