summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--generic/tclIOSock.c9
-rw-r--r--generic/tclIntDecls.h13
-rw-r--r--generic/tclStubInit.c7
-rw-r--r--win/tclWinSock.c4
4 files changed, 31 insertions, 2 deletions
diff --git a/generic/tclIOSock.c b/generic/tclIOSock.c
index f311912..3ed2122 100644
--- a/generic/tclIOSock.c
+++ b/generic/tclIOSock.c
@@ -83,9 +83,18 @@ TclSockGetPort(interp, string, proto, portPtr)
*----------------------------------------------------------------------
*/
+#ifdef _WIN64
+ /* See bug 510001: TclSockMinimumBuffers needs plat imp */
+# define TclSockMinimumBuffers TclSockMinimumBuffersWin64
+#endif
+
int
TclSockMinimumBuffers(sock, size)
+#ifdef _WIN64
+ SOCKET sock; /* Socket file descriptor */
+#else
int sock; /* Socket file descriptor */
+#endif
int size; /* Minimum buffer size */
{
int current;
diff --git a/generic/tclIntDecls.h b/generic/tclIntDecls.h
index 1d831ed..d53acb5 100644
--- a/generic/tclIntDecls.h
+++ b/generic/tclIntDecls.h
@@ -1409,4 +1409,17 @@ extern TclIntStubs *tclIntStubsPtr;
/* !END!: Do not edit above this line. */
+#ifdef _WIN64
+ /* See bug 510001: TclSockMinimumBuffers needs plat imp */
+ extern int TclSockMinimumBuffersWin64(unsigned __int64,int);
+
+# ifdef USE_TCL_STUBS
+# undef TclSockMinimumBuffers
+# define TclSockMinimumBuffers ((int (*)(SOCKET,int)) \
+ tclIntStubsPtr->tclSockMinimumBuffers)
+# else
+# define TclSockMinimumBuffers TclSockMinimumBuffersWin64
+# endif
+#endif
+
#endif /* _TCLINTDECLS */
diff --git a/generic/tclStubInit.c b/generic/tclStubInit.c
index 347bdcb..09994b9 100644
--- a/generic/tclStubInit.c
+++ b/generic/tclStubInit.c
@@ -55,6 +55,13 @@ Tcl_NotifierProcs tclOriginalNotifier = {
NULL
};
+#ifdef _WIN64
+/* See bug 510001: TclSockMinimumBuffers needs plat imp */
+# undef TclSockMinimumBuffers
+# define TclSockMinimumBuffers ((int (*)(int, int)) \
+ TclSockMinimumBuffersWin64)
+#endif
+
#ifdef __CYGWIN__
#define TclWinGetPlatformId winGetPlatformId
diff --git a/win/tclWinSock.c b/win/tclWinSock.c
index f3fe979..a03116a 100644
--- a/win/tclWinSock.c
+++ b/win/tclWinSock.c
@@ -1156,7 +1156,7 @@ CreateSocket(interp, port, host, server, myaddr, myport, async)
* Set kernel space buffering
*/
- TclSockMinimumBuffers((int) sock, TCP_BUFFER_SIZE);
+ TclSockMinimumBuffers(sock, TCP_BUFFER_SIZE);
if (server) {
/*
@@ -1517,7 +1517,7 @@ Tcl_MakeTcpClientChannel(sock)
* Set kernel space buffering and non-blocking.
*/
- TclSockMinimumBuffers((int) sock, TCP_BUFFER_SIZE);
+ TclSockMinimumBuffers((SOCKET) sock, TCP_BUFFER_SIZE);
infoPtr = NewSocketInfo((SOCKET) sock);