TTProxyのHTTP/1.1対応
現在のTTProxyでhttpプロキシを使う場合、HTTP/1.0 で接続しているようです。 (ログ、および TTProxy/ProxyWSockHook.h で確認)
// ProxyWSockHook.h:1392行 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;
CONNECT メソッドは HTTP/1.1 で追加されたもののため、HTTP/1.0では処理できないProxyサーバが存在します。 そのため、HTTP/1.1化をお願いします(あるいは、HTTP/1.0 と HTTP/1.1 を切り替え可能に)。
// こんな感じ? if (sendToSocketFormat(s, strchr(realhost,':')?"CONNECT [%s]:%d HTTP/1.1\r\n":"CONNECT %s:%d HTTP/1.1\r\n", realhost, realport) == SOCKET_ERROR) return SOCKET_ERROR; if (sendToSocketFormat(s, strchr(realhost,':')?"Host: [%s]:%d\r\n":"Host: %s:%d\r\n", realhost, realport) == SOCKET_ERROR) return SOCKET_ERROR;
デバッグありがとうございます。r6527 にて修正をコミットしました。
http://ttssh2.osdn.jp/snapshot/snapshot-20161103.zip
問題の起きるプロキシサーバが手元にないのでチェックできないのですが、この修正で大丈夫か確認いただけるでしょうか。
現在のTTProxyでhttpプロキシを使う場合、HTTP/1.0 で接続しているようです。 (ログ、および TTProxy/ProxyWSockHook.h で確認)
CONNECT メソッドは HTTP/1.1 で追加されたもののため、HTTP/1.0では処理できないProxyサーバが存在します。 そのため、HTTP/1.1化をお願いします(あるいは、HTTP/1.0 と HTTP/1.1 を切り替え可能に)。