1
0
mirror of https://github.com/weechat/weechat.git synced 2026-07-03 17:45:42 +02:00

relay: add command "handshake" in weechat relay protocol and nonce to prevent replay attacks (closes #1474)

This introduces a new command called "handshake" in the weechat relay protocol.
It should be sent by the client before the "init" command, to negotiate the way
to authenticate with a password.

3 new options are added:

* relay.network.auth_password
* relay.network.hash_iterations
* relay.network.nonce_size
This commit is contained in:
Sébastien Helleu
2020-04-14 21:34:46 +02:00
parent ccd45e4921
commit 9fa3609c85
43 changed files with 2390 additions and 471 deletions
+1
View File
@@ -21,6 +21,7 @@ https://weechat.org/files/releasenotes/ReleaseNotes-devel.html[release notes]
New features::
* buflist: evaluate option buflist.look.sort so that sort can be customized for each of the three buflist bar items (issue #1465)
* relay: add command "handshake" in weechat relay protocol and nonce to prevent replay attacks, add options relay.network.auth_password, relay.network.hash_iterations, relay.network.nonce_size (issue #1474)
* relay: add option relay.network.auth_timeout
* relay: update default colors for client status
* relay: add status "waiting_auth" in irc and weechat protocols (issue #1358)
+30
View File
@@ -20,6 +20,36 @@ https://weechat.org/files/changelog/ChangeLog-devel.html[ChangeLog]
[[v2.9]]
== Version 2.9 (under dev)
[[v2.9_relay_weechat_protocol_handshake_nonce]]
=== Add of handshake and nonce in weechat relay protocol
==== Handshake
A _handshake_ command has been added in weechat relay protocol. +
The client should send this command before the _init_ to negotiate the way to
authenticate with the relay server.
See the link:weechat_relay_protocol.en.html#command_handshake[handshake command]
in Relay protocol doc for more information.
==== Server "nonce"
Furthermore, a "nonce" is now generated for each client connecting and must be
used by the client in case of hashed password in the _init_ command. +
The goal is to prevent replay attacks in case someone manages to read exchanges
between the client and relay.
When hashing the password, the client must use salt composed by this nonce
as binary (it is hexadecimal and must be base16-decoded), concatenated with
a client nonce after this one. +
So the hash is computed on: (`server nonce` + `client nonce` + `password`).
This salt is now mandatory even for algorithms `SHA256` and `SHA512`; this is
a breaking change in protocol, needed for security reasons.
See the link:weechat_relay_protocol.en.html#command_init[init command]
in Relay protocol doc for more information.
[[v2.9_trigger_command_eval]]
=== Evaluation of trigger command arguments
+18
View File
@@ -116,6 +116,12 @@
** Werte: beliebige Zeichenkette
** Standardwert: `+""+`
* [[option_relay.network.auth_password]] *relay.network.auth_password*
** Beschreibung: pass:none[comma separated list of hash algorithms used for password authentication in weechat protocol, among these values: "plain" (password in plain text, not hashed), "sha256", "sha512", "pbkdf2+sha256", "pbkdf2+sha512"), "*" means all algorithms, a name beginning with "!" is a negative value to prevent an algorithm from being used, wildcard "*" is allowed in names (examples: "*", "pbkdf2*", "*,!plain")]
** Typ: Zeichenkette
** Werte: beliebige Zeichenkette
** Standardwert: `+"*"+`
* [[option_relay.network.auth_timeout]] *relay.network.auth_timeout*
** Beschreibung: pass:none[timeout (in seconds) for client authentication: connection is closed if the client is still not authenticated after this delay and the client status is set to "authentication failed" (0 = wait forever)]
** Typ: integer
@@ -140,6 +146,12 @@
** Werte: 0 .. 9
** Standardwert: `+6+`
* [[option_relay.network.hash_iterations]] *relay.network.hash_iterations*
** Beschreibung: pass:none[number of iterations asked to the client in weechat protocol when a hashed password with algorithm PBKDF2 is used for authentication; more iterations is better in term of security but is slower to compute; this number should not be too high if your CPU is slow]
** Typ: integer
** Werte: 1 .. 1000000
** Standardwert: `+100000+`
* [[option_relay.network.ipv6]] *relay.network.ipv6*
** Beschreibung: pass:none[lauscht standardmäßig am IPv6 Socket (zusätzlich zu IPv4, welches als Standardprotokoll genutzt wird); mittels des Protokollnamens kann das IPv4 und IPv6 Protokoll, einzeln oder gemeinsam, erzwungen werden (siehe /help relay)]
** Typ: boolesch
@@ -152,6 +164,12 @@
** Werte: 0 .. 2147483647
** Standardwert: `+5+`
* [[option_relay.network.nonce_size]] *relay.network.nonce_size*
** Beschreibung: pass:none[size of nonce (in bytes), generated when a client connects; the client must use this nonce, concatenated to the client nonce and the password when hashing the password in the "init" command of the weechat protocol]
** Typ: integer
** Werte: 8 .. 128
** Standardwert: `+16+`
* [[option_relay.network.password]] *relay.network.password*
** Beschreibung: pass:none[Passwort wird von Clients benötigt um Zugriff auf dieses Relay zu erhalten (kein Eintrag bedeutet, dass kein Passwort benötigt wird, siehe Option relay.network.allow_empty_password) (Hinweis: Inhalt wird evaluiert, siehe /help eval)]
** Typ: Zeichenkette
+18
View File
@@ -116,6 +116,12 @@
** values: any string
** default value: `+""+`
* [[option_relay.network.auth_password]] *relay.network.auth_password*
** description: pass:none[comma separated list of hash algorithms used for password authentication in weechat protocol, among these values: "plain" (password in plain text, not hashed), "sha256", "sha512", "pbkdf2+sha256", "pbkdf2+sha512"), "*" means all algorithms, a name beginning with "!" is a negative value to prevent an algorithm from being used, wildcard "*" is allowed in names (examples: "*", "pbkdf2*", "*,!plain")]
** type: string
** values: any string
** default value: `+"*"+`
* [[option_relay.network.auth_timeout]] *relay.network.auth_timeout*
** description: pass:none[timeout (in seconds) for client authentication: connection is closed if the client is still not authenticated after this delay and the client status is set to "authentication failed" (0 = wait forever)]
** type: integer
@@ -140,6 +146,12 @@
** values: 0 .. 9
** default value: `+6+`
* [[option_relay.network.hash_iterations]] *relay.network.hash_iterations*
** description: pass:none[number of iterations asked to the client in weechat protocol when a hashed password with algorithm PBKDF2 is used for authentication; more iterations is better in term of security but is slower to compute; this number should not be too high if your CPU is slow]
** type: integer
** values: 1 .. 1000000
** default value: `+100000+`
* [[option_relay.network.ipv6]] *relay.network.ipv6*
** description: pass:none[listen on IPv6 socket by default (in addition to IPv4 which is default); protocols IPv4 and IPv6 can be forced (individually or together) in the protocol name (see /help relay)]
** type: boolean
@@ -152,6 +164,12 @@
** values: 0 .. 2147483647
** default value: `+5+`
* [[option_relay.network.nonce_size]] *relay.network.nonce_size*
** description: pass:none[size of nonce (in bytes), generated when a client connects; the client must use this nonce, concatenated to the client nonce and the password when hashing the password in the "init" command of the weechat protocol]
** type: integer
** values: 8 .. 128
** default value: `+16+`
* [[option_relay.network.password]] *relay.network.password*
** description: pass:none[password required by clients to access this relay (empty value means no password required, see option relay.network.allow_empty_password) (note: content is evaluated, see /help eval)]
** type: string
+42 -42
View File
@@ -318,6 +318,7 @@ WeeChat "core" is located in following directories:
|       weechat-python-api.c | Python scripting API functions.
|    relay/ | Relay plugin (IRC proxy and relay for remote interfaces).
|       relay.c | Main relay functions.
|       relay-auth.c | Clients authentication.
|       relay-buffer.c | Relay buffer.
|       relay-client.c | Clients of relay.
|       relay-command.c | Relay commands.
@@ -378,48 +379,47 @@ WeeChat "core" is located in following directories:
[width="100%",cols="1m,2",options="header"]
|===
| Path/file | Description
| tests/ | Root of tests.
|    tests.cpp | Program used to run all tests.
|    scripts/ | Root of scripting API tests.
|       test-scripts.cpp | Program used to run the scripting API tests.
|       python/ | Python scripts to generate and run the scripting API tests.
|          testapigen.py | Python script generating scripts in all languages to test the scripting API.
|          testapi.py | Python script with scripting API tests, used by script testapigen.py.
|          unparse.py | Convert Python code to other languages, used by script testapigen.py.
|    unit/ | Root of unit tests.
|       test-plugins.cpp | Tests: plugins.
|       core/ | Root of unit tests for core.
|          test-core-arraylist.cpp | Tests: arraylists.
|          test-core-calc.cpp | Tests: calculation of expressions.
|          test-core-crypto.cpp | Tests: cryptographic functions.
|          test-core-eval.cpp | Tests: evaluation of expressions.
|          test-core-hashtble.cpp | Tests: hashtables.
|          test-core-hdata.cpp | Tests: hdata.
|          test-core-hook.cpp | Tests: hooks.
|          test-core-infolist.cpp | Tests: infolists.
|          test-core-list.cpp | Tests: lists.
|          test-core-secure.cpp | Tests: secured data.
|          test-core-string.cpp | Tests: strings.
|          test-core-url.cpp | Tests: URLs.
|          test-core-utf8.cpp | Tests: UTF-8.
|          test-core-util.cpp | Tests: utility functions.
|       gui/ | Root of unit tests for interfaces.
|          test-gui-color.cpp | Tests: colors.
|          test-gui-line.cpp | Tests: lines.
|          test-gui-nick.cpp | Tests: nicks.
|       plugins/ | Root of unit tests for plugins.
|          irc/ | Root of unit tests for IRC plugin.
|             test-irc-color.cpp | Tests: IRC colors.
|             test-irc-config.cpp | Tests: IRC configuration.
|             test-irc-ignore.cpp | Tests: IRC ignores.
|             test-irc-message.cpp | Tests: IRC messages.
|             test-irc-mode.cpp | Tests: IRC modes.
|             test-irc-nick.cpp | Tests: IRC nicks.
|             test-irc-protocol.cpp | Tests: IRC protocol.
|          relay/ | Root of unit tests for Relay plugin.
|             weechat/ | Root of unit tests for weechat protocol.
|                test-relay-weechat-protocol.cpp | Tests: weechat protocol.
| Path/file | Description
| tests/ | Root of tests.
|    tests.cpp | Program used to run all tests.
|    scripts/ | Root of scripting API tests.
|       test-scripts.cpp | Program used to run the scripting API tests.
|       python/ | Python scripts to generate and run the scripting API tests.
|          testapigen.py | Python script generating scripts in all languages to test the scripting API.
|          testapi.py | Python script with scripting API tests, used by script testapigen.py.
|          unparse.py | Convert Python code to other languages, used by script testapigen.py.
|    unit/ | Root of unit tests.
|       test-plugins.cpp | Tests: plugins.
|       core/ | Root of unit tests for core.
|          test-core-arraylist.cpp | Tests: arraylists.
|          test-core-calc.cpp | Tests: calculation of expressions.
|          test-core-crypto.cpp | Tests: cryptographic functions.
|          test-core-eval.cpp | Tests: evaluation of expressions.
|          test-core-hashtble.cpp | Tests: hashtables.
|          test-core-hdata.cpp | Tests: hdata.
|          test-core-hook.cpp | Tests: hooks.
|          test-core-infolist.cpp | Tests: infolists.
|          test-core-list.cpp | Tests: lists.
|          test-core-secure.cpp | Tests: secured data.
|          test-core-string.cpp | Tests: strings.
|          test-core-url.cpp | Tests: URLs.
|          test-core-utf8.cpp | Tests: UTF-8.
|          test-core-util.cpp | Tests: utility functions.
|       gui/ | Root of unit tests for interfaces.
|          test-gui-color.cpp | Tests: colors.
|          test-gui-line.cpp | Tests: lines.
|          test-gui-nick.cpp | Tests: nicks.
|       plugins/ | Root of unit tests for plugins.
|          irc/ | Root of unit tests for IRC plugin.
|             test-irc-color.cpp | Tests: IRC colors.
|             test-irc-config.cpp | Tests: IRC configuration.
|             test-irc-ignore.cpp | Tests: IRC ignores.
|             test-irc-message.cpp | Tests: IRC messages.
|             test-irc-mode.cpp | Tests: IRC modes.
|             test-irc-nick.cpp | Tests: IRC nicks.
|             test-irc-protocol.cpp | Tests: IRC protocol.
|          relay/ | Root of unit tests for Relay plugin.
|             test-relay-auth.cpp | Tests: clients authentication.
|===
File diff suppressed because it is too large Load Diff
+18
View File
@@ -116,6 +116,12 @@
** valeurs: toute chaîne
** valeur par défaut: `+""+`
* [[option_relay.network.auth_password]] *relay.network.auth_password*
** description: pass:none[liste des algorithmes de hachage pour l'authentification par mot de passe dans le protocole relay, parmi ces valeurs : "plain" (mot de passe en clair, non haché), "sha256", "sha512", "pbkdf2+sha256", "pbkdf2+sha512" ; "*" signifie tous les algorithmes, un nom commençant par "!" est une valeur négative pour empêcher un algorithme d'être utilisé, le caractère joker "*" est autorisé dans les noms (exemples : "*", "pbkdf2*", "*,!plain")]
** type: chaîne
** valeurs: toute chaîne
** valeur par défaut: `+"*"+`
* [[option_relay.network.auth_timeout]] *relay.network.auth_timeout*
** description: pass:none[temps maximum (en secondes) pour l'authentification du client ; la connexion est fermée si le client n'est toujours pas authentifié après ce délai et le statut est positionné à "échec d'authentification" (0 = attendre sans fin)]
** type: entier
@@ -140,6 +146,12 @@
** valeurs: 0 .. 9
** valeur par défaut: `+6+`
* [[option_relay.network.hash_iterations]] *relay.network.hash_iterations*
** description: pass:none[nombre d'itérations demandées au client dans le protocole weechat lorsqu'un mot de passe haché avec l'algorithme PBKDF2 est utilisé pour l'authentification ; plus d'itérations est mieux en terme de sécurité mais est plus lent à calculer ; ce nombre ne doit pas être trop élevé si votre micro-processeur est lent]
** type: entier
** valeurs: 1 .. 1000000
** valeur par défaut: `+100000+`
* [[option_relay.network.ipv6]] *relay.network.ipv6*
** description: pass:none[écouter en IPv6 sur le socket par défaut (en plus de l'IPv4 qui est par défaut) ; les protocoles IPv4 et IPv6 peuvent être forcés (individuellement ou ensemble) dans le nom du protocole (voir /help relay)]
** type: booléen
@@ -152,6 +164,12 @@
** valeurs: 0 .. 2147483647
** valeur par défaut: `+5+`
* [[option_relay.network.nonce_size]] *relay.network.nonce_size*
** description: pass:none[taille du nonce (en octets), généré lorsqu'un client se connecte ; le client doit utiliser ce nonce, concaténé au nonce client et au mot de passe pour hacher le mot de passe dans la commande "init" du protocole weechat]
** type: entier
** valeurs: 8 .. 128
** valeur par défaut: `+16+`
* [[option_relay.network.password]] *relay.network.password*
** description: pass:none[mot de passe requis par les clients pour accéder à ce relai (une valeur vide indique que le mot de passe n'est pas nécessaire, voir l'option relay.network.allow_empty_password) (note : le contenu est évalué, voir /help eval)]
** type: chaîne
+42 -42
View File
@@ -320,6 +320,7 @@ Le cœur de WeeChat est situé dans les répertoires suivants :
|       weechat-python-api.c | Fonctions de l'API script Python.
|    relay/ | Extension Relay (proxy IRC et relai pour des interfaces distantes).
|       relay.c | Fonctions principales de Relay.
|       relay-auth.c | Authentification des clients.
|       relay-buffer.c | Tampon Relay.
|       relay-client.c | Clients du relai.
|       relay-command.c | Commandes de Relay.
@@ -380,48 +381,47 @@ Le cœur de WeeChat est situé dans les répertoires suivants :
[width="100%",cols="1m,2",options="header"]
|===
| Chemin/fichier | Description
| tests/ | Racine des tests.
|    tests.cpp | Programme utilisé pour lancer tous les tests.
|    scripts/ | Racine des tests de l'API script.
|       test-scripts.cpp | Programme utilisé pour lancer les tests de l'API script.
|       python/ | Scripts Python pour générer et lancer les tests de l'API script.
|          testapigen.py | Script Python générant des scripts dans tous les languages pour tester l'API script.
|          testapi.py | Script Python avec les tests API, utilisé par le script testapigen.py.
|          unparse.py | Conversion de code Python vers d'autres langages, utilisé par le script testapigen.py.
|    unit/ | Racine des tests unitaires.
|       test-plugins.cpp | Tests : extensions.
|       core/ | Racine des tests unitaires pour le cœur.
|          test-core-arraylist.cpp | Tests : listes avec tableau (« arraylists »).
|          test-core-calc.cpp | Tests : calcul d'expressions.
|          test-core-crypto.cpp | Tests : fonctions cryptographiques.
|          test-core-eval.cpp | Tests : évaluation d'expressions.
|          test-core-hashtble.cpp | Tests : tables de hachage.
|          test-core-hdata.cpp | Tests : hdata.
|          test-core-hook.cpp | Tests : hooks.
|          test-core-infolist.cpp | Tests : infolists.
|          test-core-list.cpp | Tests : listes.
|          test-core-secure.cpp | Tests : données sécurisées.
|          test-core-string.cpp | Tests : chaînes.
|          test-core-url.cpp | Tests : URLs.
|          test-core-utf8.cpp | Tests : UTF-8.
|          test-core-util.cpp | Tests : fonctions utiles.
|       gui/ | Racine des tests unitaires pour les interfaces.
|          test-gui-color.cpp | Tests : couleurs.
|          test-gui-line.cpp | Tests : lignes.
|          test-gui-nick.cpp | Tests : pseudos.
|       plugins/ | Racine des tests unitaires pour les extensions.
|          irc/ | Racine des tests unitaires pour l'extension IRC.
|             test-irc-color.cpp | Tests : couleurs IRC.
|             test-irc-config.cpp | Tests : configuration IRC.
|             test-irc-ignore.cpp | Tests : ignores IRC.
|             test-irc-message.cpp | Tests : messages IRC.
|             test-irc-mode.cpp | Tests : modes IRC.
|             test-irc-nick.cpp | Tests : pseudos IRC.
|             test-irc-protocol.cpp | Tests : protocole IRC.
|          relay/ | Racine des tests unitaires pour l'extension Relay.
|             weechat/ | Racine des tests unitaires pour le protocole weechat.
|                test-relay-weechat-protocol.cpp | Tests : protocole weechat.
| Chemin/fichier | Description
| tests/ | Racine des tests.
|    tests.cpp | Programme utilisé pour lancer tous les tests.
|    scripts/ | Racine des tests de l'API script.
|       test-scripts.cpp | Programme utilisé pour lancer les tests de l'API script.
|       python/ | Scripts Python pour générer et lancer les tests de l'API script.
|          testapigen.py | Script Python générant des scripts dans tous les languages pour tester l'API script.
|          testapi.py | Script Python avec les tests API, utilisé par le script testapigen.py.
|          unparse.py | Conversion de code Python vers d'autres langages, utilisé par le script testapigen.py.
|    unit/ | Racine des tests unitaires.
|       test-plugins.cpp | Tests : extensions.
|       core/ | Racine des tests unitaires pour le cœur.
|          test-core-arraylist.cpp | Tests : listes avec tableau (« arraylists »).
|          test-core-calc.cpp | Tests : calcul d'expressions.
|          test-core-crypto.cpp | Tests : fonctions cryptographiques.
|          test-core-eval.cpp | Tests : évaluation d'expressions.
|          test-core-hashtble.cpp | Tests : tables de hachage.
|          test-core-hdata.cpp | Tests : hdata.
|          test-core-hook.cpp | Tests : hooks.
|          test-core-infolist.cpp | Tests : infolists.
|          test-core-list.cpp | Tests : listes.
|          test-core-secure.cpp | Tests : données sécurisées.
|          test-core-string.cpp | Tests : chaînes.
|          test-core-url.cpp | Tests : URLs.
|          test-core-utf8.cpp | Tests : UTF-8.
|          test-core-util.cpp | Tests : fonctions utiles.
|       gui/ | Racine des tests unitaires pour les interfaces.
|          test-gui-color.cpp | Tests : couleurs.
|          test-gui-line.cpp | Tests : lignes.
|          test-gui-nick.cpp | Tests : pseudos.
|       plugins/ | Racine des tests unitaires pour les extensions.
|          irc/ | Racine des tests unitaires pour l'extension IRC.
|             test-irc-color.cpp | Tests : couleurs IRC.
|             test-irc-config.cpp | Tests : configuration IRC.
|             test-irc-ignore.cpp | Tests : ignores IRC.
|             test-irc-message.cpp | Tests : messages IRC.
|             test-irc-mode.cpp | Tests : modes IRC.
|             test-irc-nick.cpp | Tests : pseudos IRC.
|             test-irc-protocol.cpp | Tests : protocole IRC.
|          relay/ | Racine des tests unitaires pour l'extension Relay.
|             test-relay-auth.cpp | Tests : authentification des clients.
|===
[[documentation_translations]]
File diff suppressed because it is too large Load Diff
+18
View File
@@ -116,6 +116,12 @@
** valori: qualsiasi stringa
** valore predefinito: `+""+`
* [[option_relay.network.auth_password]] *relay.network.auth_password*
** descrizione: pass:none[comma separated list of hash algorithms used for password authentication in weechat protocol, among these values: "plain" (password in plain text, not hashed), "sha256", "sha512", "pbkdf2+sha256", "pbkdf2+sha512"), "*" means all algorithms, a name beginning with "!" is a negative value to prevent an algorithm from being used, wildcard "*" is allowed in names (examples: "*", "pbkdf2*", "*,!plain")]
** tipo: stringa
** valori: qualsiasi stringa
** valore predefinito: `+"*"+`
* [[option_relay.network.auth_timeout]] *relay.network.auth_timeout*
** descrizione: pass:none[timeout (in seconds) for client authentication: connection is closed if the client is still not authenticated after this delay and the client status is set to "authentication failed" (0 = wait forever)]
** tipo: intero
@@ -140,6 +146,12 @@
** valori: 0 .. 9
** valore predefinito: `+6+`
* [[option_relay.network.hash_iterations]] *relay.network.hash_iterations*
** descrizione: pass:none[number of iterations asked to the client in weechat protocol when a hashed password with algorithm PBKDF2 is used for authentication; more iterations is better in term of security but is slower to compute; this number should not be too high if your CPU is slow]
** tipo: intero
** valori: 1 .. 1000000
** valore predefinito: `+100000+`
* [[option_relay.network.ipv6]] *relay.network.ipv6*
** descrizione: pass:none[listen on IPv6 socket by default (in addition to IPv4 which is default); protocols IPv4 and IPv6 can be forced (individually or together) in the protocol name (see /help relay)]
** tipo: bool
@@ -152,6 +164,12 @@
** valori: 0 .. 2147483647
** valore predefinito: `+5+`
* [[option_relay.network.nonce_size]] *relay.network.nonce_size*
** descrizione: pass:none[size of nonce (in bytes), generated when a client connects; the client must use this nonce, concatenated to the client nonce and the password when hashing the password in the "init" command of the weechat protocol]
** tipo: intero
** valori: 8 .. 128
** valore predefinito: `+16+`
* [[option_relay.network.password]] *relay.network.password*
** descrizione: pass:none[password required by clients to access this relay (empty value means no password required, see option relay.network.allow_empty_password) (note: content is evaluated, see /help eval)]
** tipo: stringa
+18
View File
@@ -116,6 +116,12 @@
** 値: 未制約文字列
** デフォルト値: `+""+`
* [[option_relay.network.auth_password]] *relay.network.auth_password*
** 説明: pass:none[comma separated list of hash algorithms used for password authentication in weechat protocol, among these values: "plain" (password in plain text, not hashed), "sha256", "sha512", "pbkdf2+sha256", "pbkdf2+sha512"), "*" means all algorithms, a name beginning with "!" is a negative value to prevent an algorithm from being used, wildcard "*" is allowed in names (examples: "*", "pbkdf2*", "*,!plain")]
** タイプ: 文字列
** 値: 未制約文字列
** デフォルト値: `+"*"+`
* [[option_relay.network.auth_timeout]] *relay.network.auth_timeout*
** 説明: pass:none[timeout (in seconds) for client authentication: connection is closed if the client is still not authenticated after this delay and the client status is set to "authentication failed" (0 = wait forever)]
** タイプ: 整数
@@ -140,6 +146,12 @@
** 値: 0 .. 9
** デフォルト値: `+6+`
* [[option_relay.network.hash_iterations]] *relay.network.hash_iterations*
** 説明: pass:none[number of iterations asked to the client in weechat protocol when a hashed password with algorithm PBKDF2 is used for authentication; more iterations is better in term of security but is slower to compute; this number should not be too high if your CPU is slow]
** タイプ: 整数
** 値: 1 .. 1000000
** デフォルト値: `+100000+`
* [[option_relay.network.ipv6]] *relay.network.ipv6*
** 説明: pass:none[デフォルトで IPv6 ソケットをリッスン (デフォルトの IPv4 に加えて); 特定のプロトコルでプロトコルに IPv4 と IPv6 (個別または両方) を強制 (/help relay を参照してください)]
** タイプ: ブール
@@ -152,6 +164,12 @@
** 値: 0 .. 2147483647
** デフォルト値: `+5+`
* [[option_relay.network.nonce_size]] *relay.network.nonce_size*
** 説明: pass:none[size of nonce (in bytes), generated when a client connects; the client must use this nonce, concatenated to the client nonce and the password when hashing the password in the "init" command of the weechat protocol]
** タイプ: 整数
** 値: 8 .. 128
** デフォルト値: `+16+`
* [[option_relay.network.password]] *relay.network.password*
** 説明: pass:none[このリレーを利用するためにクライアントが必要なパスワード (空の場合パスワードなし、オプション relay.network.allow_empty_password を参照してください) (注意: 値は評価されます、/help eval を参照してください)]
** タイプ: 文字列
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+18
View File
@@ -116,6 +116,12 @@
** wartości: dowolny ciąg
** domyślna wartość: `+""+`
* [[option_relay.network.auth_password]] *relay.network.auth_password*
** opis: pass:none[comma separated list of hash algorithms used for password authentication in weechat protocol, among these values: "plain" (password in plain text, not hashed), "sha256", "sha512", "pbkdf2+sha256", "pbkdf2+sha512"), "*" means all algorithms, a name beginning with "!" is a negative value to prevent an algorithm from being used, wildcard "*" is allowed in names (examples: "*", "pbkdf2*", "*,!plain")]
** typ: ciąg
** wartości: dowolny ciąg
** domyślna wartość: `+"*"+`
* [[option_relay.network.auth_timeout]] *relay.network.auth_timeout*
** opis: pass:none[timeout (in seconds) for client authentication: connection is closed if the client is still not authenticated after this delay and the client status is set to "authentication failed" (0 = wait forever)]
** typ: liczba
@@ -140,6 +146,12 @@
** wartości: 0 .. 9
** domyślna wartość: `+6+`
* [[option_relay.network.hash_iterations]] *relay.network.hash_iterations*
** opis: pass:none[number of iterations asked to the client in weechat protocol when a hashed password with algorithm PBKDF2 is used for authentication; more iterations is better in term of security but is slower to compute; this number should not be too high if your CPU is slow]
** typ: liczba
** wartości: 1 .. 1000000
** domyślna wartość: `+100000+`
* [[option_relay.network.ipv6]] *relay.network.ipv6*
** opis: pass:none[nasłuchuj domyślnie na gnieździe IPv6 (w dodatku do domyślnego IPv4); protokoły IPv4 i IPv6 mogą być wymuszane (pojedynczo lub razem) w nazwie protokołu (zobacz /help relay)]
** typ: bool
@@ -152,6 +164,12 @@
** wartości: 0 .. 2147483647
** domyślna wartość: `+5+`
* [[option_relay.network.nonce_size]] *relay.network.nonce_size*
** opis: pass:none[size of nonce (in bytes), generated when a client connects; the client must use this nonce, concatenated to the client nonce and the password when hashing the password in the "init" command of the weechat protocol]
** typ: liczba
** wartości: 8 .. 128
** domyślna wartość: `+16+`
* [[option_relay.network.password]] *relay.network.password*
** opis: pass:none[hasło wymagane od klientów do połączenia z tym pośrednikiem (pusta wartość oznacza brak hasła, zobacz opcję relay.network.allow_empty_password) (uwaga: zawartość jest przetwarzana, zobacz /help eval)]
** typ: ciąg
+2
View File
@@ -305,6 +305,8 @@
./src/plugins/python/weechat-python.h
./src/plugins/relay/irc/relay-irc.c
./src/plugins/relay/irc/relay-irc.h
./src/plugins/relay/relay-auth.c
./src/plugins/relay/relay-auth.h
./src/plugins/relay/relay-buffer.c
./src/plugins/relay/relay-buffer.h
./src/plugins/relay/relay.c
+28 -1
View File
@@ -21,7 +21,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2020-04-12 20:23+0200\n"
"POT-Creation-Date: 2020-04-14 21:29+0200\n"
"PO-Revision-Date: 2020-03-08 14:22+0100\n"
"Last-Translator: Ondřej Súkup <mimi.vx@gmail.com>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@@ -11019,6 +11019,20 @@ msgid ""
"\"^(123\\.45\\.67\\.89|192\\.160\\..*)$\""
msgstr ""
#, fuzzy
msgid ""
"comma separated list of hash algorithms used for password authentication in "
"weechat protocol, among these values: \"plain\" (password in plain text, not "
"hashed), \"sha256\", \"sha512\", \"pbkdf2+sha256\", \"pbkdf2+sha512\"), \"*"
"\" means all algorithms, a name beginning with \"!\" is a negative value to "
"prevent an algorithm from being used, wildcard \"*\" is allowed in names "
"(examples: \"*\", \"pbkdf2*\", \"*,!plain\")"
msgstr ""
"čárkou rozdělený seznam pluginů pro automatické načtení při spuštění \"*\" "
"znamená všechny nalezené pluginy, jméno začínající \"!\" je negativní "
"hodnota k zabránění načtení pluginu, jména mohou začínat nebo končit \"*\" "
"pro vybrání několika pluginů (příklady: \"*\" nebo \"*,!lua,!tcl\")"
msgid ""
"timeout (in seconds) for client authentication: connection is closed if the "
"client is still not authenticated after this delay and the client status is "
@@ -11043,6 +11057,13 @@ msgid ""
"disable compression, 1 = low compression ... 9 = best compression)"
msgstr ""
msgid ""
"number of iterations asked to the client in weechat protocol when a hashed "
"password with algorithm PBKDF2 is used for authentication; more iterations "
"is better in term of security but is slower to compute; this number should "
"not be too high if your CPU is slow"
msgstr ""
msgid ""
"listen on IPv6 socket by default (in addition to IPv4 which is default); "
"protocols IPv4 and IPv6 can be forced (individually or together) in the "
@@ -11053,6 +11074,12 @@ msgstr ""
msgid "maximum number of clients connecting to a port (0 = no limit)"
msgstr "maximální počet klientů připojených k portu"
msgid ""
"size of nonce (in bytes), generated when a client connects; the client must "
"use this nonce, concatenated to the client nonce and the password when "
"hashing the password in the \"init\" command of the weechat protocol"
msgstr ""
#, fuzzy
msgid ""
"password required by clients to access this relay (empty value means no "
+29 -1
View File
@@ -24,7 +24,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2020-04-12 20:23+0200\n"
"POT-Creation-Date: 2020-04-14 21:29+0200\n"
"PO-Revision-Date: 2020-04-03 20:03+0200\n"
"Last-Translator: Nils Görs <weechatter@arcor.de>\n"
"Language-Team: German <kde-i18n-de@kde.org>\n"
@@ -12965,6 +12965,21 @@ msgstr ""
"Kleinschreibung zu unterscheiden muss die Zeichenkette mit \"(?-i)\" "
"eingeleitet werden), Beispiele: \"^(123\\.45\\.67\\.89|192\\.160\\..*)$\""
#, fuzzy
msgid ""
"comma separated list of hash algorithms used for password authentication in "
"weechat protocol, among these values: \"plain\" (password in plain text, not "
"hashed), \"sha256\", \"sha512\", \"pbkdf2+sha256\", \"pbkdf2+sha512\"), \"*"
"\" means all algorithms, a name beginning with \"!\" is a negative value to "
"prevent an algorithm from being used, wildcard \"*\" is allowed in names "
"(examples: \"*\", \"pbkdf2*\", \"*,!plain\")"
msgstr ""
"durch Kommata getrennte Liste der Erweiterungen, die beim Programmstart "
"automatisch geladen werden sollen; \"*\" lädt alle vorhandenen "
"Erweiterungen. Beginnt der Name hingegen mit \"!\" wird die Erweiterung "
"nicht geladen. Im Namen der Erweiterung kann der Platzhalter \"*\" verwendet "
"werden (Beispiele: \"*\" oder \"*,!lua,!tcl\")"
msgid ""
"timeout (in seconds) for client authentication: connection is closed if the "
"client is still not authenticated after this delay and the client status is "
@@ -12994,6 +13009,13 @@ msgstr ""
"gesendet werden sollen (0 = Kompression deaktiviert, 1 = niedrige "
"Kompression ... 9 = stärkste Kompression)"
msgid ""
"number of iterations asked to the client in weechat protocol when a hashed "
"password with algorithm PBKDF2 is used for authentication; more iterations "
"is better in term of security but is slower to compute; this number should "
"not be too high if your CPU is slow"
msgstr ""
msgid ""
"listen on IPv6 socket by default (in addition to IPv4 which is default); "
"protocols IPv4 and IPv6 can be forced (individually or together) in the "
@@ -13009,6 +13031,12 @@ msgstr ""
"maximale Anzahl an Clients die mit einem Port verbunden sein dürfen (0 = "
"keine Begrenzung)"
msgid ""
"size of nonce (in bytes), generated when a client connects; the client must "
"use this nonce, concatenated to the client nonce and the password when "
"hashing the password in the \"init\" command of the weechat protocol"
msgstr ""
msgid ""
"password required by clients to access this relay (empty value means no "
"password required, see option relay.network.allow_empty_password) (note: "
+28 -1
View File
@@ -22,7 +22,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2020-04-12 20:23+0200\n"
"POT-Creation-Date: 2020-04-14 21:29+0200\n"
"PO-Revision-Date: 2020-03-08 14:22+0100\n"
"Last-Translator: Elián Hanisch <lambdae2@gmail.com>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@@ -11364,6 +11364,20 @@ msgstr ""
"mapeada a IPv6 (como: \"::ffff:127.0.0.1\"), ejemplo: \"^((::ffff:)?"
"123\\.45\\.67\\.89|192\\.160\\..*)$\""
#, fuzzy
msgid ""
"comma separated list of hash algorithms used for password authentication in "
"weechat protocol, among these values: \"plain\" (password in plain text, not "
"hashed), \"sha256\", \"sha512\", \"pbkdf2+sha256\", \"pbkdf2+sha512\"), \"*"
"\" means all algorithms, a name beginning with \"!\" is a negative value to "
"prevent an algorithm from being used, wildcard \"*\" is allowed in names "
"(examples: \"*\", \"pbkdf2*\", \"*,!plain\")"
msgstr ""
"lista de plugins separados por comas para cargar automáticamente al iniciar, "
"\"*\" significa todos los plugins encontrados, un nombre empezando con \"!\" "
"previene que el plugin se cargue, nombres pueden empezar o terminar con \"*"
"\" para indicar varios plugins (ejemplo: \"*\" o \"*,!lua,!tcl\")"
msgid ""
"timeout (in seconds) for client authentication: connection is closed if the "
"client is still not authenticated after this delay and the client status is "
@@ -11390,6 +11404,13 @@ msgstr ""
"nivel de compresión para paquetes enviados al cliente con el protocolo "
"WeeChat (0 = sin compresión, 1 = baja compresión ... 9 = mejor compresión)"
msgid ""
"number of iterations asked to the client in weechat protocol when a hashed "
"password with algorithm PBKDF2 is used for authentication; more iterations "
"is better in term of security but is slower to compute; this number should "
"not be too high if your CPU is slow"
msgstr ""
msgid ""
"listen on IPv6 socket by default (in addition to IPv4 which is default); "
"protocols IPv4 and IPv6 can be forced (individually or together) in the "
@@ -11400,6 +11421,12 @@ msgstr ""
msgid "maximum number of clients connecting to a port (0 = no limit)"
msgstr "número máximo de clientes conectados a un puerto"
msgid ""
"size of nonce (in bytes), generated when a client connects; the client must "
"use this nonce, concatenated to the client nonce and the password when "
"hashing the password in the \"init\" command of the weechat protocol"
msgstr ""
#, fuzzy
msgid ""
"password required by clients to access this relay (empty value means no "
+39 -2
View File
@@ -21,8 +21,8 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2020-04-12 20:23+0200\n"
"PO-Revision-Date: 2020-04-12 20:24+0200\n"
"POT-Creation-Date: 2020-04-14 21:29+0200\n"
"PO-Revision-Date: 2020-04-14 21:29+0200\n"
"Last-Translator: Sébastien Helleu <flashcode@flashtux.org>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
"Language: fr\n"
@@ -12693,6 +12693,22 @@ msgstr ""
"(insensible à la casse, utilisez \"(?-i)\" en début de chaîne pour la rendre "
"insensible à la casse), exemple : \"^(123\\.45\\.67\\.89|192\\.160\\..*)$\""
msgid ""
"comma separated list of hash algorithms used for password authentication in "
"weechat protocol, among these values: \"plain\" (password in plain text, not "
"hashed), \"sha256\", \"sha512\", \"pbkdf2+sha256\", \"pbkdf2+sha512\"), \"*"
"\" means all algorithms, a name beginning with \"!\" is a negative value to "
"prevent an algorithm from being used, wildcard \"*\" is allowed in names "
"(examples: \"*\", \"pbkdf2*\", \"*,!plain\")"
msgstr ""
"liste des algorithmes de hachage pour l'authentification par mot de passe "
"dans le protocole relay, parmi ces valeurs : \"plain\" (mot de passe en "
"clair, non haché), \"sha256\", \"sha512\", \"pbkdf2+sha256\", "
"\"pbkdf2+sha512\" ; \"*\" signifie tous les algorithmes, un nom commençant "
"par \"!\" est une valeur négative pour empêcher un algorithme d'être "
"utilisé, le caractère joker \"*\" est autorisé dans les noms (exemples : \"*"
"\", \"pbkdf2*\", \"*,!plain\")"
msgid ""
"timeout (in seconds) for client authentication: connection is closed if the "
"client is still not authenticated after this delay and the client status is "
@@ -12725,6 +12741,18 @@ msgstr ""
"WeeChat (0 = désactiver la compression, 1 = peu de compression ... 9 = "
"meilleure compression)"
msgid ""
"number of iterations asked to the client in weechat protocol when a hashed "
"password with algorithm PBKDF2 is used for authentication; more iterations "
"is better in term of security but is slower to compute; this number should "
"not be too high if your CPU is slow"
msgstr ""
"nombre d'itérations demandées au client dans le protocole weechat lorsqu'un "
"mot de passe haché avec l'algorithme PBKDF2 est utilisé pour "
"l'authentification ; plus d'itérations est mieux en terme de sécurité mais "
"est plus lent à calculer ; ce nombre ne doit pas être trop élevé si votre "
"micro-processeur est lent"
msgid ""
"listen on IPv6 socket by default (in addition to IPv4 which is default); "
"protocols IPv4 and IPv6 can be forced (individually or together) in the "
@@ -12738,6 +12766,15 @@ msgid "maximum number of clients connecting to a port (0 = no limit)"
msgstr ""
"nombre maximum de clients qui se connectent sur un port (0 = pas de limite)"
msgid ""
"size of nonce (in bytes), generated when a client connects; the client must "
"use this nonce, concatenated to the client nonce and the password when "
"hashing the password in the \"init\" command of the weechat protocol"
msgstr ""
"taille du nonce (en octets), généré lorsqu'un client se connecte ; le client "
"doit utiliser ce nonce, concaténé au nonce client et au mot de passe pour "
"hacher le mot de passe dans la commande \"init\" du protocole weechat"
msgid ""
"password required by clients to access this relay (empty value means no "
"password required, see option relay.network.allow_empty_password) (note: "
+27 -1
View File
@@ -20,7 +20,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2020-04-12 20:23+0200\n"
"POT-Creation-Date: 2020-04-14 21:29+0200\n"
"PO-Revision-Date: 2020-03-08 14:22+0100\n"
"Last-Translator: Andras Voroskoi <voroskoi@frugalware.org>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@@ -10365,6 +10365,19 @@ msgid ""
"\"^(123\\.45\\.67\\.89|192\\.160\\..*)$\""
msgstr ""
#, fuzzy
msgid ""
"comma separated list of hash algorithms used for password authentication in "
"weechat protocol, among these values: \"plain\" (password in plain text, not "
"hashed), \"sha256\", \"sha512\", \"pbkdf2+sha256\", \"pbkdf2+sha512\"), \"*"
"\" means all algorithms, a name beginning with \"!\" is a negative value to "
"prevent an algorithm from being used, wildcard \"*\" is allowed in names "
"(examples: \"*\", \"pbkdf2*\", \"*,!plain\")"
msgstr ""
"automatikusan betöltendő modulok vesszővel elválasztott listája, \"*\" "
"esetén az összes fellelt modul (az elnevezés lehet részleges, például a "
"\"perl\" elegendő \"libperl.so\" helyett)"
msgid ""
"timeout (in seconds) for client authentication: connection is closed if the "
"client is still not authenticated after this delay and the client status is "
@@ -10386,6 +10399,13 @@ msgid ""
"disable compression, 1 = low compression ... 9 = best compression)"
msgstr ""
msgid ""
"number of iterations asked to the client in weechat protocol when a hashed "
"password with algorithm PBKDF2 is used for authentication; more iterations "
"is better in term of security but is slower to compute; this number should "
"not be too high if your CPU is slow"
msgstr ""
msgid ""
"listen on IPv6 socket by default (in addition to IPv4 which is default); "
"protocols IPv4 and IPv6 can be forced (individually or together) in the "
@@ -10397,6 +10417,12 @@ msgid "maximum number of clients connecting to a port (0 = no limit)"
msgstr ""
"felhasználói parancsok maximális száma az előzményekben (0 = korlátlan)"
msgid ""
"size of nonce (in bytes), generated when a client connects; the client must "
"use this nonce, concatenated to the client nonce and the password when "
"hashing the password in the \"init\" command of the weechat protocol"
msgstr ""
msgid ""
"password required by clients to access this relay (empty value means no "
"password required, see option relay.network.allow_empty_password) (note: "
+29 -1
View File
@@ -20,7 +20,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2020-04-12 20:23+0200\n"
"POT-Creation-Date: 2020-04-14 21:29+0200\n"
"PO-Revision-Date: 2020-03-08 14:22+0100\n"
"Last-Translator: Esteban I. Ruiz Moreno <exio4.com@gmail.com>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@@ -11565,6 +11565,21 @@ msgstr ""
"ffff:127.0.0.1\",come: \"::ffff:127.0.0.1\"), esempio: \"^((::ffff:)?"
"123\\.45\\.67\\.89|192\\.160\\..*)$\""
#, fuzzy
msgid ""
"comma separated list of hash algorithms used for password authentication in "
"weechat protocol, among these values: \"plain\" (password in plain text, not "
"hashed), \"sha256\", \"sha512\", \"pbkdf2+sha256\", \"pbkdf2+sha512\"), \"*"
"\" means all algorithms, a name beginning with \"!\" is a negative value to "
"prevent an algorithm from being used, wildcard \"*\" is allowed in names "
"(examples: \"*\", \"pbkdf2*\", \"*,!plain\")"
msgstr ""
"elenco separato da virgole di plugin da caricare automaticamente all'avvio, "
"\"*\" equivale a tutti i plugin trovati. un nome che comincia con \"!\" è un "
"valore negativo per impedire il caricamento di un plugin, i nomi possono "
"iniziare o finire con \"*\" per corrispondere a più plugin (esempi: \"*\" "
"oppure \"*,!lua,!tcl\")"
msgid ""
"timeout (in seconds) for client authentication: connection is closed if the "
"client is still not authenticated after this delay and the client status is "
@@ -11592,6 +11607,13 @@ msgstr ""
"WeeChat (0 = disabilita compressione, 1 = compressione bassa ... 9 = "
"compressione migliore)"
msgid ""
"number of iterations asked to the client in weechat protocol when a hashed "
"password with algorithm PBKDF2 is used for authentication; more iterations "
"is better in term of security but is slower to compute; this number should "
"not be too high if your CPU is slow"
msgstr ""
msgid ""
"listen on IPv6 socket by default (in addition to IPv4 which is default); "
"protocols IPv4 and IPv6 can be forced (individually or together) in the "
@@ -11602,6 +11624,12 @@ msgstr ""
msgid "maximum number of clients connecting to a port (0 = no limit)"
msgstr "numero massimo di client connessi ad una porta"
msgid ""
"size of nonce (in bytes), generated when a client connects; the client must "
"use this nonce, concatenated to the client nonce and the password when "
"hashing the password in the \"init\" command of the weechat protocol"
msgstr ""
#, fuzzy
msgid ""
"password required by clients to access this relay (empty value means no "
+27 -1
View File
@@ -20,7 +20,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2020-04-12 20:23+0200\n"
"POT-Creation-Date: 2020-04-14 21:29+0200\n"
"PO-Revision-Date: 2020-03-08 14:22+0100\n"
"Last-Translator: AYANOKOUZI, Ryuunosuke <i38w7i3@yahoo.co.jp>\n"
"Language-Team: Japanese <https://github.com/l/weechat/tree/master/"
@@ -12196,6 +12196,19 @@ msgstr ""
"し、最初に \"(?-i)\" をつければ区別有り)、例: \"^(123\\.45\\.67\\.89|"
"192\\.160\\..*)$\""
#, fuzzy
msgid ""
"comma separated list of hash algorithms used for password authentication in "
"weechat protocol, among these values: \"plain\" (password in plain text, not "
"hashed), \"sha256\", \"sha512\", \"pbkdf2+sha256\", \"pbkdf2+sha512\"), \"*"
"\" means all algorithms, a name beginning with \"!\" is a negative value to "
"prevent an algorithm from being used, wildcard \"*\" is allowed in names "
"(examples: \"*\", \"pbkdf2*\", \"*,!plain\")"
msgstr ""
"スタートアップ時にロードするプラグインのコンマ区切りリスト、\"*\" は見つかっ"
"た全てのプラグイン、\"!\" から始まる名前はロードしないプラグイン、名前にワイ"
"ルドカード \"*\" を使うことができます (例: \"*\" または \"*,!lua,!tcl\")"
msgid ""
"timeout (in seconds) for client authentication: connection is closed if the "
"client is still not authenticated after this delay and the client status is "
@@ -12223,6 +12236,13 @@ msgstr ""
"WeeChat プロトコルでクライアントに送信するパケットの圧縮レベル (0 = 圧縮しな"
"い、1 = 低圧縮 ... 9 = 高圧縮)"
msgid ""
"number of iterations asked to the client in weechat protocol when a hashed "
"password with algorithm PBKDF2 is used for authentication; more iterations "
"is better in term of security but is slower to compute; this number should "
"not be too high if your CPU is slow"
msgstr ""
msgid ""
"listen on IPv6 socket by default (in addition to IPv4 which is default); "
"protocols IPv4 and IPv6 can be forced (individually or together) in the "
@@ -12235,6 +12255,12 @@ msgstr ""
msgid "maximum number of clients connecting to a port (0 = no limit)"
msgstr "ポートに接続するクライアントの最大数 (0 = 制限なし)"
msgid ""
"size of nonce (in bytes), generated when a client connects; the client must "
"use this nonce, concatenated to the client nonce and the password when "
"hashing the password in the \"init\" command of the weechat protocol"
msgstr ""
msgid ""
"password required by clients to access this relay (empty value means no "
"password required, see option relay.network.allow_empty_password) (note: "
+28 -1
View File
@@ -22,7 +22,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2020-04-12 20:23+0200\n"
"POT-Creation-Date: 2020-04-14 21:29+0200\n"
"PO-Revision-Date: 2020-04-05 13:44+0200\n"
"Last-Translator: Krzysztof Korościk <soltys@soltys.info>\n"
"Language-Team: Polish <kde-i18n-doc@kde.org>\n"
@@ -12414,6 +12414,20 @@ msgstr ""
"początku sprawi, że wielość znaków będzie miała znaczenie), przykład: "
"\"^(123\\.45\\.67\\.89|192\\.160\\..*)$\""
#, fuzzy
msgid ""
"comma separated list of hash algorithms used for password authentication in "
"weechat protocol, among these values: \"plain\" (password in plain text, not "
"hashed), \"sha256\", \"sha512\", \"pbkdf2+sha256\", \"pbkdf2+sha512\"), \"*"
"\" means all algorithms, a name beginning with \"!\" is a negative value to "
"prevent an algorithm from being used, wildcard \"*\" is allowed in names "
"(examples: \"*\", \"pbkdf2*\", \"*,!plain\")"
msgstr ""
"oddzielona przecinkami lista wtyczek do automatycznego załadowania podczas "
"startu, \"*\" oznacza wszystkie znalezione wtyczki, nazwa zaczynająca się od "
"\"!\" powoduje nie ładowanie tej wtyczki, wildcard \"*\" jest dozwolony w "
"nazwach (przykłady: \"*\" lub \"*,!lua,!tcl\")"
msgid ""
"timeout (in seconds) for client authentication: connection is closed if the "
"client is still not authenticated after this delay and the client status is "
@@ -12442,6 +12456,13 @@ msgstr ""
"stopień kompresji pakietów wysyłanych do klienta za pomocą protokołu WeeChat "
"(0 = kompresja wyłączona, 1 = niska kompresja ... 9 = najwyższa kompresja)"
msgid ""
"number of iterations asked to the client in weechat protocol when a hashed "
"password with algorithm PBKDF2 is used for authentication; more iterations "
"is better in term of security but is slower to compute; this number should "
"not be too high if your CPU is slow"
msgstr ""
msgid ""
"listen on IPv6 socket by default (in addition to IPv4 which is default); "
"protocols IPv4 and IPv6 can be forced (individually or together) in the "
@@ -12454,6 +12475,12 @@ msgstr ""
msgid "maximum number of clients connecting to a port (0 = no limit)"
msgstr "maksymalna ilość klientów łączących się na port (0 = brak limitu)"
msgid ""
"size of nonce (in bytes), generated when a client connects; the client must "
"use this nonce, concatenated to the client nonce and the password when "
"hashing the password in the \"init\" command of the weechat protocol"
msgstr ""
msgid ""
"password required by clients to access this relay (empty value means no "
"password required, see option relay.network.allow_empty_password) (note: "
+29 -1
View File
@@ -20,7 +20,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2020-04-12 20:23+0200\n"
"POT-Creation-Date: 2020-04-14 21:29+0200\n"
"PO-Revision-Date: 2020-03-08 14:22+0100\n"
"Last-Translator: Vasco Almeida <vascomalmeida@sapo.pt>\n"
"Language-Team: Portuguese <>\n"
@@ -12012,6 +12012,21 @@ msgstr ""
"(não destinge maiúscula e minúscula, use \"(?-i)\" no início para "
"distinguir), exemplo: \"^(123\\.45\\.67\\.89|192\\.160\\..*)$\""
#, fuzzy
msgid ""
"comma separated list of hash algorithms used for password authentication in "
"weechat protocol, among these values: \"plain\" (password in plain text, not "
"hashed), \"sha256\", \"sha512\", \"pbkdf2+sha256\", \"pbkdf2+sha512\"), \"*"
"\" means all algorithms, a name beginning with \"!\" is a negative value to "
"prevent an algorithm from being used, wildcard \"*\" is allowed in names "
"(examples: \"*\", \"pbkdf2*\", \"*,!plain\")"
msgstr ""
"lista de plugins separados por vírgula para carregar automaticamente ao "
"iniciar, \"*\" significa todos os plugins encontrados, um nome começado com "
"\"!\" serve de valor negativo para impedir que o plugin seja carregado, pode-"
"se usar o caráter universal \"*\" nos nomes (exemplos: \"*\" ou \"*,!lua,!tcl"
"\")"
msgid ""
"timeout (in seconds) for client authentication: connection is closed if the "
"client is still not authenticated after this delay and the client status is "
@@ -12040,6 +12055,13 @@ msgstr ""
"WeeChat (0 = desativar compressão, 1 = compressão reduzida ... 9 = "
"compressão ótima)"
msgid ""
"number of iterations asked to the client in weechat protocol when a hashed "
"password with algorithm PBKDF2 is used for authentication; more iterations "
"is better in term of security but is slower to compute; this number should "
"not be too high if your CPU is slow"
msgstr ""
msgid ""
"listen on IPv6 socket by default (in addition to IPv4 which is default); "
"protocols IPv4 and IPv6 can be forced (individually or together) in the "
@@ -12052,6 +12074,12 @@ msgstr ""
msgid "maximum number of clients connecting to a port (0 = no limit)"
msgstr "número máximo de clientes que se conectam a uma porta (0 = sem limite)"
msgid ""
"size of nonce (in bytes), generated when a client connects; the client must "
"use this nonce, concatenated to the client nonce and the password when "
"hashing the password in the \"init\" command of the weechat protocol"
msgstr ""
msgid ""
"password required by clients to access this relay (empty value means no "
"password required, see option relay.network.allow_empty_password) (note: "
+29 -1
View File
@@ -21,7 +21,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2020-04-12 20:23+0200\n"
"POT-Creation-Date: 2020-04-14 21:29+0200\n"
"PO-Revision-Date: 2019-11-03 08:38+0100\n"
"Last-Translator: Eduardo Elias <camponez@gmail.com>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@@ -10814,6 +10814,21 @@ msgstr ""
"expressão regular com IPs permitidos a usar o relay, por exemplo: "
"\"^(123\\.45\\.67\\.89|192\\.160\\..*)$\""
#, fuzzy
msgid ""
"comma separated list of hash algorithms used for password authentication in "
"weechat protocol, among these values: \"plain\" (password in plain text, not "
"hashed), \"sha256\", \"sha512\", \"pbkdf2+sha256\", \"pbkdf2+sha512\"), \"*"
"\" means all algorithms, a name beginning with \"!\" is a negative value to "
"prevent an algorithm from being used, wildcard \"*\" is allowed in names "
"(examples: \"*\", \"pbkdf2*\", \"*,!plain\")"
msgstr ""
"lista separada por vírgulas dos plugins para carregar automaticamente "
"nainicialização, \"*\" significa todos os plugins encontrados, um nome "
"começando com \"!\" é um valor negativo para prevenir um plugin de ser "
"carrgado, nomes podem começar ou terminar com \"*\" para casar com vários "
"plugins (exemplos: \"*\" ou \"*,!lua,!tcl\")"
msgid ""
"timeout (in seconds) for client authentication: connection is closed if the "
"client is still not authenticated after this delay and the client status is "
@@ -10840,6 +10855,13 @@ msgstr ""
"WeeChat (0 = desabilitar compressão, 1 = compressão baixa ... 9 = melhor "
"compressão)"
msgid ""
"number of iterations asked to the client in weechat protocol when a hashed "
"password with algorithm PBKDF2 is used for authentication; more iterations "
"is better in term of security but is slower to compute; this number should "
"not be too high if your CPU is slow"
msgstr ""
msgid ""
"listen on IPv6 socket by default (in addition to IPv4 which is default); "
"protocols IPv4 and IPv6 can be forced (individually or together) in the "
@@ -10850,6 +10872,12 @@ msgstr ""
msgid "maximum number of clients connecting to a port (0 = no limit)"
msgstr "número máximo de clientes conectando-se a uma porta"
msgid ""
"size of nonce (in bytes), generated when a client connects; the client must "
"use this nonce, concatenated to the client nonce and the password when "
"hashing the password in the \"init\" command of the weechat protocol"
msgstr ""
#, fuzzy
msgid ""
"password required by clients to access this relay (empty value means no "
+27 -1
View File
@@ -21,7 +21,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2020-04-12 20:23+0200\n"
"POT-Creation-Date: 2020-04-14 21:29+0200\n"
"PO-Revision-Date: 2020-03-08 14:22+0100\n"
"Last-Translator: Aleksey V Zapparov AKA ixti <ixti@member.fsf.org>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@@ -10401,6 +10401,19 @@ msgid ""
"\"^(123\\.45\\.67\\.89|192\\.160\\..*)$\""
msgstr ""
#, fuzzy
msgid ""
"comma separated list of hash algorithms used for password authentication in "
"weechat protocol, among these values: \"plain\" (password in plain text, not "
"hashed), \"sha256\", \"sha512\", \"pbkdf2+sha256\", \"pbkdf2+sha512\"), \"*"
"\" means all algorithms, a name beginning with \"!\" is a negative value to "
"prevent an algorithm from being used, wildcard \"*\" is allowed in names "
"(examples: \"*\", \"pbkdf2*\", \"*,!plain\")"
msgstr ""
"разделённый запятыми список автоматически загружаемых при запуске plug-"
"in'ов , \"*\" означает все найденные plug-in'ы (имена могут быть не полными, "
"например \"perl\" успешно загрузит \"libperl.so\")"
msgid ""
"timeout (in seconds) for client authentication: connection is closed if the "
"client is still not authenticated after this delay and the client status is "
@@ -10422,6 +10435,13 @@ msgid ""
"disable compression, 1 = low compression ... 9 = best compression)"
msgstr ""
msgid ""
"number of iterations asked to the client in weechat protocol when a hashed "
"password with algorithm PBKDF2 is used for authentication; more iterations "
"is better in term of security but is slower to compute; this number should "
"not be too high if your CPU is slow"
msgstr ""
msgid ""
"listen on IPv6 socket by default (in addition to IPv4 which is default); "
"protocols IPv4 and IPv6 can be forced (individually or together) in the "
@@ -10432,6 +10452,12 @@ msgstr ""
msgid "maximum number of clients connecting to a port (0 = no limit)"
msgstr "максимальное количество команд в истории (0 = не ограничено)"
msgid ""
"size of nonce (in bytes), generated when a client connects; the client must "
"use this nonce, concatenated to the client nonce and the password when "
"hashing the password in the \"init\" command of the weechat protocol"
msgstr ""
msgid ""
"password required by clients to access this relay (empty value means no "
"password required, see option relay.network.allow_empty_password) (note: "
+2
View File
@@ -306,6 +306,8 @@ SET(WEECHAT_SOURCES
./src/plugins/python/weechat-python.h
./src/plugins/relay/irc/relay-irc.c
./src/plugins/relay/irc/relay-irc.h
./src/plugins/relay/relay-auth.c
./src/plugins/relay/relay-auth.h
./src/plugins/relay/relay-buffer.c
./src/plugins/relay/relay-buffer.h
./src/plugins/relay/relay.c
+23 -1
View File
@@ -20,7 +20,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2020-04-12 20:23+0200\n"
"POT-Creation-Date: 2020-04-14 21:29+0200\n"
"PO-Revision-Date: 2019-11-03 08:38+0100\n"
"Last-Translator: Hasan Kiran <sunder67@hotmail.com>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@@ -9453,6 +9453,15 @@ msgid ""
"\"^(123\\.45\\.67\\.89|192\\.160\\..*)$\""
msgstr ""
msgid ""
"comma separated list of hash algorithms used for password authentication in "
"weechat protocol, among these values: \"plain\" (password in plain text, not "
"hashed), \"sha256\", \"sha512\", \"pbkdf2+sha256\", \"pbkdf2+sha512\"), \"*"
"\" means all algorithms, a name beginning with \"!\" is a negative value to "
"prevent an algorithm from being used, wildcard \"*\" is allowed in names "
"(examples: \"*\", \"pbkdf2*\", \"*,!plain\")"
msgstr ""
msgid ""
"timeout (in seconds) for client authentication: connection is closed if the "
"client is still not authenticated after this delay and the client status is "
@@ -9474,6 +9483,13 @@ msgid ""
"disable compression, 1 = low compression ... 9 = best compression)"
msgstr ""
msgid ""
"number of iterations asked to the client in weechat protocol when a hashed "
"password with algorithm PBKDF2 is used for authentication; more iterations "
"is better in term of security but is slower to compute; this number should "
"not be too high if your CPU is slow"
msgstr ""
msgid ""
"listen on IPv6 socket by default (in addition to IPv4 which is default); "
"protocols IPv4 and IPv6 can be forced (individually or together) in the "
@@ -9483,6 +9499,12 @@ msgstr ""
msgid "maximum number of clients connecting to a port (0 = no limit)"
msgstr ""
msgid ""
"size of nonce (in bytes), generated when a client connects; the client must "
"use this nonce, concatenated to the client nonce and the password when "
"hashing the password in the \"init\" command of the weechat protocol"
msgstr ""
msgid ""
"password required by clients to access this relay (empty value means no "
"password required, see option relay.network.allow_empty_password) (note: "
+23 -1
View File
@@ -21,7 +21,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2020-04-12 20:23+0200\n"
"POT-Creation-Date: 2020-04-14 21:29+0200\n"
"PO-Revision-Date: 2014-08-16 10:27+0200\n"
"Last-Translator: Sébastien Helleu <flashcode@flashtux.org>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@@ -9314,6 +9314,15 @@ msgid ""
"\"^(123\\.45\\.67\\.89|192\\.160\\..*)$\""
msgstr ""
msgid ""
"comma separated list of hash algorithms used for password authentication in "
"weechat protocol, among these values: \"plain\" (password in plain text, not "
"hashed), \"sha256\", \"sha512\", \"pbkdf2+sha256\", \"pbkdf2+sha512\"), \"*"
"\" means all algorithms, a name beginning with \"!\" is a negative value to "
"prevent an algorithm from being used, wildcard \"*\" is allowed in names "
"(examples: \"*\", \"pbkdf2*\", \"*,!plain\")"
msgstr ""
msgid ""
"timeout (in seconds) for client authentication: connection is closed if the "
"client is still not authenticated after this delay and the client status is "
@@ -9335,6 +9344,13 @@ msgid ""
"disable compression, 1 = low compression ... 9 = best compression)"
msgstr ""
msgid ""
"number of iterations asked to the client in weechat protocol when a hashed "
"password with algorithm PBKDF2 is used for authentication; more iterations "
"is better in term of security but is slower to compute; this number should "
"not be too high if your CPU is slow"
msgstr ""
msgid ""
"listen on IPv6 socket by default (in addition to IPv4 which is default); "
"protocols IPv4 and IPv6 can be forced (individually or together) in the "
@@ -9344,6 +9360,12 @@ msgstr ""
msgid "maximum number of clients connecting to a port (0 = no limit)"
msgstr ""
msgid ""
"size of nonce (in bytes), generated when a client connects; the client must "
"use this nonce, concatenated to the client nonce and the password when "
"hashing the password in the \"init\" command of the weechat protocol"
msgstr ""
msgid ""
"password required by clients to access this relay (empty value means no "
"password required, see option relay.network.allow_empty_password) (note: "
+8 -5
View File
@@ -19,13 +19,9 @@
add_library(relay MODULE
relay.c relay.h
relay-auth.c relay-auth.h
relay-buffer.c relay-buffer.h
relay-client.c relay-client.h
irc/relay-irc.c irc/relay-irc.h
weechat/relay-weechat.c weechat/relay-weechat.h
weechat/relay-weechat-msg.c weechat/relay-weechat-msg.h
weechat/relay-weechat-nicklist.c weechat/relay-weechat-nicklist.h
weechat/relay-weechat-protocol.c weechat/relay-weechat-protocol.h
relay-command.c relay-command.h
relay-completion.c relay-completion.h
relay-config.c relay-config.h
@@ -35,6 +31,13 @@ add_library(relay MODULE
relay-server.c relay-server.h
relay-upgrade.c relay-upgrade.h
relay-websocket.c relay-websocket.h
# irc relay
irc/relay-irc.c irc/relay-irc.h
# weechat relay
weechat/relay-weechat.c weechat/relay-weechat.h
weechat/relay-weechat-msg.c weechat/relay-weechat-msg.h
weechat/relay-weechat-nicklist.c weechat/relay-weechat-nicklist.h
weechat/relay-weechat-protocol.c weechat/relay-weechat-protocol.h
)
set_target_properties(relay PROPERTIES PREFIX "")
+13 -11
View File
@@ -25,20 +25,12 @@ lib_LTLIBRARIES = relay.la
relay_la_SOURCES = relay.c \
relay.h \
relay-auth.c \
relay-auth.h \
relay-buffer.c \
relay-buffer.h \
relay-client.c \
relay-client.h \
irc/relay-irc.c \
irc/relay-irc.h \
weechat/relay-weechat.c \
weechat/relay-weechat.h \
weechat/relay-weechat-msg.c \
weechat/relay-weechat-msg.h \
weechat/relay-weechat-nicklist.c \
weechat/relay-weechat-nicklist.h \
weechat/relay-weechat-protocol.c \
weechat/relay-weechat-protocol.h \
relay-command.c \
relay-command.h \
relay-completion.c \
@@ -56,7 +48,17 @@ relay_la_SOURCES = relay.c \
relay-upgrade.c \
relay-upgrade.h \
relay-websocket.c \
relay-websocket.h
relay-websocket.h \
irc/relay-irc.c \
irc/relay-irc.h \
weechat/relay-weechat.c \
weechat/relay-weechat.h \
weechat/relay-weechat-msg.c \
weechat/relay-weechat-msg.h \
weechat/relay-weechat-nicklist.c \
weechat/relay-weechat-nicklist.h \
weechat/relay-weechat-protocol.c \
weechat/relay-weechat-protocol.h
relay_la_LDFLAGS = -module -no-undefined
relay_la_LIBADD = $(RELAY_LFLAGS) $(ZLIB_LFLAGS) $(GNUTLS_LFLAGS)
File diff suppressed because it is too large Load Diff
+73
View File
@@ -0,0 +1,73 @@
/*
* Copyright (C) 2003-2020 Sébastien Helleu <flashcode@flashtux.org>
*
* This file is part of WeeChat, the extensible chat client.
*
* WeeChat 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.
*
* WeeChat 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 WeeChat. If not, see <https://www.gnu.org/licenses/>.
*/
#ifndef WEECHAT_PLUGIN_RELAY_AUTH_H
#define WEECHAT_PLUGIN_RELAY_AUTH_H
struct t_relay_client;
enum t_relay_auth_password
{
RELAY_AUTH_PASSWORD_PLAIN = 0,
RELAY_AUTH_PASSWORD_SHA256,
RELAY_AUTH_PASSWORD_SHA512,
RELAY_AUTH_PASSWORD_PBKDF2_SHA256,
RELAY_AUTH_PASSWORD_PBKDF2_SHA512,
/* number of password auths */
RELAY_NUM_PASSWORD_AUTHS,
};
extern char *relay_auth_password_name[];
extern int relay_auth_password_search (const char *name);
extern char *relay_auth_generate_nonce ();
extern int relay_auth_check_password_plain (const char *password,
const char *relay_password);
extern int relay_auth_password (struct t_relay_client *client,
const char *password,
const char *relay_password);
extern void relay_auth_parse_sha (const char *parameters,
char **salt_hexa,
char **salt,
int *salt_size,
char **hash);
extern void relay_auth_parse_pbkdf2 (const char *parameters,
char **salt_hexa,
char **salt,
int *salt_size,
int *iterations,
char **hash);
extern int relay_auth_check_salt (struct t_relay_client *client,
const char *salt_hexa);
extern int relay_auth_check_hash_sha (const char *hash_algo,
const char *salt,
int salt_size,
const char *hash_sha,
const char *relay_password);
extern int relay_auth_check_hash_pbkdf2 (const char *hash_pbkdf2_algo,
const char *salt,
int salt_size,
int iterations,
const char *hash_pbkdf2,
const char *relay_password);
extern int relay_auth_password_hash (struct t_relay_client *client,
const char *hashed_password,
const char *relay_password);
#endif /* WEECHAT_PLUGIN_RELAY_AUTH_H */
+42 -2
View File
@@ -36,14 +36,15 @@
#include "../weechat-plugin.h"
#include "relay.h"
#include "relay-client.h"
#include "irc/relay-irc.h"
#include "weechat/relay-weechat.h"
#include "relay-auth.h"
#include "relay-config.h"
#include "relay-buffer.h"
#include "relay-network.h"
#include "relay-raw.h"
#include "relay-server.h"
#include "relay-websocket.h"
#include "irc/relay-irc.h"
#include "weechat/relay-weechat.h"
char *relay_client_status_string[] = /* status strings for display */
@@ -1269,6 +1270,7 @@ struct t_relay_client *
relay_client_new (int sock, const char *address, struct t_relay_server *server)
{
struct t_relay_client *new_client;
int plain_text_password;
#ifdef HAVE_GNUTLS
int bits;
struct t_config_option *ptr_option;
@@ -1295,6 +1297,14 @@ relay_client_new (int sock, const char *address, struct t_relay_server *server)
new_client->protocol = server->protocol;
new_client->protocol_string = (server->protocol_string) ? strdup (server->protocol_string) : NULL;
new_client->protocol_args = (server->protocol_args) ? strdup (server->protocol_args) : NULL;
plain_text_password = weechat_string_match_list (
relay_auth_password_name[0],
(const char **)relay_config_network_auth_password_list,
1);
new_client->auth_password = (plain_text_password) ? 0 : -1;
new_client->hash_iterations = weechat_config_integer (
relay_config_network_hash_iterations);
new_client->nonce = relay_auth_generate_nonce ();
new_client->listen_start_time = server->start_time;
new_client->start_time = time (NULL);
new_client->end_time = 0;
@@ -1496,6 +1506,22 @@ relay_client_new_with_infolist (struct t_infolist *infolist)
new_client->protocol_string = (str) ? strdup (str) : NULL;
str = weechat_infolist_string (infolist, "protocol_args");
new_client->protocol_args = (str) ? strdup (str) : NULL;
/* "auth_password" is new in WeeChat 2.9 */
if (weechat_infolist_search_var (infolist, "auth_password"))
new_client->auth_password = weechat_infolist_integer (infolist, "auth_password");
else
new_client->auth_password = RELAY_AUTH_PASSWORD_PLAIN;
/* "hash_iterations" is new in WeeChat 2.9 */
if (weechat_infolist_search_var (infolist, "hash_iterations"))
new_client->hash_iterations = weechat_infolist_integer (infolist, "hash_iterations");
else
new_client->hash_iterations = weechat_config_integer (
relay_config_network_hash_iterations);
/* "nonce" is new in WeeChat 2.9 */
if (weechat_infolist_search_var (infolist, "nonce"))
new_client->nonce = strdup (weechat_infolist_string (infolist, "nonce"));
else
new_client->nonce = relay_auth_generate_nonce ();
new_client->listen_start_time = weechat_infolist_time (infolist, "listen_start_time");
new_client->start_time = weechat_infolist_time (infolist, "start_time");
new_client->end_time = weechat_infolist_time (infolist, "end_time");
@@ -1693,6 +1719,8 @@ relay_client_free (struct t_relay_client *client)
free (client->protocol_string);
if (client->protocol_args)
free (client->protocol_args);
if (client->nonce)
free (client->nonce);
#ifdef HAVE_GNUTLS
if (client->hook_timer_handshake)
weechat_unhook (client->hook_timer_handshake);
@@ -1829,6 +1857,12 @@ relay_client_add_to_infolist (struct t_infolist *infolist,
return 0;
if (!weechat_infolist_new_var_string (ptr_item, "protocol_args", client->protocol_args))
return 0;
if (!weechat_infolist_new_var_integer (ptr_item, "auth_password", client->auth_password))
return 0;
if (!weechat_infolist_new_var_integer (ptr_item, "hash_iterations", client->hash_iterations))
return 0;
if (!weechat_infolist_new_var_string (ptr_item, "nonce", client->nonce))
return 0;
if (!weechat_infolist_new_var_time (ptr_item, "listen_start_time", client->listen_start_time))
return 0;
if (!weechat_infolist_new_var_time (ptr_item, "start_time", client->start_time))
@@ -1905,6 +1939,12 @@ relay_client_print_log ()
relay_protocol_string[ptr_client->protocol]);
weechat_log_printf (" protocol_string . . . : '%s'", ptr_client->protocol_string);
weechat_log_printf (" protocol_args . . . . : '%s'", ptr_client->protocol_args);
weechat_log_printf (" auth_password . . . . : %d (%s)",
ptr_client->auth_password,
(ptr_client->auth_password >= 0) ?
relay_auth_password_name[ptr_client->auth_password] : "");
weechat_log_printf (" hash_iterations . . . : %d", ptr_client->hash_iterations);
weechat_log_printf (" nonce . . . . . . . . : '%s'", ptr_client->nonce);
weechat_log_printf (" listen_start_time . . : %lld", (long long)ptr_client->listen_start_time);
weechat_log_printf (" start_time. . . . . . : %lld", (long long)ptr_client->start_time);
weechat_log_printf (" end_time. . . . . . . : %lld", (long long)ptr_client->end_time);
+4
View File
@@ -106,6 +106,9 @@ struct t_relay_client
char *protocol_string; /* example: "ipv6.ssl.irc.freenode" */
char *protocol_args; /* arguments used for protocol */
/* example: server for irc protocol */
int auth_password; /* password auth (negotiated/client) */
int hash_iterations; /* hash iterations */
char *nonce; /* nonce used in salt of hashed pwd */
time_t listen_start_time; /* when listening started */
time_t start_time; /* time of client connection */
time_t end_time; /* time of client disconnection */
@@ -124,6 +127,7 @@ struct t_relay_client
};
extern char *relay_client_status_string[];
extern char *relay_client_status_name[];
extern char *relay_client_msg_type_string[];
extern struct t_relay_client *relay_clients;
extern struct t_relay_client *last_relay_client;
File diff suppressed because it is too large Load Diff
+4
View File
@@ -39,12 +39,15 @@ extern struct t_config_option *relay_config_color_text_selected;
extern struct t_config_option *relay_config_network_allow_empty_password;
extern struct t_config_option *relay_config_network_allowed_ips;
extern struct t_config_option *relay_config_network_auth_password;
extern struct t_config_option *relay_config_network_auth_timeout;
extern struct t_config_option *relay_config_network_bind_address;
extern struct t_config_option *relay_config_network_clients_purge_delay;
extern struct t_config_option *relay_config_network_compression_level;
extern struct t_config_option *relay_config_network_hash_iterations;
extern struct t_config_option *relay_config_network_ipv6;
extern struct t_config_option *relay_config_network_max_clients;
extern struct t_config_option *relay_config_network_nonce_size;
extern struct t_config_option *relay_config_network_password;
extern struct t_config_option *relay_config_network_ssl_cert_key;
extern struct t_config_option *relay_config_network_ssl_priorities;
@@ -64,6 +67,7 @@ extern struct t_config_option *relay_config_weechat_commands;
extern regex_t *relay_config_regex_allowed_ips;
extern regex_t *relay_config_regex_websocket_allowed_origins;
extern struct t_hashtable *relay_config_hashtable_irc_backlog_tags;
extern char **relay_config_network_auth_password_list;
extern int relay_config_check_network_totp_secret (const void *pointer,
void *data,
@@ -70,6 +70,8 @@ extern void relay_weechat_msg_add_pointer (struct t_relay_weechat_msg *msg,
void *pointer);
extern void relay_weechat_msg_add_time (struct t_relay_weechat_msg *msg,
time_t time);
extern void relay_weechat_msg_add_hashtable (struct t_relay_weechat_msg *msg,
struct t_hashtable *hashtable);
extern int relay_weechat_msg_add_hdata (struct t_relay_weechat_msg *msg,
const char *path, const char *keys);
extern void relay_weechat_msg_add_infolist (struct t_relay_weechat_msg *msg,
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -40,7 +40,7 @@
#include "../relay-raw.h"
char *relay_weechat_compression_string[] = /* strings for compressions */
char *relay_weechat_compression_string[] = /* strings for compression */
{ "off", "zlib" };
+1 -1
View File
@@ -55,7 +55,7 @@ set(LIB_WEECHAT_UNIT_TESTS_PLUGINS_SRC
unit/plugins/irc/test-irc-mode.cpp
unit/plugins/irc/test-irc-nick.cpp
unit/plugins/irc/test-irc-protocol.cpp
unit/plugins/relay/weechat/test-relay-weechat-protocol.cpp
unit/plugins/relay/test-relay-auth.cpp
)
add_library(weechat_unit_tests_plugins MODULE ${LIB_WEECHAT_UNIT_TESTS_PLUGINS_SRC})
+1 -1
View File
@@ -72,7 +72,7 @@ lib_weechat_unit_tests_plugins_la_SOURCES = unit/plugins/irc/test-irc-color.cpp
unit/plugins/irc/test-irc-mode.cpp \
unit/plugins/irc/test-irc-nick.cpp \
unit/plugins/irc/test-irc-protocol.cpp \
unit/plugins/relay/weechat/test-relay-weechat-protocol.cpp
unit/plugins/relay/test-relay-auth.cpp
lib_weechat_unit_tests_plugins_la_LDFLAGS = -module -no-undefined
File diff suppressed because it is too large Load Diff