diff options
author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2022-10-27 07:11:49 (GMT) |
---|---|---|
committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2022-10-27 07:11:49 (GMT) |
commit | 0a6e6c49772e9b3a8dc4af9476faa265301e13ef (patch) | |
tree | 45065d5c5ff680c61d67bc794917380fe8af7507 /unix | |
parent | bc27d6bcb695ebb121c0183edb8b3133244d743d (diff) | |
parent | 8886d91a73505dc9a8b2b3bbbba9ddd9fea63e77 (diff) | |
download | tcl-0a6e6c49772e9b3a8dc4af9476faa265301e13ef.zip tcl-0a6e6c49772e9b3a8dc4af9476faa265301e13ef.tar.gz tcl-0a6e6c49772e9b3a8dc4af9476faa265301e13ef.tar.bz2 |
TIP #468: Support Passing TCP listen Backlog Size Option to TCP Socket Creation
Diffstat (limited to 'unix')
-rw-r--r-- | unix/tclUnixSock.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/unix/tclUnixSock.c b/unix/tclUnixSock.c index 43303f8..4e34af5 100644 --- a/unix/tclUnixSock.c +++ b/unix/tclUnixSock.c @@ -1673,6 +1673,7 @@ Tcl_OpenTcpServerEx( const char *service, /* Port number to open. */ const char *myHost, /* Name of local host. */ unsigned int flags, /* Flags. */ + int backlog, /* Length of OS listen backlog queue. */ Tcl_TcpAcceptProc *acceptProc, /* Callback for accepting connections from new * clients. */ @@ -1838,7 +1839,10 @@ Tcl_OpenTcpServerEx( chosenport = ntohs(sockname.sa4.sin_port); } } - status = listen(sock, SOMAXCONN); + if (backlog < 0) { + backlog = SOMAXCONN; + } + status = listen(sock, backlog); if (status < 0) { if (howfar < LISTEN) { howfar = LISTEN; |