Sean, > All previously handled errors related to the OpenSSL engine are now > handled with a macro and a small static function in order to both > produce more informative errors as well as commonize some duplicate > code in pool_ssl.c
Thanks for the patches. However following fragment does not apply cleanly. Can you please regenerate patches against CVS HEAD? Or provide me in a different patch style? -- Tatsuo Ishii SRA OSS, Inc. Japan English: http://www.sraoss.co.jp/index_en.php Japanese: http://www.sraoss.co.jp ------------------------------------------------------------- *************** *** 145,171 **** if (strlen(pool_config->ssl_ca_cert_dir)) cacert_dir = pool_config->ssl_ca_cert_dir; - if ( (!error) && (cacert || cacert_dir) ) { - if (! SSL_CTX_load_verify_locations(cp->ssl_ctx, cacert, cacert_dir)) { - pool_error("pool_ssl: SSL CA load error: %ld", ERR_get_error()); - error = -1; - } else { - SSL_CTX_set_verify(cp->ssl_ctx, SSL_VERIFY_PEER, NULL); - } } - } - if (! error) { - cp->ssl = SSL_new(cp->ssl_ctx); - if (! cp->ssl) { - pool_error("pool_ssl: SSL_new failed: %ld", ERR_get_error()); - error = -1; - } } - return error; } #else /* USE_SSL: wrap / no-op ssl functionality if it's not available */ - - --- 152,189 ---- if (strlen(pool_config->ssl_ca_cert_dir)) cacert_dir = pool_config->ssl_ca_cert_dir; + if ( cacert || cacert_dir ) { + error = (!SSL_CTX_load_verify_locations(cp->ssl_ctx, + cacert, + cacert_dir)); + SSL_RETURN_ERROR_IF(error, "SSL verification setup"); + SSL_CTX_set_verify(cp->ssl_ctx, SSL_VERIFY_PEER, NULL); } } + cp->ssl = SSL_new(cp->ssl_ctx); + SSL_RETURN_ERROR_IF( (! cp->ssl), "SSL_new"); + + return 0; + } + + static void perror_ssl(const char *context) { + unsigned long err; + static const char *no_err_reason = "no SSL error reported"; + const char *reason; + + err = ERR_get_error(); + if (! err) { + reason = no_err_reason; + } else { + reason = ERR_reason_error_string(err); } + if (reason != NULL) { + pool_error("pool_ssl: %s: %s", context, reason); + } else { + pool_error("pool_ssl: %s: Unknown SSL error %lu", context, err); + } } #else /* USE_SSL: wrap / no-op ssl functionality if it's not available */ _______________________________________________ Pgpool-hackers mailing list [email protected] http://pgfoundry.org/mailman/listinfo/pgpool-hackers
