File 85bbc05b21678e80423815d2ef1dfe26208491ab.patch of Package irssi
From 85bbc05b21678e80423815d2ef1dfe26208491ab Mon Sep 17 00:00:00 2001
From: coekie <coekie@dbcabf3a-b0e7-0310-adc4-f8d773084564>
Date: Mon, 28 Dec 2009 12:15:18 +0000
Subject: [PATCH] Check if an SSL certificate matches the hostname of the server we are connecting to
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@5104 dbcabf3a-b0e7-0310-adc4-f8d773084564
---
src/core/network-openssl.c | 157 ++++++++++++++++++++++++++++++++++++++++++--
src/core/network.h | 2 +-
src/core/servers.c | 2 +-
3 files changed, 154 insertions(+), 7 deletions(-)
diff --git a/src/core/network.h b/src/core/network.h
index 65505ea..8583724 100644
--- a/src/core/network.h
+++ b/src/core/network.h
@@ -47,7 +47,7 @@ int net_ip_compare(IPADDR *ip1, IPADDR *ip2);
/* Connect to socket */
GIOChannel *net_connect(const char *addr, int port, IPADDR *my_ip);
/* Connect to socket with ip address and SSL*/
-GIOChannel *net_connect_ip_ssl(IPADDR *ip, int port, IPADDR *my_ip, const char *cert, const char *pkey, const char *cafile, const char *capath, gboolean verify);
+GIOChannel *net_connect_ip_ssl(IPADDR *ip, int port, const char* hostname, IPADDR *my_ip, const char *cert, const char *pkey, const char *cafile, const char *capath, gboolean verify);
int irssi_ssl_handshake(GIOChannel *handle);
/* Connect to socket with ip address */
GIOChannel *net_connect_ip(IPADDR *ip, int port, IPADDR *my_ip);
diff --git a/src/core/servers.c b/src/core/servers.c
index d5844e7..017a203 100644
--- a/src/core/servers.c
+++ b/src/core/servers.c
@@ -224,7 +224,7 @@ static void server_real_connect(SERVER_REC *server, IPADDR *ip,
port = server->connrec->proxy != NULL ?
server->connrec->proxy_port : server->connrec->port;
handle = server->connrec->use_ssl ?
- net_connect_ip_ssl(ip, port, own_ip, server->connrec->ssl_cert, server->connrec->ssl_pkey,
+ net_connect_ip_ssl(ip, port, server->connrec->address, own_ip, server->connrec->ssl_cert, server->connrec->ssl_pkey,
server->connrec->ssl_cafile, server->connrec->ssl_capath, server->connrec->ssl_verify) :
net_connect_ip(ip, port, own_ip);
} else {
--
1.7.0.2