diff options
author | max <max@tclers.tk> | 2014-02-28 10:47:53 (GMT) |
---|---|---|
committer | max <max@tclers.tk> | 2014-02-28 10:47:53 (GMT) |
commit | 67ca0cb05fe3153db733521fbff66e5ba180358c (patch) | |
tree | 95cbd1b26b79322cbabec4f6d4b6756ff54593fb /unix | |
parent | 7b8b2d52e5298c10a227114f17db436bacceb56c (diff) | |
download | tcl-67ca0cb05fe3153db733521fbff66e5ba180358c.zip tcl-67ca0cb05fe3153db733521fbff66e5ba180358c.tar.gz tcl-67ca0cb05fe3153db733521fbff66e5ba180358c.tar.bz2 |
Broken intermediate state.
Calling back to CreateClientSocket() from the event loop works, but
the final failed or succeeded state of an asyncronous socket does not
get notified to the channel correctly.
Diffstat (limited to 'unix')
-rw-r--r-- | unix/tclUnixSock.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/unix/tclUnixSock.c b/unix/tclUnixSock.c index 49a6460..c866903 100644 --- a/unix/tclUnixSock.c +++ b/unix/tclUnixSock.c @@ -163,6 +163,18 @@ static TclInitProcessGlobalValueProc InitializeHostName; static ProcessGlobalValue hostName = {0, 0, NULL, NULL, InitializeHostName, NULL, NULL}; +void printaddrinfo(struct addrinfo *addrlist, char *prefix) +{ + char host[NI_MAXHOST], port[NI_MAXSERV]; + struct addrinfo *ai; + for (ai = addrlist; ai != NULL; ai = ai->ai_next) { + getnameinfo(ai->ai_addr, ai->ai_addrlen, + host, sizeof(host), + port, sizeof(port), + NI_NUMERICHOST|NI_NUMERICSERV); + fprintf(stderr,"%s: %s:%s\n", prefix, host, port); + } +} /* *---------------------------------------------------------------------- * @@ -1160,6 +1172,9 @@ Tcl_OpenTcpClient( return NULL; } + printaddrinfo(myaddrlist, "local"); + printaddrinfo(addrlist, "remote"); + /* * Allocate a new TcpState for this socket. */ |