Compare commits

...

8 Commits

Author SHA1 Message Date
Sebastien Helleu
4c34d008d9 Version 0.3.1.1 2010-01-31 11:43:51 +01:00
Sebastien Helleu
f314ad4112 Add missing includes in FindIconv.cmake (patch #7069) 2010-01-30 18:27:09 +01:00
Sebastien Helleu
f88b127e44 Fix crash when purging old xfer chats (bug #28764) 2010-01-29 16:21:26 +01:00
Sebastien Helleu
d157f42ec9 Fix crash with SSL connection to IRC server if option ssl_cert is set (bug #28752) 2010-01-29 12:42:53 +01:00
Sebastien Helleu
1d803a6972 Update ChangeLog 2010-01-29 08:00:27 +01:00
Emmanuel Bouthenot
2342aecbe6 Fix a build failure with: 1.7.6 < gnutls <= 2.4.6 2010-01-29 00:25:46 +01:00
Emmanuel Bouthenot
b3e7bc728d Fix a build failure with gnutls < 1.7.6 2010-01-29 00:25:14 +01:00
Sebastien Helleu
765d2ee476 Fix bug with SSL connection to IRC server (fails sometimes when ssl_verify is on) (bug #28741) 2010-01-27 11:18:39 +01:00
17 changed files with 89 additions and 47 deletions

View File

@ -28,7 +28,7 @@ ENDIF(PREFIX)
SET(VERSION_MAJOR "0") SET(VERSION_MAJOR "0")
SET(VERSION_MINOR "3") SET(VERSION_MINOR "3")
SET(VERSION_PATCH "1") SET(VERSION_PATCH "1.1")
SET(VERSION ${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}) SET(VERSION ${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH})
SET(PKG_STRING "${PROJECT_NAME} ${VERSION}") SET(PKG_STRING "${PROJECT_NAME} ${VERSION}")
STRING(REPLACE "\";\"" "\ " PKG_STRING ${PKG_STRING}) STRING(REPLACE "\";\"" "\ " PKG_STRING ${PKG_STRING})

View File

@ -1,9 +1,17 @@
WeeChat ChangeLog WeeChat ChangeLog
================= =================
FlashCode <flashcode@flashtux.org> FlashCode <flashcode@flashtux.org>
v0.3.1, 2010-01-23 v0.3.1.1, 2010-01-31
Version 0.3.1.1 (2010-01-31)
----------------------------
* irc: fix crash with SSL connection if option ssl_cert is set (bug #28752)
* irc: fix bug with SSL connection (fails sometimes when ssl_verify is on)
(bug #28741)
* irc: fix compilation with old GnuTLS versions (bug #28723)
* xfer: fix crash when purging old xfer chats (bug #28764)
Version 0.3.1 (2010-01-23) Version 0.3.1 (2010-01-23)
-------------------------- --------------------------

5
NEWS
View File

@ -1,6 +1,11 @@
WeeChat News WeeChat News
============ ============
FlashCode, 2010-01-31::
WeeChat 0.3.1.1 released.
+
This version fixes crashs with SSL connection and purge of old DCC chats.
FlashCode, 2010-01-23:: FlashCode, 2010-01-23::
WeeChat 0.3.1 released. WeeChat 0.3.1 released.
+ +

View File

@ -30,6 +30,9 @@ IF(ICONV_FOUND)
set(ICONV_FIND_QUIETLY TRUE) set(ICONV_FIND_QUIETLY TRUE)
ENDIF(ICONV_FOUND) ENDIF(ICONV_FOUND)
INCLUDE(CheckLibraryExists)
INCLUDE(CheckFunctionExists)
FIND_PATH(ICONV_INCLUDE_PATH FIND_PATH(ICONV_INCLUDE_PATH
NAMES iconv.h NAMES iconv.h
PATHS /usr/include /usr/local/include /usr/pkg/include PATHS /usr/include /usr/local/include /usr/pkg/include

View File

@ -18,10 +18,10 @@
# Process this file with autoconf to produce a configure script. # Process this file with autoconf to produce a configure script.
AC_PREREQ(2.56) AC_PREREQ(2.56)
AC_INIT(WeeChat, 0.3.1, flashcode@flashtux.org) AC_INIT(WeeChat, 0.3.1.1, flashcode@flashtux.org)
AC_CONFIG_SRCDIR([src/core/weechat.c]) AC_CONFIG_SRCDIR([src/core/weechat.c])
AM_CONFIG_HEADER(config.h) AM_CONFIG_HEADER(config.h)
AM_INIT_AUTOMAKE([weechat], [0.3.1]) AM_INIT_AUTOMAKE([weechat], [0.3.1.1])
# Checks for programs # Checks for programs
AC_PROG_CC AC_PROG_CC

View File

@ -4,10 +4,10 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: WeeChat 0.3.1\n" "Project-Id-Version: WeeChat 0.3.1.1\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2010-01-18 10:29+0100\n" "POT-Creation-Date: 2010-01-18 10:29+0100\n"
"PO-Revision-Date: 2010-01-23 09:07+0100\n" "PO-Revision-Date: 2010-01-31 00:40+0100\n"
"Last-Translator: Jiri Golembiovsky <golemj@gmail.com>\n" "Last-Translator: Jiri Golembiovsky <golemj@gmail.com>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"

View File

@ -8,10 +8,10 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: WeeChat 0.3.1\n" "Project-Id-Version: WeeChat 0.3.1.1\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2010-01-18 10:29+0100\n" "POT-Creation-Date: 2010-01-18 10:29+0100\n"
"PO-Revision-Date: 2010-01-23 09:07+0100\n" "PO-Revision-Date: 2010-01-31 00:40+0100\n"
"Last-Translator: Nils G <weechatter@arcor.de>\n" "Last-Translator: Nils G <weechatter@arcor.de>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"

View File

@ -6,10 +6,10 @@
# Elián Hanisch <lambdae2@gmail.com>, 2009-2010. # Elián Hanisch <lambdae2@gmail.com>, 2009-2010.
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: WeeChat 0.3.1\n" "Project-Id-Version: WeeChat 0.3.1.1\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2010-01-18 10:29+0100\n" "POT-Creation-Date: 2010-01-18 10:29+0100\n"
"PO-Revision-Date: 2010-01-23 09:07+0100\n" "PO-Revision-Date: 2010-01-31 00:40+0100\n"
"Last-Translator: Elián Hanisch <lambdae2@gmail.com>\n" "Last-Translator: Elián Hanisch <lambdae2@gmail.com>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"

View File

@ -4,10 +4,10 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: WeeChat 0.3.1\n" "Project-Id-Version: WeeChat 0.3.1.1\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2010-01-18 10:29+0100\n" "POT-Creation-Date: 2010-01-18 10:29+0100\n"
"PO-Revision-Date: 2010-01-23 09:07+0100\n" "PO-Revision-Date: 2010-01-31 00:40+0100\n"
"Last-Translator: FlashCode <flashcode@flashtux.org>\n" "Last-Translator: FlashCode <flashcode@flashtux.org>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"

View File

@ -10,10 +10,10 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: WeeChat 0.3.1\n" "Project-Id-Version: WeeChat 0.3.1.1\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2010-01-18 10:29+0100\n" "POT-Creation-Date: 2010-01-18 10:29+0100\n"
"PO-Revision-Date: 2010-01-23 09:07+0100\n" "PO-Revision-Date: 2010-01-31 00:40+0100\n"
"Last-Translator: Andras Voroskoi <voroskoi@frugalware.org>\n" "Last-Translator: Andras Voroskoi <voroskoi@frugalware.org>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"

View File

@ -6,10 +6,10 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Weechat 0.3.1\n" "Project-Id-Version: Weechat 0.3.1.1\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2010-01-18 10:29+0100\n" "POT-Creation-Date: 2010-01-18 10:29+0100\n"
"PO-Revision-Date: 2010-01-23 09:07+0100\n" "PO-Revision-Date: 2010-01-31 00:40+0100\n"
"Last-Translator: Marco Paolone <marcopaolone@gmail.com>\n" "Last-Translator: Marco Paolone <marcopaolone@gmail.com>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"

View File

@ -7,10 +7,10 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: WeeChat 0.3.1\n" "Project-Id-Version: WeeChat 0.3.1.1\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2010-01-18 10:29+0100\n" "POT-Creation-Date: 2010-01-18 10:29+0100\n"
"PO-Revision-Date: 2010-01-23 09:07+0100\n" "PO-Revision-Date: 2010-01-31 00:40+0100\n"
"Last-Translator: Krzysztof Koroscik <soltys@szluug.org>\n" "Last-Translator: Krzysztof Koroscik <soltys@szluug.org>\n"
"Language-Team: Polish\n" "Language-Team: Polish\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"

View File

@ -4,10 +4,10 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: WeeChat 0.3.1\n" "Project-Id-Version: WeeChat 0.3.1.1\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2010-01-18 10:29+0100\n" "POT-Creation-Date: 2010-01-18 10:29+0100\n"
"PO-Revision-Date: 2010-01-23 09:07+0100\n" "PO-Revision-Date: 2010-01-31 00:41+0100\n"
"Last-Translator: Pavel Shevchuk <stlwrt@gmail.com>\n" "Last-Translator: Pavel Shevchuk <stlwrt@gmail.com>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"

View File

@ -2222,23 +2222,27 @@ irc_server_gnutls_callback (void *data, gnutls_session_t tls_session,
{ {
struct t_irc_server *server; struct t_irc_server *server;
gnutls_retr_st tls_struct; gnutls_retr_st tls_struct;
gnutls_x509_crt_t tls_cert;
gnutls_x509_privkey_t tls_cert_key;
gnutls_x509_crt_t cert_temp; gnutls_x509_crt_t cert_temp;
const gnutls_datum_t *cert_list; const gnutls_datum_t *cert_list;
gnutls_datum_t filedatum, cinfo; gnutls_datum_t filedatum;
unsigned int cert_list_len, status; unsigned int cert_list_len, status;
time_t cert_time; time_t cert_time;
char *cert_path0, *cert_path1, *cert_path2, *cert_str, *hostname; char *cert_path0, *cert_path1, *cert_path2, *cert_str, *hostname;
const char *weechat_dir; const char *weechat_dir;
int rc, i, j, rinfo, hostname_match; int rc, i, j, hostname_match;
#if LIBGNUTLS_VERSION_NUMBER >= 0x010706
gnutls_datum_t cinfo;
int rinfo;
#endif
/* make C compiler happy */ /* make C compiler happy */
(void) req_ca; (void) req_ca;
(void) nreq; (void) nreq;
(void) pk_algos; (void) pk_algos;
(void) pk_algos_len; (void) pk_algos_len;
rc = 0;
if (!data) if (!data)
return -1; return -1;
@ -2308,8 +2312,13 @@ irc_server_gnutls_callback (void *data, gnutls_session_t tls_session,
{ {
hostname_match = 1; hostname_match = 1;
} }
#if LIBGNUTLS_VERSION_NUMBER >= 0x010706
/* displaying infos about certificate */ /* displaying infos about certificate */
#if LIBGNUTLS_VERSION_NUMBER < 0x020400
rinfo = gnutls_x509_crt_print (cert_temp, GNUTLS_X509_CRT_ONELINE, &cinfo);
#else
rinfo = gnutls_x509_crt_print (cert_temp, GNUTLS_CRT_PRINT_ONELINE, &cinfo); rinfo = gnutls_x509_crt_print (cert_temp, GNUTLS_CRT_PRINT_ONELINE, &cinfo);
#endif
if (rinfo == 0) if (rinfo == 0)
{ {
weechat_printf (server->buffer, weechat_printf (server->buffer,
@ -2318,6 +2327,7 @@ irc_server_gnutls_callback (void *data, gnutls_session_t tls_session,
" - %s", cinfo.data); " - %s", cinfo.data);
gnutls_free (cinfo.data); gnutls_free (cinfo.data);
} }
#endif
/* check expiration date */ /* check expiration date */
cert_time = gnutls_x509_crt_get_expiration_time (cert_temp); cert_time = gnutls_x509_crt_get_expiration_time (cert_temp);
if (cert_time < time(NULL)) if (cert_time < time(NULL))
@ -2351,7 +2361,8 @@ irc_server_gnutls_callback (void *data, gnutls_session_t tls_session,
} }
/* using client certificate if it exists */ /* using client certificate if it exists */
cert_path0 = (char *) IRC_SERVER_OPTION_STRING(server, IRC_SERVER_OPTION_SSL_CERT); cert_path0 = (char *) IRC_SERVER_OPTION_STRING(server,
IRC_SERVER_OPTION_SSL_CERT);
if (cert_path0 && cert_path0[0]) if (cert_path0 && cert_path0[0])
{ {
weechat_dir = weechat_info_get ("weechat_dir", ""); weechat_dir = weechat_info_get ("weechat_dir", "");
@ -2371,29 +2382,40 @@ irc_server_gnutls_callback (void *data, gnutls_session_t tls_session,
filedatum.size = strlen (cert_str); filedatum.size = strlen (cert_str);
/* certificate */ /* certificate */
gnutls_x509_crt_init (&tls_cert); gnutls_x509_crt_init (&server->tls_cert);
gnutls_x509_crt_import (tls_cert, &filedatum, GNUTLS_X509_FMT_PEM); gnutls_x509_crt_import (server->tls_cert, &filedatum,
GNUTLS_X509_FMT_PEM);
/* key */ /* key */
gnutls_x509_privkey_init (&tls_cert_key); gnutls_x509_privkey_init (&server->tls_cert_key);
gnutls_x509_privkey_import (tls_cert_key, &filedatum, GNUTLS_X509_FMT_PEM); gnutls_x509_privkey_import (server->tls_cert_key, &filedatum,
GNUTLS_X509_FMT_PEM);
tls_struct.type = GNUTLS_CRT_X509; tls_struct.type = GNUTLS_CRT_X509;
tls_struct.ncerts = 1; tls_struct.ncerts = 1;
tls_struct.deinit_all = 0; tls_struct.deinit_all = 0;
tls_struct.cert.x509 = &tls_cert; tls_struct.cert.x509 = &server->tls_cert;
tls_struct.key.x509 = tls_cert_key; tls_struct.key.x509 = server->tls_cert_key;
#if LIBGNUTLS_VERSION_NUMBER >= 0x010706
/* client certificate info */ /* client certificate info */
rinfo = gnutls_x509_crt_print (tls_cert, GNUTLS_CRT_PRINT_ONELINE, &cinfo); #if LIBGNUTLS_VERSION_NUMBER < 0x020400
rinfo = gnutls_x509_crt_print (cert_temp,
GNUTLS_X509_CRT_ONELINE,
&cinfo);
#else
rinfo = gnutls_x509_crt_print (cert_temp,
GNUTLS_CRT_PRINT_ONELINE,
&cinfo);
#endif
if (rinfo == 0) if (rinfo == 0)
{ {
weechat_printf (server->buffer, weechat_printf (server->buffer,
_(" - client certificate info (%s):"), cert_path2); _(" - client certificate info (%s):"),
cert_path2);
weechat_printf (server->buffer, " - %s", cinfo.data); weechat_printf (server->buffer, " - %s", cinfo.data);
gnutls_free (cinfo.data); gnutls_free (cinfo.data);
} }
#endif
memcpy(answer, &tls_struct, sizeof (gnutls_retr_st)); memcpy(answer, &tls_struct, sizeof (gnutls_retr_st));
free (cert_str); free (cert_str);
} }

View File

@ -121,6 +121,8 @@ struct t_irc_server
int ssl_connected; /* = 1 if connected with SSL */ int ssl_connected; /* = 1 if connected with SSL */
#ifdef HAVE_GNUTLS #ifdef HAVE_GNUTLS
gnutls_session_t gnutls_sess; /* gnutls session (only if SSL is used) */ gnutls_session_t gnutls_sess; /* gnutls session (only if SSL is used) */
gnutls_x509_crt_t tls_cert; /* certificate used if ssl_cert is set */
gnutls_x509_privkey_t tls_cert_key; /* key used if ssl_cert is set */
#endif #endif
char *unterminated_message; /* beginning of a message in input buf */ char *unterminated_message; /* beginning of a message in input buf */
int nicks_count; /* number of nicknames */ int nicks_count; /* number of nicknames */

View File

@ -278,18 +278,18 @@ xfer_chat_buffer_close_cb (void *data, struct t_gui_buffer *buffer)
/* make C compiler happy */ /* make C compiler happy */
(void) data; (void) data;
(void) buffer; (void) buffer;
ptr_xfer = xfer_search_by_buffer (buffer); for (ptr_xfer = xfer_list; ptr_xfer; ptr_xfer = ptr_xfer->next_xfer)
{
if (ptr_xfer) if (ptr_xfer->buffer == buffer)
{
if (!XFER_HAS_ENDED(ptr_xfer->status))
{ {
xfer_close (ptr_xfer, XFER_STATUS_ABORTED); if (!XFER_HAS_ENDED(ptr_xfer->status))
xfer_buffer_refresh (WEECHAT_HOTLIST_MESSAGE); {
xfer_close (ptr_xfer, XFER_STATUS_ABORTED);
xfer_buffer_refresh (WEECHAT_HOTLIST_MESSAGE);
}
ptr_xfer->buffer = NULL;
} }
ptr_xfer->buffer = NULL;
} }
return WEECHAT_RC_OK; return WEECHAT_RC_OK;

View File

@ -17,7 +17,7 @@
# #
%define name weechat %define name weechat
%define version 0.3.1 %define version 0.3.1.1
%define release 1 %define release 1
Name: %{name} Name: %{name}
@ -67,6 +67,8 @@ rm -rf $RPM_BUILD_ROOT
%{_includedir}/%{name}/weechat-plugin.h %{_includedir}/%{name}/weechat-plugin.h
%changelog %changelog
* Sun Jan 31 2010 FlashCode <flashcode@flashtux.org> 0.3.1.1-1
- Released version 0.3.1.1
* Sat Jan 23 2010 FlashCode <flashcode@flashtux.org> 0.3.1-1 * Sat Jan 23 2010 FlashCode <flashcode@flashtux.org> 0.3.1-1
- Released version 0.3.1 - Released version 0.3.1
* Sun Sep 06 2009 FlashCode <flashcode@flashtux.org> 0.3.0-1 * Sun Sep 06 2009 FlashCode <flashcode@flashtux.org> 0.3.0-1