stone

stone.cnf

proxy:8080/http     8080           "CONNECT target-ssl-server:443 HTTP/1.1" --
localhost:8080/ssl                     10443

execute

stone -C stone.cnf

64bit対応&OpenSSLv1.1対応

64bit環境でmakeが通らなくなった.
コンパイルオプションに「-D_GNU_SOURCE」を追加すると良いらしい.
OpenSSLv1.1になるとSSLv2関連の関数が削除され -sslのmakeが通らない.
SSLv2関連をmakeしないように「-DOPENSSL_NO_SSL2」を追加.
stone.c:2455:17: error: dereferencing pointer to incomplete type ‘SSL_SESSION’ {aka ‘struct ssl_session_st’}
謎のまま.当該コード周辺を一括無視するように#ifdefに細工をいれる.

package: stone-2.3e

展開するとディレクトリ名が stone-2.3d-2.3.2.7となるのは何故??

diff -ru stone-2.3d-2.3.2.7/Makefile stone-2.3d-2.3.2.7-64bit-openssl1.1/Makefile
--- stone-2.3d-2.3.2.7/Makefile 2008-02-05 08:00:00.000000000 +0900
+++ stone-2.3d-2.3.2.7-64bit-openssl1.1/Makefile        2020-11-30 15:50:38.406685249 +0900
@@ -19,10 +19,10 @@
 # -DWINDOWS    Windows95/98/NT
 # -DNT_SERVICE WindowsNT/2000 native service
 
-CFLAGS=                # -g
+CFLAGS=                -D_GNU_SOURCE # -g
 
 SSL=           /usr/local/ssl
-SSL_FLAGS=     -DUSE_SSL
+SSL_FLAGS=     -DUSE_SSL -DOPENSSL_NO_SSL2
 SSL_LIBS=      -lssl -lcrypto
 
 POP_FLAGS=     -DUSE_POP
stone-2.3d-2.3.2.7-64bit-openssl1.1 のみに存在: stone
diff -ru stone-2.3d-2.3.2.7/stone.c stone-2.3d-2.3.2.7-64bit-openssl1.1/stone.c
--- stone-2.3d-2.3.2.7/stone.c  2008-02-05 08:00:00.000000000 +0900
+++ stone-2.3d-2.3.2.7-64bit-openssl1.1/stone.c 2020-11-30 16:01:18.354354337 +0900
@@ -2444,7 +2444,7 @@
 #endif
     p2 = p1->pair;
     if (p2 == NULL) return -1;
-#ifdef USE_SSL
+#ifdef _USE_SSL
     ssl = p2->ssl;
     if (ssl) {
        SSL_SESSION *sess = SSL_get1_session(ssl);
@@ -3265,7 +3265,7 @@
     if (Debug > 7)
        message(LOG_DEBUG, "%d TCP %d: SSL_accept ret=%d, state=%x, "
                "finished=%x, in_init=%x/%x", pair->stone->sd,
-               sd, ret, SSL_state(ssl), SSL_is_init_finished(ssl),
+               sd, ret, SSL_get_state(ssl), SSL_is_init_finished(ssl),
                SSL_in_init(ssl), SSL_in_accept_init(ssl));
     if (ret > 0) {     /* success */
        if (SSL_in_accept_init(ssl)) {

Make

$ make linux-ssl



---
update at 2020/11/30 16:14:37

※注:当サイトは特定環境において確認できた事象のみを記述しています。他の環境での動作は一切保証しません。