Fix up OpenSSL initialization

Use the example presented at
http://en.wikibooks.org/wiki/OpenSSL/Initialization
This commit is contained in:
Tatsuhiro Tsujikawa 2015-05-23 00:23:38 +09:00
parent 1c06cfd29f
commit 791660ef8d
7 changed files with 37 additions and 36 deletions

View File

@ -689,10 +689,10 @@ int main(int argc, char **argv) {
act.sa_handler = SIG_IGN; act.sa_handler = SIG_IGN;
sigaction(SIGPIPE, &act, 0); sigaction(SIGPIPE, &act, 0);
OPENSSL_config(NULL);
OpenSSL_add_all_algorithms();
SSL_load_error_strings(); SSL_load_error_strings();
SSL_library_init(); SSL_library_init();
OpenSSL_add_all_algorithms();
OPENSSL_config(NULL);
rv = parse_uri(&uri, argv[1]); rv = parse_uri(&uri, argv[1]);
if (rv != 0) { if (rv != 0) {

View File

@ -551,10 +551,10 @@ int main(int argc, char **argv) {
act.sa_handler = SIG_IGN; act.sa_handler = SIG_IGN;
sigaction(SIGPIPE, &act, NULL); sigaction(SIGPIPE, &act, NULL);
OPENSSL_config(NULL);
OpenSSL_add_all_algorithms();
SSL_load_error_strings(); SSL_load_error_strings();
SSL_library_init(); SSL_library_init();
OpenSSL_add_all_algorithms();
OPENSSL_config(NULL);
run(argv[1]); run(argv[1]);
return 0; return 0;

View File

@ -724,10 +724,10 @@ int main(int argc, char **argv) {
act.sa_handler = SIG_IGN; act.sa_handler = SIG_IGN;
sigaction(SIGPIPE, &act, NULL); sigaction(SIGPIPE, &act, NULL);
OPENSSL_config(NULL);
OpenSSL_add_all_algorithms();
SSL_load_error_strings(); SSL_load_error_strings();
SSL_library_init(); SSL_library_init();
OpenSSL_add_all_algorithms();
OPENSSL_config(NULL);
run(argv[1], argv[2], argv[3]); run(argv[1], argv[2], argv[3]);
return 0; return 0;

View File

@ -1063,6 +1063,14 @@ Options:
} // namespace } // namespace
int main(int argc, char **argv) { int main(int argc, char **argv) {
#ifndef NOTHREADS
ssl::LibsslGlobalLock lock;
#endif // NOTHREADS
SSL_load_error_strings();
SSL_library_init();
OpenSSL_add_all_algorithms();
OPENSSL_config(nullptr);
std::string datafile; std::string datafile;
while (1) { while (1) {
static int flag = 0; static int flag = 0;
@ -1259,14 +1267,6 @@ int main(int argc, char **argv) {
memset(&act, 0, sizeof(struct sigaction)); memset(&act, 0, sizeof(struct sigaction));
act.sa_handler = SIG_IGN; act.sa_handler = SIG_IGN;
sigaction(SIGPIPE, &act, nullptr); sigaction(SIGPIPE, &act, nullptr);
OPENSSL_config(nullptr);
OpenSSL_add_all_algorithms();
SSL_load_error_strings();
SSL_library_init();
#ifndef NOTHREADS
ssl::LibsslGlobalLock lock;
#endif // NOTHREADS
auto ssl_ctx = SSL_CTX_new(SSLv23_client_method()); auto ssl_ctx = SSL_CTX_new(SSLv23_client_method());
if (!ssl_ctx) { if (!ssl_ctx) {

View File

@ -2400,6 +2400,11 @@ Options:
} // namespace } // namespace
int main(int argc, char **argv) { int main(int argc, char **argv) {
SSL_load_error_strings();
SSL_library_init();
OpenSSL_add_all_algorithms();
OPENSSL_config(nullptr);
bool color = false; bool color = false;
while (1) { while (1) {
static int flag = 0; static int flag = 0;
@ -2639,10 +2644,6 @@ int main(int argc, char **argv) {
memset(&act, 0, sizeof(struct sigaction)); memset(&act, 0, sizeof(struct sigaction));
act.sa_handler = SIG_IGN; act.sa_handler = SIG_IGN;
sigaction(SIGPIPE, &act, nullptr); sigaction(SIGPIPE, &act, nullptr);
OPENSSL_config(nullptr);
OpenSSL_add_all_algorithms();
SSL_load_error_strings();
SSL_library_init();
reset_timer(); reset_timer();
return run(argv + optind, argc - optind); return run(argv + optind, argc - optind);
} }

View File

@ -168,6 +168,14 @@ Options:
} // namespace } // namespace
int main(int argc, char **argv) { int main(int argc, char **argv) {
#ifndef NOTHREADS
ssl::LibsslGlobalLock lock;
#endif // NOTHREADS
SSL_load_error_strings();
SSL_library_init();
OpenSSL_add_all_algorithms();
OPENSSL_config(nullptr);
Config config; Config config;
bool color = false; bool color = false;
while (1) { while (1) {
@ -359,13 +367,6 @@ int main(int argc, char **argv) {
memset(&act, 0, sizeof(struct sigaction)); memset(&act, 0, sizeof(struct sigaction));
act.sa_handler = SIG_IGN; act.sa_handler = SIG_IGN;
sigaction(SIGPIPE, &act, nullptr); sigaction(SIGPIPE, &act, nullptr);
OPENSSL_config(nullptr);
OpenSSL_add_all_algorithms();
SSL_load_error_strings();
SSL_library_init();
#ifndef NOTHREADS
ssl::LibsslGlobalLock lock;
#endif // NOTHREADS
reset_timer(); reset_timer();

View File

@ -1415,6 +1415,16 @@ Misc:
} // namespace } // namespace
int main(int argc, char **argv) { int main(int argc, char **argv) {
#ifndef NOTHREADS
nghttp2::ssl::LibsslGlobalLock lock;
#endif // NOTHREADS
// Initialize OpenSSL before parsing options because we create
// SSL_CTX there.
SSL_load_error_strings();
SSL_library_init();
OpenSSL_add_all_algorithms();
OPENSSL_config(nullptr);
Log::set_severity_level(NOTICE); Log::set_severity_level(NOTICE);
create_config(); create_config();
fill_default_config(); fill_default_config();
@ -1894,13 +1904,6 @@ int main(int argc, char **argv) {
} }
} }
// Initialize OpenSSL before parsing options because we create
// SSL_CTX there.
OPENSSL_config(nullptr);
OpenSSL_add_all_algorithms();
SSL_load_error_strings();
SSL_library_init();
if (conf_exists(get_config()->conf_path.get())) { if (conf_exists(get_config()->conf_path.get())) {
if (load_config(get_config()->conf_path.get()) == -1) { if (load_config(get_config()->conf_path.get()) == -1) {
LOG(FATAL) << "Failed to load configuration from " LOG(FATAL) << "Failed to load configuration from "
@ -1925,10 +1928,6 @@ int main(int argc, char **argv) {
} }
} }
#ifndef NOTHREADS
auto lock = make_unique<nghttp2::ssl::LibsslGlobalLock>();
#endif // NOTHREADS
if (get_config()->accesslog_syslog || get_config()->errorlog_syslog) { if (get_config()->accesslog_syslog || get_config()->errorlog_syslog) {
openlog("nghttpx", LOG_NDELAY | LOG_NOWAIT | LOG_PID, openlog("nghttpx", LOG_NDELAY | LOG_NOWAIT | LOG_PID,
get_config()->syslog_facility); get_config()->syslog_facility);