diff options
author | Sebastien Helleu <flashcode@flashtux.org> | 2009-01-30 12:22:10 +0100 |
---|---|---|
committer | Sebastien Helleu <flashcode@flashtux.org> | 2009-01-30 12:22:10 +0100 |
commit | 228ef56860c4f754576f6d44bd2b5b31195a2c2f (patch) | |
tree | 6a4272e90f55dc29060492666145cb3203b3c939 | |
parent | 16c9217d524d95fff21308d9d5b9e761eace5c83 (diff) | |
download | weechat-228ef56860c4f754576f6d44bd2b5b31195a2c2f.zip |
Fix some bugs with TLS connections in Jabber pluigin (TLS still not working in Jabber)
-rw-r--r-- | po/cs.po | 18 | ||||
-rw-r--r-- | po/de.po | 18 | ||||
-rw-r--r-- | po/es.po | 18 | ||||
-rw-r--r-- | po/fr.po | 24 | ||||
-rw-r--r-- | po/hu.po | 18 | ||||
-rw-r--r-- | po/ru.po | 18 | ||||
-rw-r--r-- | po/weechat.pot | 18 | ||||
-rw-r--r-- | src/plugins/irc/irc-server.c | 4 | ||||
-rw-r--r-- | src/plugins/jabber/jabber-debug.c | 2 | ||||
-rw-r--r-- | src/plugins/jabber/jabber-server.c | 41 | ||||
-rw-r--r-- | src/plugins/jabber/jabber-xmpp.c | 1 |
11 files changed, 118 insertions, 62 deletions
@@ -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" @@ -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" @@ -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" @@ -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)" @@ -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" @@ -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) |