svnno****@sourc*****
svnno****@sourc*****
2011年 2月 27日 (日) 12:09:38 JST
Revision: 4345 http://sourceforge.jp/projects/ttssh2/svn/view?view=rev&revision=4345 Author: doda Date: 2011-02-27 12:09:38 +0900 (Sun, 27 Feb 2011) Log Message: ----------- HTTP/TELNET プロキシ接続で、実ホスト名に : が含まれる場合は IPv6 アドレス指定とみなして [] で囲うようにした。 Modified Paths: -------------- trunk/TTProxy/ProxyWSockHook.h -------------- next part -------------- Modified: trunk/TTProxy/ProxyWSockHook.h =================================================================== --- trunk/TTProxy/ProxyWSockHook.h 2011-02-26 16:32:40 UTC (rev 4344) +++ trunk/TTProxy/ProxyWSockHook.h 2011-02-27 03:09:38 UTC (rev 4345) @@ -1328,7 +1328,7 @@ static const char base64_table[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; char buf[1024]; int status_code; - if (sendToSocketFormat(s, "CONNECT %s:%d HTTP/1.0\r\n", realhost, realport) == SOCKET_ERROR) + if (sendToSocketFormat(s, strchr(realhost,':')?"CONNECT [%s]:%d HTTP/1.0\r\n":"CONNECT %s:%d HTTP/1.0\r\n", realhost, realport) == SOCKET_ERROR) return SOCKET_ERROR; if (proxy.user != NULL) { int userlen = strlen(proxy.user); @@ -1665,7 +1665,7 @@ while (!err) { switch (wait_for_prompt(s, prompt_table, countof(prompt_table), 10)) { case 0: /* Hostname prompt */ - if (sendToSocketFormat(s, "%s:%d\n", realhost, realport) == SOCKET_ERROR) + if (sendToSocketFormat(s, strchr(realhost,':')?"[%s]:%d\n":"%s:%d\n", realhost, realport) == SOCKET_ERROR) return SOCKET_ERROR; break; case 1: /* Username prompt */