summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastien Helleu <flashcode@flashtux.org>2009-01-30 12:22:10 +0100
committerSebastien Helleu <flashcode@flashtux.org>2009-01-30 12:22:10 +0100
commit228ef56860c4f754576f6d44bd2b5b31195a2c2f (patch)
tree6a4272e90f55dc29060492666145cb3203b3c939
parent16c9217d524d95fff21308d9d5b9e761eace5c83 (diff)
downloadweechat-228ef56860c4f754576f6d44bd2b5b31195a2c2f.zip
Fix some bugs with TLS connections in Jabber pluigin (TLS still not working in Jabber)
-rw-r--r--po/cs.po18
-rw-r--r--po/de.po18
-rw-r--r--po/es.po18
-rw-r--r--po/fr.po24
-rw-r--r--po/hu.po18
-rw-r--r--po/ru.po18
-rw-r--r--po/weechat.pot18
-rw-r--r--src/plugins/irc/irc-server.c4
-rw-r--r--src/plugins/jabber/jabber-debug.c2
-rw-r--r--src/plugins/jabber/jabber-server.c41
-rw-r--r--src/plugins/jabber/jabber-xmpp.c1
11 files changed, 118 insertions, 62 deletions
diff --git a/po/cs.po b/po/cs.po
index 2e3017b7a..1ff413614 100644
--- a/po/cs.po
+++ b/po/cs.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat 0.2.7-dev\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
-"POT-Creation-Date: 2009-01-28 10:21+0100\n"
+"POT-Creation-Date: 2009-01-28 13:54+0100\n"
"PO-Revision-Date: 2009-01-03 00:42+0100\n"
"Last-Translator: Jiri Golembiovsky <golemj@gmail.com>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@@ -4008,11 +4008,11 @@ msgid "%s%s: unable to set local hostname/IP"
msgstr "%s nemohu nastavit lokální hostname/IP\n"
#, fuzzy, c-format
-msgid "%s%s: GnuTLS init error"
+msgid "%s%s: TLS init error"
msgstr "%s chyba inicializace gnutls\n"
#, fuzzy, c-format
-msgid "%s%s: GnuTLS handshake failed"
+msgid "%s%s: TLS handshake failed"
msgstr "%s handshake s gnutls selhal\n"
#, fuzzy, c-format
@@ -4301,6 +4301,14 @@ msgid "%s%s: cannot allocate new MUC"
msgstr "%s nemohu přidělit nový kanál"
#, fuzzy, c-format
+msgid "%s%s: GnuTLS init error"
+msgstr "%s chyba inicializace gnutls\n"
+
+#, fuzzy, c-format
+msgid "%s%s: GnuTLS handshake failed"
+msgstr "%s handshake s gnutls selhal\n"
+
+#, fuzzy, c-format
msgid "%s%s: connecting to server %s/%d%s%s%s via %s proxy %s/%d%s..."
msgstr "%s: připojuji se k serveru %s:%d%s%s přes %s proxy %s:%d%s...\n"
@@ -4337,10 +4345,6 @@ msgid "%s%s: failed to create id"
msgstr "%s DCC: nemohu vytvořit rouru\n"
#, fuzzy, c-format
-msgid "%s%s: TLS handshake failed"
-msgstr "%s handshake s gnutls selhal\n"
-
-#, fuzzy, c-format
msgid "%s%s: I/O error (%d)"
msgstr "%sServer: %s%s\n"
diff --git a/po/de.po b/po/de.po
index 047f4ebca..fe1a9ed38 100644
--- a/po/de.po
+++ b/po/de.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat 0.2.7-dev\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
-"POT-Creation-Date: 2009-01-28 10:21+0100\n"
+"POT-Creation-Date: 2009-01-28 13:54+0100\n"
"PO-Revision-Date: 2009-01-03 00:42+0100\n"
"Last-Translator: Thomas Schuetz <i18n@internet-villa.de>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@@ -3985,11 +3985,11 @@ msgid "%s%s: unable to set local hostname/IP"
msgstr "%s kann lokalen Hostname/lokale IP nicht festlegen\n"
#, fuzzy, c-format
-msgid "%s%s: GnuTLS init error"
+msgid "%s%s: TLS init error"
msgstr "%s gnutls Initialisierungsfehler\n"
#, fuzzy, c-format
-msgid "%s%s: GnuTLS handshake failed"
+msgid "%s%s: TLS handshake failed"
msgstr "%s gnutls-Handshake schlug fehl\n"
#, fuzzy, c-format
@@ -4252,6 +4252,14 @@ msgid "%s%s: cannot allocate new MUC"
msgstr "%s Neuer Channel konnte nicht alloziert werden"
#, fuzzy, c-format
+msgid "%s%s: GnuTLS init error"
+msgstr "%s gnutls Initialisierungsfehler\n"
+
+#, fuzzy, c-format
+msgid "%s%s: GnuTLS handshake failed"
+msgstr "%s gnutls-Handshake schlug fehl\n"
+
+#, fuzzy, c-format
msgid "%s%s: connecting to server %s/%d%s%s%s via %s proxy %s/%d%s..."
msgstr "%s: verbinden zu Server %s:%d%s%s via %s-Proxy %s:%d%s...\n"
@@ -4288,10 +4296,6 @@ msgid "%s%s: failed to create id"
msgstr "%s DCC: kann keine Pipe erstellen\n"
#, fuzzy, c-format
-msgid "%s%s: TLS handshake failed"
-msgstr "%s gnutls-Handshake schlug fehl\n"
-
-#, fuzzy, c-format
msgid "%s%s: I/O error (%d)"
msgstr "%sServer: %s%s\n"
diff --git a/po/es.po b/po/es.po
index a67223061..7db299068 100644
--- a/po/es.po
+++ b/po/es.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat 0.2.7-dev\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
-"POT-Creation-Date: 2009-01-28 10:21+0100\n"
+"POT-Creation-Date: 2009-01-28 13:54+0100\n"
"PO-Revision-Date: 2009-01-03 00:42+0100\n"
"Last-Translator: Roberto González Cardenete <robert.glez@gmail.com>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@@ -3978,11 +3978,11 @@ msgid "%s%s: unable to set local hostname/IP"
msgstr "%s no es posible crear el servidor\n"
#, fuzzy, c-format
-msgid "%s%s: GnuTLS init error"
+msgid "%s%s: TLS init error"
msgstr "%s error de inicialización de gnutls\n"
#, fuzzy, c-format
-msgid "%s%s: GnuTLS handshake failed"
+msgid "%s%s: TLS handshake failed"
msgstr "%s el handshake gnutls ha fallado\n"
#, fuzzy, c-format
@@ -4242,6 +4242,14 @@ msgid "%s%s: cannot allocate new MUC"
msgstr "%s no ha sido posible crear un nuevo canal"
#, fuzzy, c-format
+msgid "%s%s: GnuTLS init error"
+msgstr "%s error de inicialización de gnutls\n"
+
+#, fuzzy, c-format
+msgid "%s%s: GnuTLS handshake failed"
+msgstr "%s el handshake gnutls ha fallado\n"
+
+#, fuzzy, c-format
msgid "%s%s: connecting to server %s/%d%s%s%s via %s proxy %s/%d%s..."
msgstr "%s: conectando al servidor %s:%d%s%s vía %s proxy %s: %d%s...\n"
@@ -4278,10 +4286,6 @@ msgid "%s%s: failed to create id"
msgstr "%s no es posible crear el servidor\n"
#, fuzzy, c-format
-msgid "%s%s: TLS handshake failed"
-msgstr "%s el handshake gnutls ha fallado\n"
-
-#, fuzzy, c-format
msgid "%s%s: I/O error (%d)"
msgstr "%sServidor: %s%s\n"
diff --git a/po/fr.po b/po/fr.po
index bb153baee..80bb99aae 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat 0.2.7-dev\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
-"POT-Creation-Date: 2009-01-28 10:21+0100\n"
-"PO-Revision-Date: 2009-01-28 10:22+0100\n"
+"POT-Creation-Date: 2009-01-28 13:54+0100\n"
+"PO-Revision-Date: 2009-01-28 13:54+0100\n"
"Last-Translator: FlashCode <flashcode@flashtux.org>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
"MIME-Version: 1.0\n"
@@ -4116,12 +4116,12 @@ msgid "%s%s: unable to set local hostname/IP"
msgstr "%s%s: impossible de paramétrer le nom/IP local"
#, c-format
-msgid "%s%s: GnuTLS init error"
-msgstr "%s%s: erreur d'initialisation GnuTLS"
+msgid "%s%s: TLS init error"
+msgstr "%s%s: erreur d'initialisation TLS"
#, c-format
-msgid "%s%s: GnuTLS handshake failed"
-msgstr "%s%s: la poignée de main de GnuTLS a échoué"
+msgid "%s%s: TLS handshake failed"
+msgstr "%s%s: la poignée de main de TLS a échoué"
#, c-format
msgid "%s%s: not enough memory"
@@ -4396,6 +4396,14 @@ msgid "%s%s: cannot allocate new MUC"
msgstr "%s%s: impossible d'allouer un nouveau MUC"
#, c-format
+msgid "%s%s: GnuTLS init error"
+msgstr "%s%s: erreur d'initialisation GnuTLS"
+
+#, c-format
+msgid "%s%s: GnuTLS handshake failed"
+msgstr "%s%s: la poignée de main de GnuTLS a échoué"
+
+#, c-format
msgid "%s%s: connecting to server %s/%d%s%s%s via %s proxy %s/%d%s..."
msgstr "%s%s: connexion au serveur %s/%d%s%s%s via le proxy %s %s/%d%s..."
@@ -4434,10 +4442,6 @@ msgid "%s%s: failed to create id"
msgstr "%s%s: impossible de créer l'id"
#, c-format
-msgid "%s%s: TLS handshake failed"
-msgstr "%s%s: la poignée de main de TLS a échoué"
-
-#, c-format
msgid "%s%s: I/O error (%d)"
msgstr "%s%s: erreur I/O (%d)"
diff --git a/po/hu.po b/po/hu.po
index 715814f46..599b57c2b 100644
--- a/po/hu.po
+++ b/po/hu.po
@@ -12,7 +12,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat 0.2.7-dev\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
-"POT-Creation-Date: 2009-01-28 10:21+0100\n"
+"POT-Creation-Date: 2009-01-28 13:54+0100\n"
"PO-Revision-Date: 2009-01-03 00:42+0100\n"
"Last-Translator: Andras Voroskoi <voroskoi@frugalware.org>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@@ -4010,11 +4010,11 @@ msgid "%s%s: unable to set local hostname/IP"
msgstr "%s nem sikerült a helyi hosztnevet/IP-t beállítani\n"
#, fuzzy, c-format
-msgid "%s%s: GnuTLS init error"
+msgid "%s%s: TLS init error"
msgstr "%s gnutls inicializációs hiba\n"
#, fuzzy, c-format
-msgid "%s%s: GnuTLS handshake failed"
+msgid "%s%s: TLS handshake failed"
msgstr "%s gnutls kézfogás sikertelen\n"
#, fuzzy, c-format
@@ -4307,6 +4307,14 @@ msgid "%s%s: cannot allocate new MUC"
msgstr "%s nem sikerült új csatornát lefoglalni"
#, fuzzy, c-format
+msgid "%s%s: GnuTLS init error"
+msgstr "%s gnutls inicializációs hiba\n"
+
+#, fuzzy, c-format
+msgid "%s%s: GnuTLS handshake failed"
+msgstr "%s gnutls kézfogás sikertelen\n"
+
+#, fuzzy, c-format
msgid "%s%s: connecting to server %s/%d%s%s%s via %s proxy %s/%d%s..."
msgstr ""
"%s: csatlakozás a(z) %s:%d%s%s szerverhez %s proxy kiszolgálón keresztül: %s:"
@@ -4347,10 +4355,6 @@ msgid "%s%s: failed to create id"
msgstr "%s DCC: nem sikerült a csövet létrehozni\n"
#, fuzzy, c-format
-msgid "%s%s: TLS handshake failed"
-msgstr "%s gnutls kézfogás sikertelen\n"
-
-#, fuzzy, c-format
msgid "%s%s: I/O error (%d)"
msgstr "%sSzerver: %s%s\n"
diff --git a/po/ru.po b/po/ru.po
index a23cca724..8fb24a05a 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat 0.2.7-dev\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
-"POT-Creation-Date: 2009-01-28 10:21+0100\n"
+"POT-Creation-Date: 2009-01-28 13:54+0100\n"
"PO-Revision-Date: 2009-01-03 00:42+0100\n"
"Last-Translator: Pavel Shevchuk <stlwrt@gmail.com>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@@ -4001,11 +4001,11 @@ msgid "%s%s: unable to set local hostname/IP"
msgstr "%s не могу установить локальный хост/IP\n"
#, fuzzy, c-format
-msgid "%s%s: GnuTLS init error"
+msgid "%s%s: TLS init error"
msgstr "%s ошибка инициализации gnutls\n"
#, fuzzy, c-format
-msgid "%s%s: GnuTLS handshake failed"
+msgid "%s%s: TLS handshake failed"
msgstr "%s инициализация gnutls не удалось\n"
#, fuzzy, c-format
@@ -4288,6 +4288,14 @@ msgid "%s%s: cannot allocate new MUC"
msgstr "%s не могу расположить новый канал"
#, fuzzy, c-format
+msgid "%s%s: GnuTLS init error"
+msgstr "%s ошибка инициализации gnutls\n"
+
+#, fuzzy, c-format
+msgid "%s%s: GnuTLS handshake failed"
+msgstr "%s инициализация gnutls не удалось\n"
+
+#, fuzzy, c-format
msgid "%s%s: connecting to server %s/%d%s%s%s via %s proxy %s/%d%s..."
msgstr "%s: подключение к серверу %s:%d%s%s через %s proxy %s:%d%s...\n"
@@ -4324,10 +4332,6 @@ msgid "%s%s: failed to create id"
msgstr "%s DCC: не могу создать pipe\n"
#, fuzzy, c-format
-msgid "%s%s: TLS handshake failed"
-msgstr "%s инициализация gnutls не удалось\n"
-
-#, fuzzy, c-format
msgid "%s%s: I/O error (%d)"
msgstr "%sСервер: %s%s\n"
diff --git a/po/weechat.pot b/po/weechat.pot
index 17da194a9..9673e9978 100644
--- a/po/weechat.pot
+++ b/po/weechat.pot
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
-"POT-Creation-Date: 2009-01-28 10:21+0100\n"
+"POT-Creation-Date: 2009-01-28 13:54+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -3457,11 +3457,11 @@ msgid "%s%s: unable to set local hostname/IP"
msgstr ""
#, c-format
-msgid "%s%s: GnuTLS init error"
+msgid "%s%s: TLS init error"
msgstr ""
#, c-format
-msgid "%s%s: GnuTLS handshake failed"
+msgid "%s%s: TLS handshake failed"
msgstr ""
#, c-format
@@ -3672,6 +3672,14 @@ msgid "%s%s: cannot allocate new MUC"
msgstr ""
#, c-format
+msgid "%s%s: GnuTLS init error"
+msgstr ""
+
+#, c-format
+msgid "%s%s: GnuTLS handshake failed"
+msgstr ""
+
+#, c-format
msgid "%s%s: connecting to server %s/%d%s%s%s via %s proxy %s/%d%s..."
msgstr ""
@@ -3706,10 +3714,6 @@ msgid "%s%s: failed to create id"
msgstr ""
#, c-format
-msgid "%s%s: TLS handshake failed"
-msgstr ""
-
-#, c-format
msgid "%s%s: I/O error (%d)"
msgstr ""
diff --git a/src/plugins/irc/irc-server.c b/src/plugins/irc/irc-server.c
index 1dd03ace6..126329663 100644
--- a/src/plugins/irc/irc-server.c
+++ b/src/plugins/irc/irc-server.c
@@ -1912,7 +1912,7 @@ irc_server_connect_cb (void *arg_server, int status, const char *ip_address)
break;
case WEECHAT_HOOK_CONNECT_GNUTLS_INIT_ERROR:
weechat_printf (server->buffer,
- _("%s%s: GnuTLS init error"),
+ _("%s%s: TLS init error"),
irc_buffer_get_server_prefix (server, "error"),
IRC_PLUGIN_NAME);
irc_server_close_connection (server);
@@ -1920,7 +1920,7 @@ irc_server_connect_cb (void *arg_server, int status, const char *ip_address)
break;
case WEECHAT_HOOK_CONNECT_GNUTLS_HANDSHAKE_ERROR:
weechat_printf (server->buffer,
- _("%s%s: GnuTLS handshake failed"),
+ _("%s%s: TLS handshake failed"),
irc_buffer_get_server_prefix (server, "error"),
IRC_PLUGIN_NAME);
irc_server_close_connection (server);
diff --git a/src/plugins/jabber/jabber-debug.c b/src/plugins/jabber/jabber-debug.c
index b5914f8a5..82537eead 100644
--- a/src/plugins/jabber/jabber-debug.c
+++ b/src/plugins/jabber/jabber-debug.c
@@ -93,12 +93,12 @@ jabber_debug_printf (struct t_jabber_server *server, int send, int modified,
weechat_printf (jabber_debug_buffer,
"%s%s%s%s%s%s\t%s",
(server) ? weechat_color ("chat_server") : "",
+ (iks_is_secure (server->iks_parser)) ? "[S]" : "",
(server) ? server->name : "",
(server) ? " " : "",
(send) ?
weechat_color ("chat_prefix_quit") :
weechat_color ("chat_prefix_join"),
- (iks_is_secure (server->iks_parser)) ? "* " : "",
(send) ?
((modified) ? JABBER_DEBUG_PREFIX_SEND_MOD : JABBER_DEBUG_PREFIX_SEND) :
((modified) ? JABBER_DEBUG_PREFIX_RECV_MOD : JABBER_DEBUG_PREFIX_RECV),
diff --git a/src/plugins/jabber/jabber-server.c b/src/plugins/jabber/jabber-server.c
index 859ce51dc..40467c57a 100644
--- a/src/plugins/jabber/jabber-server.c
+++ b/src/plugins/jabber/jabber-server.c
@@ -1004,19 +1004,24 @@ jabber_server_iks_transport_recv (void *socket, char *buffer, size_t buf_len,
{
int sock;
fd_set fds;
- struct timeval tv;
+ struct timeval tv, *ptr_tv;
int len;
- /* make C compiler happy */
- (void) timeout;
-
tv.tv_sec = 0;
tv.tv_usec = 0;
sock = (int) socket;
FD_ZERO (&fds);
FD_SET (sock, &fds);
- if (select (sock + 1, &fds, NULL, NULL, &tv) > 0)
+ tv.tv_sec = timeout;
+ ptr_tv = (timeout != -1) ? &tv : NULL;
+
+ /* FIXME: force timeout to 1 second, otherwise WeeChat may freeze when
+ iksemel calls this function with -1 (for TLS connection) */
+ tv.tv_sec = 1;
+ ptr_tv = &tv;
+
+ if (select (sock + 1, &fds, NULL, NULL, ptr_tv) > 0)
{
len = recv (sock, buffer, buf_len, 0);
if (len > 0)
@@ -1578,13 +1583,37 @@ int
jabber_server_recv_cb (void *arg_server)
{
struct t_jabber_server *server;
+ int rc;
server = (struct t_jabber_server *)arg_server;
if (!server)
return WEECHAT_RC_ERROR;
- iks_recv (server->iks_parser, 0);
+ rc = iks_recv (server->iks_parser, 1);
+
+ if (rc == IKS_NET_TLSFAIL)
+ {
+ weechat_printf (server->buffer,
+ _("%s%s: TLS handshake failed"),
+ jabber_buffer_get_server_prefix (server,
+ "error"),
+ JABBER_PLUGIN_NAME);
+ jabber_server_disconnect (server, 0);
+ return WEECHAT_RC_ERROR;
+ }
+
+ if ((rc != IKS_OK) && (rc != IKS_HOOK))
+ {
+ weechat_printf (server->buffer,
+ _("%s%s: I/O error (%d)"),
+ jabber_buffer_get_server_prefix (server,
+ "error"),
+ JABBER_PLUGIN_NAME,
+ rc);
+ jabber_server_disconnect (server, 0);
+ return WEECHAT_RC_ERROR;
+ }
return WEECHAT_RC_OK;
}
diff --git a/src/plugins/jabber/jabber-xmpp.c b/src/plugins/jabber/jabber-xmpp.c
index ffc68452b..e33b8db54 100644
--- a/src/plugins/jabber/jabber-xmpp.c
+++ b/src/plugins/jabber/jabber-xmpp.c
@@ -274,7 +274,6 @@ jabber_xmpp_iks_stream_hook (void *user_data, int type, iks *node)
jabber_buffer_get_server_prefix (server,
"error"),
JABBER_PLUGIN_NAME);
-
jabber_server_disconnect (server, 0);
}
else if (strcmp ("success", iks_name (node)) == 0)