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