Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | [Bug 510001]: TclSockMinimumBuffers needs plat imp |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | core-8-5-branch |
Files: | files | file ages | folders |
SHA1: |
2725f75513c5d1a23babcd1222c69d41 |
User & Date: | jan.nijtmans 2012-04-04 09:05:51 |
Context
2012-04-04
| ||
14:48 | Quick workaround for busted branch tip. check-in: 9fc4ed3a6d user: dgp tags: core-8-5-branch | |
09:54 | [Bug 510001]: TclSockMinimumBuffers needs plat imp check-in: 0dfb472cef user: jan.nijtmans tags: trunk | |
09:05 | [Bug 510001]: TclSockMinimumBuffers needs plat imp check-in: 2725f75513 user: jan.nijtmans tags: core-8-5-branch | |
08:36 | [Bug 510001]: TclSockMinimumBuffers needs plat imp check-in: cbf7dc0a31 user: jan.nijtmans tags: core-8-4-branch | |
2012-04-03
| ||
14:27 | cleanup tcl.decls (unnecessary "generic" argument) check-in: 1fb2809854 user: jan.nijtmans tags: core-8-5-branch | |
Changes
Changes to ChangeLog.
1 2 3 4 5 6 7 | 2012-04-03 Jan Nijtmans <[email protected]> * generic/tclStubInit.c Remove the TclpGetTZName implementation for * generic/tclIntDecls.h: Cygwin (from previous commit) , re-generated * generic/tclIntPlatDecls.h: * generic/tcl.decls: cleanup unnecessary "generic" argument | > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | 2012-04-04 Jan Nijtmans <[email protected]> * win/tclWinSock.c: [Bug 510001]: TclSockMinimumBuffers needs plat imp * generic/tclIOSock.c: * generic/tclInt.decls: * generic/tclIntDecls.h: * generic/tclStubInit.c: 2012-04-03 Jan Nijtmans <[email protected]> * generic/tclStubInit.c Remove the TclpGetTZName implementation for * generic/tclIntDecls.h: Cygwin (from previous commit) , re-generated * generic/tclIntPlatDecls.h: * generic/tcl.decls: cleanup unnecessary "generic" argument |
︙ | ︙ |
Changes to generic/tclIOSock.c.
︙ | ︙ | |||
77 78 79 80 81 82 83 84 85 | * * Side effects: * Sets SO_SNDBUF and SO_RCVBUF sizes. * *---------------------------------------------------------------------- */ int TclSockMinimumBuffers( | > > > > > | | | | | | 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 | * * Side effects: * Sets SO_SNDBUF and SO_RCVBUF sizes. * *---------------------------------------------------------------------- */ #undef TclSockMinimumBuffers #ifndef _WIN32 # define SOCKET int #endif int TclSockMinimumBuffers( void *sock, /* Socket file descriptor */ int size) /* Minimum buffer size */ { int current; socklen_t len; len = sizeof(int); getsockopt((SOCKET)sock, SOL_SOCKET, SO_SNDBUF, (char *)¤t, &len); if (current < size) { len = sizeof(int); setsockopt((SOCKET)sock, SOL_SOCKET, SO_SNDBUF, (char *)&size, len); } len = sizeof(int); getsockopt((SOCKET)sock, SOL_SOCKET, SO_RCVBUF, (char *)¤t, &len); if (current < size) { len = sizeof(int); setsockopt((SOCKET)sock, SOL_SOCKET, SO_RCVBUF, (char *)&size, len); } return TCL_OK; } /* * Local Variables: * mode: c |
︙ | ︙ |
Changes to generic/tclInt.decls.
︙ | ︙ | |||
415 416 417 418 419 420 421 | void TclSetupEnv(Tcl_Interp *interp) } declare 103 { int TclSockGetPort(Tcl_Interp *interp, const char *str, const char *proto, int *portPtr) } declare 104 { | > > > | | 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 | void TclSetupEnv(Tcl_Interp *interp) } declare 103 { int TclSockGetPort(Tcl_Interp *interp, const char *str, const char *proto, int *portPtr) } declare 104 { int TclSockMinimumBuffersOld(int sock, int size) } declare 110 {unix win} { int TclSockMinimumBuffers(void *sock, int size) } # Replaced by Tcl_FSStat in 8.4: #declare 105 { # int TclStat(const char *path, Tcl_StatBuf *buf) #} #declare 106 { # int TclStatDeleteProc(TclStatProc_ *proc) |
︙ | ︙ |
Changes to generic/tclIntDecls.h.
︙ | ︙ | |||
434 435 436 437 438 439 440 | #endif #ifndef TclSockGetPort_TCL_DECLARED #define TclSockGetPort_TCL_DECLARED /* 103 */ EXTERN int TclSockGetPort(Tcl_Interp *interp, CONST char *str, CONST char *proto, int *portPtr); #endif | | | | > > > | > > > > > > > > > > > > > > > > > | 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 | #endif #ifndef TclSockGetPort_TCL_DECLARED #define TclSockGetPort_TCL_DECLARED /* 103 */ EXTERN int TclSockGetPort(Tcl_Interp *interp, CONST char *str, CONST char *proto, int *portPtr); #endif #ifndef TclSockMinimumBuffersOld_TCL_DECLARED #define TclSockMinimumBuffersOld_TCL_DECLARED /* 104 */ EXTERN int TclSockMinimumBuffersOld(int sock, int size); #endif /* Slot 105 is reserved */ /* Slot 106 is reserved */ /* Slot 107 is reserved */ #ifndef TclTeardownNamespace_TCL_DECLARED #define TclTeardownNamespace_TCL_DECLARED /* 108 */ EXTERN void TclTeardownNamespace(Namespace *nsPtr); #endif #ifndef TclUpdateReturnInfo_TCL_DECLARED #define TclUpdateReturnInfo_TCL_DECLARED /* 109 */ EXTERN int TclUpdateReturnInfo(Interp *iPtr); #endif #if !defined(__WIN32__) && !defined(MAC_OSX_TCL) /* UNIX */ #ifndef TclSockMinimumBuffers_TCL_DECLARED #define TclSockMinimumBuffers_TCL_DECLARED /* 110 */ EXTERN int TclSockMinimumBuffers(VOID *sock, int size); #endif #endif /* UNIX */ #ifdef __WIN32__ /* WIN */ #ifndef TclSockMinimumBuffers_TCL_DECLARED #define TclSockMinimumBuffers_TCL_DECLARED /* 110 */ EXTERN int TclSockMinimumBuffers(VOID *sock, int size); #endif #endif /* WIN */ #ifdef MAC_OSX_TCL /* MACOSX */ #ifndef TclSockMinimumBuffers_TCL_DECLARED #define TclSockMinimumBuffers_TCL_DECLARED /* 110 */ EXTERN int TclSockMinimumBuffers(VOID *sock, int size); #endif #endif /* MACOSX */ #ifndef Tcl_AddInterpResolvers_TCL_DECLARED #define Tcl_AddInterpResolvers_TCL_DECLARED /* 111 */ EXTERN void Tcl_AddInterpResolvers(Tcl_Interp *interp, CONST char *name, Tcl_ResolveCmdProc *cmdProc, Tcl_ResolveVarProc *varProc, |
︙ | ︙ | |||
1154 1155 1156 1157 1158 1159 1160 | void (*tclResetShadowedCmdRefs) (Tcl_Interp *interp, Command *newCmdPtr); /* 97 */ int (*tclServiceIdle) (void); /* 98 */ VOID *reserved99; VOID *reserved100; char * (*tclSetPreInitScript) (char *string); /* 101 */ void (*tclSetupEnv) (Tcl_Interp *interp); /* 102 */ int (*tclSockGetPort) (Tcl_Interp *interp, CONST char *str, CONST char *proto, int *portPtr); /* 103 */ | | > | > > > > > > > | 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 | void (*tclResetShadowedCmdRefs) (Tcl_Interp *interp, Command *newCmdPtr); /* 97 */ int (*tclServiceIdle) (void); /* 98 */ VOID *reserved99; VOID *reserved100; char * (*tclSetPreInitScript) (char *string); /* 101 */ void (*tclSetupEnv) (Tcl_Interp *interp); /* 102 */ int (*tclSockGetPort) (Tcl_Interp *interp, CONST char *str, CONST char *proto, int *portPtr); /* 103 */ int (*tclSockMinimumBuffersOld) (int sock, int size); /* 104 */ VOID *reserved105; VOID *reserved106; VOID *reserved107; void (*tclTeardownNamespace) (Namespace *nsPtr); /* 108 */ int (*tclUpdateReturnInfo) (Interp *iPtr); /* 109 */ #if !defined(__WIN32__) && !defined(MAC_OSX_TCL) /* UNIX */ int (*tclSockMinimumBuffers) (VOID *sock, int size); /* 110 */ #endif /* UNIX */ #ifdef __WIN32__ /* WIN */ int (*tclSockMinimumBuffers) (VOID *sock, int size); /* 110 */ #endif /* WIN */ #ifdef MAC_OSX_TCL /* MACOSX */ int (*tclSockMinimumBuffers) (VOID *sock, int size); /* 110 */ #endif /* MACOSX */ void (*tcl_AddInterpResolvers) (Tcl_Interp *interp, CONST char *name, Tcl_ResolveCmdProc *cmdProc, Tcl_ResolveVarProc *varProc, Tcl_ResolveCompiledVarProc *compiledVarProc); /* 111 */ int (*tcl_AppendExportList) (Tcl_Interp *interp, Tcl_Namespace *nsPtr, Tcl_Obj *objPtr); /* 112 */ Tcl_Namespace * (*tcl_CreateNamespace) (Tcl_Interp *interp, CONST char *name, ClientData clientData, Tcl_NamespaceDeleteProc *deleteProc); /* 113 */ void (*tcl_DeleteNamespace) (Tcl_Namespace *nsPtr); /* 114 */ int (*tcl_Export) (Tcl_Interp *interp, Tcl_Namespace *nsPtr, CONST char *pattern, int resetListFirst); /* 115 */ Tcl_Command (*tcl_FindCommand) (Tcl_Interp *interp, CONST char *name, Tcl_Namespace *contextNsPtr, int flags); /* 116 */ Tcl_Namespace * (*tcl_FindNamespace) (Tcl_Interp *interp, CONST char *name, Tcl_Namespace *contextNsPtr, int flags); /* 117 */ |
︙ | ︙ | |||
1594 1595 1596 1597 1598 1599 1600 | #define TclSetupEnv \ (tclIntStubsPtr->tclSetupEnv) /* 102 */ #endif #ifndef TclSockGetPort #define TclSockGetPort \ (tclIntStubsPtr->tclSockGetPort) /* 103 */ #endif | | | | > > > > > | > > > > > > > > > > > > | 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 | #define TclSetupEnv \ (tclIntStubsPtr->tclSetupEnv) /* 102 */ #endif #ifndef TclSockGetPort #define TclSockGetPort \ (tclIntStubsPtr->tclSockGetPort) /* 103 */ #endif #ifndef TclSockMinimumBuffersOld #define TclSockMinimumBuffersOld \ (tclIntStubsPtr->tclSockMinimumBuffersOld) /* 104 */ #endif /* Slot 105 is reserved */ /* Slot 106 is reserved */ /* Slot 107 is reserved */ #ifndef TclTeardownNamespace #define TclTeardownNamespace \ (tclIntStubsPtr->tclTeardownNamespace) /* 108 */ #endif #ifndef TclUpdateReturnInfo #define TclUpdateReturnInfo \ (tclIntStubsPtr->tclUpdateReturnInfo) /* 109 */ #endif #if !defined(__WIN32__) && !defined(MAC_OSX_TCL) /* UNIX */ #ifndef TclSockMinimumBuffers #define TclSockMinimumBuffers \ (tclIntStubsPtr->tclSockMinimumBuffers) /* 110 */ #endif #endif /* UNIX */ #ifdef __WIN32__ /* WIN */ #ifndef TclSockMinimumBuffers #define TclSockMinimumBuffers \ (tclIntStubsPtr->tclSockMinimumBuffers) /* 110 */ #endif #endif /* WIN */ #ifdef MAC_OSX_TCL /* MACOSX */ #ifndef TclSockMinimumBuffers #define TclSockMinimumBuffers \ (tclIntStubsPtr->tclSockMinimumBuffers) /* 110 */ #endif #endif /* MACOSX */ #ifndef Tcl_AddInterpResolvers #define Tcl_AddInterpResolvers \ (tclIntStubsPtr->tcl_AddInterpResolvers) /* 111 */ #endif #ifndef Tcl_AppendExportList #define Tcl_AppendExportList \ (tclIntStubsPtr->tcl_AppendExportList) /* 112 */ |
︙ | ︙ | |||
2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 | #define TclDoubleDigits \ (tclIntStubsPtr->tclDoubleDigits) /* 249 */ #endif #endif /* defined(USE_TCL_STUBS) && !defined(USE_TCL_STUB_PROCS) */ /* !END!: Do not edit above this line. */ #undef TCL_STORAGE_CLASS #define TCL_STORAGE_CLASS DLLIMPORT #endif /* _TCLINTDECLS */ | > > > > > > | 2077 2078 2079 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 | #define TclDoubleDigits \ (tclIntStubsPtr->tclDoubleDigits) /* 249 */ #endif #endif /* defined(USE_TCL_STUBS) && !defined(USE_TCL_STUB_PROCS) */ /* !END!: Do not edit above this line. */ #if !defined(_WIN64) /* See bug 510001: TclSockMinimumBuffers needs plat imp */ # undef TclSockMinimumBuffers # define TclSockMinimumBuffers(a,b) TclSockMinimumBuffersOld(PTR2INT(a),b) #endif #undef TCL_STORAGE_CLASS #define TCL_STORAGE_CLASS DLLIMPORT #endif /* _TCLINTDECLS */ |
Changes to generic/tclStubInit.c.
︙ | ︙ | |||
50 51 52 53 54 55 56 57 58 59 60 61 62 63 | NULL, #endif NULL, NULL, NULL, NULL }; MODULE_SCOPE TclIntStubs tclIntStubs; MODULE_SCOPE TclIntPlatStubs tclIntPlatStubs; MODULE_SCOPE TclPlatStubs tclPlatStubs; MODULE_SCOPE TclStubs tclStubs; MODULE_SCOPE TclTomMathStubs tclTomMathStubs; | > > > > > > > > > > > > | 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 | NULL, #endif NULL, NULL, NULL, NULL }; /* See bug 510001: TclSockMinimumBuffers needs plat imp */ #ifdef _WIN64 # define TclSockMinimumBuffersOld 0 #else int TclSockMinimumBuffersOld(sock, size) int sock; int size; { return TclSockMinimumBuffers((void *) (size_t) sock, size); } #endif MODULE_SCOPE TclIntStubs tclIntStubs; MODULE_SCOPE TclIntPlatStubs tclIntPlatStubs; MODULE_SCOPE TclPlatStubs tclPlatStubs; MODULE_SCOPE TclStubs tclStubs; MODULE_SCOPE TclTomMathStubs tclTomMathStubs; |
︙ | ︙ | |||
302 303 304 305 306 307 308 | TclResetShadowedCmdRefs, /* 97 */ TclServiceIdle, /* 98 */ NULL, /* 99 */ NULL, /* 100 */ TclSetPreInitScript, /* 101 */ TclSetupEnv, /* 102 */ TclSockGetPort, /* 103 */ | | > | > > > > > > > | 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 | TclResetShadowedCmdRefs, /* 97 */ TclServiceIdle, /* 98 */ NULL, /* 99 */ NULL, /* 100 */ TclSetPreInitScript, /* 101 */ TclSetupEnv, /* 102 */ TclSockGetPort, /* 103 */ TclSockMinimumBuffersOld, /* 104 */ NULL, /* 105 */ NULL, /* 106 */ NULL, /* 107 */ TclTeardownNamespace, /* 108 */ TclUpdateReturnInfo, /* 109 */ #if !defined(__WIN32__) && !defined(MAC_OSX_TCL) /* UNIX */ TclSockMinimumBuffers, /* 110 */ #endif /* UNIX */ #ifdef __WIN32__ /* WIN */ TclSockMinimumBuffers, /* 110 */ #endif /* WIN */ #ifdef MAC_OSX_TCL /* MACOSX */ TclSockMinimumBuffers, /* 110 */ #endif /* MACOSX */ Tcl_AddInterpResolvers, /* 111 */ Tcl_AppendExportList, /* 112 */ Tcl_CreateNamespace, /* 113 */ Tcl_DeleteNamespace, /* 114 */ Tcl_Export, /* 115 */ Tcl_FindCommand, /* 116 */ Tcl_FindNamespace, /* 117 */ |
︙ | ︙ |
Changes to win/tclWinSock.c.
︙ | ︙ | |||
964 965 966 967 968 969 970 | SetHandleInformation((HANDLE) sock, HANDLE_FLAG_INHERIT, 0); /* * Set kernel space buffering */ | | | 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 | SetHandleInformation((HANDLE) sock, HANDLE_FLAG_INHERIT, 0); /* * Set kernel space buffering */ TclSockMinimumBuffers((void *)sock, TCP_BUFFER_SIZE); if (server) { /* * Bind to the specified port. Note that we must not call setsockopt * with SO_REUSEADDR because Microsoft allows addresses to be reused * even if they are still in use. * |
︙ | ︙ | |||
1322 1323 1324 1325 1326 1327 1328 | tsdPtr = (ThreadSpecificData *)TclThreadDataKeyGet(&dataKey); /* * Set kernel space buffering and non-blocking. */ | | | 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 | tsdPtr = (ThreadSpecificData *)TclThreadDataKeyGet(&dataKey); /* * Set kernel space buffering and non-blocking. */ TclSockMinimumBuffers(sock, TCP_BUFFER_SIZE); infoPtr = NewSocketInfo((SOCKET) sock); /* * Start watching for read/write events on the socket. */ |
︙ | ︙ | |||
2475 2476 2477 2478 2479 2480 2481 | * Side effects: * As defined for each function. * *---------------------------------------------------------------------- */ int | | < < < < | | < < < < | 2475 2476 2477 2478 2479 2480 2481 2482 2483 2484 2485 2486 2487 2488 2489 2490 2491 2492 2493 2494 2495 2496 2497 2498 2499 2500 2501 2502 2503 2504 2505 2506 | * Side effects: * As defined for each function. * *---------------------------------------------------------------------- */ int TclWinGetSockOpt(SOCKET s, int level, int optname, char *optval, int *optlen) { /* * Check that WinSock is initialized; do not call it if not, to prevent * system crashes. This can happen at exit time if the exit handler for * WinSock ran before other exit handlers that want to use sockets. */ if (!SocketsEnabled()) { return SOCKET_ERROR; } return getsockopt(s, level, optname, optval, optlen); } int TclWinSetSockOpt(SOCKET s, int level, int optname, const char *optval, int optlen) { /* * Check that WinSock is initialized; do not call it if not, to prevent * system crashes. This can happen at exit time if the exit handler for * WinSock ran before other exit handlers that want to use sockets. */ |
︙ | ︙ |