summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastien Helleu <flashcode@flashtux.org>2010-02-18 22:02:55 +0100
committerSebastien Helleu <flashcode@flashtux.org>2010-02-18 22:02:55 +0100
commitd2ec8d133db7da8910538c13c500e65959d041ae (patch)
treeed5d7c76368c64b51a7ce1e7b7fb2bf0c6b327f1
parent832a4c1466ec5d0cff30a3ad5205de4c64178237 (diff)
downloadweechat-d2ec8d133db7da8910538c13c500e65959d041ae.zip
Add mechanism DH-BLOWFISH for SASL authentication with IRC server
-rw-r--r--CMakeLists.txt1
-rw-r--r--ChangeLog3
-rw-r--r--cmake/FindGcrypt.cmake47
-rw-r--r--configure.in54
-rw-r--r--doc/en/autogen/user/irc_options.txt7
-rw-r--r--doc/fr/autogen/user/irc_options.txt7
-rw-r--r--doc/it/autogen/user/irc_options.txt7
-rw-r--r--po/POTFILES.in2
-rw-r--r--po/cs.po111
-rw-r--r--po/de.po37
-rw-r--r--po/es.po814
-rw-r--r--po/fr.po31
-rw-r--r--po/hu.po863
-rw-r--r--po/it.po36
-rw-r--r--po/pl.po169
-rw-r--r--po/ru.po854
-rw-r--r--po/srcfiles.cmake2
-rw-r--r--po/weechat.pot20
-rw-r--r--src/CMakeLists.txt10
-rw-r--r--src/core/Makefile.am2
-rw-r--r--src/core/wee-network.c9
-rw-r--r--src/core/wee-upgrade-file.c2
-rw-r--r--src/gui/curses/Makefile.am4
-rw-r--r--src/gui/gtk/Makefile.am4
-rw-r--r--src/plugins/irc/CMakeLists.txt13
-rw-r--r--src/plugins/irc/Makefile.am6
-rw-r--r--src/plugins/irc/irc-config.c15
-rw-r--r--src/plugins/irc/irc-display.c3
-rw-r--r--src/plugins/irc/irc-protocol.c96
-rw-r--r--src/plugins/irc/irc-sasl.c236
-rw-r--r--src/plugins/irc/irc-sasl.h41
-rw-r--r--src/plugins/irc/irc-server.c8
-rw-r--r--src/plugins/irc/irc-server.h12
33 files changed, 718 insertions, 2808 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 1b65a92ff..900d5d912 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -56,6 +56,7 @@ ENDIF(DEFINED INCLUDEDIR)
OPTION(DISABLE_NCURSES "Disable Ncurses interface")
OPTION(ENABLE_GTK "Enable GTK interface")
OPTION(DISABLE_NLS "Disable Native Language Support")
+OPTION(DISABLE_GCRYPT "Disable libgcrypt support")
OPTION(DISABLE_GNUTLS "Disable SSLv3/TLS connection support")
OPTION(DISABLE_LARGEFILE "Disable Large File Support")
OPTION(DISABLE_ALIAS "Disable Alias plugin")
diff --git a/ChangeLog b/ChangeLog
index e365b6338..b47302722 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -26,7 +26,8 @@ Version 0.3.2 (under dev!)
and in buffer infolist
* api: add description of arguments for functions hook_info and hook_infolist
* api: fix function "color" in Lua script API
-* irc: add SASL authentication (task #8829)
+* irc: add SASL authentication, with PLAIN and DH-BLOWFISH mechanisms
+ (task #8829)
* 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)
diff --git a/cmake/FindGcrypt.cmake b/cmake/FindGcrypt.cmake
new file mode 100644
index 000000000..f4c730100
--- /dev/null
+++ b/cmake/FindGcrypt.cmake
@@ -0,0 +1,47 @@
+# Copyright (c) 2003-2010 by FlashCode <flashcode@flashtux.org>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+
+# - Find Gcrypt
+# This module finds if libgcrypt is installed and determines where
+# the include files and libraries are.
+#
+# This code sets the following variables:
+#
+# GCRYPT_CFLAGS = cflags to use to compile
+# GCRYPT_LDFLAGS = ldflags to use to compile
+#
+
+FIND_PROGRAM(LIBGCRYPT_CONFIG_EXECUTABLE NAMES libgcrypt-config)
+
+set(GCRYPT_LDFLAGS)
+set(GCRYPT_CFLAGS)
+
+IF(LIBGCRYPT_CONFIG_EXECUTABLE)
+
+ EXEC_PROGRAM(${LIBGCRYPT_CONFIG_EXECUTABLE} ARGS --libs RETURN_VALUE _return_VALUE OUTPUT_VARIABLE GCRYPT_LDFLAGS)
+ EXEC_PROGRAM(${LIBGCRYPT_CONFIG_EXECUTABLE} ARGS --cflags RETURN_VALUE _return_VALUE OUTPUT_VARIABLE GCRYPT_CFLAGS)
+
+ IF(${GCRYPT_CFLAGS} MATCHES "\n")
+ SET(GCRYPT_CFLAGS " ")
+ ENDIF(${GCRYPT_CFLAGS} MATCHES "\n")
+
+ IF(GCRYPT_LDFLAGS AND GCRYPT_CFLAGS)
+ SET(GCRYPT_FOUND TRUE)
+ ENDIF(GCRYPT_LDFLAGS AND GCRYPT_CFLAGS)
+
+ENDIF(LIBGCRYPT_CONFIG_EXECUTABLE)
+
+MARK_AS_ADVANCED(GCRYPT_CFLAGS GCRYPT_LDFLAGS)
diff --git a/configure.in b/configure.in
index 002c3a19f..2fe02c20f 100644
--- a/configure.in
+++ b/configure.in
@@ -96,6 +96,7 @@ AC_CHECK_FUNCS([gethostbyname gethostname getsockname gettimeofday inet_ntoa mem
AH_VERBATIM([PREFIX], [#undef PREFIX])
AH_VERBATIM([WEECHAT_LIBDIR], [#undef WEECHAT_LIBDIR])
AH_VERBATIM([WEECHAT_SHAREDIR], [#undef WEECHAT_SHAREDIR])
+AH_VERBATIM([HAVE_GCRYPT], [#undef HAVE_GCRYPT])
AH_VERBATIM([HAVE_GNUTLS], [#undef HAVE_GNUTLS])
AH_VERBATIM([HAVE_FLOCK], [#undef HAVE_FLOCK])
AH_VERBATIM([PLUGIN_ALIAS], [#undef PLUGIN_ALIAS])
@@ -120,6 +121,7 @@ AC_ARG_ENABLE(ncurses, [ --disable-ncurses turn off ncurses interfac
AC_ARG_ENABLE(wxwidgets, [ --enable-wxwidgets turn on WxWidgets interface (default=off)],enable_wxwidgets=$enableval,enable_wxwidgets=no)
AC_ARG_ENABLE(gtk, [ --enable-gtk turn on Gtk interface (default=off)],enable_gtk=$enableval,enable_gtk=no)
AC_ARG_ENABLE(qt, [ --enable-qt turn on Qt interface (default=off)],enable_qt=$enableval,enable_qt=no)
+AC_ARG_ENABLE(gcrypt, [ --disable-gcrypt turn off gcrypt support (default=compiled if found)],enable_gcrypt=$enableval,enable_gcrypt=yes)
AC_ARG_ENABLE(gnutls, [ --disable-gnutls turn off gnutls support (default=compiled if found)],enable_gnutls=$enableval,enable_gnutls=yes)
AC_ARG_ENABLE(largefile, [ --disable-largefile turn off Large File Support (default=on)],enable_largefile=$enableval,enable_largefile=yes)
AC_ARG_ENABLE(alias, [ --disable-alias turn off Alias plugin (default=compiled)],enable_alias=$enableval,enable_alias=yes)
@@ -739,21 +741,51 @@ else
fi
# ------------------------------------------------------------------------------
+# gcrypt
+# ------------------------------------------------------------------------------
+
+if test "x$enable_gcrypt" = "xyes" ; then
+ AC_CHECK_HEADER(gcrypt.h,ac_found_gcrypt_header="yes",ac_found_gcrypt_header="no")
+ AC_CHECK_LIB(gcrypt,gcry_check_version,ac_found_gcrypt_lib="yes",ac_found_gcrypt_lib="no")
+
+ AC_MSG_CHECKING(for gcrypt headers and librairies)
+ if test "x$ac_found_gcrypt_header" = "xno" -o "x$ac_found_gcrypt_lib" = "xno" ; then
+ AC_MSG_RESULT(no)
+ AC_MSG_WARN([
+*** libgcrypt was not found. You may want to get it from ftp://ftp.gnupg.org/gcrypt/libgcrypt/
+*** WeeChat will be built without gcrypt support.
+*** Some features like SASL authentication with IRC server using mechanism DH-BLOWFISH will be disabled.])
+ enable_gcrypt="no"
+ not_found="$not_found gcrypt"
+ else
+ AC_MSG_RESULT(yes)
+ GCRYPT_CFLAGS=`libgcrypt-config --cflags`
+ GCRYPT_LFLAGS=`libgcrypt-config --libs`
+ AC_SUBST(GCRYPT_CFLAGS)
+ AC_SUBST(GCRYPT_LFLAGS)
+ AC_DEFINE(HAVE_GCRYPT)
+ CFLAGS="$CFLAGS -DHAVE_GCRYPT"
+ fi
+else
+ not_asked="$not_asked gcrypt"
+fi
+
+# ------------------------------------------------------------------------------
# gnutls
# ------------------------------------------------------------------------------
if test "x$enable_gnutls" = "xyes" ; then
- AC_CHECK_HEADER(gnutls/gnutls.h,ac_found_gnutls_header="yes",ac_found_gnutls_header="no")
- AC_CHECK_LIB(gnutls,gnutls_global_init,ac_found_gnutls_lib="yes",ac_found_gnutls_lib="no")
-
- AC_MSG_CHECKING(for gnutls headers and librairies)
- if test "x$ac_found_gnutls_header" = "xno" -o "x$ac_found_gnutls_lib" = "xno" ; then
- AC_MSG_RESULT(no)
- AC_MSG_WARN([
+ AC_CHECK_HEADER(gnutls/gnutls.h,ac_found_gnutls_header="yes",ac_found_gnutls_header="no")
+ AC_CHECK_LIB(gnutls,gnutls_global_init,ac_found_gnutls_lib="yes",ac_found_gnutls_lib="no")
+
+ AC_MSG_CHECKING(for gnutls headers and librairies)
+ if test "x$ac_found_gnutls_header" = "xno" -o "x$ac_found_gnutls_lib" = "xno" ; then
+ AC_MSG_RESULT(no)
+ AC_MSG_WARN([
*** libgnutls was not found. You may want to get it from ftp://ftp.gnutls.org/pub/gnutls/
*** WeeChat will be built without GnuTLS support.])
- enable_gnutls="no"
- not_found="$not_found gnutls"
+ enable_gnutls="no"
+ not_found="$not_found gnutls"
else
AC_MSG_RESULT(yes)
GNUTLS_CFLAGS=`pkg-config gnutls --cflags`
@@ -932,6 +964,7 @@ CFLAGS="$CFLAGS -DWEECHAT_VERSION=\\\"$VERSION\\\""
# output Makefiles
# ------------------------------------------------------------------------------
+AM_CONDITIONAL(HAVE_GCRYPT, test "$enable_gcrypt" = "yes")
AM_CONDITIONAL(HAVE_GNUTLS, test "$enable_gnutls" = "yes")
AM_CONDITIONAL(HAVE_FLOCK, test "$enable_flock" = "yes")
AM_CONDITIONAL(GUI_NCURSES, test "$enable_ncurses" = "yes")
@@ -1058,6 +1091,9 @@ if test "x$enable_xfer" = "xyes"; then
fi
listoptional=""
+if test "x$enable_gcrypt" = "xyes"; then
+ listoptional="$listoptional gcrypt"
+fi
if test "x$enable_gnutls" = "xyes"; then
listoptional="$listoptional gnutls"
fi
diff --git a/doc/en/autogen/user/irc_options.txt b/doc/en/autogen/user/irc_options.txt
index 2b578c097..ab91d7c1b 100644
--- a/doc/en/autogen/user/irc_options.txt
+++ b/doc/en/autogen/user/irc_options.txt
@@ -311,13 +311,18 @@
* *irc.server_default.sasl_mechanism*
** description: mechanism for SASL authentication
** type: integer
-** values: plain (default value: plain)
+** values: plain, dh-blowfish (default value: plain)
* *irc.server_default.sasl_password*
** description: password for SASL authentication
** type: string
** values: any string (default value: "")
+* *irc.server_default.sasl_timeout*
+** description: timeout (in seconds) before giving up SASL authentication
+** type: integer
+** values: 1 .. 3600 (default value: 15)
+
* *irc.server_default.sasl_username*
** description: username for SASL authentication
** type: string
diff --git a/doc/fr/autogen/user/irc_options.txt b/doc/fr/autogen/user/irc_options.txt
index a43459358..69e55706c 100644
--- a/doc/fr/autogen/user/irc_options.txt
+++ b/doc/fr/autogen/user/irc_options.txt
@@ -311,13 +311,18 @@
* *irc.server_default.sasl_mechanism*
** description: mécanisme pour l'authentification SASL
** type: entier
-** valeurs: plain (valeur par défaut: plain)
+** valeurs: plain, dh-blowfish (valeur par défaut: plain)
* *irc.server_default.sasl_password*
** description: mot de passe pour l'authentification SASL
** type: chaîne
** valeurs: toute chaîne (valeur par défaut: "")
+* *irc.server_default.sasl_timeout*
+** description: délai d'attende maximum (en secondes) avant d'abandonner l'authentification SASL
+** type: entier
+** valeurs: 1 .. 3600 (valeur par défaut: 15)
+
* *irc.server_default.sasl_username*
** description: nom d'utilisateur pour l'authentification SASL
** type: chaîne
diff --git a/doc/it/autogen/user/irc_options.txt b/doc/it/autogen/user/irc_options.txt
index 5cc326e69..f1d3266d6 100644
--- a/doc/it/autogen/user/irc_options.txt
+++ b/doc/it/autogen/user/irc_options.txt
@@ -311,13 +311,18 @@
* *irc.server_default.sasl_mechanism*
** descrizione: mechanism for SASL authentication
** tipo: intero
-** valori: plain (valore predefinito: plain)
+** valori: plain, dh-blowfish (valore predefinito: plain)
* *irc.server_default.sasl_password*
** descrizione: password for SASL authentication
** tipo: stringa
** valori: qualsiasi stringa (valore predefinito: "")
+* *irc.server_default.sasl_timeout*
+** descrizione: timeout (in seconds) before giving up SASL authentication
+** tipo: intero
+** valori: 1 .. 3600 (valore predefinito: 15)
+
* *irc.server_default.sasl_username*
** descrizione: username for SASL authentication
** tipo: stringa
diff --git a/po/POTFILES.in b/po/POTFILES.in
index e041de561..cfffb1dfd 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -139,6 +139,8 @@
./src/plugins/irc/irc-protocol.h
./src/plugins/irc/irc-raw.c
./src/plugins/irc/irc-raw.h
+./src/plugins/irc/irc-sasl.c
+./src/plugins/irc/irc-sasl.h
./src/plugins/irc/irc-server.c
./src/plugins/irc/irc-server.h
./src/plugins/logger/logger.c
diff --git a/po/cs.po b/po/cs.po
index 1288e1daf..5458c7848 100644
--- a/po/cs.po
+++ b/po/cs.po
@@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat 0.3.2-dev\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
-"POT-Creation-Date: 2010-02-15 11:45+0100\n"
-"PO-Revision-Date: 2010-01-23 11:56+0100\n"
+"POT-Creation-Date: 2010-02-18 19:55+0100\n"
+"PO-Revision-Date: 2010-02-18 19:52+0100\n"
"Last-Translator: Jiri Golembiovsky <golemj@gmail.com>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
"MIME-Version: 1.0\n"
@@ -4036,6 +4036,9 @@ msgstr ""
msgid "password for SASL authentication"
msgstr ""
+msgid "timeout (in seconds) before giving up SASL authentication"
+msgstr ""
+
msgid "automatically connect to server when WeeChat is starting"
msgstr "automaticky připojit k serveru, když je WeeChat spouštěn"
@@ -4430,6 +4433,11 @@ msgid "%s%s: this buffer is not a channel!"
msgstr "%s%s: tenhle buffer není kanál!"
#, c-format
+msgid ""
+"%s%s: error building answer for SASL authentication, using mechanism \"%s\""
+msgstr ""
+
+#, c-format
msgid "%s%s: client capability, server supports: %s"
msgstr ""
@@ -4445,6 +4453,18 @@ msgstr ""
msgid "%s%s: client capability, enabled: %s"
msgstr ""
+#, fuzzy, c-format
+msgid ""
+"%s%s: cannot authenticate with SASL and mechanism DH-BLOWFISH because "
+"WeeChat was not built with libgcrypt support"
+msgstr ""
+"%s%s: nemohu se připojit pomocí SSL, protže WeeChat nebyl sestaven s "
+"podporou GNUtls"
+
+#, fuzzy, c-format
+msgid "%s%s: client capability, refused: %s"
+msgstr "%s%s: nekorektní znaková sada: \"%s\""
+
#, c-format
msgid "%sYou have been invited to %s%s%s by %s%s%s"
msgstr "%sByl jsi pozván na %s%s%s od %s%s%s"
@@ -6165,90 +6185,3 @@ msgstr "[info [argumenty]]"
#, fuzzy
msgid "Pointer"
msgstr "celé číslo"
-
-#~ msgid "[-o]"
-#~ msgstr "[-o]"
-
-#~ msgid "-o: send uptime to current buffer as input"
-#~ msgstr "-o: poslat čas běhu na aktuální kanál jako vstup"
-
-#~ msgid "-o: send version to current buffer as input"
-#~ msgstr "-c: pošle verzi jako vstup pro aktuální buffer"
-
-#~ msgid "time format for buffers"
-#~ msgstr "formát času pro buffer"
-
-#~ msgid "%s%s: cannot find nick for sending message"
-#~ msgstr "%s%s: nemohu najít přezdívku pro poslání zprávy"
-
-#~ msgid "text: text to send"
-#~ msgstr "text: texk k poslání"
-
-#, fuzzy
-#~ msgid "%s%s: error creating msgbuffer \"%s\" => \"%s\""
-#~ msgstr "%s%s: chyba vytváření znakové sady \"%s\" => \"%s\""
-
-#~ msgid "%s%s: error: \"%s\""
-#~ msgstr "%s%s: chyba: \"%s\""
-
-#~ msgid "%s%s: missing argument for \"%s\" option"
-#~ msgstr "%s%s: chybí argument pro volbu \"%s\""
-
-#~ msgid "%s%s unable to run function \"%s\""
-#~ msgstr "%s%s nemůžu spustit funkci \"%s\""
-
-#~ msgid "%sUnknown CTCP %s%s%s received from %s%s%s: %s"
-#~ msgstr "%sNeznámý CTCP %s%s%s obdržen od %s%s%s: %s"
-
-#~ msgid "%sUnknown CTCP %s%s%s received from %s%s%s"
-#~ msgstr "%sNeznámý CTCP %s%s%s obdržen od %s%s%s"
-
-#~ msgid "list of %s scripts"
-#~ msgstr "seznam %s skriptů"
-
-#, fuzzy
-#~ msgid "%s%s: bind error on port %d"
-#~ msgstr "%s: poslouchám na portu %d"
-
-#~ msgid "%s: new client @ %s"
-#~ msgstr "%s: nový klient @ %s"
-
-#~ msgid "enable relay"
-#~ msgstr "přesměrování povoleno"
-
-#~ msgid ""
-#~ "port number (or range of ports) that relay plugin listens on (syntax: a "
-#~ "single port, ie. 5000 or a port range, ie. 5000-5015, it's recommended to "
-#~ "use ports greater than 1024, because only root can use ports below 1024)"
-#~ msgstr ""
-#~ "číslo portu (nebo rozsah portů), na kterých poslouchá plugin pro "
-#~ "přesměrování (syntaxe: jeden port, např. 5000 nebo rozsah portů, např. "
-#~ "5000-5015, je doporučeno používat porty větší než 1024, protože porty pod "
-#~ "1024 může používat pouze root)"
-
-#~ msgid "%s%s: option \"listen_port_range\" is not defined"
-#~ msgstr "%s%s: volba \"listen_port_range\" není definována"
-
-#~ msgid "%s%s: cannot find available port for listening"
-#~ msgstr "%s%s: nemůžu najít dostupný port pro poslouchání"
-
-#~ msgid ""
-#~ " list: list relay clients\n"
-#~ "listfull: list relay clients (verbose)\n"
-#~ "\n"
-#~ "Without argument, this command opens buffer with list of relay clients."
-#~ msgstr ""
-#~ " list: vypíše klienty pro přesměrování\n"
-#~ "listfull: vypíše klienty pro přesměrování(s detaily)\n"
-#~ "\n"
-#~ "Spuštění příkazu bez parametrů otevře buffer se seznamem přenosových "
-#~ "klientů."
-
-#~ msgid ""
-#~ " channel: channel where user is\n"
-#~ "nickname: nickname to kick and ban\n"
-#~ " comment: comment for kick"
-#~ msgstr ""
-#~ " kanál: kanál na kterém je uživatel\n"
-#~ "přezdívka: přezdívka, kterou vykopnout a zakázat\n"
-#~ " komentář: komentář pro vykopnutí"
diff --git a/po/de.po b/po/de.po
index 169dbb7ba..0a480954a 100644
--- a/po/de.po
+++ b/po/de.po
@@ -10,8 +10,8 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat 0.3.2-dev\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
-"POT-Creation-Date: 2010-02-15 11:45+0100\n"
-"PO-Revision-Date: 2010-02-09 16:11+0100\n"
+"POT-Creation-Date: 2010-02-18 19:55+0100\n"
+"PO-Revision-Date: 2010-02-18 19:52+0100\n"
"Last-Translator: Nils G <weechatter@arcor.de>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
"MIME-Version: 1.0\n"
@@ -4220,6 +4220,9 @@ msgstr ""
msgid "password for SASL authentication"
msgstr ""
+msgid "timeout (in seconds) before giving up SASL authentication"
+msgstr ""
+
msgid "automatically connect to server when WeeChat is starting"
msgstr "Automatisch mit dem Server verbinden, wenn WeeChat gestartet wird"
@@ -4631,6 +4634,11 @@ msgid "%s%s: this buffer is not a channel!"
msgstr "%s%s: Dieser Buffer ist kein Channel!"
#, c-format
+msgid ""
+"%s%s: error building answer for SASL authentication, using mechanism \"%s\""
+msgstr ""
+
+#, c-format
msgid "%s%s: client capability, server supports: %s"
msgstr ""
@@ -4646,6 +4654,18 @@ msgstr ""
msgid "%s%s: client capability, enabled: %s"
msgstr ""
+#, fuzzy, c-format
+msgid ""
+"%s%s: cannot authenticate with SASL and mechanism DH-BLOWFISH because "
+"WeeChat was not built with libgcrypt support"
+msgstr ""
+"%s%s SSL-Verbindung nicht möglich, da WeeChat nicht mit GNUtls-Support "
+"kompiliert wurde"
+
+#, fuzzy, c-format
+msgid "%s%s: client capability, refused: %s"
+msgstr "%s%s: Ungültiger Zeichensatz: \"%s\""
+
#, c-format
msgid "%sYou have been invited to %s%s%s by %s%s%s"
msgstr "%sDu bist in den Channel %s%s%s von %s%s%s eingeladen worden"
@@ -6409,16 +6429,3 @@ msgstr "[arguments]"
#, fuzzy
msgid "Pointer"
msgstr "integer"
-
-#~ msgid "[-o]"
-#~ msgstr "[-o]"
-
-#~ msgid "-o: send uptime to current buffer as input"
-#~ msgstr ""
-#~ "-o: sendet die Weechat-Uptime, als Mitteilung, in den aktuellen Channel"
-
-#~ msgid "-o: send version to current buffer as input"
-#~ msgstr "-o: schickt Version in den aktuellen Buffer"
-
-#~ msgid "time format for buffers"
-#~ msgstr "Zeitformatierung für Buffer"
diff --git a/po/es.po b/po/es.po
index 045f2a3e7..0484823af 100644
--- a/po/es.po
+++ b/po/es.po
@@ -8,8 +8,8 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat 0.3.2-dev\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
-"POT-Creation-Date: 2010-02-15 11:45+0100\n"
-"PO-Revision-Date: 2010-01-23 11:56+0100\n"
+"POT-Creation-Date: 2010-02-18 19:55+0100\n"
+"PO-Revision-Date: 2010-02-18 19:53+0100\n"
"Last-Translator: Elián Hanisch <lambdae2@gmail.com>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
"MIME-Version: 1.0\n"
@@ -4122,6 +4122,10 @@ msgstr "usar SSL para la comunicación del servidor"
msgid "password for SASL authentication"
msgstr "usar SSL para la comunicación del servidor"
+#, fuzzy
+msgid "timeout (in seconds) before giving up SASL authentication"
+msgstr "usar SSL para la comunicación del servidor"
+
msgid "automatically connect to server when WeeChat is starting"
msgstr "conectarse automáticamente al servidor cuando WeeChat se inicia"
@@ -4525,6 +4529,11 @@ msgid "%s%s: this buffer is not a channel!"
msgstr "%s%s: ¡este buffer no es un canal!"
#, c-format
+msgid ""
+"%s%s: error building answer for SASL authentication, using mechanism \"%s\""
+msgstr ""
+
+#, c-format
msgid "%s%s: client capability, server supports: %s"
msgstr ""
@@ -4540,6 +4549,18 @@ msgstr ""
msgid "%s%s: client capability, enabled: %s"
msgstr ""
+#, fuzzy, c-format
+msgid ""
+"%s%s: cannot authenticate with SASL and mechanism DH-BLOWFISH because "
+"WeeChat was not built with libgcrypt support"
+msgstr ""
+"%s%s: no es posible conectarse con SSL debido a que WeeChat no fue compilado "
+"con soporte GnuTLS"
+
+#, fuzzy, c-format
+msgid "%s%s: client capability, refused: %s"
+msgstr "%s%s: set de caracteres inválido: \"%s\""
+
#, c-format
msgid "%sYou have been invited to %s%s%s by %s%s%s"
msgstr "%sUsted ha sido invitado a %s%s%s por %s%s%s"
@@ -6295,792 +6316,3 @@ msgstr "[argumentos]"
#, fuzzy
msgid "Pointer"
msgstr "entero"
-
-#~ msgid "[-o]"
-#~ msgstr "[-o]"
-
-#~ msgid "-o: send uptime to current buffer as input"
-#~ msgstr "-o: envía el tiempo de uso al canal actual"
-
-#~ msgid "-o: send version to current buffer as input"
-#~ msgstr "-o: envía la versión a la entrada del buffer actual"
-
-#~ msgid "time format for buffers"
-#~ msgstr "formato de hora para los buffers"
-
-#~ msgid "%s%s: cannot find nick for sending message"
-#~ msgstr "%s%s: no se pudo encontrar el apodo para enviarle el mensaje"
-
-#~ msgid "text: text to send"
-#~ msgstr "texto: texto a enviar"
-
-#, fuzzy
-#~ msgid "%s%s: error creating msgbuffer \"%s\" => \"%s\""
-#~ msgstr "%s%s: error al crear el set de caracteres \"%s\" => \"%s\""
-
-#~ msgid "%s%s: error: \"%s\""
-#~ msgstr "%s%s: error: \"%s\""
-
-#~ msgid "%s%s: missing argument for \"%s\" option"
-#~ msgstr "%s%s: falta el argumento para la opción \"%s\""
-
-#, fuzzy
-#~ msgid "%s%s unable to run function \"%s\""
-#~ msgstr "No es posible escribir un fichero de log para un búfer\n"
-
-#~ msgid "%sUnknown CTCP %s%s%s received from %s%s%s: %s"
-#~ msgstr "%sCTCP desconocido %s%s%s recibido de %s%s%s: %s"
-
-#, fuzzy
-#~ msgid "%sUnknown CTCP %s%s%s received from %s%s%s"
-#~ msgstr "%sCTCP desconocido %s%s%s recibido de %s%s"
-
-#, fuzzy
-#~ msgid "list of %s scripts"
-#~ msgstr "Lista de alias:\n"
-
-#, fuzzy
-#~ msgid "%s%s: bind error on port %d"
-#~ msgstr "%s no ha sido posible crear el socket\n"
-
-#, fuzzy
-#~ msgid ""
-#~ "port number (or range of ports) that relay plugin listens on (syntax: a "
-#~ "single port, ie. 5000 or a port range, ie. 5000-5015, it's recommended to "
-#~ "use ports greater than 1024, because only root can use ports below 1024)"
-#~ msgstr ""
-#~ "restringe el dcc de salida a utilizar únicamente los puertos del rango "
-#~ "especificado (útil para NAT) (sintaxis: un puerto simple, e.g. 5000, o un "
-#~ "rango de puertos, e.g. 5000-5015, un valor vacío significa cualquier "
-#~ "puerto)"
-
-#, fuzzy
-#~ msgid "%s%s: cannot find available port for listening"
-#~ msgstr "%s no puede encontrar un puerto disponible para el DCC\n"
-
-#~ msgid ""
-#~ " channel: channel where user is\n"
-#~ "nickname: nickname to kick and ban\n"
-#~ " comment: comment for kick"
-#~ msgstr ""
-#~ " canal: canal donde está el usuario\n"
-#~ " apodo: apodo a expulsar y vetar\n"
-#~ "comentario: comentario de la expulsión"
-
-#, fuzzy
-#~ msgid "list of alias"
-#~ msgstr "Lista de alias:\n"
-
-#~ msgid "alias_name"
-#~ msgstr "alias"
-
-#, fuzzy
-#~ msgid "No alias found"
-#~ msgstr "Ningún alias definido.\n"
-
-#~ msgid "%s%s: error sending data to IRC server (%s)"
-#~ msgstr "%s%s: error al enviar datos al servidor IRC (%s)"
-
-#~ msgid "%s%s: cannot read data from socket, disconnecting from server..."
-#~ msgstr ""
-#~ "%s%s: no ha sido posible leer datos del socket, desconectando del "
-#~ "servidor..."
-
-#~ msgid "nicks"
-#~ msgstr "apodos"
-
-#~ msgid "ops"
-#~ msgstr "ops"
-
-#~ msgid "halfops"
-#~ msgstr "semi-ops"
-
-#~ msgid "voices"
-#~ msgstr "voces"
-
-#~ msgid "%sCTCP %sVERSION%s reply from %s%s%s: %s"
-#~ msgstr "%sCTCP %sVERSION%s respuesta de %s%s%s: %s"
-
-#~ msgid "%sCTCP %sVERSION%s received from %s%s%s: %s"
-#~ msgstr "%sCTCP %sVERSION%s recibido de %s%s%s: %s"
-
-#~ msgid "%sCTCP %sVERSION%s received from %s%s"
-#~ msgstr "%sCTCP %sVERSION%s recibido de %s%s"
-
-#~ msgid "%sReceived a CTCP %sSOUND%s \"%s\" from %s%s"
-#~ msgstr "%sRecibido a CTCP %sSOUND%s \"%s\" de %s%s"
-
-#~ msgid "%sCTCP %sPING%s received from %s%s"
-#~ msgstr "%sCTCP %sPING%s recibido de %s%s"
-
-#, fuzzy
-#~ msgid "text color for nick name in input line"
-#~ msgstr "color para los nombres de usuario"
-
-#, fuzzy
-#~ msgid "text color for nicklist separator"
-#~ msgstr "color para el separador de alias"
-
-#, fuzzy
-#~ msgid "servers"
-#~ msgstr "servidor"
-
-#, fuzzy
-#~ msgid "%s%s: auto-reconnection is cancelled"
-#~ msgstr "La reconexión automática está anulada\n"
-
-#, fuzzy
-#~ msgid "list, add or remove Jabber servers"
-#~ msgstr "lista, añde o elimina servidores"
-
-#, fuzzy
-#~ msgid ""
-#~ "[list [servername]] | [listfull [servername]] | [add servername username "
-#~ "hostname[/port] password [-auto | -noauto] [-ipv6] [-tls] [-sasl]] | "
-#~ "[copy servername newservername] | [rename servername newservername] | "
-#~ "[keep servername] | [del servername] | [switch]"
-#~ msgstr ""
-#~ "[nombre_de_servidor] | [nombre_de_servidor nombre/IP puerto [-auto | -"
-#~ "noauto] [-ipv6] [-ssl] [-pwd contraseña] [-nicks alias1 alias2 alias3] [-"
-#~ "username nombre de usuario] [-realname nombre_real] [-command comando] [-"
-#~ "autojoin canal[,canal]] ] | [del nombre_de_servidor]"
-
-#, fuzzy
-#~ msgid ""
-#~ " list: list servers (no parameter implies this list)\n"
-#~ " listfull: list servers with detailed info for each server\n"
-#~ " add: create a new server\n"
-#~ "servername: server name, for internal and display use\n"
-#~ " username: username to use on server\n"
-#~ " hostname: name or IP address of server, with optional port (default: "
-#~ "5222)\n"
-#~ " password: password for username on server\n"
-#~ " auto: automatically connect to server when WeeChat starts\n"
-#~ " noauto: do not connect to server when WeeChat starts (default)\n"
-#~ " ipv6: use IPv6 protocol\n"
-#~ " tls: use TLS cryptographic protocol\n"
-#~ " sasl: use SASL for authentication\n"
-#~ " copy: duplicate a server\n"
-#~ " rename: rename a server\n"
-#~ " keep: keep server in config file (for temporary servers only)\n"
-#~ " del: delete a server\n"
-#~ " switch: switch active server (when one buffer is used for all "
-#~ "servers, default key: alt-s on server buffer)\n"
-#~ "\n"
-#~ "Examples:\n"
-#~ " /jabber listfull\n"
-#~ " /jabber add jabberfr user jabber.fr/5222 password -tls\n"
-#~ " /jabber copy jabberfr jabberfr2\n"
-#~ " /jabber rename jabberfr jabbfr\n"
-#~ " /jabber del jabberfr\n"
-#~ " /jabber switch"
-#~ msgstr ""
-#~ " nombre_de_servidor: nombre del servidor, para uso interno y para "
-#~ "mostrar\n"
-#~ "nombre_de_anfitrión: nombre o dirección IP del servidor\n"
-#~ " puerto: puerto para el servidor (número entero)\n"
-#~ " ipv6: utilizar protocolo IPv6\n"
-#~ " ssl: utilizar protocolo SSL\n"
-#~ " contraseña: contraseña para el servidor\n"
-#~ " alias1: primer alias para el servidor\n"
-#~ " alias2: alias alternativo para el servidor\n"
-#~ " alias3: segundo alias alternativo para el servidor\n"
-#~ " nombre_de_usuario: nombre de usuario\n"
-#~ " nombre_real: nombre real del usuario"
-
-#, fuzzy
-#~ msgid "buddy [text]"
-#~ msgstr "texto"
-
-#, fuzzy
-#~ msgid ""
-#~ "buddy: buddy name for chat\n"
-#~ " text: text to send"
-#~ msgstr ""
-#~ "servicio: nombre del servicio\n"
-#~ "texto: texto a enviar"
-
-#, fuzzy
-#~ msgid "connect to Jabber server(s)"
-#~ msgstr "conectarse a un servidor"
-
-#, fuzzy
-#~ msgid ""
-#~ "[-all [-nojoin] | servername [servername ...] [-nojoin] | hostname [-port "
-#~ "port] [-ipv6] [-tls] [-sasl]]"
-#~ msgstr "nombre_del_servidor: nombre del servidor al que conectarse"
-
-#, fuzzy
-#~ msgid ""
-#~ " -all: connect to all servers\n"
-#~ "servername: internal server name to connect\n"
-#~ " -nojoin: do not join any MUC (even if autojoin is enabled on server)\n"
-#~ " hostname: hostname to connect\n"
-#~ " port: port for server (integer, default is 6667)\n"
-#~ " ipv6: use IPv6 protocol\n"
-#~ " tls: use TLS cryptographic protocol\n"
-#~ " saal: use SASL for authentication"
-#~ msgstr "nombre_del_servidor: nombre del servidor al que conectarse"
-
-#, fuzzy
-#~ msgid "disconnect from Jabber server(s)"
-#~ msgstr "desconectarse de un servidor"
-
-#, fuzzy
-#~ msgid "hostname/port or IP/port for server"
-#~ msgstr "nombre de usuario a utilizar en el servidor IRC"
-
-#, fuzzy
-#~ msgid "use TLS cryptographic protocol for server communication"
-#~ msgstr "usar el protocolo IPv6 para la comunicación del servidor"
-
-#, fuzzy
-#~ msgid "password"
-#~ msgstr "contraseña de usuario"
-
-#, fuzzy
-#~ msgid "local alias"
-#~ msgstr "Lista de alias:\n"
-
-#, fuzzy
-#~ msgid ""
-#~ "command(s) to run when connected to server (many commands should be "
-#~ "separated by ';', use '\\;' for a semicolon, special variables $nick, "
-#~ "$muc and $server are replaced by their value)"
-#~ msgstr ""
-#~ "comando(s) a ejecutar cuando se conecte al servidor (muchos comandos "
-#~ "deberí­an ser separados por ';', utilizar '\\;' para un punto y coma)"
-
-#, fuzzy
-#~ msgid ""
-#~ "comma separated list of MUCs to join when connected to server (example: "
-#~ "\"#chan1,#chan2,#chan3 key1,key2\")"
-#~ msgstr ""
-#~ "lista de canales (separados por comas) a unirse cuando se conecte a un "
-#~ "servidor (ejemplo: \"#chan1,#chan2,#chan3 key1,key2\")"
-
-#, fuzzy
-#~ msgid "automatically rejoin MUCs when kicked"
-#~ msgstr "unirse de nuevo automáticamente a los canales cuando sea expulsado"
-
-#~ msgid "use same buffer for all servers"
-#~ msgstr "usar el mismo búfer para todos los servidores"
-
-#, fuzzy
-#~ msgid ""
-#~ "default part message (leaving MUC) ('%v' will be replaced by WeeChat "
-#~ "version in string)"
-#~ msgstr ""
-#~ "mensaje de partida por defecto (abandonando el canal) ('%v' será "
-#~ "reemplazado por la versión de WeeChat en la cadena)"
-
-#, fuzzy
-#~ msgid ""
-#~ "default quit message (disconnecting from server) ('%v' will be replaced "
-#~ "by WeeChat version in string)"
-#~ msgstr ""
-#~ "mensaje de fin por defecto ('%v' será reemplazado por la versión de "
-#~ "WeeChat en la cadena)"
-
-#, fuzzy
-#~ msgid ""
-#~ "allow user to send colors with special codes (^Cb=bold, ^Ccxx=color, "
-#~ "^Ccxx,yy=color+background, ^Cu=underline, ^Cr=reverse)"
-#~ msgstr ""
-#~ "permitir al usuario enviar colores con códigos especiales (%B=negrita, %"
-#~ "Cxx,yy=color, %U=subrayado, %R=invertido) "
-
-#, fuzzy
-#~ msgid "Jabber debug messages"
-#~ msgstr "imprime mensajes de depuración"
-
-#, fuzzy
-#~ msgid "get buffer pointer for a Jabber server/MUC"
-#~ msgstr "lista de canales a unirse cuando se conecte a un servidor"
-
-#, fuzzy
-#~ msgid "list of Jabber servers"
-#~ msgstr "puerto para el servidor IRC"
-
-#, fuzzy
-#~ msgid "list of MUCs for a Jabber server"
-#~ msgstr "lista de canales a unirse cuando se conecte a un servidor"
-
-#, fuzzy
-#~ msgid "list of buddies for a Jabber server or MUC"
-#~ msgstr "lista de canales a unirse cuando se conecte a un servidor"
-
-#, fuzzy
-#~ msgid "%s: this buffer is not a MUC!"
-#~ msgstr "¡Esta ventana no es un canal!\n"
-
-#, fuzzy
-#~ msgid "%s%s: cannot allocate new MUC"
-#~ msgstr "%s no ha sido posible crear un nuevo canal"
-
-#, fuzzy
-#~ msgid "%s%s: reconnecting to server in %d %s"
-#~ msgstr "%s: Reconexión al servidor en %d segundos\n"
-
-#, fuzzy
-#~ msgid "%s%s: connected to %s (%s)"
-#~ msgstr "%s ¡no conectado al servidor \"%s\"!\n"
-
-#, fuzzy
-#~ msgid "%s%s: GnuTLS init error"
-#~ msgstr "%s error de inicialización de gnutls\n"
-
-#, fuzzy
-#~ msgid "%s%s: GnuTLS handshake failed"
-#~ msgstr "%s el handshake gnutls ha fallado\n"
-
-#, fuzzy
-#~ 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"
-
-#, fuzzy
-#~ msgid "Connecting to server %s/%d%s%s%s via %s proxy %s/%d%s..."
-#~ msgstr "Conectando al servidor %s:%d%s%s ví­a %s proxy %s:%d%s...\n"
-
-#, fuzzy
-#~ msgid "%s%s: connecting to server %s/%d%s%s%s..."
-#~ msgstr "%s: conectando al servidor %s:%d%s%s...\n"
-
-#, fuzzy
-#~ msgid ""
-#~ "%s%s: username or server not defined for server \"%s\", cannot connect"
-#~ msgstr "%s usuario \"%s\" no encontrado para el comando \"%s\"\n"
-
-#, fuzzy
-#~ msgid "%s%s: hostname/IP not defined for server \"%s\", cannot connect"
-#~ msgstr "%s usuario \"%s\" no encontrado para el comando \"%s\"\n"
-
-#, fuzzy
-#~ msgid ""
-#~ "%s%s: cannot connect with TLS because iksemel library was not built with "
-#~ "GnuTLS support"
-#~ msgstr ""
-#~ "%s No ha sido posible conectar con SSL debido a que Weechat no fue "
-#~ "compilado con soporte GNUtls\n"
-
-#, fuzzy
-#~ msgid "%s%s: failed to create stream parser"
-#~ msgstr "%s no es posible crear el servidor\n"
-
-#, fuzzy
-#~ msgid "%s%s: failed to create id"
-#~ msgstr "%s no es posible crear el servidor\n"
-
-#, fuzzy
-#~ msgid "%s%s: reconnecting to server..."
-#~ msgstr "%s: Reconectando al servidor...\n"
-
-#, fuzzy
-#~ msgid "%s%s: I/O error (%d)"
-#~ msgstr "%sServidor: %s%s\n"
-
-#, fuzzy
-#~ msgid "%s%s: SASL authentication failed (check SASL option and password)"
-#~ msgstr "No es posible escribir un fichero de log para un búfer\n"
-
-#, fuzzy
-#~ msgid "%s%s: server disconnected"
-#~ msgstr "Servidor %s%s%s creado\n"
-
-#, fuzzy
-#~ msgid "%s%s: stream error"
-#~ msgstr "%sServidor: %s%s\n"
-
-#, fuzzy
-#~ msgid "%s%s: login ok"
-#~ msgstr "%s no es posible crear el servidor\n"
-
-#, fuzzy
-#~ msgid "%s%s: authentication failed (check SASL option and password)"
-#~ msgstr "No es posible escribir un fichero de log para un búfer\n"
-
-#, fuzzy
-#~ msgid ""
-#~ "%sError: plugin \"%s\" is compiled for WeeChat %s and you are running "
-#~ "version %s, failed to load"
-#~ msgstr ""
-#~ "%s función \"weechat_plugin_init\" no encontrada en el plugin \"%s\", "
-#~ "falló al cargar\n"
-
-#, fuzzy
-#~ msgid ""
-#~ "port number (or range of ports) that relay plugin listens on (syntax: a "
-#~ "single port, ie. 5000 or a port range, ie. 5000-5015)"
-#~ msgstr ""
-#~ "restringe el dcc de salida a utilizar únicamente los puertos del rango "
-#~ "especificado (útil para NAT) (sintaxis: un puerto simple, e.g. 5000, o un "
-#~ "rango de puertos, e.g. 5000-5015, un valor vací­o significa cualquier "
-#~ "puerto)"
-
-#, fuzzy
-#~ msgid ""
-#~ "allow user to send colors with special codes (\"^Cb\"=bold, \"^Ccxx"
-#~ "\"=color, \"^Ccxx,yy\"=color+background, \"^Cu\"=underline, \"^Cr"
-#~ "\"=reverse)"
-#~ msgstr ""
-#~ "permitir al usuario enviar colores con códigos especiales (%B=negrita, %"
-#~ "Cxx,yy=color, %U=subrayado, %R=invertido) "
-
-#, fuzzy
-#~ msgid "filtered"
-#~ msgstr "los usuarios han sido desactivados"
-
-#, fuzzy
-#~ msgid "%s%s: unable to set notify level \"%s\" => \"%s\""
-#~ msgstr ""
-#~ "No hay suficiente memoria para el mensaje de la barra de información\n"
-
-#, fuzzy
-#~ msgid "%s%s: missing parameters"
-#~ msgstr "%s falta un argumento para la opción --dir\n"
-
-#, fuzzy
-#~ msgid "%s%s: unknown notify level \"%s\""
-#~ msgstr "%s opción desconocida para el comando \"%s\"\n"
-
-#, fuzzy
-#~ msgid "change notify level for current buffer"
-#~ msgstr "nombre de canal no encontrado para el búfer"
-
-#~ msgid "Notify levels:"
-#~ msgstr "Niveles de notificación:"
-
-#~ msgid "[action [args] | number | [[server] [channel]]]"
-#~ msgstr "[acción [argumentos] | número | [[servidor] [canal]]]"
-
-#, fuzzy
-#~ msgid "%s%s: command \"%s\" must be executed on irc buffer"
-#~ msgstr ""
-#~ "%s el comando \"%s\" no puede ejecutarse en una ventana de servidor\n"
-
-#, fuzzy
-#~ msgid " (used by a plugin)"
-#~ msgstr " (sin plugins)\n"
-
-#, fuzzy
-#~ msgid "%s%s: unknown/missing channel name for \"%s\" command"
-#~ msgstr "%s faltan argumentos para el comando \"%s\"\n"
-
-#~ msgid "nickname [text]"
-#~ msgstr "usuario [texto]"
-
-#~ msgid "data"
-#~ msgstr "datos"
-
-#~ msgid "data: raw data to send"
-#~ msgstr "datos: datos en sucio a enviar"
-
-#, fuzzy
-#~ msgid ""
-#~ "%s%s: cannot connect with TLS because WeeChat was not built with GnuTLS "
-#~ "support"
-#~ msgstr ""
-#~ "%s No ha sido posible conectar con SSL debido a que Weechat no fue "
-#~ "compilado con soporte GNUtls\n"
-
-#, fuzzy
-#~ msgid ""
-#~ "%s%s: cannot connect with SSL since WeeChat was not built with GnuTLS "
-#~ "support"
-#~ msgstr ""
-#~ "%s No ha sido posible conectar con SSL debido a que Weechat no fue "
-#~ "compilado con soporte GNUtls\n"
-
-#, fuzzy
-#~ msgid "list of Jabber ignore"
-#~ msgstr "puerto para el servidor IRC"
-
-#, fuzzy
-#~ msgid "1 if string is a Jabber channel"
-#~ msgstr "lista de usuarios en el canal"
-
-#, fuzzy
-#~ msgid "get nick from Jabber host"
-#~ msgstr "banea usuarios o máquinas"
-
-#, fuzzy
-#~ msgid "list of nicks for a Jabber channel"
-#~ msgstr "lista de usuarios en el canal"
-
-#, fuzzy
-#~ msgid ""
-#~ "[list [servername]] | [listfull [servername]] | [add username server[/"
-#~ "port] [-auto | -noauto] [-ipv6] [-ssl]] | [copy servername newservername] "
-#~ "| [rename servername newservername] | [keep servername] | [del "
-#~ "servername] | [deloutq] | [switch]"
-#~ msgstr ""
-#~ "[nombre_de_servidor] | [nombre_de_servidor nombre/IP puerto [-auto | -"
-#~ "noauto] [-ipv6] [-ssl] [-pwd contraseña] [-nicks alias1 alias2 alias3] [-"
-#~ "username nombre de usuario] [-realname nombre_real] [-command comando] [-"
-#~ "autojoin canal[,canal]] ] | [del nombre_de_servidor]"
-
-#, fuzzy
-#~ msgid "nicknames to use on Jabber server (separated by comma)"
-#~ msgstr "nombre de usuario a utilizar en el servidor IRC"
-
-#, fuzzy
-#~ msgid "user name to use on Jabber server"
-#~ msgstr "nombre de usuario para el servidor IRC"
-
-#, fuzzy
-#~ msgid "real name to use on Jabber server"
-#~ msgstr "nombre real para el servidor IRC"
-
-#, fuzzy
-#~ msgid "send unknown commands to Jabber server"
-#~ msgstr "nombre de usuario para el servidor IRC"
-
-#, fuzzy
-#~ msgid "password for Jabber server"
-#~ msgstr "contraseña para el servidor proxy"
-
-#~ msgid " . type: boolean\n"
-#~ msgstr " . tipo: booleano\n"
-
-#, fuzzy
-#~ msgid " . values: \"on\" or \"off\"\n"
-#~ msgstr " . valores: 'on' u 'off'\n"
-
-#, fuzzy
-#~ msgid " . default value: \"%s\"\n"
-#~ msgstr " . valor por defecto: '%s'\n"
-
-#~ msgid " . type: string\n"
-#~ msgstr " . tipo: cadena\n"
-
-#~ msgid " . values: "
-#~ msgstr " . valores: "
-
-#~ msgid " . type: integer\n"
-#~ msgstr " . tipo: entero\n"
-
-#~ msgid " . values: between %d and %d\n"
-#~ msgstr " . valores: entre %d y %d\n"
-
-#~ msgid " . default value: %d\n"
-#~ msgstr " . valor por defecto: %d\n"
-
-#~ msgid " . values: any string\n"
-#~ msgstr " . valores: cualquier cadena\n"
-
-#, fuzzy
-#~ msgid " . type: char\n"
-#~ msgstr " . tipo: color\n"
-
-#, fuzzy
-#~ msgid " . values: any char\n"
-#~ msgstr " . valores: cualquier cadena\n"
-
-#, fuzzy
-#~ msgid " . values: any string (limit: %d chars)\n"
-#~ msgstr " . valores: cualquier cadena\n"
-
-#~ msgid " . type: color\n"
-#~ msgstr " . tipo: color\n"
-
-#, fuzzy
-#~ msgid " . values: color (depends on GUI used)\n"
-#~ msgstr " . valores: entre %d y %d\n"
-
-#~ msgid " . description: %s\n"
-#~ msgstr " . descripción: %s\n"
-
-#, fuzzy
-#~ msgid "%sWarning: %s, line %d: invalid syntax, missing \"=\""
-#~ msgstr "%s %s, lí­nea %d: sintaxis inválida, falta \"=\"\n"
-
-#, fuzzy
-#~ msgid "value not defined"
-#~ msgstr "Ningún alias definido.\n"
-
-#, fuzzy
-#~ msgid "hidden"
-#~ msgstr "(oculto)"
-
-#, fuzzy
-#~ msgid ""
-#~ "%s%s: error creating option \"%s\" for server \"%s\" (server not found)"
-#~ msgstr "%s opción de configuración \"%s\" no encontrada\n"
-
-#, fuzzy
-#~ msgid "display nicklist (on buffers with nicklist enabled)"
-#~ msgstr "mostrar ventana de usuarios (para las ventanas de canal)"
-
-#, fuzzy
-#~ msgid ""
-#~ "max size for nicklist (width or height, depending on nicklist_position (0 "
-#~ "= no max size; if min = max and > 0, then size is fixed))"
-#~ msgstr ""
-#~ "tamaño máximo para la ventana de usuarios (ancho o alto, dependiendo de "
-#~ "look_nicklist_position (0 = sin tamaño máximo, si min == max y > 0, "
-#~ "entonces se fija el tamaño))"
-
-#, fuzzy
-#~ msgid ""
-#~ "min size for nicklist (width or height, depending on nicklist_position (0 "
-#~ "= no min size))"
-#~ msgstr ""
-#~ "tamaño mí­nimo para la ventana de usuarios (ancho o alto, dependiendo de "
-#~ "look_nicklist_position (0 = sin tamaño mí­nimo))"
-
-#~ msgid "nicklist position (top, left, right (default), bottom)"
-#~ msgstr ""
-#~ "posición de la ventana de usuarios (arriba (top), izquierda (left), "
-#~ "derecha (right, por defecto), abajo (bottom))"
-
-#, fuzzy
-#~ msgid "%sBinary file not found: \"%s\""
-#~ msgstr "%s plugin \"%s\" no encontrado\n"
-
-#, fuzzy
-#~ msgid "Upgrading WeeChat..."
-#~ msgstr "Actualizando Weechat...\n"
-
-#, fuzzy
-#~ msgid "timeout for relay request (in seconds)"
-#~ msgstr "tiempo de espera para la petición dcc (en segundos)"
-
-#, fuzzy
-#~ msgid "Open buffer with relay clients list"
-#~ msgstr "Búfers abiertos:\n"
-
-#, fuzzy
-#~ msgid "Open buffer with xfer list"
-#~ msgstr "Búfers abiertos:\n"
-
-#, fuzzy
-#~ msgid "%s%s: disconnecting client @ %s"
-#~ msgstr "%s: Reconexión al servidor en %d segundos\n"
-
-#, fuzzy
-#~ msgid " [Q] Close client list"
-#~ msgstr " [Q] Cerrar la vista DCC"
-
-#, fuzzy
-#~ msgid "use a proxy server"
-#~ msgstr "nombre de usuario para el servidor proxy"
-
-#, fuzzy
-#~ msgid "text color for title bar"
-#~ msgstr "color para la barra de tí­tulo"
-
-#, fuzzy
-#~ msgid "background color for title bar"
-#~ msgstr "color de fondo para la barra de tí­tulo"
-
-#, fuzzy
-#~ msgid "background color for status bar"
-#~ msgstr "color para la barra de estado"
-
-#, fuzzy
-#~ msgid "text color for status bar delimiters"
-#~ msgstr "color para los delimitadores de la barra de estado"
-
-#, fuzzy
-#~ msgid "text color for input line"
-#~ msgstr "color para el texto de entrada"
-
-#, fuzzy
-#~ msgid "background color for input line"
-#~ msgstr "color para el texto de entrada"
-
-#, fuzzy
-#~ msgid "text color for server name in input line"
-#~ msgstr "color para el nombre del servidor"
-
-#, fuzzy
-#~ msgid "text color for delimiters in input line"
-#~ msgstr "color para los delimitadores de la barra de información"
-
-#, fuzzy
-#~ msgid "text color for nicklist"
-#~ msgstr "color para el nombre de usuario"
-
-#, fuzzy
-#~ msgid "background color for nicklist"
-#~ msgstr "color de fondo para los nombres de usuario"
-
-#, fuzzy
-#~ msgid "debug: \"%s\" => %d"
-#~ msgstr "Alias \"%s\" eliminado\n"
-
-#, fuzzy
-#~ msgid "%s: debug enabled"
-#~ msgstr "La tuberí­a FIFO está abierta\n"
-
-#, fuzzy
-#~ msgid "dump | buffer | windows | text"
-#~ msgstr "volcar | ventanas"
-
-#~ msgid "automatically log server messages"
-#~ msgstr "registrar automáticamente los mensajes de servidor"
-
-#~ msgid "automatically log channel chats"
-#~ msgstr "registrar automáticamente las conversaciones de canal"
-
-#~ msgid "automatically log private chats"
-#~ msgstr "registrar automáticamente las conversaciones privadas"
-
-#, fuzzy
-#~ msgid "New level for buffer \"%s\" is %d"
-#~ msgstr "fecha y hora para las búfers"
-
-#, fuzzy
-#~ msgid "Notify level: %s => %s"
-#~ msgstr "Niveles de notificación:"
-
-#, fuzzy
-#~ msgid "Notify level: %s: removed"
-#~ msgstr "Niveles de notificación:"
-
-#, fuzzy
-#~ msgid "Error: unable to create \"%s\" directory\n"
-#~ msgstr "%s no es posible crear el directorio \"%s\"\n"
-
-#, fuzzy
-#~ msgid "%sError: filter not \"%s\" found"
-#~ msgstr "%s plugin \"%s\" no encontrado\n"
-
-#, fuzzy
-#~ msgid "Filter added"
-#~ msgstr "los usuarios han sido desactivados"
-
-#, fuzzy
-#~ msgid "%sError: wrong filter number"
-#~ msgstr "%s número de búfer incorrecto\n"
-
-#, fuzzy
-#~ msgid "Message filtering is enabled"
-#~ msgstr "Ningún alias definido.\n"
-
-#, fuzzy
-#~ msgid "Message filtering is disabled"
-#~ msgstr "Ningún alias definido.\n"
-
-#, fuzzy
-#~ msgid "Filters are disabled"
-#~ msgstr "los usuarios han sido desactivados"
-
-#~ msgid ""
-#~ "format for input prompt ('%c' is replaced by channel or server, '%n' by "
-#~ "nick and '%m' by nick modes)"
-#~ msgstr ""
-#~ "formato para el prompt de entrada ('%c' es reemplazado por un canal o "
-#~ "servidor, '%n' por un nick y '%m' por modos de nick)"
-
-#, fuzzy
-#~ msgid "%s: creating new speller for lang \"%s\""
-#~ msgstr ""
-#~ "No hay suficiente memoria para el mensaje de la barra de información\n"
-
-#, fuzzy
-#~ msgid "Charset: %s, %s => %s"
-#~ msgstr "Alias \"%s\" => \"%s\" creado\n"
-
-#~ msgid "-MORE-"
-#~ msgstr "-MÁS-"
diff --git a/po/fr.po b/po/fr.po
index 3f6606684..b4c158f7b 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat 0.3.2-dev\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
-"POT-Creation-Date: 2010-02-15 11:45+0100\n"
-"PO-Revision-Date: 2010-02-15 10:01+0100\n"
+"POT-Creation-Date: 2010-02-18 19:55+0100\n"
+"PO-Revision-Date: 2010-02-18 19:56+0100\n"
"Last-Translator: FlashCode <flashcode@flashtux.org>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
"MIME-Version: 1.0\n"
@@ -4169,6 +4169,11 @@ msgstr "nom d'utilisateur pour l'authentification SASL"
msgid "password for SASL authentication"
msgstr "mot de passe pour l'authentification SASL"
+msgid "timeout (in seconds) before giving up SASL authentication"
+msgstr ""
+"délai d'attende maximum (en secondes) avant d'abandonner l'authentification "
+"SASL"
+
msgid "automatically connect to server when WeeChat is starting"
msgstr "connexion automatique au serveur quand WeeChat démarre"
@@ -4568,6 +4573,13 @@ msgid "%s%s: this buffer is not a channel!"
msgstr "%s%s: ce tampon n'est pas un canal !"
#, c-format
+msgid ""
+"%s%s: error building answer for SASL authentication, using mechanism \"%s\""
+msgstr ""
+"%s%s: erreur de construction de la réponse pour l'authentification SASL, en "
+"utilisant le mécanisme \"%s\""
+
+#, c-format
msgid "%s%s: client capability, server supports: %s"
msgstr "%s%s: client capability, le serveur supporte: %s"
@@ -4584,6 +4596,18 @@ msgid "%s%s: client capability, enabled: %s"
msgstr "%s%s: client capability, activé: %s"
#, c-format
+msgid ""
+"%s%s: cannot authenticate with SASL and mechanism DH-BLOWFISH because "
+"WeeChat was not built with libgcrypt support"
+msgstr ""
+"%s%s: impossible de s'authentifier avec SASL et le mécanisme DH-BLOWFISH car "
+"WeeChat n'a pas été construit avec le support libgcrypt"
+
+#, c-format
+msgid "%s%s: client capability, refused: %s"
+msgstr "%s%s: client capability, refusé: %s"
+
+#, c-format
msgid "%sYou have been invited to %s%s%s by %s%s%s"
msgstr "%sVous avez été invité sur %s%s%s par %s%s%s"
@@ -6341,6 +6365,3 @@ msgstr "Paramètres"
msgid "Pointer"
msgstr "Pointeur"
-
-#~ msgid "host"
-#~ msgstr "nom d'hôte"
diff --git a/po/hu.po b/po/hu.po
index fff8970ea..e80cf2576 100644
--- a/po/hu.po
+++ b/po/hu.po
@@ -12,8 +12,8 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat 0.3.2-dev\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
-"POT-Creation-Date: 2010-02-15 11:45+0100\n"
-"PO-Revision-Date: 2010-01-23 11:57+0100\n"
+"POT-Creation-Date: 2010-02-18 19:55+0100\n"
+"PO-Revision-Date: 2010-02-18 19:54+0100\n"
"Last-Translator: Andras Voroskoi <voroskoi@frugalware.org>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
"MIME-Version: 1.0\n"
@@ -3972,6 +3972,10 @@ msgstr "SSL használata a a kapcsolathoz"
msgid "password for SASL authentication"
msgstr "SSL használata a a kapcsolathoz"
+#, fuzzy
+msgid "timeout (in seconds) before giving up SASL authentication"
+msgstr "SSL használata a a kapcsolathoz"
+
msgid "automatically connect to server when WeeChat is starting"
msgstr "automatikus csatlakozás a szerverhez a WeeChat indulásakor"
@@ -4375,6 +4379,11 @@ msgid "%s%s: this buffer is not a channel!"
msgstr "Ez az ablak nem egy szoba!\n"
#, c-format
+msgid ""
+"%s%s: error building answer for SASL authentication, using mechanism \"%s\""
+msgstr ""
+
+#, c-format
msgid "%s%s: client capability, server supports: %s"
msgstr ""
@@ -4391,6 +4400,18 @@ msgid "%s%s: client capability, enabled: %s"
msgstr ""
#, fuzzy, c-format
+msgid ""
+"%s%s: cannot authenticate with SASL and mechanism DH-BLOWFISH because "
+"WeeChat was not built with libgcrypt support"
+msgstr ""
+"%s nem sikerült SSL használattal kapcsolódni, mert a WeeChat GNUtls "
+"támogatás nélkül lett fordítva\n"
+
+#, fuzzy, c-format
+msgid "%s%s: client capability, refused: %s"
+msgstr "Nem sikerült a(z) \"%s\" naplófájlt írni\n"
+
+#, fuzzy, c-format
msgid "%sYou have been invited to %s%s%s by %s%s%s"
msgstr "Meghívást kapott a %s%s%s szobába %s%s felhasználótól\n"
@@ -6096,841 +6117,3 @@ msgstr "fogadó típusa [paraméterek]"
#, fuzzy
msgid "Pointer"
msgstr "perc"
-
-#~ msgid "[-o]"
-#~ msgstr "[-o]"
-
-#, fuzzy
-#~ msgid "-o: send uptime to current buffer as input"
-#~ msgstr "-o: a futásidő mint IRC üzenet elküldése az aktuális szobába"
-
-#, fuzzy
-#~ msgid "time format for buffers"
-#~ msgstr "a pufferek időbélyege"
-
-#, fuzzy
-#~ msgid "%s%s: cannot find nick for sending message"
-#~ msgstr "%s nem található név az üzenet küldéséhez\n"
-
-#~ msgid "text: text to send"
-#~ msgstr "szöveg: küldendő szöveg"
-
-#, fuzzy
-#~ msgid "%s%s: error creating msgbuffer \"%s\" => \"%s\""
-#~ msgstr "%s nincs elég memória az információs pult üzenethez\n"
-
-#, fuzzy
-#~ msgid "%s%s: error: \"%s\""
-#~ msgstr "%sSzerver: %s%s\n"
-
-#, fuzzy
-#~ msgid "%s%s: missing argument for \"%s\" option"
-#~ msgstr "%s hiányzó argumentum a(z) \"%s\" opciónak\n"
-
-#, fuzzy
-#~ msgid "%s%s unable to run function \"%s\""
-#~ msgstr "Nem sikerült a(z) \"%s\" naplófájlt írni\n"
-
-#, fuzzy
-#~ msgid "%sUnknown CTCP %s%s%s received from %s%s%s: %s"
-#~ msgstr "Ismeretlen CTCP %s%s%s érkezett innen: %s%s"
-
-#, fuzzy
-#~ msgid "%sUnknown CTCP %s%s%s received from %s%s%s"
-#~ msgstr "Ismeretlen CTCP %s%s%s érkezett innen: %s%s"
-
-#, fuzzy
-#~ msgid "list of %s scripts"
-#~ msgstr "Aliaszok listája:\n"
-
-#, fuzzy
-#~ msgid "%s%s: bind error on port %d"
-#~ msgstr "%s nem sikerült a csatornát létrehozni\n"
-
-#, fuzzy
-#~ msgid ""
-#~ "port number (or range of ports) that relay plugin listens on (syntax: a "
-#~ "single port, ie. 5000 or a port range, ie. 5000-5015, it's recommended to "
-#~ "use ports greater than 1024, because only root can use ports below 1024)"
-#~ msgstr ""
-#~ "korlátozza a dcc-t, hogy csak egy bizonyos tartományban lévő portokat "
-#~ "használja (NAT esetén hasznos) (szintaxis: egyetlen port, pl. 5000 vagy "
-#~ "egy port intervallum, pl. 5000-5015, üresen hagyva tetszőleges port)"
-
-#, fuzzy
-#~ msgid "%s%s: cannot find available port for listening"
-#~ msgstr "%s nem sikerült elérhető portot találni a DCC-hez\n"
-
-#~ msgid ""
-#~ " channel: channel where user is\n"
-#~ "nickname: nickname to kick and ban\n"
-#~ " comment: comment for kick"
-#~ msgstr ""
-#~ " szoba: a szoba, ahol a felhasználó tartózkodik\n"
-#~ " név: a kirúgandó és kitiltandó neve\n"
-#~ "megjegyzés: megjegyzés a kirúgáshoz"
-
-#, fuzzy
-#~ msgid "list of alias"
-#~ msgstr "Aliaszok listája:\n"
-
-#~ msgid "alias_name"
-#~ msgstr "alias_név"
-
-#, fuzzy
-#~ msgid "Alias:"
-#~ msgstr "Aliasz:\n"
-
-#, fuzzy
-#~ msgid "No alias found"
-#~ msgstr "Nem találtam aliaszt.\n"
-
-#, fuzzy
-#~ msgid "%s%s: error sending data to IRC server (%s)"
-#~ msgstr "%s adatküldési hiba az IRC szerveren\n"
-
-#, fuzzy
-#~ msgid "%s%s: cannot read data from socket, disconnecting from server..."
-#~ msgstr ""
-#~ "%s nem sikerült adatot olvasni a csatornából, kilépés a szerverről...\n"
-
-#~ msgid "nicks"
-#~ msgstr "név"
-
-#~ msgid "ops"
-#~ msgstr "operátor"
-
-#~ msgid "halfops"
-#~ msgstr "féloperátor"
-
-#~ msgid "voices"
-#~ msgstr "voice"
-
-#, fuzzy
-#~ msgid "%sCTCP %sVERSION%s reply from %s%s%s: %s"
-#~ msgstr "CTCP %sVERSION%s válasz %s%s%s felhasználótól: %s\n"
-
-#, fuzzy
-#~ msgid "%sCTCP %sVERSION%s received from %s%s%s: %s"
-#~ msgstr "CTCP %sVERSION%s válasz innen: %s%s"
-
-#, fuzzy
-#~ msgid "%sCTCP %sVERSION%s received from %s%s"
-#~ msgstr "CTCP %sVERSION%s válasz innen: %s%s"
-
-#, fuzzy
-#~ msgid "%sReceived a CTCP %sSOUND%s \"%s\" from %s%s"
-#~ msgstr "CTCP %sSOUND%s (\"%s\") érkezett innen: %s%s\n"
-
-#, fuzzy
-#~ msgid "%sCTCP %sPING%s received from %s%s"
-#~ msgstr "CTCP %sPING%s érkezett innen: %s%s\n"
-
-#, fuzzy
-#~ msgid "text color for nick name in input line"
-#~ msgstr "nevek színe"
-
-#, fuzzy
-#~ msgid "text color for nicklist separator"
-#~ msgstr "névelválasztó színe"
-
-#, fuzzy
-#~ msgid "servers"
-#~ msgstr "szerver"
-
-#, fuzzy
-#~ msgid "%s%s: auto-reconnection is cancelled"
-#~ msgstr "automata újracsatlakozás megszakítva\n"
-
-#, fuzzy
-#~ msgid "list, add or remove Jabber servers"
-#~ msgstr "szerverek listázása, hozzáadása vagy eltávolítása"
-
-#, fuzzy
-#~ msgid ""
-#~ "[list [servername]] | [listfull [servername]] | [add servername username "
-#~ "hostname[/port] password [-auto | -noauto] [-ipv6] [-tls] [-sasl]] | "
-#~ "[copy servername newservername] | [rename servername newservername] | "
-#~ "[keep servername] | [del servername] | [switch]"
-#~ msgstr ""
-#~ "[list [szervernév]] | [listfull [szervernév]] | [add szervernév gépnév [-"
-#~ "port port] [-temp] [-auto | -noauto] [-ipv6] [-ssl] [-pwd jelszó] [-nicks "
-#~ "név1 név2 név3] [-username felhasználó] [-realname valódinév] [-command "
-#~ "parancs] [-autojoin szoba[,szoba]] ] | [copy szervernév újszervernév] | "
-#~ "[rename szervernév újszervernév] | [keep szervernév] | [del szervernév]"
-
-#, fuzzy
-#~ msgid ""
-#~ " list: list servers (no parameter implies this list)\n"
-#~ " listfull: list servers with detailed info for each server\n"
-#~ " add: create a new server\n"
-#~ "servername: server name, for internal and display use\n"
-#~ " username: username to use on server\n"
-#~ " hostname: name or IP address of server, with optional port (default: "
-#~ "5222)\n"
-#~ " password: password for username on server\n"
-#~ " auto: automatically connect to server when WeeChat starts\n"
-#~ " noauto: do not connect to server when WeeChat starts (default)\n"
-#~ " ipv6: use IPv6 protocol\n"
-#~ " tls: use TLS cryptographic protocol\n"
-#~ " sasl: use SASL for authentication\n"
-#~ " copy: duplicate a server\n"
-#~ " rename: rename a server\n"
-#~ " keep: keep server in config file (for temporary servers only)\n"
-#~ " del: delete a server\n"
-#~ " switch: switch active server (when one buffer is used for all "
-#~ "servers, default key: alt-s on server buffer)\n"
-#~ "\n"
-#~ "Examples:\n"
-#~ " /jabber listfull\n"
-#~ " /jabber add jabberfr user jabber.fr/5222 password -tls\n"
-#~ " /jabber copy jabberfr jabberfr2\n"
-#~ " /jabber rename jabberfr jabbfr\n"
-#~ " /jabber del jabberfr\n"
-#~ " /jabber switch"
-#~ msgstr ""
-#~ " list: szerverek listázása (paraméter nélkül is ez a parancs "
-#~ "hívódik meg)\n"
-#~ " listfull: szerverek listázása részletes információkkal együtt\n"
-#~ " add: új szerver hozzáadása\n"
-#~ " szervernév: szerver neve, saját használatra, megjelenítéshez\n"
-#~ " gépnév: a szerver neve vagy IP-címe\n"
-#~ " port: a szerver portja (egész szám, alapértelmezetten 6667)\n"
-#~ " temp: ideiglenes szerver létrehozása (nem kerül be a "
-#~ "beállítófájlba)\n"
-#~ " auto: automatikus kapcsolódás a szerverhez a WeeChat "
-#~ "indulásakor\n"
-#~ " noauto: ne kapcsolódjon a szerverhez a WeeChat indulásakor "
-#~ "(alapértelmezett)\n"
-#~ " ipv6: IPv6 protokoll használata\n"
-#~ " ssl: SSL protokoll használata\n"
-#~ " jelszó: jelszó a szerverhez\n"
-#~ " név1: elsődleges név a szerveren\n"
-#~ " név2: alternatív név a szerveren\n"
-#~ " név3: második alternatív név a szerveren\n"
-#~ "felhasználónév: felhasználónév a szerveren\n"
-#~ " valódi név: a felhasználó valódi neve\n"
-#~ " copy: szerver másolása\n"
-#~ " rename: szerver átnevezése\n"
-#~ " keep: szerver mentése a beállítófájlba (csak ideiglenes "
-#~ "szervereknél)\n"
-#~ " del: szerver törlése\n"
-#~ " deloutq: a kimenő üzenettár törlése minden szerverre (minden "
-#~ "üzenet amit a WeeChat küldeni készül)"
-
-#, fuzzy
-#~ msgid "buddy [text]"
-#~ msgstr "szöveg"
-
-#, fuzzy
-#~ msgid ""
-#~ "buddy: buddy name for chat\n"
-#~ " text: text to send"
-#~ msgstr ""
-#~ "szolgáltatás: szolgáltatás neve\n"
-#~ " szöveg: küldendő üzenet"
-
-#, fuzzy
-#~ msgid "connect to Jabber server(s)"
-#~ msgstr "csatlakozás a szerver(ek)hez"
-
-#, fuzzy
-#~ msgid ""
-#~ "[-all [-nojoin] | servername [servername ...] [-nojoin] | hostname [-port "
-#~ "port] [-ipv6] [-tls] [-sasl]]"
-#~ msgstr ""
-#~ "[-all [-nojoin] | szervernév [szervernév ...] [-nojoin] | gépnév [-port "
-#~ "port] [-ipv6] [-ssl]]"
-
-#, fuzzy
-#~ msgid ""
-#~ " -all: connect to all servers\n"
-#~ "servername: internal server name to connect\n"
-#~ " -nojoin: do not join any MUC (even if autojoin is enabled on server)\n"
-#~ " hostname: hostname to connect\n"
-#~ " port: port for server (integer, default is 6667)\n"
-#~ " ipv6: use IPv6 protocol\n"
-#~ " tls: use TLS cryptographic protocol\n"
-#~ " saal: use SASL for authentication"
-#~ msgstr ""
-#~ " -all: kapcsolódás minden szerverhez\n"
-#~ "szervernév: a belső szervernév amihez kapcsolódik\n"
-#~ " -nojoin: ne lépjen be egyik szobába se (még ha az automata belépés be "
-#~ "is van kapcsolva a szerveren) gépnév: gépnév amihez csatlakozik, "
-#~ "ideiglenes szerver létrehozása\n"
-#~ " port: a szerver portja (egész szám, alapértelmezetten 6667)\n"
-#~ " ipv6: IPv6 protokoll használata\n"
-#~ " ssl: SSL protokoll használata"
-
-#, fuzzy
-#~ msgid "disconnect from Jabber server(s)"
-#~ msgstr "kilépés a szerver(ek)ről"
-
-#, fuzzy
-#~ msgid "hostname/port or IP/port for server"
-#~ msgstr "felhasználónév az IRC szerveren"
-
-#, fuzzy
-#~ msgid "use TLS cryptographic protocol for server communication"
-#~ msgstr "IPv6 protokoll használata a kapcsolathoz"
-
-#, fuzzy
-#~ msgid "password"
-#~ msgstr "felhasználó jelszó"
-
-#, fuzzy
-#~ msgid "local alias"
-#~ msgstr "Aliaszok listája:\n"
-
-#, fuzzy
-#~ msgid ""
-#~ "command(s) to run when connected to server (many commands should be "
-#~ "separated by ';', use '\\;' for a semicolon, special variables $nick, "
-#~ "$muc and $server are replaced by their value)"
-#~ msgstr ""
-#~ "szerverre csatlakozáskor futtatandó parancs(ok) (több parancs esetén "
-#~ "azokat ';'-vel kell elválasztani, használja a '\\;' sorozatot, ha "
-#~ "pontosvesszőtszeretne írni, a $nick, $channel és $server szavak helyére "
-#~ "azok értéke kerül)"
-
-#, fuzzy
-#~ msgid ""
-#~ "comma separated list of MUCs to join when connected to server (example: "
-#~ "\"#chan1,#chan2,#chan3 key1,key2\")"
-#~ msgstr ""
-#~ "szobák vesszővel elválasztott listája ahová be akarunk lépni csatlakozás "
-#~ "után (például: \"#szoba1,#szoba2,#szoba3 kulcs1,kulcs2\")"
-
-#, fuzzy
-#~ msgid "automatically rejoin MUCs when kicked"
-#~ msgstr "automatikus visszalépés a szobába kirúgáskor"
-
-#~ msgid "use same buffer for all servers"
-#~ msgstr "ugyanazon puffer használata minden szerverhez"
-
-#~ msgid "smart completion for nicks (completes with last speakers first)"
-#~ msgstr "okos névkiegészítés (először az utolsó partnerre egészít ki)"
-
-#, fuzzy
-#~ msgid ""
-#~ "default part message (leaving MUC) ('%v' will be replaced by WeeChat "
-#~ "version in string)"
-#~ msgstr ""
-#~ "alapértelmezett távozó üzenet (szoba elhagyásakor) (a '%v' változó a "
-#~ "WeeChat verziójára cserélődik)"
-
-#, fuzzy
-#~ msgid ""
-#~ "default quit message (disconnecting from server) ('%v' will be replaced "
-#~ "by WeeChat version in string)"
-#~ msgstr ""
-#~ "alapértelmezett kilépő üzenet (a '%v' változó a WeeChat verziójára "
-#~ "cserélődik)"
-
-#~ msgid ""
-#~ "allow user to send colors with special codes (^Cb=bold, ^Ccxx=color, "
-#~ "^Ccxx,yy=color+background, ^Cu=underline, ^Cr=reverse)"
-#~ msgstr ""
-#~ "színküldés engedélyezése speciális karakterekkel (^Cb=félkövér, "
-#~ "^Ccxx=szín, ^Cxx,yy=szín+háttérszín ^Cu=aláhúzás, ^Cr=fordított)"
-
-#, fuzzy
-#~ msgid "Jabber debug messages"
-#~ msgstr "hibakereső üzenetek megjelenítése"
-
-#, fuzzy
-#~ msgid "list of Jabber servers"
-#~ msgstr "IRC szerver portja"
-
-#, fuzzy
-#~ msgid "list of MUCs for a Jabber server"
-#~ msgstr "szobák listája ahová be akarunk lépni csatlakozás után"
-
-#, fuzzy
-#~ msgid "list of buddies for a Jabber server or MUC"
-#~ msgstr "szobák listája ahová be akarunk lépni csatlakozás után"
-
-#, fuzzy
-#~ msgid "%s: this buffer is not a MUC!"
-#~ msgstr "Ez az ablak nem egy szoba!\n"
-
-#, fuzzy
-#~ msgid "%s%s: cannot allocate new MUC"
-#~ msgstr "%s nem sikerült új csatornát lefoglalni"
-
-#, fuzzy
-#~ msgid "%s%s: reconnecting to server in %d %s"
-#~ msgstr "%s: Újracsatlakozás a szerverhez %d másodperc múlva\n"
-
-#, fuzzy
-#~ msgid "%s%s: connected to %s (%s)"
-#~ msgstr "%s nincs csatlakozva a \"%s\" szerverhez!\n"
-
-#, fuzzy
-#~ msgid "%s%s: GnuTLS init error"
-#~ msgstr "%s gnutls inicializációs hiba\n"
-
-#, fuzzy
-#~ msgid "%s%s: GnuTLS handshake failed"
-#~ msgstr "%s gnutls kézfogás sikertelen\n"
-
-#, fuzzy
-#~ 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:%d%s...\n"
-
-#, fuzzy
-#~ msgid "Connecting to server %s/%d%s%s%s via %s proxy %s/%d%s..."
-#~ msgstr ""
-#~ "Csatlakozás a(z) %s:%d%s%s szerverhez %s proxy kiszolgálón keresztül: %s:%"
-#~ "d%s...\n"
-
-#, fuzzy
-#~ msgid "%s%s: connecting to server %s/%d%s%s%s..."
-#~ msgstr "%s: csatlakozás a(z) %s:%d%s%s szerverhez...\n"
-
-#, fuzzy
-#~ msgid ""
-#~ "%s%s: username or server not defined for server \"%s\", cannot connect"
-#~ msgstr "%s név \"%s\" nem található a \"%s\" parancshoz\n"
-
-#, fuzzy
-#~ msgid "%s%s: hostname/IP not defined for server \"%s\", cannot connect"
-#~ msgstr "%s név \"%s\" nem található a \"%s\" parancshoz\n"
-
-#, fuzzy
-#~ msgid ""
-#~ "%s%s: cannot connect with TLS because iksemel library was not built with "
-#~ "GnuTLS support"
-#~ msgstr ""
-#~ "%s nem sikerült SSL használattal kapcsolódni, mert a WeeChat GNUtls "
-#~ "támogatás nélkül lett fordítva\n"
-
-#, fuzzy
-#~ msgid "%s%s: failed to create stream parser"
-#~ msgstr "%s nem sikerült a szervert létrehozni\n"
-
-#, fuzzy
-#~ msgid "%s%s: failed to create id"
-#~ msgstr "%s DCC: nem sikerült a csövet létrehozni\n"
-
-#, fuzzy
-#~ msgid "%s%s: reconnecting to server..."
-#~ msgstr "%s: Újracsatlakozás a szerverhez...\n"
-
-#, fuzzy
-#~ msgid "%s%s: I/O error (%d)"
-#~ msgstr "%sSzerver: %s%s\n"
-
-#, fuzzy
-#~ msgid "%s%s: SASL authentication failed (check SASL option and password)"
-#~ msgstr "Nem sikerült a(z) \"%s\" naplófájlt írni\n"
-
-#, fuzzy
-#~ msgid "%s%s: server disconnected"
-#~ msgstr "A %s%s%s szerver létrehozva\n"
-
-#, fuzzy
-#~ msgid "%s%s: stream error"
-#~ msgstr "%sSzerver: %s%s\n"
-
-#, fuzzy
-#~ msgid "%s%s: login ok"
-#~ msgstr "%s DCC: nem sikerült forkolni\n"
-
-#, fuzzy
-#~ msgid "%s%s: authentication failed (check SASL option and password)"
-#~ msgstr "Nem sikerült a(z) \"%s\" naplófájlt írni\n"
-
-#, fuzzy
-#~ msgid ""
-#~ "%sError: plugin \"%s\" is compiled for WeeChat %s and you are running "
-#~ "version %s, failed to load"
-#~ msgstr ""
-#~ "%s a \"weechat_plugin_init\" függvény nem található a \"%s\" modulban, "
-#~ "betöltés sikertelen\n"
-
-#, fuzzy
-#~ msgid ""
-#~ "port number (or range of ports) that relay plugin listens on (syntax: a "
-#~ "single port, ie. 5000 or a port range, ie. 5000-5015)"
-#~ msgstr ""
-#~ "korlátozza a dcc-t, hogy csak egy bizonyos tartományban lévő portokat "
-#~ "használja (NAT esetén hasznos) (szintaxis: egyetlen port, pl. 5000 vagy "
-#~ "egy port intervallum, pl. 5000-5015, üresen hagyva tetszőleges port)"
-
-#, fuzzy
-#~ msgid ""
-#~ "allow user to send colors with special codes (\"^Cb\"=bold, \"^Ccxx"
-#~ "\"=color, \"^Ccxx,yy\"=color+background, \"^Cu\"=underline, \"^Cr"
-#~ "\"=reverse)"
-#~ msgstr ""
-#~ "színküldés engedélyezése speciális karakterekkel (^Cb=félkövér, "
-#~ "^Ccxx=szín, ^Cxx,yy=szín+háttérszín ^Cu=aláhúzás, ^Cr=fordított)"
-
-#, fuzzy
-#~ msgid "filtered"
-#~ msgstr "a felhasználók le lettek tiltva"
-
-#, fuzzy
-#~ msgid "%s%s: unable to set notify level \"%s\" => \"%s\""
-#~ msgstr "%s nincs elég memória az információs pult üzenethez\n"
-
-#, fuzzy
-#~ msgid "%s%s: missing parameters"
-#~ msgstr "%s hiányzó argumentum a(z) \"%s\" opciónak\n"
-
-#, fuzzy
-#~ msgid "%s%s: unknown notify level \"%s\""
-#~ msgstr "%s ismeretlen billentyűparancs \"%s\"\n"
-
-#, fuzzy
-#~ msgid "change notify level for current buffer"
-#~ msgstr "szobanév nem található a pufferhez"
-
-#~ msgid "Notify levels:"
-#~ msgstr "Értesítési szintek:"
-
-#, fuzzy
-#~ msgid ""
-#~ "smart completion for nicks (completes first with last speakers, "
-#~ "highlights or both)"
-#~ msgstr "okos névkiegészítés (először az utolsó partnerre egészít ki)"
-
-#~ msgid "[action [args] | number | [[server] [channel]]]"
-#~ msgstr "[utasítás[argumentumok] | szám | [[szerver] [szoba]]]"
-
-#, fuzzy
-#~ msgid "%s%s: command \"%s\" must be executed on irc buffer"
-#~ msgstr "%s \"%s\" parancs nem futtatható a szerverablakban\n"
-
-#, fuzzy
-#~ msgid " (used by a plugin)"
-#~ msgstr " (nem található bővítőmodul)\n"
-
-#, fuzzy
-#~ msgid "%s%s: unknown/missing channel name for \"%s\" command"
-#~ msgstr "%s hiányzó argumentum a \"%s\" parancsnak\n"
-
-#~ msgid "nickname [text]"
-#~ msgstr "becenév [szöveg]"
-
-#~ msgid "data"
-#~ msgstr "adat"
-
-#~ msgid "data: raw data to send"
-#~ msgstr "adat: küldendő nyers üzenet"
-
-#, fuzzy
-#~ msgid ""
-#~ "%s%s: cannot connect with TLS because WeeChat was not built with GnuTLS "
-#~ "support"
-#~ msgstr ""
-#~ "%s nem sikerült SSL használattal kapcsolódni, mert a WeeChat GNUtls "
-#~ "támogatás nélkül lett fordítva\n"
-
-#, fuzzy
-#~ msgid ""
-#~ "%s%s: cannot connect with SSL since WeeChat was not built with GnuTLS "
-#~ "support"
-#~ msgstr ""
-#~ "%s nem sikerült SSL használattal kapcsolódni, mert a WeeChat GNUtls "
-#~ "támogatás nélkül lett fordítva\n"
-
-#, fuzzy
-#~ msgid "list of Jabber ignore"
-#~ msgstr "IRC szerver portja"
-
-#, fuzzy
-#~ msgid "1 if string is a Jabber channel"
-#~ msgstr "felhasználók listája a szobában"
-
-#, fuzzy
-#~ msgid "get nick from Jabber host"
-#~ msgstr "név vagy gép letiltása"
-
-#, fuzzy
-#~ msgid "list of nicks for a Jabber channel"
-#~ msgstr "felhasználók listája a szobában"
-
-#, fuzzy
-#~ msgid ""
-#~ "[list [servername]] | [listfull [servername]] | [add username server[/"
-#~ "port] [-auto | -noauto] [-ipv6] [-ssl]] | [copy servername newservername] "
-#~ "| [rename servername newservername] | [keep servername] | [del "
-#~ "servername] | [deloutq] | [switch]"
-#~ msgstr ""
-#~ "[list [szervernév]] | [listfull [szervernév]] | [add szervernév gépnév [-"
-#~ "port port] [-temp] [-auto | -noauto] [-ipv6] [-ssl] [-pwd jelszó] [-nicks "
-#~ "név1 név2 név3] [-username felhasználó] [-realname valódinév] [-command "
-#~ "parancs] [-autojoin szoba[,szoba]] ] | [copy szervernév újszervernév] | "
-#~ "[rename szervernév újszervernév] | [keep szervernév] | [del szervernév]"
-
-#, fuzzy
-#~ msgid "nicknames to use on Jabber server (separated by comma)"
-#~ msgstr "felhasználónév az IRC szerveren"
-
-#, fuzzy
-#~ msgid "user name to use on Jabber server"
-#~ msgstr "használni kívánt felhasználónév az IRC szerveren"
-
-#, fuzzy
-#~ msgid "real name to use on Jabber server"
-#~ msgstr "az IRC szerveren használt valódi név"
-
-#, fuzzy
-#~ msgid "send unknown commands to Jabber server"
-#~ msgstr "ismeretlen parancsok küldése az IRC szervernek"
-
-#, fuzzy
-#~ msgid "password for Jabber server"
-#~ msgstr "jelszó a proxy szerverhez"
-
-#~ msgid " . type: boolean\n"
-#~ msgstr " . típus: logikai\n"
-
-#, fuzzy
-#~ msgid " . values: \"on\" or \"off\"\n"
-#~ msgstr " . értékek: 'on' vagy 'off'\n"
-
-#, fuzzy
-#~ msgid " . default value: \"%s\"\n"
-#~ msgstr " . alapérték: '%s'\n"
-
-#~ msgid " . type: string\n"
-#~ msgstr " . típus: szöveg\n"
-
-#~ msgid " . values: "
-#~ msgstr " . értékek: "
-
-#~ msgid " . type: integer\n"
-#~ msgstr " . típus: szám\n"
-
-#~ msgid " . values: between %d and %d\n"
-#~ msgstr " . értékek: %d és %d között\n"
-
-#~ msgid " . default value: %d\n"
-#~ msgstr " . alapérték: %d\n"
-
-#~ msgid " . values: any string\n"
-#~ msgstr " . érték: bármilyen szöveg\n"
-
-#~ msgid " . type: char\n"
-#~ msgstr " . típus: karakter\n"
-
-#~ msgid " . values: any char\n"
-#~ msgstr " . érték: bármilyen karakter\n"
-
-#~ msgid " . values: any string (limit: %d chars)\n"
-#~ msgstr " . érték: bármilyen szöveg (korlát: %d karakter)\n"
-
-#~ msgid " . type: color\n"
-#~ msgstr " . típus: szín\n"
-
-#, fuzzy
-#~ msgid " . values: color (depends on GUI used)\n"
-#~ msgstr " . értékek: %d és %d között\n"
-
-#~ msgid " . description: %s\n"
-#~ msgstr " . leírás : %s\n"
-
-#, fuzzy
-#~ msgid "%sWarning: %s, line %d: invalid syntax, missing \"=\""
-#~ msgstr "%s %s, %d. sor: érvénytelen szintaxis, hiányzó \"=\"\n"
-
-#, fuzzy
-#~ msgid "value not defined"
-#~ msgstr "Nincs aliasz definiálva.\n"
-
-#, fuzzy
-#~ msgid "hidden"
-#~ msgstr "(rejtett)"
-
-#, fuzzy
-#~ msgid ""
-#~ "%s%s: error creating option \"%s\" for server \"%s\" (server not found)"
-#~ msgstr "%s a \"%s\" opció nem található\n"
-
-#, fuzzy
-#~ msgid "display nicklist (on buffers with nicklist enabled)"
-#~ msgstr "névlista ablak mutatása (szobaablakban)"
-
-#, fuzzy
-#~ msgid ""
-#~ "max size for nicklist (width or height, depending on nicklist_position (0 "
-#~ "= no max size; if min = max and > 0, then size is fixed))"
-#~ msgstr ""
-#~ "névlista maximális mérete (szélesség vagy magasság a "
-#~ "look_nicklist_position opciónak megfelelően (0 = nincs maximális érték; "
-#~ "ha min = max és > 0, akkor a méret fix))"
-
-#, fuzzy
-#~ msgid ""
-#~ "min size for nicklist (width or height, depending on nicklist_position (0 "
-#~ "= no min size))"
-#~ msgstr ""
-#~ "névlista minimális mérete (szélesség vagy magasság a "
-#~ "look_nicklist_position opciónak megfelelően (0 = nincs minimális érték))"
-
-#~ msgid "nicklist position (top, left, right (default), bottom)"
-#~ msgstr "névlista helye (top, left, right (alapértelmezett), bottom)"
-
-#~ msgid "separator between chat and nicklist"
-#~ msgstr "a névlista és a beszélgetőablak közti elválasztó"
-
-#, fuzzy
-#~ msgid "%sBinary file not found: \"%s\""
-#~ msgstr "%s a \"%s\" modul nem található\n"
-
-#, fuzzy
-#~ msgid "Upgrading WeeChat..."
-#~ msgstr "WeeChat frissítése...\n"
-
-#, fuzzy
-#~ msgid "timeout for relay request (in seconds)"
-#~ msgstr "dcc kérések időkorlátja (másodpercben)"
-
-#, fuzzy
-#~ msgid "Open buffer with relay clients list"
-#~ msgstr "Nyitott pufferek:\n"
-
-#, fuzzy
-#~ msgid "Open buffer with xfer list"
-#~ msgstr "Nyitott pufferek:\n"
-
-#, fuzzy
-#~ msgid "%s%s: disconnecting client @ %s"
-#~ msgstr "%s: Újracsatlakozás a szerverhez %d másodperc múlva\n"
-
-#, fuzzy
-#~ msgid " [Q] Close client list"
-#~ msgstr " [Q] DCC nézet bezárása"
-
-#, fuzzy
-#~ msgid "use a proxy server"
-#~ msgstr "felhasználónév a proxy szerverhez"
-
-#, fuzzy
-#~ msgid "text color for title bar"
-#~ msgstr "címsor színe"
-
-#, fuzzy
-#~ msgid "background color for title bar"
-#~ msgstr "címsor háttere"
-
-#, fuzzy
-#~ msgid "background color for status bar"
-#~ msgstr "státuszsor színe"
-
-#, fuzzy
-#~ msgid "text color for status bar delimiters"
-#~ msgstr "státuszsor határolójel színe"
-
-#, fuzzy
-#~ msgid "text color for input line"
-#~ msgstr "szövegbeviteli mező színe"
-
-#, fuzzy
-#~ msgid "background color for input line"
-#~ msgstr "szövegbeviteli mező színe"
-
-#, fuzzy
-#~ msgid "text color for server name in input line"
-#~ msgstr "szerver nevének színe"
-
-#, fuzzy
-#~ msgid "text color for delimiters in input line"
-#~ msgstr "információs pult határolóinak színe"
-
-#, fuzzy
-#~ msgid "text color for nicklist"
-#~ msgstr "név színe"
-
-#, fuzzy
-#~ msgid "background color for nicklist"
-#~ msgstr "nevek háttere"
-
-#, fuzzy
-#~ msgid "debug: \"%s\" => %d"
-#~ msgstr "A \"%s\" aliasz eltávolítva\n"
-
-#, fuzzy
-#~ msgid "%s: debug enabled"
-#~ msgstr "FIFO cső nyitva\n"
-
-#~ msgid "automatically log server messages"
-#~ msgstr "szerverüzenetek automatikus naplózása"
-
-#~ msgid "automatically log channel chats"
-#~ msgstr "szobabeszélgetések automatikus naplózása"
-
-#~ msgid "automatically log private chats"
-#~ msgstr "személyes beszélgetése automatikus naplózása"
-
-#, fuzzy
-#~ msgid "New level for buffer \"%s\" is %d"
-#~ msgstr "a pufferek időbélyege"
-
-#, fuzzy
-#~ msgid "Notify level: %s => %s"
-#~ msgstr "Értesítési szintek:"
-
-#, fuzzy
-#~ msgid "Notify level: %s: removed"
-#~ msgstr "Értesítési szintek:"
-
-#, fuzzy
-#~ msgid "Error: unable to create \"%s\" directory\n"
-#~ msgstr "%s nem sikerült a \"%s\" könyvtárat létrehozni\n"
-
-#, fuzzy
-#~ msgid "%sError: filter not \"%s\" found"
-#~ msgstr "%s a \"%s\" modul nem található\n"
-
-#, fuzzy
-#~ msgid "Filter added"
-#~ msgstr "a felhasználók le lettek tiltva"
-
-#, fuzzy
-#~ msgid "%sError: wrong filter number"
-#~ msgstr "%s helytelen pufferszám\n"
-
-#, fuzzy
-#~ msgid "Message filtering is enabled"
-#~ msgstr "Nincs aliasz definiálva.\n"
-
-#, fuzzy
-#~ msgid "Message filtering is disabled"
-#~ msgstr "Nincs aliasz definiálva.\n"
-
-#, fuzzy
-#~ msgid "Filters are disabled"
-#~ msgstr "a felhasználók le lettek tiltva"
-
-#~ msgid ""
-#~ "format for input prompt ('%c' is replaced by channel or server, '%n' by "
-#~ "nick and '%m' by nick modes)"
-#~ msgstr ""
-#~ "beviteli mező kinézete ('%c' helyére a szoba vagy a szerver, '%n' helyére "
-#~ "a név és '%m' helyére a mód kerül)"
-
-#~ msgid "Text search (exact): "
-#~ msgstr "Szöveg keresése (pontos): "
-
-#~ msgid "Text search: "
-#~ msgstr "Szöveg keresése: "
-
-#, fuzzy
-#~ msgid "%s: creating new speller for lang \"%s\""
-#~ msgstr "%s nincs elég memória az információs pult üzenethez\n"
-
-#, fuzzy
-#~ msgid "Charset: %s, %s => %s"
-#~ msgstr "A \"%s\" => \"%s\" aliasz elkészült\n"
-
-#~ msgid " Paste %d lines ? [ctrl-Y] Yes [ctrl-N] No"
-#~ msgstr " Beszúrható %d sor? [ctrl-Y] Igen [ctrl-N] Nem"
-
-#~ msgid "-MORE-"
-#~ msgstr "-TOVÁBB-"
diff --git a/po/it.po b/po/it.po
index c0082d70e..6df1a8552 100644
--- a/po/it.po
+++ b/po/it.po
@@ -8,8 +8,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Weechat 0.3.2-dev\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
-"POT-Creation-Date: 2010-02-15 11:45+0100\n"
-"PO-Revision-Date: 2010-01-23 11:57+0100\n"
+"POT-Creation-Date: 2010-02-18 19:55+0100\n"
+"PO-Revision-Date: 2010-02-18 19:54+0100\n"
"Last-Translator: Marco Paolone <marcopaolone@gmail.com>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
"MIME-Version: 1.0\n"
@@ -4121,6 +4121,9 @@ msgstr ""
msgid "password for SASL authentication"
msgstr ""
+msgid "timeout (in seconds) before giving up SASL authentication"
+msgstr ""
+
msgid "automatically connect to server when WeeChat is starting"
msgstr "connette automaticamente ai server all'avvio di WeeChat"
@@ -4523,6 +4526,11 @@ msgid "%s%s: this buffer is not a channel!"
msgstr "%s%s: questo buffer non è un canale!"
#, c-format
+msgid ""
+"%s%s: error building answer for SASL authentication, using mechanism \"%s\""
+msgstr ""
+
+#, c-format
msgid "%s%s: client capability, server supports: %s"
msgstr ""
@@ -4538,6 +4546,18 @@ msgstr ""
msgid "%s%s: client capability, enabled: %s"
msgstr ""
+#, fuzzy, c-format
+msgid ""
+"%s%s: cannot authenticate with SASL and mechanism DH-BLOWFISH because "
+"WeeChat was not built with libgcrypt support"
+msgstr ""
+"%s%s: impossibile connettersi via SSL poiché WeeChat non è stato compilato "
+"con il supporto a GnuTLS"
+
+#, fuzzy, c-format
+msgid "%s%s: client capability, refused: %s"
+msgstr "%s%s: set di caratter invalido: \"%s\""
+
#, c-format
msgid "%sYou have been invited to %s%s%s by %s%s%s"
msgstr "%sSei stato invitato su %s%s%s da %s%s%s"
@@ -6270,15 +6290,3 @@ msgstr "[argomenti]"
#, fuzzy
msgid "Pointer"
msgstr "intero"
-
-#~ msgid "[-o]"
-#~ msgstr "[-o]"
-
-#~ msgid "-o: send uptime to current buffer as input"
-#~ msgstr "-o: invia l'uptime al buffer corrente come input"
-
-#~ msgid "-o: send version to current buffer as input"
-#~ msgstr "-o: invia versione al buffer corrente come input"
-
-#~ msgid "time format for buffers"
-#~ msgstr "formato dell'ora per i buffer"
diff --git a/po/pl.po b/po/pl.po
index ff9499fb7..dee6b71ce 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -9,8 +9,8 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat 0.3.0-dev\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
-"POT-Creation-Date: 2010-02-15 11:45+0100\n"
-"PO-Revision-Date: 2010-02-09 15:52+0100\n"
+"POT-Creation-Date: 2010-02-18 19:55+0100\n"
+"PO-Revision-Date: 2010-02-18 19:54+0100\n"
"Last-Translator: Krzysztof Koroscik <soltys@szluug.org>\n"
"Language-Team: Polish\n"
"MIME-Version: 1.0\n"
@@ -4120,6 +4120,9 @@ msgstr ""
msgid "password for SASL authentication"
msgstr ""
+msgid "timeout (in seconds) before giving up SASL authentication"
+msgstr ""
+
msgid "automatically connect to server when WeeChat is starting"
msgstr "automatycznie połącz się z serwerem przy uruchamianiu WeeChat"
@@ -4519,6 +4522,11 @@ msgid "%s%s: this buffer is not a channel!"
msgstr "%s%s: to nie jest bufor kanału"
#, c-format
+msgid ""
+"%s%s: error building answer for SASL authentication, using mechanism \"%s\""
+msgstr ""
+
+#, c-format
msgid "%s%s: client capability, server supports: %s"
msgstr ""
@@ -4534,6 +4542,18 @@ msgstr ""
msgid "%s%s: client capability, enabled: %s"
msgstr ""
+#, fuzzy, c-format
+msgid ""
+"%s%s: cannot authenticate with SASL and mechanism DH-BLOWFISH because "
+"WeeChat was not built with libgcrypt support"
+msgstr ""
+"%s%s: nie można połączyć używając SSL, ponieważ WeeChat został skompilowany "
+"bez wsparcia dla GnuTLS"
+
+#, fuzzy, c-format
+msgid "%s%s: client capability, refused: %s"
+msgstr "%s%s: nieprawidłowe kodowanie: \"%s\""
+
#, c-format
msgid "%sYou have been invited to %s%s%s by %s%s%s"
msgstr "%sZostałeś zaproszony na %s%s%s przez %s%s%s"
@@ -6257,148 +6277,3 @@ msgstr "[argumenty]"
#, fuzzy
msgid "Pointer"
msgstr "liczba"
-
-#~ msgid "[-o]"
-#~ msgstr "[-o]"
-
-#~ msgid "-o: send uptime to current buffer as input"
-#~ msgstr "-o: wysyła czas pracy jako wejście do obecnego bufora"
-
-#~ msgid "-o: send version to current buffer as input"
-#~ msgstr "-o: wysyła wersję jako wejście do obecnego bufora"
-
-#~ msgid "time format for buffers"
-#~ msgstr "format czasu dla buforów"
-
-#~ msgid "%s%s: cannot find nick for sending message"
-#~ msgstr "%s%s: nie można znaleźć nicku do wysłania wiadomości"
-
-#~ msgid "text: text to send"
-#~ msgstr "tekst: tekst do wysłania"
-
-#~ msgid "%s%s: error: \"%s\""
-#~ msgstr "%s%s: błąd: \"%s\""
-
-#~ msgid "%s%s: missing argument for \"%s\" option"
-#~ msgstr "%s%s: brakuje argumentu dla opcji \"%s\""
-
-#~ msgid ""
-#~ " -all: connect to all servers\n"
-#~ "servername: internal server name to connect\n"
-#~ " -nojoin: do not join any channel (even if autojoin is enabled on "
-#~ "server)\n"
-#~ " hostname: hostname to connect\n"
-#~ " port: port for server (integer, default is 6667)\n"
-#~ " ipv6: use IPv6 protocol\n"
-#~ " ssl: use SSL protocol"
-#~ msgstr ""
-#~ " -all: łączy się ze wszystkimi serwerami\n"
-#~ "nazwa_serwera: wewnętrzna nazwa serwera do połączenia\n"
-#~ " -nojoin: nie wchodź na żaden kanał (nawet jeśli serwer posiada "
-#~ "zdefiniowane kanały, z któreymi sam ma się połączyć)\n"
-#~ " nazwa_hosta: nazwa hosta, z która ma sie połączyć\n"
-#~ " port: port serwera (liczba całkowita, domyślnie 6667)\n"
-#~ " ipv6: użyj protokołu IPv6\n"
-#~ " ssl: użyj protokołu SSL "
-
-#~ msgid ""
-#~ " channel: channel where user is\n"
-#~ "nickname: nickname to kick and ban\n"
-#~ " comment: comment for kick"
-#~ msgstr ""
-#~ " kanał: kanał, na którym znajduje się użytkownik\n"
-#~ "nick: osoba do wykopania i zbanowania\n"
-#~ " komentarz: powód "
-
-#~ msgid "%sUnknown CTCP %s%s%s received from %s%s%s: %s"
-#~ msgstr "%sNieznane CTCP %s%s%s otrzymano od %s%s%s: %s"
-
-#~ msgid "%sUnknown CTCP %s%s%s received from %s%s%s"
-#~ msgstr "%sNieznane CTCP %s%s%s otrzymano od %s%s%s"
-
-#~ msgid "%s: new client @ %s"
-#~ msgstr "%s: nowy klient @ %s"
-
-#~ msgid ""
-#~ " list: list relay clients\n"
-#~ "listfull: list relay clients (verbose)\n"
-#~ "\n"
-#~ "Without argument, this command opens buffer with list of relay clients."
-#~ msgstr ""
-#~ " list: lista klientów do przekazania\n"
-#~ "listfull: lista klientów do przekazania (szczegułowa)\n"
-#~ "\n"
-#~ "Bez argumentów komenda otworzy bufor z lista zdalnych klientów."
-
-#~ msgid "enable relay"
-#~ msgstr "włącz przekazywanie"
-
-#~ msgid ""
-#~ "port number (or range of ports) that relay plugin listens on (syntax: a "
-#~ "single port, ie. 5000 or a port range, ie. 5000-5015, it's recommended to "
-#~ "use ports greater than 1024, because only root can use ports below 1024)"
-#~ msgstr ""
-#~ "numer portu (albo przedział), na którym nasłuchuje wtyczka relay "
-#~ "(składnia: pojedynczy port, np. 5000 lub przedział portó, np. 5000-5015, "
-#~ "zaleca się stosowanie portów powyżej 1024, ponieważ tylko root może "
-#~ "używać portów poniżej 1024)"
-
-#~ msgid "%s%s: option \"listen_port_range\" is not defined"
-#~ msgstr "%s%s: nie zdefiniowana opcja \"listen_port_range\" "
-
-#~ msgid "%s%s: cannot find available port for listening"
-#~ msgstr "%s%s: nie można znaleźc dostępnego portu do nasłuchu"
-
-#~ msgid "%s%s unable to run function \"%s\""
-#~ msgstr "%s%s nie można wykonać funkcji \"%s\""
-
-#~ msgid "list of %s scripts"
-#~ msgstr "lista skryptów %s "
-
-#~ msgid "Alias:"
-#~ msgstr "Alias:"
-
-#~ msgid "No alias found"
-#~ msgstr "Nie znaleziono żadnego aliasu"
-
-#~ msgid "alias_name"
-#~ msgstr "nazwa_aliasu"
-
-#~ msgid "%sCTCP %sVERSION%s reply from %s%s%s: %s"
-#~ msgstr "%sCTCP %sVERSION%s odpowiedź od %s%s%s: %s"
-
-#~ msgid "%sCTCP %sVERSION%s received from %s%s%s: %s"
-#~ msgstr "%sCTCP %sVERSION%s otrzymano od %s%s%s: %s"
-
-#~ msgid "%sCTCP %sVERSION%s received from %s%s"
-#~ msgstr "%sCTCP %sVERSION%s otrzymano od %s%s"
-
-#~ msgid "%sReceived a CTCP %sSOUND%s \"%s\" from %s%s"
-#~ msgstr "%sOtrzymano CTCP %sSOUND%s \"%s\" od %s%s"
-
-#~ msgid "%sCTCP %sPING%s received from %s%s"
-#~ msgstr "%sCTCP %sPING%s otrzymane od %s%s"
-
-#~ msgid "nicks"
-#~ msgstr "nicki"
-
-#~ msgid "ops"
-#~ msgstr "opy"
-
-#~ msgid "halfops"
-#~ msgstr "halfopy"
-
-#~ msgid "voices"
-#~ msgstr "voice"
-
-#~ msgid "%s%s: cannot read data from socket, disconnecting from server..."
-#~ msgstr "%s%s: nie można odczytać danych z gniazda, rozłączam z serwerem..."
-
-#~ msgid "text color for nick name in input line"
-#~ msgstr "kolor nicku w wprowadzonej lini"
-
-#~ msgid "Bar \"%s\" is now hidden"
-#~ msgstr "Pasek \"%s\" został ukryty"
-
-#~ msgid "Bar \"%s\" is now visible"
-#~ msgstr "Pasek \"%s\" jest teraz widoczny"
diff --git a/po/ru.po b/po/ru.po
index c4367f642..b28efb8a5 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat 0.3.2-dev\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
-"POT-Creation-Date: 2010-02-15 11:45+0100\n"
-"PO-Revision-Date: 2010-01-23 11:57+0100\n"
+"POT-Creation-Date: 2010-02-18 19:55+0100\n"
+"PO-Revision-Date: 2010-02-18 19:55+0100\n"
"Last-Translator: Pavel Shevchuk <stlwrt@gmail.com>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
"MIME-Version: 1.0\n"
@@ -3973,6 +3973,10 @@ msgstr "использовать SSL при связи с сервером"
msgid "password for SASL authentication"
msgstr "использовать SSL при связи с сервером"
+#, fuzzy
+msgid "timeout (in seconds) before giving up SASL authentication"
+msgstr "использовать SSL при связи с сервером"
+
msgid "automatically connect to server when WeeChat is starting"
msgstr "подключаться к серверу автоматически при запуске WeeChat"
@@ -4377,6 +4381,11 @@ msgid "%s%s: this buffer is not a channel!"
msgstr "Это окно не является каналом!\n"
#, c-format
+msgid ""
+"%s%s: error building answer for SASL authentication, using mechanism \"%s\""
+msgstr ""
+
+#, c-format
msgid "%s%s: client capability, server supports: %s"
msgstr ""
@@ -4393,6 +4402,18 @@ msgid "%s%s: client capability, enabled: %s"
msgstr ""
#, fuzzy, c-format
+msgid ""
+"%s%s: cannot authenticate with SASL and mechanism DH-BLOWFISH because "
+"WeeChat was not built with libgcrypt support"
+msgstr ""
+"%s невозможно соединиться с использованием SSL, так как WeeChat собран без "
+"поддержки GNUtls\n"
+
+#, fuzzy, c-format
+msgid "%s%s: client capability, refused: %s"
+msgstr "Не могу записать лог-файл \"%s\"\n"
+
+#, fuzzy, c-format
msgid "%sYou have been invited to %s%s%s by %s%s%s"
msgstr "Вас пригласил на %s%s%s пользователь %s%s\n"
@@ -6094,832 +6115,3 @@ msgstr "адресат тип [аргументы]"
#, fuzzy
msgid "Pointer"
msgstr "минута"
-
-#~ msgid "[-o]"
-#~ msgstr "[-o]"
-
-#, fuzzy
-#~ msgid "-o: send uptime to current buffer as input"
-#~ msgstr "-o: отправить uptime сообщением в текущий канал"
-
-#, fuzzy
-#~ msgid "time format for buffers"
-#~ msgstr "время в буферах"
-
-#, fuzzy
-#~ msgid "%s%s: cannot find nick for sending message"
-#~ msgstr "%s не могу найти адресата сообщения\n"
-
-#~ msgid "text: text to send"
-#~ msgstr "текст: отправляемый текст"
-
-#, fuzzy
-#~ msgid "%s%s: error creating msgbuffer \"%s\" => \"%s\""
-#~ msgstr "%s недостаточно памяти для сообщения в строке информации\n"
-
-#, fuzzy
-#~ msgid "%s%s: error: \"%s\""
-#~ msgstr "%sСервер: %s%s\n"
-
-#, fuzzy
-#~ msgid "%s%s: missing argument for \"%s\" option"
-#~ msgstr "%s нет аргумента для параметра \"%s\"\n"
-
-#, fuzzy
-#~ msgid "%s%s unable to run function \"%s\""
-#~ msgstr "Не могу записать лог-файл \"%s\"\n"
-
-#, fuzzy
-#~ msgid "%sUnknown CTCP %s%s%s received from %s%s%s: %s"
-#~ msgstr "Получен неизвестный CTCP %s%s%s от %s%s"
-
-#, fuzzy
-#~ msgid "%sUnknown CTCP %s%s%s received from %s%s%s"
-#~ msgstr "Получен неизвестный CTCP %s%s%s от %s%s"
-
-#, fuzzy
-#~ msgid "list of %s scripts"
-#~ msgstr "Список сокращений:\n"
-
-#, fuzzy
-#~ msgid "%s%s: bind error on port %d"
-#~ msgstr "%s невозможно создать сокет\n"
-
-#, fuzzy
-#~ msgid ""
-#~ "port number (or range of ports) that relay plugin listens on (syntax: a "
-#~ "single port, ie. 5000 or a port range, ie. 5000-5015, it's recommended to "
-#~ "use ports greater than 1024, because only root can use ports below 1024)"
-#~ msgstr ""
-#~ "привязывает исходящие DCС соединения к определённому интервалу портов "
-#~ "(полезно для NAT) (синтаксис: определённый порт, например 5000, или "
-#~ "интервал портов, например 5000-5015, пустое значение означает любой порт)"
-
-#, fuzzy
-#~ msgid "%s%s: cannot find available port for listening"
-#~ msgstr "%s не могу найти свободный порт для DCC\n"
-
-#~ msgid ""
-#~ " channel: channel where user is\n"
-#~ "nickname: nickname to kick and ban\n"
-#~ " comment: comment for kick"
-#~ msgstr ""
-#~ " канал: канал, на котором присутствует пользователь\n"
-#~ " ник: цель для кика и бана\n"
-#~ "комментарий: причина кика"
-
-#, fuzzy
-#~ msgid "list of alias"
-#~ msgstr "Список сокращений:\n"
-
-#~ msgid "alias_name"
-#~ msgstr "сокращение"
-
-#, fuzzy
-#~ msgid "Alias:"
-#~ msgstr "Сокращение:\n"
-
-#, fuzzy
-#~ msgid "No alias found"
-#~ msgstr "Сокращения не найдены.\n"
-
-#, fuzzy
-#~ msgid "%s%s: error sending data to IRC server (%s)"
-#~ msgstr "%s ошибка при отправке данных IRC серверу\n"
-
-#, fuzzy
-#~ msgid "%s%s: cannot read data from socket, disconnecting from server..."
-#~ msgstr ""
-#~ "%s невозможно прочитать данные из сокета, отключаюсь от сервера...\n"
-
-#~ msgid "nicks"
-#~ msgstr "ники"
-
-#~ msgid "ops"
-#~ msgstr "опы"
-
-#~ msgid "halfops"
-#~ msgstr "полуопы"
-
-#~ msgid "voices"
-#~ msgstr "войсы"
-
-#, fuzzy
-#~ msgid "%sCTCP %sVERSION%s reply from %s%s%s: %s"
-#~ msgstr "Ответ на CTCP %sVERSION%s от %s%s%s: %s\n"
-
-#, fuzzy
-#~ msgid "%sCTCP %sVERSION%s received from %s%s%s: %s"
-#~ msgstr "Получен CTCP %sVERSION%s от %s%s"
-
-#, fuzzy
-#~ msgid "%sCTCP %sVERSION%s received from %s%s"
-#~ msgstr "Получен CTCP %sVERSION%s от %s%s"
-
-#, fuzzy
-#~ msgid "%sReceived a CTCP %sSOUND%s \"%s\" from %s%s"
-#~ msgstr "Получен CTCP %sSOUND%s \"%s\" от %s%s\n"
-
-#, fuzzy
-#~ msgid "%sCTCP %sPING%s received from %s%s"
-#~ msgstr "Получен CTCP %sPING%s от %s%s\n"
-
-#, fuzzy
-#~ msgid "text color for nick name in input line"
-#~ msgstr "цвет ников"
-
-#, fuzzy
-#~ msgid "text color for nicklist separator"
-#~ msgstr "цвет разделителя ников"
-
-#, fuzzy
-#~ msgid "servers"
-#~ msgstr "сервер"
-
-#, fuzzy
-#~ msgid "%s%s: auto-reconnection is cancelled"
-#~ msgstr "Авто-переподключение отменено\n"
-
-#, fuzzy
-#~ msgid "list, add or remove Jabber servers"
-#~ msgstr "перечислить, добавить или удалить серверы"
-
-#, fuzzy
-#~ msgid ""
-#~ "[list [servername]] | [listfull [servername]] | [add servername username "
-#~ "hostname[/port] password [-auto | -noauto] [-ipv6] [-tls] [-sasl]] | "
-#~ "[copy servername newservername] | [rename servername newservername] | "
-#~ "[keep servername] | [del servername] | [switch]"
-#~ msgstr ""
-#~ "[list [сервер]] | [listfull [сервер]] | [add сервер адрес [-port порт] [-"
-#~ "temp] [-auto | -noauto] [-ipv6] [-ssl] [-pwd пароль] [-nicks ник1 ник2 "
-#~ "ник3] [-username имя_пользователя] [-realname реальное_имя] [-command "
-#~ "команда] [-autojoin канал[,канал]] ] | [copy сервер новый_сервер] | "
-#~ "[rename сервер новое_имя] | [keep сервер] | [del сервер]"
-
-#, fuzzy
-#~ msgid ""
-#~ " list: list servers (no parameter implies this list)\n"
-#~ " listfull: list servers with detailed info for each server\n"
-#~ " add: create a new server\n"
-#~ "servername: server name, for internal and display use\n"
-#~ " username: username to use on server\n"
-#~ " hostname: name or IP address of server, with optional port (default: "
-#~ "5222)\n"
-#~ " password: password for username on server\n"
-#~ " auto: automatically connect to server when WeeChat starts\n"
-#~ " noauto: do not connect to server when WeeChat starts (default)\n"
-#~ " ipv6: use IPv6 protocol\n"
-#~ " tls: use TLS cryptographic protocol\n"
-#~ " sasl: use SASL for authentication\n"
-#~ " copy: duplicate a server\n"
-#~ " rename: rename a server\n"
-#~ " keep: keep server in config file (for temporary servers only)\n"
-#~ " del: delete a server\n"
-#~ " switch: switch active server (when one buffer is used for all "
-#~ "servers, default key: alt-s on server buffer)\n"
-#~ "\n"
-#~ "Examples:\n"
-#~ " /jabber listfull\n"
-#~ " /jabber add jabberfr user jabber.fr/5222 password -tls\n"
-#~ " /jabber copy jabberfr jabberfr2\n"
-#~ " /jabber rename jabberfr jabbfr\n"
-#~ " /jabber del jabberfr\n"
-#~ " /jabber switch"
-#~ msgstr ""
-#~ " list: перечислить серверы (отсутствие параметров подразумевает этот "
-#~ "список)\n"
-#~ "listfull: перечислить серверы с подробностями\n"
-#~ " add: создать новый сервер\n"
-#~ " сервер: имя сервера\n"
-#~ "hostname: адрес сервера\n"
-#~ " port: порт сервера (целочисленное значение)\n"
-#~ " temp: создать временный сервер (не сохраняется в конфигурационном "
-#~ "файле)\n"
-#~ " auto: автоматически подключаться к серверу при запуске WeeChat\n"
-#~ " noauto: не подключаться автоматически к серверу при запуске WeeChat\n"
-#~ " ipv6: использовать протокол IPv6\n"
-#~ " ssl: использовать протокол SSL\n"
-#~ "password: пароль от сервера\n"
-#~ " nick1: ник на сервере\n"
-#~ " nick2: альтернативный ник на сервере\n"
-#~ " nick3: запасной альтернативный ник на сервере\n"
-#~ "username: имя пользователя\n"
-#~ "realname: настоящее имя\n"
-#~ " copy: создать копию сервера\n"
-#~ " rename: переименовать сервер\n"
-#~ " keep: сохранить временный сервер\n"
-#~ " del: удалить сервер deloutq: очистить очередь исходящих сообщений "
-#~ "для всех серверов (сообщения, отправляемые WeeChatом)"
-
-#, fuzzy
-#~ msgid "buddy [text]"
-#~ msgstr "текст"
-
-#, fuzzy
-#~ msgid ""
-#~ "buddy: buddy name for chat\n"
-#~ " text: text to send"
-#~ msgstr ""
-#~ "сервис: название сервиса\n"
-#~ " текст: отправляемый текст"
-
-#, fuzzy
-#~ msgid "connect to Jabber server(s)"
-#~ msgstr "подключиться к серверу(-ам)"
-
-#, fuzzy
-#~ msgid ""
-#~ "[-all [-nojoin] | servername [servername ...] [-nojoin] | hostname [-port "
-#~ "port] [-ipv6] [-tls] [-sasl]]"
-#~ msgstr ""
-#~ "[-all [-nojoin] | сервер [servername ...] [-nojoin] | адрес [-port порт] "
-#~ "[-ipv6] [-ssl]]"
-
-#, fuzzy
-#~ msgid ""
-#~ " -all: connect to all servers\n"
-#~ "servername: internal server name to connect\n"
-#~ " -nojoin: do not join any MUC (even if autojoin is enabled on server)\n"
-#~ " hostname: hostname to connect\n"
-#~ " port: port for server (integer, default is 6667)\n"
-#~ " ipv6: use IPv6 protocol\n"
-#~ " tls: use TLS cryptographic protocol\n"
-#~ " saal: use SASL for authentication"
-#~ msgstr ""
-#~ " -all: переподключиться ко всем серверам\n"
-#~ " сервер: название сервера для переподключения\n"
-#~ "-nojoin: не заходить на каналы (даже если автозаход включен для сервера)\n"
-#~ " адрес: адрес сервера, создавая временный сервер\n"
-#~ " порт: порт сервера (число, по-умолчанию - 6667)\n"
-#~ " ipv6: использовать протокол IPv6\n"
-#~ " ssl: использовать протокол SSL"
-
-#, fuzzy
-#~ msgid "disconnect from Jabber server(s)"
-#~ msgstr "отключиться от сервера(-ов)"
-
-#, fuzzy
-#~ msgid "hostname/port or IP/port for server"
-#~ msgstr "ник, используемый на IRC сервере"
-
-#, fuzzy
-#~ msgid "use TLS cryptographic protocol for server communication"
-#~ msgstr "использовать IPv6 при связи с сервером"
-
-#, fuzzy
-#~ msgid "password"
-#~ msgstr "пользователь пароль"
-
-#, fuzzy
-#~ msgid "local alias"
-#~ msgstr "Список сокращений:\n"
-
-#, fuzzy
-#~ msgid ""
-#~ "command(s) to run when connected to server (many commands should be "
-#~ "separated by ';', use '\\;' for a semicolon, special variables $nick, "
-#~ "$muc and $server are replaced by their value)"
-#~ msgstr ""
-#~ "команды, выполняемые при подключении к серверу (несколько команд должны "
-#~ "быть разделены символом ';', используйте '\\;' вместо обычной точки с "
-#~ "запятой, специальные переменные $nick, $channel и $server заменяются на "
-#~ "соответствующие значения)"
-
-#, fuzzy
-#~ msgid ""
-#~ "comma separated list of MUCs to join when connected to server (example: "
-#~ "\"#chan1,#chan2,#chan3 key1,key2\")"
-#~ msgstr ""
-#~ "разделённый запятыми список каналов, на которые заходить при подключении "
-#~ "к серверу (например, \"#chan1,#chan2,#chan3 key1,key2\")"
-
-#, fuzzy
-#~ msgid "automatically rejoin MUCs when kicked"
-#~ msgstr "автоматически перезаходить на каналы после кика"
-
-#~ msgid "use same buffer for all servers"
-#~ msgstr "один буфер для всех серверов"
-
-#~ msgid "smart completion for nicks (completes with last speakers first)"
-#~ msgstr "умное дополнение ников (начинает перебор с последних собеседников)"
-
-#, fuzzy
-#~ msgid ""
-#~ "default part message (leaving MUC) ('%v' will be replaced by WeeChat "
-#~ "version in string)"
-#~ msgstr "сообщение покидания канала ('%v' будет заменён на версию WeeChat)"
-
-#, fuzzy
-#~ msgid ""
-#~ "default quit message (disconnecting from server) ('%v' will be replaced "
-#~ "by WeeChat version in string)"
-#~ msgstr ""
-#~ "сообщение о выходе по-умолчанию ('%v' будет заменён на версию WeeChat)"
-
-#~ msgid ""
-#~ "allow user to send colors with special codes (^Cb=bold, ^Ccxx=color, "
-#~ "^Ccxx,yy=color+background, ^Cu=underline, ^Cr=reverse)"
-#~ msgstr ""
-#~ "позволить отправлять цвета специальными кодами (^Cb=жирный, "
-#~ "^Ccxx=цветной, ^Ccxx,yy=цветной+фон, ^Cu=подчёркнутый, "
-#~ "^Cr=инвертированный)"
-
-#, fuzzy
-#~ msgid "Jabber debug messages"
-#~ msgstr "выводить отладочные сообщения"
-
-#, fuzzy
-#~ msgid "list of Jabber servers"
-#~ msgstr "порт IRC сервера"
-
-#, fuzzy
-#~ msgid "list of MUCs for a Jabber server"
-#~ msgstr "Список каналов, на которые заходить при соединении с сервером"
-
-#, fuzzy
-#~ msgid "list of buddies for a Jabber server or MUC"
-#~ msgstr "Список каналов, на которые заходить при соединении с сервером"
-
-#, fuzzy
-#~ msgid "%s: this buffer is not a MUC!"
-#~ msgstr "Это окно не является каналом!\n"
-
-#, fuzzy
-#~ msgid "%s%s: cannot allocate new MUC"
-#~ msgstr "%s не могу расположить новый канал"
-
-#, fuzzy
-#~ msgid "%s%s: reconnecting to server in %d %s"
-#~ msgstr "%s: Повторное подключение к серверу через %d секунд\n"
-
-#, fuzzy
-#~ msgid "%s%s: connected to %s (%s)"
-#~ msgstr "%s не подключен к серверу \"%s\"!\n"
-
-#, fuzzy
-#~ msgid "%s%s: GnuTLS init error"
-#~ msgstr "%s ошибка инициализации gnutls\n"
-
-#, fuzzy
-#~ msgid "%s%s: GnuTLS handshake failed"
-#~ msgstr "%s инициализация gnutls не удалось\n"
-
-#, fuzzy
-#~ 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"
-
-#, fuzzy
-#~ msgid "Connecting to server %s/%d%s%s%s via %s proxy %s/%d%s..."
-#~ msgstr "Подключаюсь к серверу %s:%d%s%s через %s proxy %s:%d%s...\n"
-
-#, fuzzy
-#~ msgid "%s%s: connecting to server %s/%d%s%s%s..."
-#~ msgstr "%s: поключаюсь к серверу %s:%d%s%s...\n"
-
-#, fuzzy
-#~ msgid ""
-#~ "%s%s: username or server not defined for server \"%s\", cannot connect"
-#~ msgstr "%s ник \"%s\" не найден для команды \"%s\"\n"
-
-#, fuzzy
-#~ msgid "%s%s: hostname/IP not defined for server \"%s\", cannot connect"
-#~ msgstr "%s ник \"%s\" не найден для команды \"%s\"\n"
-
-#, fuzzy
-#~ msgid ""
-#~ "%s%s: cannot connect with TLS because iksemel library was not built with "
-#~ "GnuTLS support"
-#~ msgstr ""
-#~ "%s невозможно соединиться с использованием SSL, так как WeeChat собран "
-#~ "без поддержки GNUtls\n"
-
-#, fuzzy
-#~ msgid "%s%s: failed to create stream parser"
-#~ msgstr "%s не могу создать сервер\n"
-
-#, fuzzy
-#~ msgid "%s%s: failed to create id"
-#~ msgstr "%s DCC: не могу создать pipe\n"
-
-#, fuzzy
-#~ msgid "%s%s: reconnecting to server..."
-#~ msgstr "%s: Повторное соединение...\n"
-
-#, fuzzy
-#~ msgid "%s%s: I/O error (%d)"
-#~ msgstr "%sСервер: %s%s\n"
-
-#, fuzzy
-#~ msgid "%s%s: SASL authentication failed (check SASL option and password)"
-#~ msgstr "Не могу записать лог-файл \"%s\"\n"
-
-#, fuzzy
-#~ msgid "%s%s: server disconnected"
-#~ msgstr "Сервер %s%s%s создан\n"
-
-#, fuzzy
-#~ msgid "%s%s: stream error"
-#~ msgstr "%sСервер: %s%s\n"
-
-#, fuzzy
-#~ msgid "%s%s: login ok"
-#~ msgstr "%s DCC: не могу forkнуться\n"
-
-#, fuzzy
-#~ msgid "%s%s: authentication failed (check SASL option and password)"
-#~ msgstr "Не могу записать лог-файл \"%s\"\n"
-
-#, fuzzy
-#~ msgid ""
-#~ "%sError: plugin \"%s\" is compiled for WeeChat %s and you are running "
-#~ "version %s, failed to load"
-#~ msgstr ""
-#~ "%s функция \"weechat_plugin_init\" не найдена в plugin'е \"%s\", загрузка "
-#~ "не удалась\n"
-
-#, fuzzy
-#~ msgid ""
-#~ "port number (or range of ports) that relay plugin listens on (syntax: a "
-#~ "single port, ie. 5000 or a port range, ie. 5000-5015)"
-#~ msgstr ""
-#~ "привязывает исходящие DCС соединения к определённому интервалу портов "
-#~ "(полезно для NAT) (синтаксис: определённый порт, например 5000, или "
-#~ "интервал портов, например 5000-5015, пустое значение означает любой порт)"
-
-#, fuzzy
-#~ msgid ""
-#~ "allow user to send colors with special codes (\"^Cb\"=bold, \"^Ccxx"
-#~ "\"=color, \"^Ccxx,yy\"=color+background, \"^Cu\"=underline, \"^Cr"
-#~ "\"=reverse)"
-#~ msgstr ""
-#~ "позволить отправлять цвета специальными кодами (^Cb=жирный, "
-#~ "^Ccxx=цветной, ^Ccxx,yy=цветной+фон, ^Cu=подчёркнутый, "
-#~ "^Cr=инвертированный)"
-
-#, fuzzy
-#~ msgid "filtered"
-#~ msgstr "команда users отключена"
-
-#, fuzzy
-#~ msgid "%s%s: unable to set notify level \"%s\" => \"%s\""
-#~ msgstr "%s недостаточно памяти для сообщения в строке информации\n"
-
-#, fuzzy
-#~ msgid "%s%s: missing parameters"
-#~ msgstr "%s нет аргумента для параметра \"%s\"\n"
-
-#, fuzzy
-#~ msgid "%s%s: unknown notify level \"%s\""
-#~ msgstr "%s неизвестная функция клавиши \"%s\"\n"
-
-#, fuzzy
-#~ msgid "change notify level for current buffer"
-#~ msgstr "не найдено имя канала для буфера"
-
-#~ msgid "Notify levels:"
-#~ msgstr "Уровни уведомления:"
-
-#, fuzzy
-#~ msgid ""
-#~ "smart completion for nicks (completes first with last speakers, "
-#~ "highlights or both)"
-#~ msgstr "умное дополнение ников (начинает перебор с последних собеседников)"
-
-#~ msgid "[action [args] | number | [[server] [channel]]]"
-#~ msgstr "[действие [аргументы] | номер | [[сервер] [канал]]]"
-
-#, fuzzy
-#~ msgid "%s%s: command \"%s\" must be executed on irc buffer"
-#~ msgstr "%s \"%s\" команда может быть выполнена только в буфере сервера\n"
-
-#, fuzzy
-#~ msgid " (used by a plugin)"
-#~ msgstr " (нет pluginа)\n"
-
-#, fuzzy
-#~ msgid "%s%s: unknown/missing channel name for \"%s\" command"
-#~ msgstr "%s нет аргументов для \"%s\" команды\n"
-
-#~ msgid "nickname [text]"
-#~ msgstr "ник [текст]"
-
-#~ msgid "data"
-#~ msgstr "данные"
-
-#~ msgid "data: raw data to send"
-#~ msgstr "данные: отправляемые данные"
-
-#, fuzzy
-#~ msgid ""
-#~ "%s%s: cannot connect with TLS because WeeChat was not built with GnuTLS "
-#~ "support"
-#~ msgstr ""
-#~ "%s невозможно соединиться с использованием SSL, так как WeeChat собран "
-#~ "без поддержки GNUtls\n"
-
-#, fuzzy
-#~ msgid ""
-#~ "%s%s: cannot connect with SSL since WeeChat was not built with GnuTLS "
-#~ "support"
-#~ msgstr ""
-#~ "%s невозможно соединиться с использованием SSL, так как WeeChat собран "
-#~ "без поддержки GNUtls\n"
-
-#, fuzzy
-#~ msgid "list of Jabber ignore"
-#~ msgstr "порт IRC сервера"
-
-#, fuzzy
-#~ msgid "1 if string is a Jabber channel"
-#~ msgstr "список ников на канале"
-
-#, fuzzy
-#~ msgid "get nick from Jabber host"
-#~ msgstr "банит ник или хост"
-
-#, fuzzy
-#~ msgid "list of nicks for a Jabber channel"
-#~ msgstr "список ников на канале"
-
-#, fuzzy
-#~ msgid ""
-#~ "[list [servername]] | [listfull [servername]] | [add username server[/"
-#~ "port] [-auto | -noauto] [-ipv6] [-ssl]] | [copy servername newservername] "
-#~ "| [rename servername newservername] | [keep servername] | [del "
-#~ "servername] | [deloutq] | [switch]"
-#~ msgstr ""
-#~ "[list [сервер]] | [listfull [сервер]] | [add сервер адрес [-port порт] [-"
-#~ "temp] [-auto | -noauto] [-ipv6] [-ssl] [-pwd пароль] [-nicks ник1 ник2 "
-#~ "ник3] [-username имя_пользователя] [-realname реальное_имя] [-command "
-#~ "команда] [-autojoin канал[,канал]] ] | [copy сервер новый_сервер] | "
-#~ "[rename сервер новое_имя] | [keep сервер] | [del сервер]"
-
-#, fuzzy
-#~ msgid "nicknames to use on Jabber server (separated by comma)"
-#~ msgstr "ник, используемый на IRC сервере"
-
-#, fuzzy
-#~ msgid "user name to use on Jabber server"
-#~ msgstr "имя пользователя, используемое на IRC сервере"
-
-#, fuzzy
-#~ msgid "real name to use on Jabber server"
-#~ msgstr "настоящее имя, используемое на IRC сервере"
-
-#, fuzzy
-#~ msgid "send unknown commands to Jabber server"
-#~ msgstr "отсылать неизвестные команды IRC серверу"
-
-#, fuzzy
-#~ msgid "password for Jabber server"
-#~ msgstr "пароль к proxy серверу"
-
-#~ msgid " . type: boolean\n"
-#~ msgstr " . тип: булевый\n"
-
-#, fuzzy
-#~ msgid " . values: \"on\" or \"off\"\n"
-#~ msgstr " . значения: 'on' или 'off'\n"
-
-#, fuzzy
-#~ msgid " . default value: \"%s\"\n"
-#~ msgstr " . значение по умолчанию: '%s'\n"
-
-#~ msgid " . type: string\n"
-#~ msgstr " . тип: строка\n"
-
-#~ msgid " . values: "
-#~ msgstr " . значения: "
-
-#~ msgid " . type: integer\n"
-#~ msgstr " . тип: целочисленный\n"
-
-#~ msgid " . values: between %d and %d\n"
-#~ msgstr " . значения: от %d до %d\n"
-
-#~ msgid " . default value: %d\n"
-#~ msgstr " . значение по умолчанию: %d\n"
-
-#~ msgid " . values: any string\n"
-#~ msgstr " . значения: любая строка\n"
-
-#~ msgid " . type: char\n"
-#~ msgstr " . тип: символ\n"
-
-#~ msgid " . values: any char\n"
-#~ msgstr " . значения: любой символ\n"
-
-#~ msgid " . values: any string (limit: %d chars)\n"
-#~ msgstr " . значения: любая строка (ограничение: %d символов)\n"
-
-#~ msgid " . type: color\n"
-#~ msgstr " . тип: цвет\n"
-
-#, fuzzy
-#~ msgid " . values: color (depends on GUI used)\n"
-#~ msgstr " . значения: от %d до %d\n"
-
-#~ msgid " . description: %s\n"
-#~ msgstr " . описание: %s\n"
-
-#, fuzzy
-#~ msgid "%sWarning: %s, line %d: invalid syntax, missing \"=\""
-#~ msgstr "%s %s, строка %d: некорректный синтаксис, утерян \"=\"\n"
-
-#, fuzzy
-#~ msgid "value not defined"
-#~ msgstr "Сокращения не заданы.\n"
-
-#, fuzzy
-#~ msgid "hidden"
-#~ msgstr "(скрытый)"
-
-#, fuzzy
-#~ msgid ""
-#~ "%s%s: error creating option \"%s\" for server \"%s\" (server not found)"
-#~ msgstr "%s параметр конфигурации \"%s\" не найден\n"
-
-#, fuzzy
-#~ msgid "display nicklist (on buffers with nicklist enabled)"
-#~ msgstr "показывать список ников (в окнах каналов)"
-
-#, fuzzy
-#~ msgid ""
-#~ "max size for nicklist (width or height, depending on nicklist_position (0 "
-#~ "= no max size; if min = max and > 0, then size is fixed))"
-#~ msgstr ""
-#~ "максимальный размер списка пользователей (высота или ширина, в "
-#~ "зависимости от look_nicklist_position (0 = без максимального размера; "
-#~ "если min = max и > 0, то размер фиксированный))"
-
-#, fuzzy
-#~ msgid ""
-#~ "min size for nicklist (width or height, depending on nicklist_position (0 "
-#~ "= no min size))"
-#~ msgstr ""
-#~ "минимальный размер списка пользователей (высота или ширина, в зависимости "
-#~ "от look_nicklist_position (0 = без минимального размера))"
-
-#~ msgid "nicklist position (top, left, right (default), bottom)"
-#~ msgstr ""
-#~ "расположение списка пользователей (top, left, right(по умолчанию), bottom)"
-
-#~ msgid "separator between chat and nicklist"
-#~ msgstr "разделитель чата и никлиста"
-
-#, fuzzy
-#~ msgid "%sBinary file not found: \"%s\""
-#~ msgstr "%s plugin \"%s\" не найден\n"
-
-#, fuzzy
-#~ msgid "Upgrading WeeChat..."
-#~ msgstr "Обновляю WeeChat...\n"
-
-#, fuzzy
-#~ msgid "timeout for relay request (in seconds)"
-#~ msgstr "таймаут запросов dcc-соединений (в секундах)"
-
-#, fuzzy
-#~ msgid "Open buffer with relay clients list"
-#~ msgstr "Открытые буферы:\n"
-
-#, fuzzy
-#~ msgid "Open buffer with xfer list"
-#~ msgstr "Открытые буферы:\n"
-
-#, fuzzy
-#~ msgid "%s%s: disconnecting client @ %s"
-#~ msgstr "%s: Повторное подключение к серверу через %d секунд\n"
-
-#, fuzzy
-#~ msgid " [Q] Close client list"
-#~ msgstr " [Q] Закрыть окно"
-
-#, fuzzy
-#~ msgid "use a proxy server"
-#~ msgstr "имя пользователя, используемое при подключения к proxy-серверу"
-
-#, fuzzy
-#~ msgid "text color for title bar"
-#~ msgstr "цвет заголовка"
-
-#, fuzzy
-#~ msgid "background color for title bar"
-#~ msgstr "цвет фона заголовка"
-
-#, fuzzy
-#~ msgid "background color for status bar"
-#~ msgstr "цвет строки состояния"
-
-#, fuzzy
-#~ msgid "text color for status bar delimiters"
-#~ msgstr "цвет разделителей строки состояния"
-
-#, fuzzy
-#~ msgid "text color for input line"
-#~ msgstr "цвет вводимого текста"
-
-#, fuzzy
-#~ msgid "background color for input line"
-#~ msgstr "цвет вводимого текста"
-
-#, fuzzy
-#~ msgid "text color for server name in input line"
-#~ msgstr "цвет названия сервера"
-
-#, fuzzy
-#~ msgid "text color for delimiters in input line"
-#~ msgstr "цвет разделителей информационной панели"
-
-#, fuzzy
-#~ msgid "text color for nicklist"
-#~ msgstr "цвет ника"
-
-#, fuzzy
-#~ msgid "background color for nicklist"
-#~ msgstr "фон ников"
-
-#, fuzzy
-#~ msgid "debug: \"%s\" => %d"
-#~ msgstr "Сокращение \"%s\" удалено\n"
-
-#, fuzzy
-#~ msgid "%s: debug enabled"
-#~ msgstr "FIFO pipe открыт\n"
-
-#~ msgid "automatically log server messages"
-#~ msgstr "автоматически журналировать сообщения сервера"
-
-#~ msgid "automatically log channel chats"
-#~ msgstr "автоматически журналировать сообщения с каналов"
-
-#~ msgid "automatically log private chats"
-#~ msgstr "автоматически журналировать приваты"
-
-#, fuzzy
-#~ msgid "New level for buffer \"%s\" is %d"
-#~ msgstr "время в буферах"
-
-#, fuzzy
-#~ msgid "Notify level: %s => %s"
-#~ msgstr "Уровни уведомления:"
-
-#, fuzzy
-#~ msgid "Notify level: %s: removed"
-#~ msgstr "Уровни уведомления:"
-
-#, fuzzy
-#~ msgid "Error: unable to create \"%s\" directory\n"
-#~ msgstr "%s не могу создать директорию \"%s\"\n"
-
-#, fuzzy
-#~ msgid "%sError: filter not \"%s\" found"
-#~ msgstr "%s plugin \"%s\" не найден\n"
-
-#, fuzzy
-#~ msgid "Filter added"
-#~ msgstr "команда users отключена"
-
-#, fuzzy
-#~ msgid "%sError: wrong filter number"
-#~ msgstr "%s неправильный номер буфера\n"
-
-#, fuzzy
-#~ msgid "Message filtering is enabled"
-#~ msgstr "Сокращения не заданы.\n"
-
-#, fuzzy
-#~ msgid "Message filtering is disabled"
-#~ msgstr "Сокращения не заданы.\n"
-
-#, fuzzy
-#~ msgid "Filters are disabled"
-#~ msgstr "команда users отключена"
-
-#~ msgid ""
-#~ "format for input prompt ('%c' is replaced by channel or server, '%n' by "
-#~ "nick and '%m' by nick modes)"
-#~ msgstr ""
-#~ "формат приглашения ввода ('%c' заменяется на сервер или канал, '%n' на "
-#~ "ник, а '%m' - на режимы ника"
-
-#~ msgid "Text search (exact): "
-#~ msgstr "Поиск текста (регистрозависимый): "
-
-#~ msgid "Text search: "
-#~ msgstr "Поиск текста: "
-
-#, fuzzy
-#~ msgid "%s: creating new speller for lang \"%s\""
-#~ msgstr "%s недостаточно памяти для сообщения в строке информации\n"
-
-#, fuzzy
-#~ msgid "Charset: %s, %s => %s"
-#~ msgstr "Сокращение \"%s\" => \"%s\" создано\n"
-
-#~ msgid " Paste %d lines ? [ctrl-Y] Yes [ctrl-N] No"
-#~ msgstr " Вставить %d строк ? [ctrl-Y] Да [ctrl-N] Нет"
-
-#~ msgid "-MORE-"
-#~ msgstr "-ДАЛЬШЕ-"
diff --git a/po/srcfiles.cmake b/po/srcfiles.cmake
index 7ae423990..2f24eb498 100644
--- a/po/srcfiles.cmake
+++ b/po/srcfiles.cmake
@@ -140,6 +140,8 @@ SET(WEECHAT_SOURCES
./src/plugins/irc/irc-protocol.h
./src/plugins/irc/irc-raw.c
./src/plugins/irc/irc-raw.h
+./src/plugins/irc/irc-sasl.c
+./src/plugins/irc/irc-sasl.h
./src/plugins/irc/irc-server.c
./src/plugins/irc/irc-server.h
./src/plugins/logger/logger.c
diff --git a/po/weechat.pot b/po/weechat.pot
index b1d199a21..4e74fae7b 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: 2010-02-15 11:45+0100\n"
+"POT-Creation-Date: 2010-02-18 19:55+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"
@@ -3387,6 +3387,9 @@ msgstr ""
msgid "password for SASL authentication"
msgstr ""
+msgid "timeout (in seconds) before giving up SASL authentication"
+msgstr ""
+
msgid "automatically connect to server when WeeChat is starting"
msgstr ""
@@ -3731,6 +3734,11 @@ msgid "%s%s: this buffer is not a channel!"
msgstr ""
#, c-format
+msgid ""
+"%s%s: error building answer for SASL authentication, using mechanism \"%s\""
+msgstr ""
+
+#, c-format
msgid "%s%s: client capability, server supports: %s"
msgstr ""
@@ -3747,6 +3755,16 @@ msgid "%s%s: client capability, enabled: %s"
msgstr ""
#, c-format
+msgid ""
+"%s%s: cannot authenticate with SASL and mechanism DH-BLOWFISH because "
+"WeeChat was not built with libgcrypt support"
+msgstr ""
+
+#, c-format
+msgid "%s%s: client capability, refused: %s"
+msgstr ""
+
+#, c-format
msgid "%sYou have been invited to %s%s%s by %s%s%s"
msgstr ""
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 7090a77cf..da437f2fa 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -75,6 +75,16 @@ IF(NOT DISABLE_NLS)
ENDIF(GETTEXT_FOUND)
ENDIF(NOT DISABLE_NLS)
+# Check for libgcrypt
+IF(NOT DISABLE_GCRYPT)
+ FIND_PACKAGE(Gcrypt)
+
+ IF(GCRYPT_FOUND)
+ ADD_DEFINITIONS(-DHAVE_GCRYPT)
+ LIST(APPEND EXTRA_LIBS "${GCRYPT_LDFLAGS}")
+ ENDIF(GCRYPT_FOUND)
+ENDIF(NOT DISABLE_GCRYPT)
+
# Check for GnuTLS
IF(NOT DISABLE_GNUTLS)
FIND_PACKAGE(GnuTLS)
diff --git a/src/core/Makefile.am b/src/core/Makefile.am
index ebbfcac64..66460b762 100644
--- a/src/core/Makefile.am
+++ b/src/core/Makefile.am
@@ -14,7 +14,7 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
-INCLUDES = -DLOCALEDIR=\"$(datadir)/locale\" $(GNUTLS_CFLAGS)
+INCLUDES = -DLOCALEDIR=\"$(datadir)/locale\" $(GCRYPT_CFLAGS) $(GNUTLS_CFLAGS)
noinst_LIBRARIES = lib_weechat_core.a
diff --git a/src/core/wee-network.c b/src/core/wee-network.c
index 6971c49dd..13d38c233 100644
--- a/src/core/wee-network.c
+++ b/src/core/wee-network.c
@@ -37,6 +37,10 @@
#include <gnutls/gnutls.h>
#endif
+#ifdef HAVE_GCRYPT
+#include <gcrypt.h>
+#endif
+
#include "weechat.h"
#include "wee-network.h"
#include "wee-hook.h"
@@ -81,6 +85,11 @@ network_init ()
&hook_connect_gnutls_set_certificates);
network_init_ok = 1;
#endif
+#ifdef HAVE_GCRYPT
+ gcry_check_version (GCRYPT_VERSION);
+ gcry_control (GCRYCTL_DISABLE_SECMEM, 0);
+ gcry_control (GCRYCTL_INITIALIZATION_FINISHED, 0);
+#endif
}
/*
diff --git a/src/core/wee-upgrade-file.c b/src/core/wee-upgrade-file.c
index 0affb9457..cd453a352 100644
--- a/src/core/wee-upgrade-file.c
+++ b/src/core/wee-upgrade-file.c
@@ -668,7 +668,7 @@ upgrade_file_read_object (struct t_upgrade_file *upgrade_file)
rc = 0;
}
- end:
+end:
if (infolist)
infolist_free (infolist);
if (name)
diff --git a/src/gui/curses/Makefile.am b/src/gui/curses/Makefile.am
index e20d34630..814f129be 100644
--- a/src/gui/curses/Makefile.am
+++ b/src/gui/curses/Makefile.am
@@ -26,8 +26,8 @@ weechat_curses_LDADD = ./../../core/lib_weechat_core.a \
../../core/lib_weechat_core.a \
$(PLUGINS_LFLAGS) \
$(NCURSES_LFLAGS) \
- $(GNUTLS_LFLAGS) \
- $(IKSEMEL_LFLAGS)
+ $(GCRYPT_LFLAGS) \
+ $(GNUTLS_LFLAGS)
weechat_curses_SOURCES = gui-curses-bar-window.c \
gui-curses-chat.c \
diff --git a/src/gui/gtk/Makefile.am b/src/gui/gtk/Makefile.am
index 42301e482..76e5d8fe5 100644
--- a/src/gui/gtk/Makefile.am
+++ b/src/gui/gtk/Makefile.am
@@ -26,8 +26,8 @@ weechat_gtk_LDADD = ./../../core/lib_weechat_core.a \
../../core/lib_weechat_core.a \
$(PLUGINS_LFLAGS) \
$(GTK_LFLAGS) \
- $(GNUTLS_LFLAGS) \
- $(IKSEMEL_LFLAGS)
+ $(GCRYPT_LFLAGS) \
+ $(GNUTLS_LFLAGS)
weechat_gtk_SOURCES = gui-gtk-bar-window.c \
gui-gtk-chat.c \
diff --git a/src/plugins/irc/CMakeLists.txt b/src/plugins/irc/CMakeLists.txt
index 3e78db57a..65a22a68f 100644
--- a/src/plugins/irc/CMakeLists.txt
+++ b/src/plugins/irc/CMakeLists.txt
@@ -34,6 +34,7 @@ irc-msgbuffer.c irc-msgbuffer.h
irc-nick.c irc-nick.h
irc-protocol.c irc-protocol.h
irc-raw.c irc-raw.h
+irc-sasl.c irc-sasl.h
irc-server.c irc-server.h
irc-upgrade.c irc-upgrade.h)
SET_TARGET_PROPERTIES(irc PROPERTIES PREFIX "")
@@ -41,11 +42,17 @@ SET_TARGET_PROPERTIES(irc PROPERTIES PREFIX "")
CHECK_INCLUDE_FILES("regex.h" HAVE_REGEX_H)
CHECK_FUNCTION_EXISTS(regexec HAVE_REGEXEC)
+SET (LINK_LIBS)
+
IF(GNUTLS_FOUND)
INCLUDE_DIRECTORIES(${GNUTLS_INCLUDE_PATH})
- TARGET_LINK_LIBRARIES(irc ${GNUTLS_LIBRARY})
-ELSE(GNUTLS_FOUND)
- TARGET_LINK_LIBRARIES(irc)
+ LIST(APPEND LINK_LIBS ${GNUTLS_LIBRARY})
ENDIF(GNUTLS_FOUND)
+IF(GCRYPT_FOUND)
+ LIST(APPEND LINK_LIBS gcrypt)
+ENDIF(GCRYPT_FOUND)
+
+TARGET_LINK_LIBRARIES(irc ${LINK_LIBS})
+
INSTALL(TARGETS irc LIBRARY DESTINATION ${LIBDIR}/plugins)
diff --git a/src/plugins/irc/Makefile.am b/src/plugins/irc/Makefile.am
index 0846eba1c..6c0777387 100644
--- a/src/plugins/irc/Makefile.am
+++ b/src/plugins/irc/Makefile.am
@@ -14,7 +14,7 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
-INCLUDES = -DLOCALEDIR=\"$(datadir)/locale\" $(GNUTLS_CFLAGS)
+INCLUDES = -DLOCALEDIR=\"$(datadir)/locale\" $(GCRYPT_CFLAGS) $(GNUTLS_CFLAGS)
libdir = ${weechat_libdir}/plugins
@@ -58,12 +58,14 @@ irc_la_SOURCES = irc.c \
irc-protocol.h \
irc-raw.c \
irc-raw.h \
+ irc-sasl.c \
+ irc-sasl.h \
irc-server.c \
irc-server.h \
irc-upgrade.c \
irc-upgrade.h
irc_la_LDFLAGS = -module
-irc_la_LIBADD = $(IRC_LFLAGS) $(GNUTLS_LFLAGS)
+irc_la_LIBADD = $(IRC_LFLAGS) $(GCRYPT_LFLAGS) $(GNUTLS_LFLAGS)
EXTRA_DIST = CMakeLists.txt
diff --git a/src/plugins/irc/irc-config.c b/src/plugins/irc/irc-config.c
index aa3c4b160..8ca836f7b 100644
--- a/src/plugins/irc/irc-config.c
+++ b/src/plugins/irc/irc-config.c
@@ -969,7 +969,7 @@ irc_config_server_new_option (struct t_config_file *config_file,
config_file, section,
option_name, "integer",
N_("mechanism for SASL authentication"),
- "plain" /*"plain|dh-blowfish"*/, 0, 0,
+ "plain|dh-blowfish", 0, 0,
default_value, value,
null_value_allowed,
NULL, NULL,
@@ -1000,6 +1000,19 @@ irc_config_server_new_option (struct t_config_file *config_file,
callback_change, callback_change_data,
NULL, NULL);
break;
+ case IRC_SERVER_OPTION_SASL_TIMEOUT:
+ new_option = weechat_config_new_option (
+ config_file, section,
+ option_name, "integer",
+ N_("timeout (in seconds) before giving up SASL "
+ "authentication"),
+ NULL, 1, 3600,
+ default_value, value,
+ null_value_allowed,
+ NULL, NULL,
+ callback_change, callback_change_data,
+ NULL, NULL);
+ break;
case IRC_SERVER_OPTION_AUTOCONNECT:
new_option = weechat_config_new_option (
config_file, section,
diff --git a/src/plugins/irc/irc-display.c b/src/plugins/irc/irc-display.c
index 1476491f9..a988272b4 100644
--- a/src/plugins/irc/irc-display.c
+++ b/src/plugins/irc/irc-display.c
@@ -29,8 +29,9 @@
#include "irc-channel.h"
#include "irc-command.h"
#include "irc-config.h"
-#include "irc-server.h"
#include "irc-nick.h"
+#include "irc-server.h"
+#include "irc-sasl.h"
/*
diff --git a/src/plugins/irc/irc-protocol.c b/src/plugins/irc/irc-protocol.c
index dccb23b6f..42f6e52ab 100644
--- a/src/plugins/irc/irc-protocol.c
+++ b/src/plugins/irc/irc-protocol.c
@@ -44,6 +44,7 @@
#include "irc-mode.h"
#include "irc-msgbuffer.h"
#include "irc-nick.h"
+#include "irc-sasl.h"
#include "irc-server.h"
@@ -224,8 +225,7 @@ irc_protocol_cmd_authenticate (struct t_irc_server *server, const char *command,
int argc, char **argv, char **argv_eol)
{
const char *sasl_username, *sasl_password;
- char *string, *string_base64;
- int length_username, length;
+ char *answer;
/* AUTHENTICATE message looks like:
AUTHENTICATE +
@@ -236,7 +236,7 @@ irc_protocol_cmd_authenticate (struct t_irc_server *server, const char *command,
/* make C compiler happy */
(void) command;
- (void) argv_eol;
+ (void) argv;
sasl_username = IRC_SERVER_OPTION_STRING(server,
IRC_SERVER_OPTION_SASL_USERNAME);
@@ -245,33 +245,33 @@ irc_protocol_cmd_authenticate (struct t_irc_server *server, const char *command,
if (sasl_username && sasl_username[0]
&& sasl_password && sasl_password[0])
{
- length_username = strlen (sasl_username);
- length = ((length_username + 1) * 2) + strlen (sasl_password) + 1;
- string = malloc (length);
- if (string)
+ switch (IRC_SERVER_OPTION_INTEGER(server,
+ IRC_SERVER_OPTION_SASL_MECHANISM))
{
- snprintf (string, length, "%s|%s|%s",
- sasl_username, sasl_username, sasl_password);
- string[length_username] = '\0';
- string[(length_username * 2) + 1] = '\0';
-
- if (strcmp (argv[1], "+") == 0)
- {
- /* mechanism PLAIN */
- string_base64 = malloc (length * 2);
- if (string_base64)
- {
- weechat_string_encode_base64 (string, length - 1, string_base64);
- irc_server_sendf (server, 0, "AUTHENTICATE %s", string_base64);
- free (string_base64);
- }
- }
- else
- {
- /* TODO: other mechanisms */
- }
-
- free (string);
+ case IRC_SASL_MECHANISM_DH_BLOWFISH:
+ answer = irc_sasl_mechanism_dh_blowfish (argv_eol[1],
+ sasl_username,
+ sasl_password);
+ break;
+ case IRC_SASL_MECHANISM_PLAIN:
+ default:
+ answer = irc_sasl_mechanism_plain (sasl_username,
+ sasl_password);
+ break;
+ }
+ if (answer)
+ {
+ irc_server_sendf (server, 0, "AUTHENTICATE %s", answer);
+ free (answer);
+ }
+ else
+ {
+ weechat_printf (server->buffer,
+ _("%s%s: error building answer for "
+ "SASL authentication, using mechanism \"%s\""),
+ weechat_prefix ("error"), IRC_PLUGIN_NAME,
+ irc_sasl_mechanism_string[IRC_SERVER_OPTION_INTEGER(server, IRC_SERVER_OPTION_SASL_MECHANISM)]);
+ irc_server_sendf (server, 0, "CAP END");
}
}
@@ -287,11 +287,12 @@ irc_protocol_cmd_cap (struct t_irc_server *server, const char *command,
int argc, char **argv, char **argv_eol)
{
char *ptr_caps, **items;
- int num_items, sasl, i;
+ int num_items, sasl, i, timeout;
/* CAP message looks like:
:server CAP * LS :identify-msg multi-prefix sasl
:server CAP * ACK :sasl
+ :server CAP * NAK :sasl
*/
IRC_PROTOCOL_MIN_ARGS(4);
@@ -348,14 +349,27 @@ irc_protocol_cmd_cap (struct t_irc_server *server, const char *command,
ptr_caps = (argv_eol[4][0] == ':') ? argv_eol[4] + 1 : argv_eol[4];
weechat_printf (server->buffer,
_("%s%s: client capability, enabled: %s"),
- weechat_prefix ("network"),
- IRC_PLUGIN_NAME,
+ weechat_prefix ("network"), IRC_PLUGIN_NAME,
ptr_caps);
if (strcmp (ptr_caps, "sasl") == 0)
{
switch (IRC_SERVER_OPTION_INTEGER(server,
IRC_SERVER_OPTION_SASL_MECHANISM))
{
+ case IRC_SASL_MECHANISM_DH_BLOWFISH:
+#ifdef HAVE_GCRYPT
+ irc_server_sendf (server, 0, "AUTHENTICATE DH-BLOWFISH");
+#else
+ weechat_printf (server->buffer,
+ _("%s%s: cannot authenticate with SASL "
+ "and mechanism DH-BLOWFISH because "
+ "WeeChat was not built with "
+ "libgcrypt support"),
+ weechat_prefix ("error"),
+ IRC_PLUGIN_NAME);
+ irc_server_sendf (server, 0, "CAP END");
+#endif
+ break;
case IRC_SASL_MECHANISM_PLAIN:
default:
irc_server_sendf (server, 0, "AUTHENTICATE PLAIN");
@@ -363,12 +377,28 @@ irc_protocol_cmd_cap (struct t_irc_server *server, const char *command,
}
if (server->hook_timer_sasl)
weechat_unhook (server->hook_timer_sasl);
- server->hook_timer_sasl = weechat_hook_timer (5 * 1000, 0, 1,
+ timeout = IRC_SERVER_OPTION_INTEGER(server,
+ IRC_SERVER_OPTION_SASL_TIMEOUT);
+ server->hook_timer_sasl = weechat_hook_timer (timeout * 1000,
+ 0, 1,
&irc_server_timer_sasl_cb,
server);
}
}
}
+ else if (strcmp (argv[3], "NAK") == 0)
+ {
+ if (argc > 4)
+ {
+ ptr_caps = (argv_eol[4][0] == ':') ? argv_eol[4] + 1 : argv_eol[4];
+ weechat_printf (server->buffer,
+ _("%s%s: client capability, refused: %s"),
+ weechat_prefix ("error"), IRC_PLUGIN_NAME,
+ ptr_caps);
+ if (!server->is_connected)
+ irc_server_sendf (server, 0, "CAP END");
+ }
+ }
return WEECHAT_RC_OK;
}
diff --git a/src/plugins/irc/irc-sasl.c b/src/plugins/irc/irc-sasl.c
new file mode 100644
index 000000000..8d8f0c1ab
--- /dev/null
+++ b/src/plugins/irc/irc-sasl.c
@@ -0,0 +1,236 @@
+/*
+ * Copyright (c) 2003-2010 by FlashCode <flashcode@flashtux.org>
+ * See README for License detail, AUTHORS for developers list.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/* irc-sasl.c: SASL authentication with IRC server */
+
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <arpa/inet.h>
+
+#ifdef HAVE_GCRYPT
+#include <gcrypt.h>
+#endif
+
+#include "../weechat-plugin.h"
+#include "irc.h"
+#include "irc-sasl.h"
+
+
+char *irc_sasl_mechanism_string[IRC_NUM_SASL_MECHANISMS] =
+{ "plain", "dh-blowfish" };
+
+
+/*
+ * irc_sasl_mechanism_plain: build answer for SASL authentication, using
+ * mechanism "PLAIN"
+ * Note: result must be freed after use
+ */
+
+char *
+irc_sasl_mechanism_plain (const char *sasl_username, const char *sasl_password)
+{
+ char *string, *answer_base64;
+ int length_username, length;
+
+ length_username = strlen (sasl_username);
+ length = ((length_username + 1) * 2) + strlen (sasl_password) + 1;
+ string = malloc (length);
+ if (string)
+ {
+ snprintf (string, length, "%s|%s|%s",
+ sasl_username, sasl_username, sasl_password);
+ string[length_username] = '\0';
+ string[(length_username * 2) + 1] = '\0';
+
+ answer_base64 = malloc (length * 2);
+ if (answer_base64)
+ weechat_string_encode_base64 (string, length - 1, answer_base64);
+
+ free (string);
+ }
+
+ return answer_base64;
+}
+
+/*
+ * irc_sasl_mechanism_dh_blowfish: build answer for SASL authentication, using
+ * mechanism "DH-BLOWFISH"
+ * Note: result must be freed after use
+ *
+ * data_base64 is a concatenation of 3 strings,
+ * each string is composed of 2 bytes (length
+ * of string), followed by content of string:
+ * 1. a prime number
+ * 2. a generator number
+ * 3. server-generated public key
+ */
+
+char *
+irc_sasl_mechanism_dh_blowfish (const char *data_base64,
+ const char *sasl_username,
+ const char *sasl_password)
+{
+#ifdef HAVE_GCRYPT
+ char *data, *answer, *ptr_answer, *answer_base64;
+ unsigned char *ptr_data, *secret_bin, *public_bin;
+ unsigned char *password_clear, *password_crypted;
+ int length_data, size, num_bits_prime_number, length_key;
+ int length_username, length_password, length_answer;
+ size_t num_written;
+ gcry_mpi_t data_prime_number, data_generator_number, data_server_pub_key;
+ gcry_mpi_t pub_key, priv_key, secret_mpi;
+ gcry_cipher_hd_t gcrypt_handle;
+
+ data = NULL;
+ secret_bin = NULL;
+ public_bin = NULL;
+ password_clear = NULL;
+ password_crypted = NULL;
+ answer = NULL;
+ answer_base64 = NULL;
+
+ /* decode data */
+ data = malloc (strlen (data_base64) + 1);
+ length_data = weechat_string_decode_base64 (data_base64, data);
+ ptr_data = (unsigned char *)data;
+
+ /* extract prime number */
+ size = ntohs ((((unsigned int)ptr_data[1]) << 8) | ptr_data[0]);
+ ptr_data += 2;
+ length_data -= 2;
+ if (size > length_data)
+ goto end;
+ data_prime_number = gcry_mpi_new (size * 8);
+ gcry_mpi_scan (&data_prime_number, GCRYMPI_FMT_USG, ptr_data, size, NULL);
+ num_bits_prime_number = gcry_mpi_get_nbits (data_prime_number);
+ ptr_data += size;
+ length_data -= size;
+
+ /* extract generator number */
+ size = ntohs ((((unsigned int)ptr_data[1]) << 8) | ptr_data[0]);
+ ptr_data += 2;
+ length_data -= 2;
+ if (size > length_data)
+ goto end;
+ data_generator_number = gcry_mpi_new (size * 8);
+ gcry_mpi_scan (&data_generator_number, GCRYMPI_FMT_USG, ptr_data, size, NULL);
+ ptr_data += size;
+ length_data -= size;
+
+ /* extract server-generated public key */
+ size = ntohs ((((unsigned int)ptr_data[1]) << 8) | ptr_data[0]);
+ ptr_data += 2;
+ length_data -= 2;
+ if (size > length_data)
+ goto end;
+ data_server_pub_key = gcry_mpi_new (size * 8);
+ gcry_mpi_scan (&data_server_pub_key, GCRYMPI_FMT_USG, ptr_data, size, NULL);
+ ptr_data += size;
+ length_data -= size;
+
+ /* generate keys */
+ pub_key = gcry_mpi_new (num_bits_prime_number);
+ priv_key = gcry_mpi_new (num_bits_prime_number);
+ gcry_mpi_randomize (priv_key, num_bits_prime_number, GCRY_STRONG_RANDOM);
+ /* pub_key = (g ^ priv_key) % p */
+ gcry_mpi_powm (pub_key, data_generator_number, priv_key, data_prime_number);
+
+ /* compute secret_bin */
+ length_key = num_bits_prime_number / 8;
+ secret_bin = malloc (length_key);
+ secret_mpi = gcry_mpi_new (num_bits_prime_number);
+ /* secret_mpi = (y ^ priv_key) % p */
+ gcry_mpi_powm (secret_mpi, data_server_pub_key, priv_key, data_prime_number);
+ gcry_mpi_print (GCRYMPI_FMT_USG, secret_bin, length_key,
+ &num_written, secret_mpi);
+
+ /* create public_bin */
+ public_bin = malloc (length_key);
+ gcry_mpi_print (GCRYMPI_FMT_USG, public_bin, length_key,
+ &num_written, pub_key);
+
+ /* create password buffers (clear and crypted) */
+ length_password = strlen (sasl_password) +
+ ((8 - (strlen (sasl_password) % 8)) % 8);
+ password_clear = malloc (length_password);
+ password_crypted = malloc (length_password);
+ memset (password_clear, 0, length_password);
+ memset (password_crypted, 0, length_password);
+ memcpy (password_clear, sasl_password, strlen (sasl_password));
+
+ /* crypt password using blowfish */
+ if (gcry_cipher_open (&gcrypt_handle, GCRY_CIPHER_BLOWFISH,
+ GCRY_CIPHER_MODE_ECB, 0) != 0)
+ goto end;
+ if (gcry_cipher_setkey (gcrypt_handle, secret_bin, length_key) != 0)
+ goto end;
+ if (gcry_cipher_encrypt (gcrypt_handle,
+ password_crypted, length_password,
+ password_clear, length_password) != 0)
+ goto end;
+
+ /* build answer for server, it is concatenation of:
+ 1. key length (2 bytes)
+ 2. public key ('length_key' bytes)
+ 3. sasl_username ('length_username'+1 bytes)
+ 4. encrypted password ('length_password' bytes)
+ */
+ length_username = strlen (sasl_username);
+ length_answer = 2 + length_key + length_username + 1 + length_password;
+ answer = malloc (length_answer);
+ ptr_answer = answer;
+ *((unsigned int *)ptr_answer) = htons(length_key);
+ ptr_answer += 2;
+ memcpy (ptr_answer, public_bin, length_key);
+ ptr_answer += length_key;
+ memcpy (ptr_answer, sasl_username, length_username + 1);
+ ptr_answer += length_username + 1;
+ memcpy (ptr_answer, password_crypted, length_password);
+ ptr_answer += length_password;
+
+ /* encode answer to base64 */
+ answer_base64 = malloc (length_answer * 2);
+ if (answer_base64)
+ weechat_string_encode_base64 (answer, length_answer, answer_base64);
+
+end:
+ if (data)
+ free (data);
+ if (secret_bin)
+ free (secret_bin);
+ if (public_bin)
+ free (public_bin);
+ if (password_clear)
+ free (password_clear);
+ if (password_crypted)
+ free (password_crypted);
+ if (answer)
+ free (answer);
+
+ return answer_base64;
+#else
+ /* make C compiler happy */
+ (void) data_base64;
+ (void) sasl_username;
+ (void) sasl_password;
+
+ return NULL;
+#endif
+}
diff --git a/src/plugins/irc/irc-sasl.h b/src/plugins/irc/irc-sasl.h
new file mode 100644
index 000000000..6eb3b75f9
--- /dev/null
+++ b/src/plugins/irc/irc-sasl.h
@@ -0,0 +1,41 @@
+/*
+ * Copyright (c) 2003-2010 by FlashCode <flashcode@flashtux.org>
+ * See README for License detail, AUTHORS for developers list.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+#ifndef __WEECHAT_IRC_SASL_H
+#define __WEECHAT_IRC_SASL_H 1
+
+/* SASL authentication mechanisms */
+
+enum t_irc_sasl_mechanism
+{
+ IRC_SASL_MECHANISM_PLAIN = 0,
+ IRC_SASL_MECHANISM_DH_BLOWFISH,
+ /* number of SASL mechanisms */
+ IRC_NUM_SASL_MECHANISMS,
+};
+
+extern char *irc_sasl_mechanism_string[];
+
+extern char *irc_sasl_mechanism_plain (const char *sasl_username,
+ const char *sasl_password);
+extern char *irc_sasl_mechanism_dh_blowfish (const char *data_base64,
+ const char *sasl_username,
+ const char *sasl_password);
+
+#endif /* irc-sasl.h */
diff --git a/src/plugins/irc/irc-server.c b/src/plugins/irc/irc-server.c
index e59fc5c3b..81172b43a 100644
--- a/src/plugins/irc/irc-server.c
+++ b/src/plugins/irc/irc-server.c
@@ -49,6 +49,7 @@
#include "irc-nick.h"
#include "irc-protocol.h"
#include "irc-raw.h"
+#include "irc-sasl.h"
struct t_irc_server *irc_servers = NULL;
@@ -60,7 +61,7 @@ struct t_irc_message *irc_msgq_last_msg = NULL;
char *irc_server_option_string[IRC_SERVER_NUM_OPTIONS] =
{ "addresses", "proxy", "ipv6",
"ssl", "ssl_cert", "ssl_dhkey_size", "ssl_verify",
- "password", "sasl_mechanism", "sasl_username", "sasl_password",
+ "password", "sasl_mechanism", "sasl_username", "sasl_password", "sasl_timeout",
"autoconnect", "autoreconnect", "autoreconnect_delay",
"nicks", "username", "realname", "local_hostname",
"command", "command_delay", "autojoin", "autorejoin", "autorejoin_delay",
@@ -69,15 +70,12 @@ char *irc_server_option_string[IRC_SERVER_NUM_OPTIONS] =
char *irc_server_option_default[IRC_SERVER_NUM_OPTIONS] =
{ "", "", "off",
"off", "", "2048", "on",
- "", "plain", "", "",
+ "", "plain", "", "", "15",
"off", "on", "30",
"", "", "", "",
"", "0", "", "off", "30",
};
-char *irc_sasl_mechanism_string[IRC_NUM_SASL_MECHANISMS] =
-{ "plain", /*"dh-blowfish"*/ };
-
void irc_server_reconnect (struct t_irc_server *server);
void irc_server_check_away ();
diff --git a/src/plugins/irc/irc-server.h b/src/plugins/irc/irc-server.h
index 560fa0346..0581fb555 100644
--- a/src/plugins/irc/irc-server.h
+++ b/src/plugins/irc/irc-server.h
@@ -44,6 +44,7 @@ enum t_irc_server_option
IRC_SERVER_OPTION_SASL_MECHANISM,/* mechanism for SASL authentication */
IRC_SERVER_OPTION_SASL_USERNAME, /* username for SASL authentication */
IRC_SERVER_OPTION_SASL_PASSWORD, /* password for SASL authentication */
+ IRC_SERVER_OPTION_SASL_TIMEOUT, /* timeout for SASL authentication */
IRC_SERVER_OPTION_AUTOCONNECT, /* autoconnect to server at startup */
IRC_SERVER_OPTION_AUTORECONNECT, /* autoreconnect when disconnected */
IRC_SERVER_OPTION_AUTORECONNECT_DELAY, /* delay before trying again reco */
@@ -90,16 +91,6 @@ enum t_irc_server_option
#define IRC_SERVER_OUTQUEUE_PRIO_LOW 2
#define IRC_SERVER_NUM_OUTQUEUES_PRIO 2
-/* SASL authentication mechanisms */
-
-enum t_irc_sasl_mechanism
-{
- IRC_SASL_MECHANISM_PLAIN = 0,
- /* TODO: IRC_SASL_MECHANISM_DH_BLOWFISH, */
- /* number of SASL mechanisms */
- IRC_NUM_SASL_MECHANISMS,
-};
-
/* output queue of messages to server (for sending slowly to server) */
struct t_irc_outqueue
@@ -185,7 +176,6 @@ extern const int gnutls_prot_prio[];
extern struct t_irc_message *irc_recv_msgq, *irc_msgq_last_msg;
extern char *irc_server_option_string[];
extern char *irc_server_option_default[];
-extern char *irc_sasl_mechanism_string[];
extern int irc_server_valid (struct t_irc_server *server);
extern int irc_server_search_option (const char *option_name);