Package: xchat / 2.8.8-17

openssl/439ff094ce0d1be5704d52bc445a22c1be01ab0d.patch Patch series | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
From 439ff094ce0d1be5704d52bc445a22c1be01ab0d Mon Sep 17 00:00:00 2001
From: Patrick Griffis <tingping@tingping.se>
Date: Sun, 26 Jun 2016 14:37:25 -0400
Subject: [PATCH] Fix building against openssl 1.1.0

Fixes #1759
---
 configure.ac        |  2 +-
 src/common/server.c | 16 ++++++++++------
 2 files changed, 11 insertions(+), 7 deletions(-)

#diff --git a/configure.ac b/configure.ac
#index ec6e24012..2c60a4847 100644
#--- a/configure.ac
#+++ b/configure.ac
#@@ -373,7 +373,7 @@ dnl *********************************************************************
# 
# 
# AS_IF([test "$openssl" != no], [
#-	PKG_CHECK_MODULES(OPENSSL, [openssl], [
#+	PKG_CHECK_MODULES(OPENSSL, [openssl >= 0.9.8], [
# 		AC_DEFINE(USE_OPENSSL)
# 		openssl=yes
# 		COMMON_LIBS="$COMMON_LIBS $OPENSSL_LIBS"
Index: xchat-2.8.8/src/common/server.c
===================================================================
--- xchat-2.8.8.orig/src/common/server.c
+++ xchat-2.8.8/src/common/server.c
@@ -596,19 +596,22 @@
 	char subject[256];
 	char issuer[256];
 	char buf[512];
+	X509 *current_cert = X509_STORE_CTX_get_current_cert (ctx);
 
+	if (!current_cert)
+		return TRUE;
 
-	X509_NAME_oneline (X509_get_subject_name (ctx->current_cert), subject,
-							 sizeof (subject));
-	X509_NAME_oneline (X509_get_issuer_name (ctx->current_cert), issuer,
-							 sizeof (issuer));
+	X509_NAME_oneline (X509_get_subject_name (current_cert),
+	                   subject, sizeof (subject));
+	X509_NAME_oneline (X509_get_issuer_name (current_cert),
+	                   issuer, sizeof (issuer));
 
 	snprintf (buf, sizeof (buf), "* Subject: %s", subject);
 	EMIT_SIGNAL (XP_TE_SSLMESSAGE, g_sess, buf, NULL, NULL, NULL, 0);
 	snprintf (buf, sizeof (buf), "* Issuer: %s", issuer);
 	EMIT_SIGNAL (XP_TE_SSLMESSAGE, g_sess, buf, NULL, NULL, NULL, 0);
 
-	return (TRUE);					  /* always ok */
+	return TRUE;
 }
 
 static int
@@ -751,7 +754,8 @@
 		return (0);					  /* remove it (0) */
 	} else
 	{
-		if (serv->ssl->session && serv->ssl->session->time + SSLTMOUT < time (NULL))
+		SSL_SESSION *session = SSL_get_session (serv->ssl);
+		if (session && SSL_SESSION_get_time (session) + SSLTMOUT < time (NULL))
 		{
 			snprintf (buf, sizeof (buf), "SSL handshake timed out");
 			EMIT_SIGNAL (XP_TE_CONNFAIL, serv->server_session, buf, NULL,