diff options
author | Marius Halden <marius.h@lden.org> | 2016-03-13 01:19:37 +0100 |
---|---|---|
committer | Marius Halden <marius.h@lden.org> | 2016-05-07 14:27:54 +0200 |
commit | c9cf3bf878606ee7d4b3933b7e86af9fb05f58b5 (patch) | |
tree | 702b4d95ef35de2b854d407c4db664a7b5a7e039 /irc.c | |
parent | 35648353ff877344d577e9247ee6f8cfa15ed940 (diff) |
more ssl
Diffstat (limited to 'irc.c')
-rw-r--r-- | irc.c | 13 |
1 files changed, 12 insertions, 1 deletions
@@ -281,8 +281,14 @@ void irc_free(irc_t * irc) b_event_remove(irc->w_watch_source_id); } + if (global.conf->ssl) { + gnutls_bye(irc->ssl_session, GNUTLS_SHUT_WR); + } closesocket(irc->fd); irc->fd = -1; + if (global.conf->ssl) { + gnutls_deinit(irc->ssl_session); + } g_hash_table_foreach_remove(irc->nick_user_hash, irc_free_hashkey, NULL); g_hash_table_destroy(irc->nick_user_hash); @@ -665,7 +671,12 @@ void irc_flush(irc_t *irc) } len = strlen(irc->sendbuffer); - if ((n = send(irc->fd, irc->sendbuffer, len, 0)) == len) { + if (global.conf->ssl) { + n = ssl_server_write(irc, irc->sendbuffer, len); + } else { + n = send(irc->fd, irc->sendbuffer, len, 0); + } + if (n == len) { g_free(irc->sendbuffer); irc->sendbuffer = NULL; |