summaryrefslogtreecommitdiffstats
path: root/generic/tclIOCmd.c
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2016-11-22 11:21:00 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2016-11-22 11:21:00 (GMT)
commit490b4bf1f8778fddb9814d30cdf2c4bd89d9581d (patch)
treecd198dc363de934042ae24b29a7b911ad4e7c580 /generic/tclIOCmd.c
parented80f025f6f87f144ee7b63931890efb4421ee78 (diff)
downloadtcl-490b4bf1f8778fddb9814d30cdf2c4bd89d9581d.zip
tcl-490b4bf1f8778fddb9814d30cdf2c4bd89d9581d.tar.gz
tcl-490b4bf1f8778fddb9814d30cdf2c4bd89d9581d.tar.bz2
Added stub entry for tip #456. Documentation and tests still missing. Doesn't conform to TIP yet.
Diffstat (limited to 'generic/tclIOCmd.c')
-rw-r--r--generic/tclIOCmd.c15
1 files changed, 5 insertions, 10 deletions
diff --git a/generic/tclIOCmd.c b/generic/tclIOCmd.c
index 9dc8f07..883c6b7 100644
--- a/generic/tclIOCmd.c
+++ b/generic/tclIOCmd.c
@@ -1490,7 +1490,7 @@ Tcl_SocketObjCmd(
enum socketOptions {
SKT_ASYNC, SKT_MYADDR, SKT_MYPORT, SKT_SERVER, SKT_REUSEPORT
};
- int optionIndex, a, server = 0, port, myport = 0, async = 0, reuseport = 0;
+ int optionIndex, a, server = 0, port, myport = 0, async = 0, flags = 0;
const char *host, *myaddr = NULL;
Tcl_Obj *script = NULL;
Tcl_Channel chan;
@@ -1557,9 +1557,9 @@ Tcl_SocketObjCmd(
}
script = objv[a];
break;
- case SKT_REUSEPORT:
- reuseport = 1;
- break;
+ case SKT_REUSEPORT:
+ flags |= 1;
+ break;
default:
Tcl_Panic("Tcl_SocketObjCmd: bad option index to SocketOptions");
}
@@ -1604,12 +1604,7 @@ Tcl_SocketObjCmd(
acceptCallbackPtr->script = script;
acceptCallbackPtr->interp = interp;
- /* Hint for Tcl_OpenTcpServer to set socket option REUSEPORT */
- if(reuseport) {
- port |= (1 << 16);
- }
-
- chan = Tcl_OpenTcpServer(interp, port, host, AcceptCallbackProc,
+ chan = Tcl_OpenTcpServerEx(interp, port, host, flags, AcceptCallbackProc,
acceptCallbackPtr);
if (chan == NULL) {
Tcl_DecrRefCount(script);