From df58dad240fe368c261263e248d3520d3e0be1a3 Mon Sep 17 00:00:00 2001 From: m0gg Date: Thu, 30 Nov 2006 14:23:58 +0000 Subject: Code cleanup --- nanohttp/nanohttp-ssl.c | 132 +++++++++++++++++++++++++++++------------------- 1 file changed, 80 insertions(+), 52 deletions(-) (limited to 'nanohttp/nanohttp-ssl.c') diff --git a/nanohttp/nanohttp-ssl.c b/nanohttp/nanohttp-ssl.c index 8b8fb5d..a5f32e3 100644 --- a/nanohttp/nanohttp-ssl.c +++ b/nanohttp/nanohttp-ssl.c @@ -1,5 +1,5 @@ /****************************************************************** -* $Id: nanohttp-ssl.c,v 1.33 2006/11/27 12:47:27 m0gg Exp $ +* $Id: nanohttp-ssl.c,v 1.34 2006/11/30 14:24:00 m0gg Exp $ * * CSOAP Project: A http client/server library in C * Copyright (C) 2001-2005 Rochester Institute of Technology @@ -84,12 +84,11 @@ #include "nanohttp-ssl.h" -static char *certificate = NULL; -static char *certpass = ""; -static char *ca_list = NULL; -static SSL_CTX *context = NULL; - -static int enabled = 0; +static char *_hssl_certificate = NULL; +static char *_hssl_certpass = NULL; +static char *_hssl_ca_list = NULL; +static SSL_CTX *_hssl_context = NULL; +static int _hssl_enabled = 0; static int _hssl_dummy_verify_cert(X509 * cert) @@ -99,7 +98,7 @@ _hssl_dummy_verify_cert(X509 * cert) /* connect to anyone */ - log_verbose1("Validating certificate."); + log_verbose1("_Not_ validating certificate."); return 1; } @@ -176,12 +175,15 @@ _hssl_password_callback(char *buf, int num, int rwflag, void *userdata) { int ret; - ret = strlen(certpass); + if (!_hssl_certpass) + return 0; + + ret = strlen(_hssl_certpass); if (num < ret + 1) return 0; - strcpy(buf, certpass); + strcpy(buf, _hssl_certpass); return ret; } @@ -221,25 +223,34 @@ hssl_set_hssl_verify_cert(int func(X509 * cert)) } void -hssl_set_certificate(char *c) +hssl_set_certificate(const char *filename) { - certificate = c; + if (_hssl_certificate) + free(_hssl_certificate); + + _hssl_certificate = strdup(filename); return; } void -hssl_set_certpass(char *c) +hssl_set_certpass(const char *password) { - certpass = c; + if (_hssl_certpass) + free(_hssl_certpass); + + _hssl_certpass = strdup(password); return; } void -hssl_set_ca(char *c) +hssl_set_ca_list(const char *filename) { - ca_list = c; + if (_hssl_ca_list) + free(_hssl_ca_list); + + _hssl_ca_list = strdup(filename); return; } @@ -247,7 +258,7 @@ hssl_set_ca(char *c) void hssl_enable(void) { - enabled = 1; + _hssl_enabled = 1; return; } @@ -257,23 +268,23 @@ _hssl_parse_arguments(int argc, char **argv) { int i; - for (i = 1; i < argc; i++) + for (i=1; inum, out, outl);; } @@ -463,12 +491,12 @@ hssl_server_ssl(struct hsocket_t *sock) int ret; BIO *sbio; - if (!enabled) + if (!_hssl_enabled) return H_OK; log_verbose2("Starting SSL initialization for socket %d", sock->sock); - if (!(ssl = SSL_new(context))) + if (!(ssl = SSL_new(_hssl_context))) { log_warn1("SSL_new failed"); return herror_new("hssl_server_ssl", HSSL_ERROR_SERVER, @@ -530,7 +558,7 @@ hssl_read(struct hsocket_t * sock, char *buf, size_t len, size_t * received) if (sock->ssl) { if ((count = SSL_read(sock->ssl, buf, len)) < 1) - return herror_new("SSL_read", HSOCKET_ERROR_RECEIVE, + return herror_new("hssl_read", HSOCKET_ERROR_RECEIVE, "SSL_read failed (%s)", _hssl_get_error(sock->ssl, count)); } @@ -556,7 +584,7 @@ hssl_write(struct hsocket_t * sock, const char *buf, size_t len, size_t * sent) if (sock->ssl) { if ((count = SSL_write(sock->ssl, buf, len)) == -1) - return herror_new("SSL_write", HSOCKET_ERROR_SEND, + return herror_new("hssl_write", HSOCKET_ERROR_SEND, "SSL_write failed (%s)", _hssl_get_error(sock->ssl, count)); } -- cgit v1.1-32-gdbae