[Ttssh2-commit] [4345] HTTP/ TELNET プロキシ接続で、実ホスト名に : が含まれる場合は IPv6 アドレス指定とみなして [] で囲うようにした。

Back to archive index

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 */



Ttssh2-commit メーリングリストの案内
Back to archive index