diff options
author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2012-05-23 04:43:56 (GMT) |
---|---|---|
committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2012-05-23 04:43:56 (GMT) |
commit | dce46c947bd11b68d1979b9e708d177acfddb911 (patch) | |
tree | 8472626ee14870d99d98f1cba4b051368ce24518 /win/tclWinSock.c | |
parent | 3d7e78f01cd6ddb05fa76bfc7aeb0c9c61392dfa (diff) | |
parent | c65f60aaeff611c42c9d8ecaf6783b5fa5b39f30 (diff) | |
download | tcl-dce46c947bd11b68d1979b9e708d177acfddb911.zip tcl-dce46c947bd11b68d1979b9e708d177acfddb911.tar.gz tcl-dce46c947bd11b68d1979b9e708d177acfddb911.tar.bz2 |
fix merge problem on Linux
Diffstat (limited to 'win/tclWinSock.c')
-rw-r--r-- | win/tclWinSock.c | 28 |
1 files changed, 22 insertions, 6 deletions
diff --git a/win/tclWinSock.c b/win/tclWinSock.c index 019d8e9..9591163 100644 --- a/win/tclWinSock.c +++ b/win/tclWinSock.c @@ -1129,7 +1129,7 @@ CreateSocketAddress( ZeroMemory(sockaddrPtr, sizeof(SOCKADDR_IN)); sockaddrPtr->sin_family = AF_INET; - sockaddrPtr->sin_port = htons((u_short) (port & 0xFFFF)); + sockaddrPtr->sin_port = htons((unsigned short) (port & 0xFFFF)); if (host == NULL) { addr.s_addr = INADDR_ANY; } else { @@ -2512,9 +2512,25 @@ TclWinSetSockOpt(SOCKET s, int level, int optname, const char *optval, return setsockopt(s, level, optname, optval, optlen); } -u_short -TclWinNToHS( - u_short netshort) +unsigned short +TclWinNToHS(unsigned short netshort) +{ + /* + * 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 (unsigned short) -1; + } + + return ntohs(netshort); +} + +char * +TclpInetNtoa(struct in_addr addr) { /* * Check that WinSock is initialized; do not call it if not, to prevent @@ -2523,10 +2539,10 @@ TclWinNToHS( */ if (!SocketsEnabled()) { - return (u_short) -1; + return NULL; } - return ntohs(netshort); + return inet_ntoa(addr); } struct servent * |