diff options
author | ailin-nemui <ailin-nemui@users.noreply.github.com> | 2017-02-06 12:38:20 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-02-06 12:38:20 +0100 |
commit | 653c7fb05a67841acd4fcc12ce1fee3be9955453 (patch) | |
tree | b012ff75f7ca87b7a2c235223a5bd5282ce2aa3f | |
parent | ff5dd3673ee6b60d95e89dd89aa3605c79a93ac1 (diff) | |
parent | 28df637055bc6f20f26ec40158f428ed4dac3c3d (diff) | |
download | irssi-653c7fb05a67841acd4fcc12ce1fee3be9955453.zip |
Merge pull request #622 from ailin-nemui/starttls
provide net_start_ssl api
-rw-r--r-- | src/common.h | 2 | ||||
-rw-r--r-- | src/core/network-openssl.c | 16 | ||||
-rw-r--r-- | src/core/network.h | 3 |
3 files changed, 20 insertions, 1 deletions
diff --git a/src/common.h b/src/common.h index 43596580..646b7e1a 100644 --- a/src/common.h +++ b/src/common.h @@ -6,7 +6,7 @@ #define IRSSI_GLOBAL_CONFIG "irssi.conf" /* config file name in /etc/ */ #define IRSSI_HOME_CONFIG "config" /* config file name in ~/.irssi/ */ -#define IRSSI_ABI_VERSION 7 +#define IRSSI_ABI_VERSION 8 #define DEFAULT_SERVER_ADD_PORT 6667 diff --git a/src/core/network-openssl.c b/src/core/network-openssl.c index f193a61e..36b8d887 100644 --- a/src/core/network-openssl.c +++ b/src/core/network-openssl.c @@ -20,6 +20,7 @@ #include "module.h" #include "network.h" +#include "net-sendbuffer.h" #include "misc.h" #include "servers.h" #include "signals.h" @@ -718,6 +719,21 @@ GIOChannel *net_connect_ip_ssl(IPADDR *ip, int port, IPADDR *my_ip, SERVER_REC * return ssl_handle; } +GIOChannel *net_start_ssl(SERVER_REC *server) +{ + GIOChannel *handle, *ssl_handle; + + g_return_val_if_fail(server != NULL, NULL); + + handle = net_sendbuffer_handle(server->handle); + if (handle == NULL) + return NULL; + + ssl_handle = irssi_ssl_get_iochannel(handle, server->connrec->port, server); + return ssl_handle; +} + + int irssi_ssl_handshake(GIOChannel *handle) { GIOSSLChannel *chan = (GIOSSLChannel *)handle; diff --git a/src/core/network.h b/src/core/network.h index 03f3b813..8757f78c 100644 --- a/src/core/network.h +++ b/src/core/network.h @@ -40,6 +40,9 @@ int net_ip_compare(IPADDR *ip1, IPADDR *ip2); GIOChannel *net_connect(const char *addr, int port, IPADDR *my_ip) G_GNUC_DEPRECATED; /* Connect to socket with ip address and SSL*/ GIOChannel *net_connect_ip_ssl(IPADDR *ip, int port, IPADDR *my_ip, SERVER_REC *server); +/* Start TLS */ +GIOChannel *net_start_ssl(SERVER_REC *server); + int irssi_ssl_handshake(GIOChannel *handle); /* Connect to socket with ip address */ GIOChannel *net_connect_ip(IPADDR *ip, int port, IPADDR *my_ip); |