stone
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)) {
---
update at 2020/11/30 16:14:37
※注:当サイトは特定環境において確認できた事象のみを記述しています。他の環境での動作は一切保証しません。