From 87542831fe73f2dc44550d20faf7f608e67008bb Mon Sep 17 00:00:00 2001 From: dequis Date: Sat, 27 Jun 2015 11:59:41 -0300 Subject: [PATCH] irssiproxy: Remove openssl ifdefs, and several style fixes --- src/irc/proxy/dump.c | 17 ++++------ src/irc/proxy/listen.c | 73 +++++++++++++++++------------------------- src/irc/proxy/proxy.c | 7 ---- src/irc/proxy/proxy.h | 6 ---- 4 files changed, 36 insertions(+), 67 deletions(-) diff --git a/src/irc/proxy/dump.c b/src/irc/proxy/dump.c index 0ca9ebb4..432eadc0 100644 --- a/src/irc/proxy/dump.c +++ b/src/irc/proxy/dump.c @@ -33,37 +33,34 @@ void proxy_send(CLIENT_REC *client, char *d, int l) { -#ifdef HAVE_OPENSSL if(client->listen->use_ssl) { SSL_write(client->ssl, d, l); - } else -#endif - net_sendbuffer_send(client->handle, d, l); + return; + } + net_sendbuffer_send(client->handle, d, l); } int proxy_readline(CLIENT_REC *client, char **str) { -#ifdef HAVE_OPENSSL if(client->listen->use_ssl) { char tmpbuf[2048]; int recvlen = 0; - + recvlen = SSL_read(client->ssl, tmpbuf, sizeof(tmpbuf)); if(recvlen > 0) { return line_split(tmpbuf, recvlen, str, &client->handle->readbuffer); } else { int err; err = SSL_get_error(client->ssl, recvlen); - /* READ/WRITE are not really errors, they just indicate that atm + /* READ/WRITE are not really errors, they just indicate that atm OpenSSL is waiting for more data */ if(err == SSL_ERROR_WANT_READ || err == SSL_ERROR_WANT_WRITE) { return line_split(tmpbuf, 0, str, &client->handle->readbuffer); } return recvlen; /* if any other error occurs, this will quit the connection */ } - } else -#endif - return net_sendbuffer_receive_line(client->handle, str, 1); + } + return net_sendbuffer_receive_line(client->handle, str, 1); } void proxy_outdata(CLIENT_REC *client, const char *data, ...) diff --git a/src/irc/proxy/listen.c b/src/irc/proxy/listen.c index 55d66efb..72d2a0dd 100644 --- a/src/irc/proxy/listen.c +++ b/src/irc/proxy/listen.c @@ -50,11 +50,9 @@ static void remove_client(CLIENT_REC *rec) printtext(rec->server, NULL, MSGLEVEL_CLIENTNOTICE, "Proxy: Client %s:%d disconnected", rec->host, rec->port); -#ifdef HAVE_OPENSSL if(rec->listen->use_ssl) { - SSL_free(rec->ssl); + SSL_free(rec->ssl); } -#endif g_free(rec->proxy_address); net_sendbuffer_destroy(rec->handle, TRUE); g_source_remove(rec->recv_tag); @@ -138,12 +136,10 @@ static void handle_client_connect_cmd(CLIENT_REC *client, "Proxy: Client %s:%d connected", client->host, client->port); client->connected = TRUE; -#ifdef HAVE_OPENSSL - if(client->listen->use_ssl) { - printtext(NULL, NULL, MSGLEVEL_CLIENTNOTICE, - "Proxy: Client connected from %s using encryption %s and logged in!", client->host, SSL_get_cipher(client->ssl)); - } -#endif + if(client->listen->use_ssl) { + printtext(NULL, NULL, MSGLEVEL_CLIENTNOTICE, + "Proxy: Client connected from %s using encryption %s and logged in!", client->host, SSL_get_cipher(client->ssl)); + } proxy_dump_data(client); } @@ -362,8 +358,7 @@ static void sig_listen(LISTEN_REC *listen) net_ip2host(&ip, host); sendbuf = net_sendbuffer_create(handle, 0); rec = g_new0(CLIENT_REC, 1); - -#ifdef HAVE_OPENSSL + if(listen->use_ssl) { rec->ssl = SSL_new(listen->ssl_ctx); SSL_set_fd(rec->ssl, g_io_channel_unix_get_fd(handle)); @@ -376,12 +371,11 @@ static void sig_listen(LISTEN_REC *listen) printtext(NULL, NULL, MSGLEVEL_CLIENTERROR, "Proxy: An error occured while accepting SSL connection!"); g_free(rec); - return; + return; } } } -#endif - + rec->listen = listen; rec->handle = sendbuf; rec->host = g_strdup(host); @@ -653,7 +647,6 @@ static void add_listen(const char *ircnet, int port, char *sslcert) } if(sslcert != NULL) { -#ifdef HAVE_OPENSSL rec->use_ssl = TRUE; rec->ssl_method = SSLv3_server_method(); /* let's start with 3 */ rec->ssl_ctx = SSL_CTX_new(rec->ssl_method); @@ -662,39 +655,33 @@ static void add_listen(const char *ircnet, int port, char *sslcert) "Proxy: Error setting up SSL Context for port %d failed.", rec->port); g_free(rec->ircnet); - g_free(rec); - return; + g_free(rec); + return; } - + if(SSL_CTX_use_certificate_file(rec->ssl_ctx, sslcert, SSL_FILETYPE_PEM) <= 0) { printtext(NULL, NULL, MSGLEVEL_CLIENTERROR, "Proxy: Error loading certificate."); SSL_CTX_free(rec->ssl_ctx); g_free(rec->ircnet); - g_free(rec); - return; + g_free(rec); + return; } - + if(SSL_CTX_use_PrivateKey_file(rec->ssl_ctx, sslcert, SSL_FILETYPE_PEM) <= 0) { printtext(NULL, NULL, MSGLEVEL_CLIENTERROR, "Proxy: Error loading private key."); - SSL_CTX_free(rec->ssl_ctx); + SSL_CTX_free(rec->ssl_ctx); g_free(rec->ircnet); - g_free(rec); - return; - } - - if(!SSL_CTX_check_private_key(rec->ssl_ctx)) { - printtext(NULL, NULL, MSGLEVEL_CLIENTERROR, "Proxy: Error loading checking certificate agains private key."); - SSL_CTX_free(rec->ssl_ctx); - g_free(rec->ircnet); - g_free(rec); - return; + g_free(rec); + return; } -#else - printtext(NULL, NULL, MSGLEVEL_CLIENTERROR, - "Proxy: Specified SSL certificate/private key but irssi compiled WITHOUT OpenSSL!"); -#endif - + if(!SSL_CTX_check_private_key(rec->ssl_ctx)) { + printtext(NULL, NULL, MSGLEVEL_CLIENTERROR, "Proxy: Error loading checking certificate agains private key."); + SSL_CTX_free(rec->ssl_ctx); + g_free(rec->ircnet); + g_free(rec); + return; + } } rec->tag = g_input_add(rec->handle, G_INPUT_READ, @@ -711,11 +698,9 @@ static void remove_listen(LISTEN_REC *rec) remove_client(rec->clients->data); net_disconnect(rec->handle); -#ifdef HAVE_OPENSSL if(rec->use_ssl) { - SSL_CTX_free(rec->ssl_ctx); + SSL_CTX_free(rec->ssl_ctx); } -#endif g_source_remove(rec->tag); g_free(rec->ircnet); g_free(rec); @@ -739,13 +724,13 @@ static void read_settings(void) continue; *port++ = '\0'; - + sslfile = strchr(port, ':'); - + if (sslfile != NULL) { - *sslfile++ = '\0'; + *sslfile++ = '\0'; } - + portnum = atoi(port); if (portnum <= 0) continue; diff --git a/src/irc/proxy/proxy.c b/src/irc/proxy/proxy.c index 841263eb..3e537f5c 100644 --- a/src/irc/proxy/proxy.c +++ b/src/irc/proxy/proxy.c @@ -78,10 +78,8 @@ void irc_proxy_init(void) settings_add_str("irssiproxy", "irssiproxy_bind", ""); settings_add_bool("irssiproxy", "irssiproxy", TRUE); -#ifdef HAVE_OPENSSL SSL_load_error_strings(); OpenSSL_add_ssl_algorithms(); -#endif if (*settings_get_str("irssiproxy_password") == '\0') { /* no password - bad idea! */ @@ -93,14 +91,9 @@ void irc_proxy_init(void) if (*settings_get_str("irssiproxy_ports") == '\0') { signal_emit("gui dialog", 2, "warning", "No proxy ports specified. Use /set " -#ifdef HAVE_OPENSSL "irssiproxy_ports = =: " "... to set them. You can add :filename.pem to secure the proxy with SSL." " (Should contain a cert and key in PEM format)"); -#else - "irssiproxy_ports = = " - "... to set them."); -#endif } diff --git a/src/irc/proxy/proxy.h b/src/irc/proxy/proxy.h index e2ca67b2..ea53d7d9 100644 --- a/src/irc/proxy/proxy.h +++ b/src/irc/proxy/proxy.h @@ -7,14 +7,12 @@ #include "irc.h" #include "irc-servers.h" -#ifdef HAVE_OPENSSL #include #include #include #include #include #include -#endif typedef struct { int port; @@ -24,11 +22,9 @@ typedef struct { GIOChannel *handle; GSList *clients; -#ifdef HAVE_OPENSSL unsigned int use_ssl; SSL_CTX *ssl_ctx; SSL_METHOD *ssl_method; -#endif } LISTEN_REC; typedef struct { @@ -43,9 +39,7 @@ typedef struct { unsigned int user_sent:1; unsigned int connected:1; unsigned int want_ctcp:1; -#ifdef HAVE_OPENSSL SSL *ssl; -#endif } CLIENT_REC; #endif