非セキュアな場合は、BIO_new_connectで接続先ホスト名とポートを指定していたが、セキュアな場合に、BIO_new_ssl_connectにはSSL_CTX型ポインタしか渡せないため、BIO_set_conn_hostnameを使う。
bio_set_conn_hostname(3): connect BIO - Linux man page
BIO_set_conn_hostname.cで、
BIO_set_conn_hostnameで、bioに"bgstation0.com:443"をセットする。
これでBIO_do_connectに成功すれば、接続できていることを確認できる。
$ vi BIO_set_conn_hostname.c $ gcc -o BIO_set_conn_hostname BIO_set_conn_hostname.c -lssl -lcrypto $ ./BIO_set_conn_hostname ctx = 012ae820 SSL_CTX_load_verify_locations success! BIO_new_ssl_connect success! bio = 012b1090 ssl = 012b1150 ssl_mode = 00000000 ssl_mode = 00000004 SSL_MODE_AUTO_RETRY BIO_do_connect success! bio = 012b1090 $
接続できた。