こんな感じの流れで組んであります
--------------------------------------------------------------------
[Winsockを使って、connectまで行う]
SSL *ssl;
SSL_CTX *ctx;
int ssl_err;
SSL_load_error_strings();
SSL_library_init();
ctx = SSL_CTX_new(SSLv3_client_method());
ssl = SSL_new(ctx);
SSL_set_fd(ssl, sok);
ssl_err = SSL_connect(ssl);
[SSL_writeを使ってGETメッセージを送る]
[SSL_readを使ってメッセージを受け取る]
SSL_shutdown( ssl );
SSL_free( ssl );
SSL_CTX_free( ctx );
[ソケットの削除とWinsockのクリーンアップ]
--------------------------------------------------------------------
調べてみると、SSL_library_initで大量のメモリーが確保されているらしく、それ
がメモリーリークの原因であることが分かりました。さらに、OpenSSLのサンプル
コードを調べて、(根拠はなかったんですが)SSL_CTX_freeの後に
ERR_free_strings();
ERR_remove_state(0);
EVP_cleanup();
の3行を追加すると、メモリーをだいたい解放してくれたんですが、残り128byte
(72+20+16+20)ほどメモリーが解放されません。
何か、適切な(わかりやすい)サンプルコードがあるページか、ずばり解決策をご
存じの方がいらっしゃったら、お教えくだされば幸いです。
長文・乱文をご覧くださりありがとうございました。よろしくお願いいたします。
PS.
これは、このNGに書くのは不適切と思いますが、Winsock2でイベントオブジェク
トに結びつけたソケットでSSLを利用しようとすると、エラーを起こしてしまうので
すが、Winsock2でブロッキングを起こさずにSSLを利用する方法をご存じの方がい
らっしゃったら、こちらも是非お教えください。
**************************************
*** 田淵義弘 in SPOONsoftware
*** E-Mail : tab...@spoonsoftware.com
*** HP : http://www.spoonsoftware.com
**************************************