summaryrefslogtreecommitdiffstats
path: root/unix
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2022-10-27 07:11:49 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2022-10-27 07:11:49 (GMT)
commit0a6e6c49772e9b3a8dc4af9476faa265301e13ef (patch)
tree45065d5c5ff680c61d67bc794917380fe8af7507 /unix
parentbc27d6bcb695ebb121c0183edb8b3133244d743d (diff)
parent8886d91a73505dc9a8b2b3bbbba9ddd9fea63e77 (diff)
downloadtcl-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.c6
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;