diff --git a/CHANGELOG.md b/CHANGELOG.md index 23e6973b9..ebdcb3d9a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,7 @@ - core: allow buffer id in commands `/buffer` and `/print`, in addition to number and name - core: allow mask in command `/item refresh` - relay: enable websocket extension "permessage-deflate" with "api" relay only ([#1549](https://github.com/weechat/weechat/issues/1549)) +- relay/api: add automatic reconnection to remote, add remote option "autoreconnect_delay" in remote, add options relay.api.remote_autoreconnect_delay_growing and relay.api.remote_autoreconnect_delay_max ([#2166](https://github.com/weechat/weechat/issues/2166)) - relay/api: add field "hidden" in GET /api/buffers, add support of hidden buffers in remote client ([#2159](https://github.com/weechat/weechat/issues/2159)) - relay/api: add field "time_displayed" in GET /api/buffers, add support of time displayed in remote client buffers - relay/weechat: add line id in buffer lines sent to clients diff --git a/po/cs.po b/po/cs.po index edc4baebd..a9e7e850d 100644 --- a/po/cs.po +++ b/po/cs.po @@ -21,7 +21,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2024-08-09 18:24+0200\n" +"POT-Creation-Date: 2024-08-11 12:15+0200\n" "PO-Revision-Date: 2024-06-11 07:49+0200\n" "Last-Translator: Ondřej Súkup \n" "Language-Team: weechat-dev \n" @@ -14265,6 +14265,11 @@ msgstr "%s%s: server \"%s\" pro příkaz \"%s\" nenalezen" msgid "%s%s: no connection to remote relay \"%s\"" msgstr "%s%s: nepřipojen k serveru \"%s\"!" +#, fuzzy, c-format +#| msgid "%s: auto-reconnection is cancelled" +msgid "remote[%s]: auto-reconnection is cancelled" +msgstr "%s: automatické znovupřipojené je zrušeno" + #, fuzzy, c-format #| msgid "%s%s: server \"%s\" already exists for \"%s\" command" msgid "%s%s: remote relay \"%s\" already exists for \"%s\" command" @@ -14555,9 +14560,14 @@ msgstr "" #, fuzzy #| msgid "reconnect to server(s)" -msgid "auto-connect to the remote relay" +msgid "automatically connect to the remote relay" msgstr "znovu připojit k serveru(ům)" +msgid "" +"automatically reconnect to the remote relay after this delay, in seconds (0 " +"= disable automatic reconnection)" +msgstr "" + msgid "" "name of proxy used for this remote relay (optional, proxy must be defined " "with command /proxy)" @@ -14812,6 +14822,22 @@ msgid "" "number of lines to retrieve on each buffer when connecting to a remote relay" msgstr "" +#, fuzzy +msgid "" +"growing factor for autoreconnect delay to remote relay (1 = always same " +"delay, 2 = delay*2 for each retry, etc.)" +msgstr "" +"faktor zvyšování pro zpoždění automatického znovupřipojení k serveru (1 = " +"vždy stejná prodleva, 2 = prodleva*2 pro každý pokus, ...)" + +#, fuzzy +#| msgid "maximum autoreconnect delay to server (in seconds, 0 = no maximum)" +msgid "" +"maximum autoreconnect delay to remote relay (in seconds, 0 = no maximum)" +msgstr "" +"maximální délka prodlevy automatíckého znovupřipojení k serveru (v " +"sekundách, 0 = žádné maximum)" + #, fuzzy, c-format msgid "%s%s: invalid websocket handshake received for client %s%s%s" msgstr "%s%s: TLS handshake selhal" @@ -14903,6 +14929,15 @@ msgid "" "not enabled)" msgstr "" +#, fuzzy, c-format +#| msgid "%s%s: reconnecting to server in %d %s, %d %s" +msgid "remote[%s]: reconnecting to remote relay in %d %s, %d %s" +msgstr "%s%s: znovupřipojení k serveru v %d %s, %d %s" + +#, fuzzy, c-format +msgid "remote[%s]: reconnecting to remote relay in %d %s" +msgstr "%s%s: zrovna připojuji k serveru \"%s\"!" + #, fuzzy, c-format msgid "%s: socket closed for %s (%s: %s)" msgstr "%s: soket uzavřen pro %s (port %d)" diff --git a/po/de.po b/po/de.po index 185621594..c3590b290 100644 --- a/po/de.po +++ b/po/de.po @@ -26,7 +26,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2024-08-09 18:24+0200\n" +"POT-Creation-Date: 2024-08-11 12:15+0200\n" "PO-Revision-Date: 2024-07-19 12:58+0200\n" "Last-Translator: Nils Görs \n" "Language-Team: German \n" @@ -15637,6 +15637,11 @@ msgstr "%s%s: Remote-Relay „%s“ für den Befehl „%s“ nicht gefunden" msgid "%s%s: no connection to remote relay \"%s\"" msgstr "%s%s: keine Verbindung zum Remote-Relay \"%s\"" +#, fuzzy, c-format +#| msgid "%s: auto-reconnection is cancelled" +msgid "remote[%s]: auto-reconnection is cancelled" +msgstr "%s: automatische Wiederverbindung abgebrochen" + #, c-format msgid "%s%s: remote relay \"%s\" already exists for \"%s\" command" msgstr "%s%s: Remote Relay \"%s\" existiert bereits für den Befehl „%s“" @@ -15922,9 +15927,16 @@ msgstr "" "example.com:9000 oder http://example.com:9000 (Klartext-Verbindung, nicht " "empfohlen)" -msgid "auto-connect to the remote relay" +#, fuzzy +#| msgid "auto-connect to the remote relay" +msgid "automatically connect to the remote relay" msgstr "automatische Verbindung zu einem Remote-Relay herstellen" +msgid "" +"automatically reconnect to the remote relay after this delay, in seconds (0 " +"= disable automatic reconnection)" +msgstr "" + msgid "" "name of proxy used for this remote relay (optional, proxy must be defined " "with command /proxy)" @@ -16266,6 +16278,26 @@ msgstr "" "Anzahl der Zeilen die von jedem Buffer, beim Verbinden mit einem Remote-" "Relay, abgerufen werden sollen" +#, fuzzy +#| msgid "" +#| "growing factor for autoreconnect delay to server (1 = always same delay, " +#| "2 = delay*2 for each retry, etc.)" +msgid "" +"growing factor for autoreconnect delay to remote relay (1 = always same " +"delay, 2 = delay*2 for each retry, etc.)" +msgstr "" +"Multiplikator für die Verzögerung bei der automatischen Wiederverbindung zum " +"Server (1 = immer die selbe Verzögerung nutzen, 2 = Verzögerung*2 für jeden " +"weiteren Versuch, usw.)" + +#, fuzzy +#| msgid "maximum autoreconnect delay to server (in seconds, 0 = no maximum)" +msgid "" +"maximum autoreconnect delay to remote relay (in seconds, 0 = no maximum)" +msgstr "" +"maximale Verzögerung bei der automatischen Wiederverbindung zum Server (in " +"Sekunden, 0 = keine Begrenzung)" + #, c-format msgid "%s%s: invalid websocket handshake received for client %s%s%s" msgstr "%s%s: ungültigen WebSocket Handshake für Client %s%s%s empfangen" @@ -16342,6 +16374,16 @@ msgstr "" "%s%s: Fehler: Verbindung zu einem Remote-Relay über API nicht möglich (cJSON-" "Unterstützung ist nicht aktiviert)" +#, fuzzy, c-format +#| msgid "%s%s: reconnecting to server in %d %s, %d %s" +msgid "remote[%s]: reconnecting to remote relay in %d %s, %d %s" +msgstr "%s%s: Verbinde erneut zum Server in %d %s, %d %s" + +#, fuzzy, c-format +#| msgid "remote[%s]: connecting to remote relay %s/%d%s..." +msgid "remote[%s]: reconnecting to remote relay in %d %s" +msgstr "remote[%s]: Verbindung zum Remote-Relay herstellen %s/%d%s..." + #, c-format msgid "%s: socket closed for %s (%s: %s)" msgstr "%s: Socket wurde für %s (%s: %s) geschlossen" diff --git a/po/es.po b/po/es.po index 99a8f37b2..6e0fcbf2e 100644 --- a/po/es.po +++ b/po/es.po @@ -22,7 +22,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2024-08-09 18:24+0200\n" +"POT-Creation-Date: 2024-08-11 12:15+0200\n" "PO-Revision-Date: 2024-06-11 07:49+0200\n" "Last-Translator: Santiago Forero \n" "Language-Team: weechat-dev \n" @@ -14601,6 +14601,11 @@ msgstr "%s%s: no se encontró el servidor \"%s\" para el comando \"%s\"" msgid "%s%s: no connection to remote relay \"%s\"" msgstr "%s%s: ¡no conectado al servidor \"%s\"!" +#, fuzzy, c-format +#| msgid "%s: auto-reconnection is cancelled" +msgid "remote[%s]: auto-reconnection is cancelled" +msgstr "%s: autoreconexión cancelada" + #, fuzzy, c-format #| msgid "%s%s: server \"%s\" already exists for \"%s\" command" msgid "%s%s: remote relay \"%s\" already exists for \"%s\" command" @@ -14887,9 +14892,14 @@ msgstr "" #, fuzzy #| msgid "reconnect to server(s)" -msgid "auto-connect to the remote relay" +msgid "automatically connect to the remote relay" msgstr "reconectar al servidor(es)" +msgid "" +"automatically reconnect to the remote relay after this delay, in seconds (0 " +"= disable automatic reconnection)" +msgstr "" + msgid "" "name of proxy used for this remote relay (optional, proxy must be defined " "with command /proxy)" @@ -15152,6 +15162,20 @@ msgid "" "number of lines to retrieve on each buffer when connecting to a remote relay" msgstr "" +#, fuzzy +msgid "" +"growing factor for autoreconnect delay to remote relay (1 = always same " +"delay, 2 = delay*2 for each retry, etc.)" +msgstr "" +"factor de crecimiento para el retraso antes de autoreconectarse (1 = siempre " +"el mismo retraso, 2 = retraso*2 por cada intento, ..)" + +#, fuzzy +#| msgid "maximum autoreconnect delay to server (in seconds, 0 = no maximum)" +msgid "" +"maximum autoreconnect delay to remote relay (in seconds, 0 = no maximum)" +msgstr "retraso máximo para la autoreconexión (en segundos, 0 = sin máximo)" + #, fuzzy, c-format msgid "%s%s: invalid websocket handshake received for client %s%s%s" msgstr "%s%s: agotado el tiempo de espera del saludo TLS del cliente %s%s%s" @@ -15226,6 +15250,16 @@ msgid "" "not enabled)" msgstr "" +#, fuzzy, c-format +#| msgid "%s%s: reconnecting to server in %d %s, %d %s" +msgid "remote[%s]: reconnecting to remote relay in %d %s, %d %s" +msgstr "%s%s: reconectando al servidor en %d %s, %d %s" + +#, fuzzy, c-format +#| msgid "%s%s: connecting to server %s/%d%s..." +msgid "remote[%s]: reconnecting to remote relay in %d %s" +msgstr "%s%s: conectando al servidor %s/%d%s..." + #, fuzzy, c-format msgid "%s: socket closed for %s (%s: %s)" msgstr "%s: socket cerrado para %s (puerto %d)" diff --git a/po/fr.po b/po/fr.po index e2ab72b2a..520f618f9 100644 --- a/po/fr.po +++ b/po/fr.po @@ -21,8 +21,8 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2024-08-09 18:24+0200\n" -"PO-Revision-Date: 2024-08-09 18:25+0200\n" +"POT-Creation-Date: 2024-08-11 12:15+0200\n" +"PO-Revision-Date: 2024-08-11 12:15+0200\n" "Last-Translator: Sébastien Helleu \n" "Language-Team: weechat-dev \n" "Language: fr\n" @@ -15323,6 +15323,10 @@ msgstr "%s%s : le relai distant \"%s\" n'existe pas pour la commande \"%s\"" msgid "%s%s: no connection to remote relay \"%s\"" msgstr "%s%s : non connecté au relai distant \"%s\" !" +#, c-format +msgid "remote[%s]: auto-reconnection is cancelled" +msgstr "remote[%s] : la reconnexion automatique est annulée" + #, c-format msgid "%s%s: remote relay \"%s\" already exists for \"%s\" command" msgstr "%s%s : le relai distant \"%s\" existe déjà pour la commande \"%s\"" @@ -15601,9 +15605,16 @@ msgstr "" "https://example.com:9000 ou http://example.com:9000 (connexion en clair, non " "recommandé)" -msgid "auto-connect to the remote relay" +msgid "automatically connect to the remote relay" msgstr "connexion automatique au relai distant" +msgid "" +"automatically reconnect to the remote relay after this delay, in seconds (0 " +"= disable automatic reconnection)" +msgstr "" +"reconnexion automatique au relai distant après ce délai, en secondes (0 = " +"désactiver la reconnexion automatique)" + msgid "" "name of proxy used for this remote relay (optional, proxy must be defined " "with command /proxy)" @@ -15930,6 +15941,19 @@ msgstr "" "nombre de lignes à récupérer sur chaque tampon lors d'une connexion à un " "relai distant" +msgid "" +"growing factor for autoreconnect delay to remote relay (1 = always same " +"delay, 2 = delay*2 for each retry, etc.)" +msgstr "" +"facteur de croissance du délai d'auto-reconnexion au relai distant (1 = " +"toujours le même délai, 2 = délai*2 pour chaque tentative, etc.)" + +msgid "" +"maximum autoreconnect delay to remote relay (in seconds, 0 = no maximum)" +msgstr "" +"délai maximum d'auto-reconnexion au relai distant (en secondes, 0 = pas de " +"maximum)" + #, c-format msgid "%s%s: invalid websocket handshake received for client %s%s%s" msgstr "" @@ -16008,6 +16032,14 @@ msgstr "" "%s%s : erreur : impossible de se connecter à un relai distant par API (le " "support cJSON n'est pas activé)" +#, c-format +msgid "remote[%s]: reconnecting to remote relay in %d %s, %d %s" +msgstr "remote[%s] : reconnexion au relai distant dans %d %s, %d %s" + +#, c-format +msgid "remote[%s]: reconnecting to remote relay in %d %s" +msgstr "remote[%s] : reconnexion au relai distant dans %d %s" + #, c-format msgid "%s: socket closed for %s (%s: %s)" msgstr "%s : socket fermé pour %s (%s : %s)" diff --git a/po/hu.po b/po/hu.po index b219bd4a2..b3737bb3a 100644 --- a/po/hu.po +++ b/po/hu.po @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2024-08-09 18:24+0200\n" +"POT-Creation-Date: 2024-08-11 12:15+0200\n" "PO-Revision-Date: 2024-06-11 07:49+0200\n" "Last-Translator: Andras Voroskoi \n" "Language-Team: weechat-dev \n" @@ -13650,6 +13650,10 @@ msgstr "%s a \"%s\" szerver nem található a \"%s\" parancshoz\n" msgid "%s%s: no connection to remote relay \"%s\"" msgstr "%s nincs csatlakozva a \"%s\" szerverhez!\n" +#, fuzzy, c-format +msgid "remote[%s]: auto-reconnection is cancelled" +msgstr "automata újracsatlakozás megszakítva\n" + #, fuzzy, c-format msgid "%s%s: remote relay \"%s\" already exists for \"%s\" command" msgstr "%s a \"%s\" szerver már létezik a(z) \"%s\" parancshoz\n" @@ -13913,9 +13917,14 @@ msgstr "" #, fuzzy #| msgid "reconnect to server(s)" -msgid "auto-connect to the remote relay" +msgid "automatically connect to the remote relay" msgstr "újracsatlakozás a szerver(ek)hez" +msgid "" +"automatically reconnect to the remote relay after this delay, in seconds (0 " +"= disable automatic reconnection)" +msgstr "" + msgid "" "name of proxy used for this remote relay (optional, proxy must be defined " "with command /proxy)" @@ -14162,6 +14171,15 @@ msgid "" "number of lines to retrieve on each buffer when connecting to a remote relay" msgstr "" +msgid "" +"growing factor for autoreconnect delay to remote relay (1 = always same " +"delay, 2 = delay*2 for each retry, etc.)" +msgstr "" + +msgid "" +"maximum autoreconnect delay to remote relay (in seconds, 0 = no maximum)" +msgstr "" + #, fuzzy, c-format msgid "%s%s: invalid websocket handshake received for client %s%s%s" msgstr "%s gnutls kézfogás sikertelen\n" @@ -14234,6 +14252,14 @@ msgid "" "not enabled)" msgstr "" +#, fuzzy, c-format +msgid "remote[%s]: reconnecting to remote relay in %d %s, %d %s" +msgstr "%s: Újracsatlakozás a szerverhez %d másodperc múlva\n" + +#, fuzzy, c-format +msgid "remote[%s]: reconnecting to remote relay in %d %s" +msgstr "%s: csatlakozás a(z) %s:%d%s%s szerverhez...\n" + #, fuzzy, c-format msgid "%s: socket closed for %s (%s: %s)" msgstr "FIFO cső bezárva\n" diff --git a/po/it.po b/po/it.po index ff3b80778..ece83fd33 100644 --- a/po/it.po +++ b/po/it.po @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2024-08-09 18:24+0200\n" +"POT-Creation-Date: 2024-08-11 12:15+0200\n" "PO-Revision-Date: 2024-06-11 07:49+0200\n" "Last-Translator: Esteban I. Ruiz Moreno \n" "Language-Team: weechat-dev \n" @@ -14619,6 +14619,11 @@ msgstr "%s%s: server \"%s\" non trovato per il comando \"%s\"" msgid "%s%s: no connection to remote relay \"%s\"" msgstr "%s%s: non connesso al server \"%s\"!" +#, fuzzy, c-format +#| msgid "%s: auto-reconnection is cancelled" +msgid "remote[%s]: auto-reconnection is cancelled" +msgstr "%s: la riconnessione automatica è annullata" + #, fuzzy, c-format #| msgid "%s%s: server \"%s\" already exists for \"%s\" command" msgid "%s%s: remote relay \"%s\" already exists for \"%s\" command" @@ -14911,9 +14916,14 @@ msgstr "" #, fuzzy #| msgid "reconnect to server(s)" -msgid "auto-connect to the remote relay" +msgid "automatically connect to the remote relay" msgstr "riconnette a uno o più server" +msgid "" +"automatically reconnect to the remote relay after this delay, in seconds (0 " +"= disable automatic reconnection)" +msgstr "" + #, fuzzy #| msgid "" #| "name of proxy used for this server (optional, proxy must be defined with " @@ -15193,6 +15203,22 @@ msgid "" "number of lines to retrieve on each buffer when connecting to a remote relay" msgstr "" +#, fuzzy +msgid "" +"growing factor for autoreconnect delay to remote relay (1 = always same " +"delay, 2 = delay*2 for each retry, etc.)" +msgstr "" +"fattore di crescita per il ritardo della riconnessione automatica al server " +"(1 = sempre identico, 2 = ritardo*2 per ogni tentativo, ...)" + +#, fuzzy +#| msgid "maximum autoreconnect delay to server (in seconds, 0 = no maximum)" +msgid "" +"maximum autoreconnect delay to remote relay (in seconds, 0 = no maximum)" +msgstr "" +"ritardo massimo per la riconnessione automatica al server (in secondi, 0 = " +"nessun massimo)" + #, c-format msgid "%s%s: invalid websocket handshake received for client %s%s%s" msgstr "" @@ -15283,6 +15309,16 @@ msgid "" "not enabled)" msgstr "" +#, fuzzy, c-format +#| msgid "%s%s: reconnecting to server in %d %s, %d %s" +msgid "remote[%s]: reconnecting to remote relay in %d %s, %d %s" +msgstr "%s%s: riconnessione al server tra %d %s, %d %s" + +#, fuzzy, c-format +#| msgid "%s%s: connecting to server %s/%d%s..." +msgid "remote[%s]: reconnecting to remote relay in %d %s" +msgstr "%s%s: connessione al server %s/%d%s..." + #, fuzzy, c-format msgid "%s: socket closed for %s (%s: %s)" msgstr "%s: socket chiuso per %s (porta %d)" diff --git a/po/ja.po b/po/ja.po index 40d6a555a..42f82ed9f 100644 --- a/po/ja.po +++ b/po/ja.po @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2024-08-09 18:24+0200\n" +"POT-Creation-Date: 2024-08-11 12:15+0200\n" "PO-Revision-Date: 2024-06-11 07:49+0200\n" "Last-Translator: AYANOKOUZI, Ryuunosuke \n" "Language-Team: Japanese \n" "Language-Team: weechat-dev \n" @@ -14918,6 +14918,11 @@ msgstr "%s%s: zdalny pośrednik „%s” nie został znaleziony dla komendy „% msgid "%s%s: no connection to remote relay \"%s\"" msgstr "%s%s: brak połączenia ze zdalnym pośrednikiem „%s”" +#, fuzzy, c-format +#| msgid "%s: auto-reconnection is cancelled" +msgid "remote[%s]: auto-reconnection is cancelled" +msgstr "%s: automatyczne ponowne łączenie z serwerem anulowane" + #, c-format msgid "%s%s: remote relay \"%s\" already exists for \"%s\" command" msgstr "%s%s: zdalny pośrednik „%s” już istnieje dla komendy „%s”" @@ -15200,9 +15205,16 @@ msgstr "" "przykłady: https://example.com:9000 lub http://example.com:9000 (czysty " "tekst, nie zalecane)" -msgid "auto-connect to the remote relay" +#, fuzzy +#| msgid "auto-connect to the remote relay" +msgid "automatically connect to the remote relay" msgstr "automatycznie połącz się ze zdalnym pośrednikiem" +msgid "" +"automatically reconnect to the remote relay after this delay, in seconds (0 " +"= disable automatic reconnection)" +msgstr "" + msgid "" "name of proxy used for this remote relay (optional, proxy must be defined " "with command /proxy)" @@ -15526,6 +15538,25 @@ msgstr "" "ilość otrzymywanych linii w każdym buforze podczas połączenia do zdalnego " "pośrednika" +#, fuzzy +#| msgid "" +#| "growing factor for autoreconnect delay to server (1 = always same delay, " +#| "2 = delay*2 for each retry, etc.)" +msgid "" +"growing factor for autoreconnect delay to remote relay (1 = always same " +"delay, 2 = delay*2 for each retry, etc.)" +msgstr "" +"rosnący współczynnik opóźnienia ponownego połączenia z serwerem (1 = stała " +"wartość, 2 = opóźnienie*2 dla każdej próby, etc.)" + +#, fuzzy +#| msgid "maximum autoreconnect delay to server (in seconds, 0 = no maximum)" +msgid "" +"maximum autoreconnect delay to remote relay (in seconds, 0 = no maximum)" +msgstr "" +"maksymalne opóźnienie do ponownego połączenia z serwerem (w sekundach, 0 = " +"brak maksimum)" + #, c-format msgid "%s%s: invalid websocket handshake received for client %s%s%s" msgstr "" @@ -15603,6 +15634,16 @@ msgstr "" "%s%s: błąd: nie udało się połączyć ze zdalnym pośrednikiem używając API " "(wsparcie dla cJSON jest wyłączone)" +#, fuzzy, c-format +#| msgid "%s%s: reconnecting to server in %d %s, %d %s" +msgid "remote[%s]: reconnecting to remote relay in %d %s, %d %s" +msgstr "%s%s: ponowne połączenie z serwerem za %d %s, %d %s" + +#, fuzzy, c-format +#| msgid "remote[%s]: connecting to remote relay %s/%d%s..." +msgid "remote[%s]: reconnecting to remote relay in %d %s" +msgstr "remote[%s]: łączenie ze zdalnym pośrednikiem %s/%d%s..." + #, c-format msgid "%s: socket closed for %s (%s: %s)" msgstr "%s: gniazdo zamknięte dla %s (%s: %s)" diff --git a/po/pt.po b/po/pt.po index 807e8d8de..bc1786c9e 100644 --- a/po/pt.po +++ b/po/pt.po @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2024-08-09 18:24+0200\n" +"POT-Creation-Date: 2024-08-11 12:15+0200\n" "PO-Revision-Date: 2024-06-11 07:49+0200\n" "Last-Translator: Vasco Almeida \n" "Language-Team: Portuguese <>\n" @@ -14968,6 +14968,11 @@ msgstr "%s%s: o servidor \"%s\" do comando \"%s\" não foi encontrado" msgid "%s%s: no connection to remote relay \"%s\"" msgstr "%s%s: não está conectado ao servidor \"%s\"!" +#, fuzzy, c-format +#| msgid "%s: auto-reconnection is cancelled" +msgid "remote[%s]: auto-reconnection is cancelled" +msgstr "%s: a reconexão automática foi cancelada" + #, fuzzy, c-format #| msgid "%s%s: server \"%s\" already exists for \"%s\" command" msgid "%s%s: remote relay \"%s\" already exists for \"%s\" command" @@ -15262,9 +15267,14 @@ msgstr "" #, fuzzy #| msgid "reconnect to server(s)" -msgid "auto-connect to the remote relay" +msgid "automatically connect to the remote relay" msgstr "reconectar-se a um servidor" +msgid "" +"automatically reconnect to the remote relay after this delay, in seconds (0 " +"= disable automatic reconnection)" +msgstr "" + #, fuzzy #| msgid "" #| "name of proxy used for this server (optional, proxy must be defined with " @@ -15546,6 +15556,22 @@ msgid "" "number of lines to retrieve on each buffer when connecting to a remote relay" msgstr "" +#, fuzzy +msgid "" +"growing factor for autoreconnect delay to remote relay (1 = always same " +"delay, 2 = delay*2 for each retry, etc.)" +msgstr "" +"fator de crescimento do atraso para reconectar automaticamente ao servidor " +"(1 = usar sempre o mesmo, 2 = atraso*2 por cada tentativa, ...)" + +#, fuzzy +#| msgid "maximum autoreconnect delay to server (in seconds, 0 = no maximum)" +msgid "" +"maximum autoreconnect delay to remote relay (in seconds, 0 = no maximum)" +msgstr "" +"atraso máximo (em segundos) para reconectar automaticamente ao servidor (0 = " +"sem limite)" + #, c-format msgid "%s%s: invalid websocket handshake received for client %s%s%s" msgstr "%s%s: websocket handshake inválido recebido do cliente %s%s%s" @@ -15638,6 +15664,17 @@ msgid "" "not enabled)" msgstr "" +# "%d %s, %d %s" at the end is n minutes, m seconds +#, fuzzy, c-format +#| msgid "%s%s: reconnecting to server in %d %s, %d %s" +msgid "remote[%s]: reconnecting to remote relay in %d %s, %d %s" +msgstr "%s%s: a reconectar ao servidor dentro de %d %s e %d %s" + +#, fuzzy, c-format +#| msgid "%s%s: connecting to server %s/%d%s..." +msgid "remote[%s]: reconnecting to remote relay in %d %s" +msgstr "%s%s: a conectar ao servidor %s/%d%s..." + #, fuzzy, c-format msgid "%s: socket closed for %s (%s: %s)" msgstr "%s: socket de %s fechado (porta %d)" diff --git a/po/pt_BR.po b/po/pt_BR.po index 867269ec5..700d636c1 100644 --- a/po/pt_BR.po +++ b/po/pt_BR.po @@ -21,7 +21,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2024-08-09 18:24+0200\n" +"POT-Creation-Date: 2024-08-11 12:15+0200\n" "PO-Revision-Date: 2024-06-11 07:49+0200\n" "Last-Translator: Érico Nogueira \n" "Language-Team: weechat-dev \n" @@ -14108,6 +14108,11 @@ msgstr "%sErro: janela não foi encontrada para o comando \"%s\"" msgid "%s%s: no connection to remote relay \"%s\"" msgstr "%s%s: sem conexão com o servidor \"%s\" para redirecionamento" +#, fuzzy, c-format +#| msgid "%s%s: connection refused" +msgid "remote[%s]: auto-reconnection is cancelled" +msgstr "%s%s: conexão recusada" + #, fuzzy, c-format msgid "%s%s: remote relay \"%s\" already exists for \"%s\" command" msgstr "%sErro: disposição \"%s\" já existe para comando \"%s\"" @@ -14387,9 +14392,14 @@ msgid "" msgstr "" #, fuzzy -msgid "auto-connect to the remote relay" +msgid "automatically connect to the remote relay" msgstr "%s: reconectando ao servidor..." +msgid "" +"automatically reconnect to the remote relay after this delay, in seconds (0 " +"= disable automatic reconnection)" +msgstr "" + msgid "" "name of proxy used for this remote relay (optional, proxy must be defined " "with command /proxy)" @@ -14653,6 +14663,23 @@ msgid "" "number of lines to retrieve on each buffer when connecting to a remote relay" msgstr "" +#, fuzzy +msgid "" +"growing factor for autoreconnect delay to remote relay (1 = always same " +"delay, 2 = delay*2 for each retry, etc.)" +msgstr "" +"fator de crescimento do tempo de espera para a auto-reconexão ao servidor (1 " +"= sempre o mesmo tempo de espera, 2 = tempo de espera*2 para cada " +"tentativa, ..)" + +#, fuzzy +#| msgid "maximum autoreconnect delay to server (in seconds, 0 = no maximum)" +msgid "" +"maximum autoreconnect delay to remote relay (in seconds, 0 = no maximum)" +msgstr "" +"máximo tempo de espera para auto-reconectar ao servidor (em segundos, 0 = " +"sem máximo)" + #, fuzzy, c-format msgid "%s%s: invalid websocket handshake received for client %s%s%s" msgstr "%s%s: handshake TLS falhou" @@ -14725,6 +14752,15 @@ msgid "" "not enabled)" msgstr "" +#, fuzzy, c-format +#| msgid "%s%s: reconnecting to server in %d %s, %d %s" +msgid "remote[%s]: reconnecting to remote relay in %d %s, %d %s" +msgstr "%s%s: reconectando ao servidor em %d %s, %d %s" + +#, fuzzy, c-format +msgid "remote[%s]: reconnecting to remote relay in %d %s" +msgstr "%s%s: conectando ao servidor %s/%d%s%s..." + #, fuzzy, c-format msgid "%s: socket closed for %s (%s: %s)" msgstr "%s: socket fechado para %s (porta %d)" diff --git a/po/ru.po b/po/ru.po index aaf38b582..2e509a8d3 100644 --- a/po/ru.po +++ b/po/ru.po @@ -21,7 +21,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2024-08-09 18:24+0200\n" +"POT-Creation-Date: 2024-08-11 12:15+0200\n" "PO-Revision-Date: 2024-06-11 07:49+0200\n" "Last-Translator: Aleksey V Zapparov AKA ixti \n" "Language-Team: weechat-dev \n" @@ -13704,6 +13704,10 @@ msgstr "%s сервер \"%s\" не найден для команды \"%s\"\n" msgid "%s%s: no connection to remote relay \"%s\"" msgstr "%s не подключен к серверу \"%s\"!\n" +#, fuzzy, c-format +msgid "remote[%s]: auto-reconnection is cancelled" +msgstr "Авто-переподключение отменено\n" + #, fuzzy, c-format msgid "%s%s: remote relay \"%s\" already exists for \"%s\" command" msgstr "%s сервер \"%s\" уже существует для команды \"%s\"\n" @@ -13967,9 +13971,14 @@ msgstr "" #, fuzzy #| msgid "reconnect to server(s)" -msgid "auto-connect to the remote relay" +msgid "automatically connect to the remote relay" msgstr "переподключиться к серверу(-ам)" +msgid "" +"automatically reconnect to the remote relay after this delay, in seconds (0 " +"= disable automatic reconnection)" +msgstr "" + msgid "" "name of proxy used for this remote relay (optional, proxy must be defined " "with command /proxy)" @@ -14213,6 +14222,15 @@ msgid "" "number of lines to retrieve on each buffer when connecting to a remote relay" msgstr "" +msgid "" +"growing factor for autoreconnect delay to remote relay (1 = always same " +"delay, 2 = delay*2 for each retry, etc.)" +msgstr "" + +msgid "" +"maximum autoreconnect delay to remote relay (in seconds, 0 = no maximum)" +msgstr "" + #, fuzzy, c-format msgid "%s%s: invalid websocket handshake received for client %s%s%s" msgstr "%s инициализация gnutls не удалось\n" @@ -14285,6 +14303,14 @@ msgid "" "not enabled)" msgstr "" +#, fuzzy, c-format +msgid "remote[%s]: reconnecting to remote relay in %d %s, %d %s" +msgstr "%s: Повторное подключение к серверу через %d секунд\n" + +#, fuzzy, c-format +msgid "remote[%s]: reconnecting to remote relay in %d %s" +msgstr "%s: поключаюсь к серверу %s:%d%s%s...\n" + #, fuzzy, c-format msgid "%s: socket closed for %s (%s: %s)" msgstr "FIFO pipe закрыт\n" diff --git a/po/sr.po b/po/sr.po index 07534b257..5f63ec4b5 100644 --- a/po/sr.po +++ b/po/sr.po @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2024-08-09 18:24+0200\n" +"POT-Creation-Date: 2024-08-11 12:15+0200\n" "PO-Revision-Date: 2024-07-10 11:29+0400\n" "Last-Translator: Ivan Pešić \n" "Language-Team: weechat-dev \n" @@ -14894,6 +14894,11 @@ msgstr "%s%s: није пронађен релеј удаљених „%s” з msgid "%s%s: no connection to remote relay \"%s\"" msgstr "%s%s: не постоји веза са релејем удаљених „%s”" +#, fuzzy, c-format +#| msgid "%s: auto-reconnection is cancelled" +msgid "remote[%s]: auto-reconnection is cancelled" +msgstr "%s: отказано је аутоматско поновно успостављање везе" + #, c-format msgid "%s%s: remote relay \"%s\" already exists for \"%s\" command" msgstr "%s%s: релеј удаљених „%s” већ постоји за команду „%s”" @@ -15176,9 +15181,16 @@ msgstr "" "примери: https://example.com:9000 или http://example.com:9000 (веза " "коришћењем чистог текста, не препоручује се)" -msgid "auto-connect to the remote relay" +#, fuzzy +#| msgid "auto-connect to the remote relay" +msgid "automatically connect to the remote relay" msgstr "ауто-повезивање на релеј удаљених" +msgid "" +"automatically reconnect to the remote relay after this delay, in seconds (0 " +"= disable automatic reconnection)" +msgstr "" + msgid "" "name of proxy used for this remote relay (optional, proxy must be defined " "with command /proxy)" @@ -15501,6 +15513,25 @@ msgstr "" "број линија који се преузима из сваког бафера када се успоставља веза са " "релејем удаљених" +#, fuzzy +#| msgid "" +#| "growing factor for autoreconnect delay to server (1 = always same delay, " +#| "2 = delay*2 for each retry, etc.)" +msgid "" +"growing factor for autoreconnect delay to remote relay (1 = always same " +"delay, 2 = delay*2 for each retry, etc.)" +msgstr "" +"фактор увећавања паузе пре аутоматског поновног повезивања са сервером (1 = " +"увек иста пауза, 2 = пауза*2 за сваки наредни покушај, итд.)" + +#, fuzzy +#| msgid "maximum autoreconnect delay to server (in seconds, 0 = no maximum)" +msgid "" +"maximum autoreconnect delay to remote relay (in seconds, 0 = no maximum)" +msgstr "" +"максимална пауза пре аутоматског поновног повезивања са сервером (у " +"секундама, 0 = нема ограничења)" + #, c-format msgid "%s%s: invalid websocket handshake received for client %s%s%s" msgstr "%s%s: примљено је неважеће вебсокет руковање од клијента %s%s%s" @@ -15577,6 +15608,16 @@ msgstr "" "%s%s: грешка: не може да се повеже са релејем удаљених преко API (није " "укључена cJSON подршка)" +#, fuzzy, c-format +#| msgid "%s%s: reconnecting to server in %d %s, %d %s" +msgid "remote[%s]: reconnecting to remote relay in %d %s, %d %s" +msgstr "%s%s: поновно успостављање везе са сервером за %d %s, %d %s" + +#, fuzzy, c-format +#| msgid "remote[%s]: connecting to remote relay %s/%d%s..." +msgid "remote[%s]: reconnecting to remote relay in %d %s" +msgstr "удаљени[%s]: успостављање везе са удаљеним релејем %s/%d%s..." + #, c-format msgid "%s: socket closed for %s (%s: %s)" msgstr "%s: сокет је затворен за %s (%s: %s)" diff --git a/po/tr.po b/po/tr.po index 4b1168b08..9eb791a86 100644 --- a/po/tr.po +++ b/po/tr.po @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2024-08-09 18:24+0200\n" +"POT-Creation-Date: 2024-08-11 12:15+0200\n" "PO-Revision-Date: 2024-06-11 07:49+0200\n" "Last-Translator: Emir SARI \n" "Language-Team: weechat-dev \n" @@ -15234,6 +15234,11 @@ msgstr "%s%s: \"%s\" sunucusu \"%s\" komutu için bulunamadı" msgid "%s%s: no connection to remote relay \"%s\"" msgstr "%s%s: \"%s\" sunucusuna bağlı değil!" +#, fuzzy, c-format +#| msgid "%s: auto-reconnection is cancelled" +msgid "remote[%s]: auto-reconnection is cancelled" +msgstr "%s: Kendiliğinden yeniden bağlanma iptal edildi" + #, fuzzy, c-format #| msgid "%s%s: server \"%s\" already exists for \"%s\" command" msgid "%s%s: remote relay \"%s\" already exists for \"%s\" command" @@ -15544,9 +15549,14 @@ msgstr "" #, fuzzy #| msgid "reconnect to server(s)" -msgid "auto-connect to the remote relay" +msgid "automatically connect to the remote relay" msgstr "sunuculara yeniden bağlan" +msgid "" +"automatically reconnect to the remote relay after this delay, in seconds (0 " +"= disable automatic reconnection)" +msgstr "" + #, fuzzy #| msgid "" #| "name of proxy used for this server (optional, proxy must be defined with " @@ -15884,6 +15894,24 @@ msgid "" "number of lines to retrieve on each buffer when connecting to a remote relay" msgstr "" +#, fuzzy +#| msgid "" +#| "growing factor for autoreconnect delay to server (1 = always same delay, " +#| "2 = delay*2 for each retry, etc.)" +msgid "" +"growing factor for autoreconnect delay to remote relay (1 = always same " +"delay, 2 = delay*2 for each retry, etc.)" +msgstr "" +"sunucuya kendiliğinden yeniden bağlanma gecikmesi büyüme faktörü (1 = her " +"zaman aynı gecikme, 2 = gecikme*2 vb.)" + +#, fuzzy +#| msgid "maximum autoreconnect delay to server (in seconds, 0 = no maximum)" +msgid "" +"maximum autoreconnect delay to remote relay (in seconds, 0 = no maximum)" +msgstr "" +"sunucuya kendiliğinden bağlanma en büyük gecikmesi (saniye, 0 = en fazla yok)" + #, c-format msgid "%s%s: invalid websocket handshake received for client %s%s%s" msgstr "%s%s: %s%s%s istemcisi için geçersiz web soketi el sıkışması alındı" @@ -15976,6 +16004,16 @@ msgid "" "not enabled)" msgstr "" +#, fuzzy, c-format +#| msgid "%s%s: reconnecting to server in %d %s, %d %s" +msgid "remote[%s]: reconnecting to remote relay in %d %s, %d %s" +msgstr "%s%s: Sunucuya %d %s, %d %s içinde yeniden bağlanılacak" + +#, fuzzy, c-format +#| msgid "%s%s: connecting to server %s/%d%s..." +msgid "remote[%s]: reconnecting to remote relay in %d %s" +msgstr "%s%s: %s/%d%s sunucusuna bağlanıyor..." + #, c-format msgid "%s: socket closed for %s (%s: %s)" msgstr "%s: %s için soket kapalı (%s: %s)" diff --git a/po/weechat.pot b/po/weechat.pot index 02b131775..a13901557 100644 --- a/po/weechat.pot +++ b/po/weechat.pot @@ -21,7 +21,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2024-08-09 18:24+0200\n" +"POT-Creation-Date: 2024-08-11 12:15+0200\n" "PO-Revision-Date: 2014-08-16 10:27+0200\n" "Last-Translator: Sébastien Helleu \n" "Language-Team: weechat-dev \n" @@ -12496,6 +12496,10 @@ msgstr "" msgid "%s%s: no connection to remote relay \"%s\"" msgstr "" +#, c-format +msgid "remote[%s]: auto-reconnection is cancelled" +msgstr "" + #, c-format msgid "%s%s: remote relay \"%s\" already exists for \"%s\" command" msgstr "" @@ -12731,7 +12735,12 @@ msgid "" "recommended)" msgstr "" -msgid "auto-connect to the remote relay" +msgid "automatically connect to the remote relay" +msgstr "" + +msgid "" +"automatically reconnect to the remote relay after this delay, in seconds (0 " +"= disable automatic reconnection)" msgstr "" msgid "" @@ -12955,6 +12964,15 @@ msgid "" "number of lines to retrieve on each buffer when connecting to a remote relay" msgstr "" +msgid "" +"growing factor for autoreconnect delay to remote relay (1 = always same " +"delay, 2 = delay*2 for each retry, etc.)" +msgstr "" + +msgid "" +"maximum autoreconnect delay to remote relay (in seconds, 0 = no maximum)" +msgstr "" + #, c-format msgid "%s%s: invalid websocket handshake received for client %s%s%s" msgstr "" @@ -13022,6 +13040,14 @@ msgid "" "not enabled)" msgstr "" +#, c-format +msgid "remote[%s]: reconnecting to remote relay in %d %s, %d %s" +msgstr "" + +#, c-format +msgid "remote[%s]: reconnecting to remote relay in %d %s" +msgstr "" + #, c-format msgid "%s: socket closed for %s (%s: %s)" msgstr "" diff --git a/src/plugins/relay/api/remote/relay-remote-network.c b/src/plugins/relay/api/remote/relay-remote-network.c index 1fcdd1265..108fe637d 100644 --- a/src/plugins/relay/api/remote/relay-remote-network.c +++ b/src/plugins/relay/api/remote/relay-remote-network.c @@ -132,6 +132,7 @@ relay_remote_network_disconnect (struct t_relay_remote *remote) relay_remote_network_close_connection (remote); relay_remote_set_status (remote, RELAY_STATUS_DISCONNECTED); weechat_printf (NULL, _("remote[%s]: disconnected"), remote->name); + relay_remote_reconnect_schedule (remote); } /* @@ -385,6 +386,8 @@ relay_remote_network_recv_text (struct t_relay_remote *remote, return; } relay_remote_set_status (remote, RELAY_STATUS_CONNECTED); + remote->reconnect_delay = 0; + remote->reconnect_start = 0; snprintf (request, sizeof (request), "{\"request\": \"GET /api/version\"}"); relay_remote_network_send (remote, RELAY_MSG_STANDARD, @@ -835,6 +838,7 @@ relay_remote_network_connect_cb (const void *pointer, void *data, int status, _("%sremote[%s]: error: %s"), weechat_prefix ("error"), remote->name, error); } + relay_remote_network_disconnect (remote); break; case WEECHAT_HOOK_CONNECT_IP_ADDRESS_NOT_FOUND: weechat_printf (NULL, @@ -846,6 +850,7 @@ relay_remote_network_connect_cb (const void *pointer, void *data, int status, _("%sremote[%s]: error: %s"), weechat_prefix ("error"), remote->name, error); } + relay_remote_network_disconnect (remote); break; case WEECHAT_HOOK_CONNECT_CONNECTION_REFUSED: weechat_printf (NULL, @@ -857,6 +862,7 @@ relay_remote_network_connect_cb (const void *pointer, void *data, int status, _("%sremote[%s]: error: %s"), weechat_prefix ("error"), remote->name, error); } + relay_remote_network_disconnect (remote); break; case WEECHAT_HOOK_CONNECT_PROXY_ERROR: weechat_printf ( @@ -871,6 +877,7 @@ relay_remote_network_connect_cb (const void *pointer, void *data, int status, _("%sremote[%s]: error: %s"), weechat_prefix ("error"), remote->name, error); } + relay_remote_network_disconnect (remote); break; case WEECHAT_HOOK_CONNECT_LOCAL_HOSTNAME_ERROR: weechat_printf (NULL, @@ -882,6 +889,7 @@ relay_remote_network_connect_cb (const void *pointer, void *data, int status, _("%sremote[%s]: error: %s"), weechat_prefix ("error"), remote->name, error); } + relay_remote_network_disconnect (remote); break; case WEECHAT_HOOK_CONNECT_GNUTLS_INIT_ERROR: weechat_printf (NULL, @@ -893,6 +901,7 @@ relay_remote_network_connect_cb (const void *pointer, void *data, int status, _("%sremote[%s]: error: %s"), weechat_prefix ("error"), remote->name, error); } + relay_remote_network_disconnect (remote); break; case WEECHAT_HOOK_CONNECT_GNUTLS_HANDSHAKE_ERROR: weechat_printf (NULL, @@ -904,6 +913,7 @@ relay_remote_network_connect_cb (const void *pointer, void *data, int status, _("%sremote[%s]: error: %s"), weechat_prefix ("error"), remote->name, error); } + relay_remote_network_disconnect (remote); break; case WEECHAT_HOOK_CONNECT_MEMORY_ERROR: weechat_printf (NULL, @@ -915,6 +925,7 @@ relay_remote_network_connect_cb (const void *pointer, void *data, int status, _("%sremote[%s]: error: %s"), weechat_prefix ("error"), remote->name, error); } + relay_remote_network_disconnect (remote); break; case WEECHAT_HOOK_CONNECT_TIMEOUT: weechat_printf (NULL, @@ -926,6 +937,7 @@ relay_remote_network_connect_cb (const void *pointer, void *data, int status, _("%sremote[%s]: error: %s"), weechat_prefix ("error"), remote->name, error); } + relay_remote_network_disconnect (remote); break; case WEECHAT_HOOK_CONNECT_SOCKET_ERROR: weechat_printf (NULL, @@ -937,6 +949,7 @@ relay_remote_network_connect_cb (const void *pointer, void *data, int status, _("%sremote[%s]: error: %s"), weechat_prefix ("error"), remote->name, error); } + relay_remote_network_disconnect (remote); break; } @@ -1208,7 +1221,7 @@ relay_remote_network_url_handshake_cb (const void *pointer, remote->name, weechat_config_string (remote->options[RELAY_REMOTE_OPTION_URL]), ptr_resp_code); - relay_remote_set_status (remote, RELAY_STATUS_DISCONNECTED); + relay_remote_network_disconnect (remote); return WEECHAT_RC_OK; } @@ -1222,7 +1235,7 @@ relay_remote_network_url_handshake_cb (const void *pointer, remote->name, weechat_config_string (remote->options[RELAY_REMOTE_OPTION_URL]), ptr_error); - relay_remote_set_status (remote, RELAY_STATUS_DISCONNECTED); + relay_remote_network_disconnect (remote); return WEECHAT_RC_OK; } @@ -1259,7 +1272,7 @@ relay_remote_network_url_handshake_cb (const void *pointer, remote->name, weechat_config_string (remote->options[RELAY_REMOTE_OPTION_URL]), _("hash algorithm not found")); - relay_remote_set_status (remote, RELAY_STATUS_DISCONNECTED); + relay_remote_network_disconnect (remote); return WEECHAT_RC_OK; } @@ -1272,7 +1285,7 @@ relay_remote_network_url_handshake_cb (const void *pointer, remote->name, weechat_config_string (remote->options[RELAY_REMOTE_OPTION_URL]), _("unknown number of hash iterations")); - relay_remote_set_status (remote, RELAY_STATUS_DISCONNECTED); + relay_remote_network_disconnect (remote); return WEECHAT_RC_OK; } @@ -1285,7 +1298,7 @@ relay_remote_network_url_handshake_cb (const void *pointer, remote->name, weechat_config_string (remote->options[RELAY_REMOTE_OPTION_URL]), _("unknown TOTP status")); - relay_remote_set_status (remote, RELAY_STATUS_DISCONNECTED); + relay_remote_network_disconnect (remote); return WEECHAT_RC_OK; } @@ -1322,7 +1335,7 @@ relay_remote_network_url_handshake_cb (const void *pointer, _("%sremote[%s]: not enough memory"), weechat_prefix ("error"), remote->name); - relay_remote_set_status (remote, RELAY_STATUS_DISCONNECTED); + relay_remote_network_disconnect (remote); return WEECHAT_RC_OK; } snprintf (option_name, length, "weechat.proxy.%s.type", proxy); @@ -1340,7 +1353,7 @@ relay_remote_network_url_handshake_cb (const void *pointer, NULL, _("%sremote[%s]: proxy \"%s\" not found, cannot connect"), weechat_prefix ("error"), remote->name, proxy); - relay_remote_set_status (remote, RELAY_STATUS_DISCONNECTED); + relay_remote_network_disconnect (remote); return WEECHAT_RC_OK; } str_proxy_type = weechat_config_string (proxy_type); @@ -1353,7 +1366,7 @@ relay_remote_network_url_handshake_cb (const void *pointer, _("%sremote[%s]: missing proxy settings, check options for " "proxy \"%s\""), weechat_prefix ("error"), remote->name, proxy); - relay_remote_set_status (remote, RELAY_STATUS_DISCONNECTED); + relay_remote_network_disconnect (remote); return WEECHAT_RC_OK; } } diff --git a/src/plugins/relay/relay-client.c b/src/plugins/relay/relay-client.c index d5cf063a2..327d31cd3 100644 --- a/src/plugins/relay/relay-client.c +++ b/src/plugins/relay/relay-client.c @@ -1302,18 +1302,13 @@ relay_client_send (struct t_relay_client *client, * Timer callback, called each second. */ -int -relay_client_timer_cb (const void *pointer, void *data, int remaining_calls) +void +relay_client_timer () { struct t_relay_client *ptr_client, *ptr_next_client; int purge_delay, auth_timeout; time_t current_time; - /* make C compiler happy */ - (void) pointer; - (void) data; - (void) remaining_calls; - purge_delay = weechat_config_integer (relay_config_network_clients_purge_delay); auth_timeout = weechat_config_integer (relay_config_network_auth_timeout); @@ -1352,8 +1347,6 @@ relay_client_timer_cb (const void *pointer, void *data, int remaining_calls) ptr_client = ptr_next_client; } - - return WEECHAT_RC_OK; } /* diff --git a/src/plugins/relay/relay-client.h b/src/plugins/relay/relay-client.h index 9231f2d3a..061bb0af3 100644 --- a/src/plugins/relay/relay-client.h +++ b/src/plugins/relay/relay-client.h @@ -131,8 +131,7 @@ extern int relay_client_send (struct t_relay_client *client, enum t_relay_msg_type msg_type, const char *data, int data_size, const char *message_raw_buffer); -extern int relay_client_timer_cb (const void *pointer, void *data, - int remaining_calls); +extern void relay_client_timer (); extern struct t_relay_client *relay_client_new (int sock, const char *address, struct t_relay_server *server); extern struct t_relay_client *relay_client_new_with_infolist (struct t_infolist *infolist); diff --git a/src/plugins/relay/relay-command.c b/src/plugins/relay/relay-command.c index cf5eb6568..c8d6a5140 100644 --- a/src/plugins/relay/relay-command.c +++ b/src/plugins/relay/relay-command.c @@ -439,6 +439,8 @@ relay_command_display_remote (struct t_relay_remote *remote, int with_detail) weechat_printf (NULL, " autoconnect. . . . . : %s", (weechat_config_string (remote->options[RELAY_REMOTE_OPTION_AUTOCONNECT])) ? "on" : "off"); + weechat_printf (NULL, " autoreconnect_delay. : %d", + weechat_config_integer (remote->options[RELAY_REMOTE_OPTION_AUTORECONNECT_DELAY])); weechat_printf (NULL, " proxy. . . . . . . . : '%s'", weechat_config_string (remote->options[RELAY_REMOTE_OPTION_PROXY])); weechat_printf (NULL, " tls_verify . . . . . : %s", @@ -474,7 +476,8 @@ relay_command_remote (const void *pointer, void *data, { struct t_relay_remote *ptr_remote, *ptr_remote2; int i, detailed_list, one_remote_found, update; - const char *ptr_autoconnect, *ptr_proxy, *ptr_tls_verify, *ptr_password; + const char *ptr_autoconnect, *ptr_autoreconnect_delay, *ptr_proxy; + const char *ptr_tls_verify, *ptr_password; const char *ptr_totp_secret; char *remote_name; @@ -601,6 +604,7 @@ relay_command_remote (const void *pointer, void *data, return WEECHAT_RC_ERROR; } ptr_autoconnect = NULL; + ptr_autoreconnect_delay = NULL; ptr_proxy = NULL; ptr_tls_verify = NULL; ptr_password = NULL; @@ -611,6 +615,10 @@ relay_command_remote (const void *pointer, void *data, { ptr_autoconnect = argv[i] + 13; } + else if (strncmp (argv[i], "-autoreconnect_delay=", 21) == 0) + { + ptr_autoreconnect_delay = argv[i] + 21; + } else if (strncmp (argv[i], "-proxy=", 7) == 0) { ptr_proxy = argv[i] + 7; @@ -638,7 +646,8 @@ relay_command_remote (const void *pointer, void *data, } } ptr_remote = relay_remote_new (argv[2], argv[3], ptr_autoconnect, - ptr_proxy, ptr_tls_verify, ptr_password, + ptr_autoreconnect_delay, ptr_proxy, + ptr_tls_verify, ptr_password, ptr_totp_secret); if (ptr_remote) { @@ -744,6 +753,14 @@ relay_command_remote (const void *pointer, void *data, return WEECHAT_RC_ERROR; } relay_remote_disconnect (ptr_remote); + if (ptr_remote->reconnect_start > 0) + { + ptr_remote->reconnect_delay = 0; + ptr_remote->reconnect_start = 0; + weechat_printf (NULL, + _("remote[%s]: auto-reconnection is cancelled"), + ptr_remote->name); + } return WEECHAT_RC_OK; } diff --git a/src/plugins/relay/relay-config.c b/src/plugins/relay/relay-config.c index f9d9d7d0d..3c46dc700 100644 --- a/src/plugins/relay/relay-config.c +++ b/src/plugins/relay/relay-config.c @@ -106,6 +106,8 @@ struct t_config_option *relay_config_irc_backlog_time_format = NULL; /* relay config, api section */ struct t_config_option *relay_config_api_remote_get_lines = NULL; +struct t_config_option *relay_config_api_remote_autoreconnect_delay_growing = NULL; +struct t_config_option *relay_config_api_remote_autoreconnect_delay_max = NULL; /* other */ @@ -1073,10 +1075,19 @@ relay_config_create_remote_option (const char *remote_name, int index_option, ptr_option = weechat_config_new_option ( relay_config_file, relay_config_section_remote, option_name, "boolean", - N_("auto-connect to the remote relay"), + N_("automatically connect to the remote relay"), NULL, 0, 0, value, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); break; + case RELAY_REMOTE_OPTION_AUTORECONNECT_DELAY: + ptr_option = weechat_config_new_option ( + relay_config_file, relay_config_section_remote, + option_name, "integer", + N_("automatically reconnect to the remote relay after this delay, " + "in seconds (0 = disable automatic reconnection)"), + NULL, 0, 65535, value, NULL, 0, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); + break; case RELAY_REMOTE_OPTION_PROXY: ptr_option = weechat_config_new_option ( relay_config_file, relay_config_section_remote, @@ -1849,6 +1860,20 @@ relay_config_init () "to a remote relay"), NULL, 0, INT_MAX, "1000", NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); + relay_config_api_remote_autoreconnect_delay_growing = weechat_config_new_option ( + relay_config_file, relay_config_section_api, + "remote_autoreconnect_delay_growing", "integer", + N_("growing factor for autoreconnect delay to remote relay (1 = always " + "same delay, 2 = delay*2 for each retry, etc.)"), + NULL, 1, 100, "2", NULL, 0, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); + relay_config_api_remote_autoreconnect_delay_max = weechat_config_new_option ( + relay_config_file, relay_config_section_api, + "remote_autoreconnect_delay_max", "integer", + N_("maximum autoreconnect delay to remote relay (in seconds, 0 = no " + "maximum)"), + NULL, 0, 3600 * 24 * 7, "600", NULL, 0, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); } /* section port */ diff --git a/src/plugins/relay/relay-config.h b/src/plugins/relay/relay-config.h index 4dcfd3792..98d0a5d56 100644 --- a/src/plugins/relay/relay-config.h +++ b/src/plugins/relay/relay-config.h @@ -71,6 +71,8 @@ extern struct t_config_option *relay_config_irc_backlog_tags; extern struct t_config_option *relay_config_irc_backlog_time_format; extern struct t_config_option *relay_config_api_remote_get_lines; +extern struct t_config_option *relay_config_api_remote_autoreconnect_delay_growing; +extern struct t_config_option *relay_config_api_remote_autoreconnect_delay_max; extern int relay_config_auto_open_buffer[]; extern int relay_config_display_clients[]; diff --git a/src/plugins/relay/relay-remote.c b/src/plugins/relay/relay-remote.c index 887306230..4a77b0e8d 100644 --- a/src/plugins/relay/relay-remote.c +++ b/src/plugins/relay/relay-remote.c @@ -42,9 +42,10 @@ char *relay_remote_option_string[RELAY_REMOTE_NUM_OPTIONS] = -{ "url", "autoconnect", "proxy", "tls_verify", "password", "totp_secret" }; +{ "url", "autoconnect", "autoreconnect_delay", "proxy", "tls_verify", + "password", "totp_secret" }; char *relay_remote_option_default[RELAY_REMOTE_NUM_OPTIONS] = -{ "", "off", "", "on", "", "" }; +{ "", "off", "10", "", "on", "", "" }; struct t_relay_remote *relay_remotes = NULL; struct t_relay_remote *last_relay_remote = NULL; @@ -358,6 +359,8 @@ relay_remote_alloc (const char *name) new_remote->synced = 0; new_remote->partial_ws_frame = NULL; new_remote->partial_ws_frame_size = 0; + new_remote->reconnect_delay = 0; + new_remote->reconnect_start = 0; new_remote->prev_remote = NULL; new_remote->next_remote = NULL; @@ -477,9 +480,14 @@ relay_remote_new_with_options (const char *name, struct t_config_option **option */ struct t_relay_remote * -relay_remote_new (const char *name, const char *url, const char *autoconnect, - const char *proxy, const char *tls_verify, - const char *password, const char *totp_secret) +relay_remote_new (const char *name, + const char *url, + const char *autoconnect, + const char *autoreconnect_delay, + const char *proxy, + const char *tls_verify, + const char *password, + const char *totp_secret) { struct t_config_option *option[RELAY_REMOTE_NUM_OPTIONS]; const char *value[RELAY_REMOTE_NUM_OPTIONS]; @@ -491,6 +499,7 @@ relay_remote_new (const char *name, const char *url, const char *autoconnect, value[RELAY_REMOTE_OPTION_URL] = url; value[RELAY_REMOTE_OPTION_AUTOCONNECT] = autoconnect; + value[RELAY_REMOTE_OPTION_AUTORECONNECT_DELAY] = autoreconnect_delay; value[RELAY_REMOTE_OPTION_PROXY] = proxy; value[RELAY_REMOTE_OPTION_TLS_VERIFY] = tls_verify; value[RELAY_REMOTE_OPTION_PASSWORD] = password; @@ -594,6 +603,8 @@ relay_remote_new_with_infolist (struct t_infolist *infolist) } new_remote->version_ok = weechat_infolist_integer (infolist, "version_ok"); new_remote->synced = weechat_infolist_integer (infolist, "synced"); + new_remote->reconnect_delay = weechat_infolist_integer (infolist, "reconnect_delay"); + new_remote->reconnect_start = weechat_infolist_integer (infolist, "reconnect_start"); ptr_ws_frame = weechat_infolist_buffer (infolist, "partial_ws_frame", &ws_frame_size); if (ptr_ws_frame && (ws_frame_size > 0)) { @@ -805,6 +816,68 @@ relay_remote_disconnect (struct t_relay_remote *remote) #endif /* HAVE_CJSON */ } +/* + * Schedules reconnection to remote. + */ + +void +relay_remote_reconnect_schedule (struct t_relay_remote *remote) +{ + int minutes, seconds; + + if (weechat_config_integer (remote->options[RELAY_REMOTE_OPTION_AUTORECONNECT_DELAY]) == 0) + { + remote->reconnect_delay = 0; + remote->reconnect_start = 0; + return; + } + + /* growing reconnect delay */ + if (remote->reconnect_delay == 0) + remote->reconnect_delay = weechat_config_integer (remote->options[RELAY_REMOTE_OPTION_AUTORECONNECT_DELAY]); + else + remote->reconnect_delay = remote->reconnect_delay * weechat_config_integer (relay_config_api_remote_autoreconnect_delay_growing); + if ((weechat_config_integer (relay_config_api_remote_autoreconnect_delay_max) > 0) + && (remote->reconnect_delay > weechat_config_integer (relay_config_api_remote_autoreconnect_delay_max))) + { + remote->reconnect_delay = weechat_config_integer (relay_config_api_remote_autoreconnect_delay_max); + } + + remote->reconnect_start = time (NULL); + + minutes = remote->reconnect_delay / 60; + seconds = remote->reconnect_delay % 60; + if ((minutes > 0) && (seconds > 0)) + { + weechat_printf ( + NULL, + _("remote[%s]: reconnecting to remote relay in %d %s, %d %s"), + remote->name, + minutes, + NG_("minute", "minutes", minutes), + seconds, + NG_("second", "seconds", seconds)); + } + else if (minutes > 0) + { + weechat_printf ( + NULL, + _("remote[%s]: reconnecting to remote relay in %d %s"), + remote->name, + minutes, + NG_("minute", "minutes", minutes)); + } + else + { + weechat_printf ( + NULL, + _("remote[%s]: reconnecting to remote relay in %d %s"), + remote->name, + seconds, + NG_("second", "seconds", seconds)); + } +} + /* * Reconnects to a remote WeeChat relay/api. * @@ -816,13 +889,20 @@ relay_remote_disconnect (struct t_relay_remote *remote) int relay_remote_reconnect (struct t_relay_remote *remote) { + int rc; + if (!remote) return 0; + remote->reconnect_start = 0; + #ifdef HAVE_CJSON if (!relay_remote_disconnect (remote)) return 0; - return relay_remote_network_connect (remote); + rc = relay_remote_network_connect (remote); + if (!rc) + relay_remote_reconnect_schedule (remote); + return rc; #else weechat_printf (NULL, _("%s%s: error: unable to connect to a remote relay via API " @@ -832,6 +912,35 @@ relay_remote_reconnect (struct t_relay_remote *remote) #endif /* HAVE_CJSON */ } +/* + * Timer used to auto-reconnect to remotes. + */ + +void +relay_remote_timer () +{ + struct t_relay_remote *ptr_remote, *ptr_next_remote; + time_t current_time; + + current_time = time (NULL); + + ptr_remote = relay_remotes; + while (ptr_remote) + { + ptr_next_remote = ptr_remote->next_remote; + + /* check if reconnection is pending */ + if ((ptr_remote->sock <= 0) + && (ptr_remote->reconnect_start > 0) + && (current_time >= (ptr_remote->reconnect_start + ptr_remote->reconnect_delay))) + { + relay_remote_reconnect (ptr_remote); + } + + ptr_remote = ptr_next_remote; + } +} + /* * Disconnects all remotes. */ @@ -993,6 +1102,10 @@ relay_remote_add_to_infolist (struct t_infolist *infolist, } if (!weechat_infolist_new_var_integer (ptr_item, "version_ok", remote->version_ok)) return 0; + if (!weechat_infolist_new_var_integer (ptr_item, "reconnect_delay", remote->reconnect_delay)) + return 0; + if (!weechat_infolist_new_var_integer (ptr_item, "reconnect_start", remote->reconnect_start)) + return 0; if (!weechat_infolist_new_var_integer (ptr_item, "synced", remote->synced)) return 0; @@ -1019,6 +1132,8 @@ relay_remote_print_log () weechat_log_printf (" autoconnect . . . . . . : %s", (weechat_config_boolean (ptr_remote->options[RELAY_REMOTE_OPTION_AUTOCONNECT])) ? "on" : "off"); + weechat_log_printf (" autoreconnect_delay . . : %d", + weechat_config_integer (ptr_remote->options[RELAY_REMOTE_OPTION_AUTORECONNECT_DELAY])); weechat_log_printf (" proxy . . . . . . . . . : '%s'", weechat_config_string (ptr_remote->options[RELAY_REMOTE_OPTION_PROXY])); weechat_log_printf (" tls_verify. . . . . . . : %s", @@ -1045,6 +1160,8 @@ relay_remote_print_log () weechat_log_printf (" gnutls_sess . . . . . . : %p", ptr_remote->gnutls_sess); relay_websocket_deflate_print_log (ptr_remote->ws_deflate, ""); weechat_log_printf (" version_ok. . . . . . . : %d", ptr_remote->version_ok); + weechat_log_printf (" reconnect_delay . . . . : %d", ptr_remote->reconnect_delay); + weechat_log_printf (" reconnect_start . . . . : %d", ptr_remote->reconnect_start); weechat_log_printf (" synced. . . . . . . . . : %d", ptr_remote->synced); weechat_log_printf (" partial_ws_frame. . . . : %p (%d bytes)", ptr_remote->partial_ws_frame, diff --git a/src/plugins/relay/relay-remote.h b/src/plugins/relay/relay-remote.h index 14565052f..cba611344 100644 --- a/src/plugins/relay/relay-remote.h +++ b/src/plugins/relay/relay-remote.h @@ -28,6 +28,8 @@ enum t_relay_remote_option { RELAY_REMOTE_OPTION_URL = 0, /* remote URL */ RELAY_REMOTE_OPTION_AUTOCONNECT, /* auto-connect */ + RELAY_REMOTE_OPTION_AUTORECONNECT_DELAY, /* delay for auto-reconnect */ + /* (0 = no auto-reconnect) */ RELAY_REMOTE_OPTION_PROXY, /* proxy used for remote (optional) */ RELAY_REMOTE_OPTION_TLS_VERIFY, /* check if the connection is trusted */ RELAY_REMOTE_OPTION_PASSWORD, /* password for remote relay */ @@ -61,6 +63,8 @@ struct t_relay_remote int synced; /* 1 if synced with remote */ char *partial_ws_frame; /* part. binary websocket frame recv */ int partial_ws_frame_size; /* size of partial websocket frame */ + int reconnect_delay; /* current reconnect delay (growing) */ + time_t reconnect_start; /* this time + delay = reconn. time */ struct t_relay_remote *prev_remote;/* link to previous remote */ struct t_relay_remote *next_remote;/* link to next remote */ }; @@ -89,6 +93,7 @@ extern struct t_relay_remote *relay_remote_new_with_options (const char *name, struct t_config_option **options); extern struct t_relay_remote *relay_remote_new (const char *name, const char *autoconnect, + const char *autoreconnect_delay, const char *proxy, const char *tls_verify, const char *url, @@ -101,7 +106,9 @@ extern int relay_remote_connect (struct t_relay_remote *remote); extern void relay_remote_auto_connect (); extern int relay_remote_send (struct t_relay_remote *remote, const char *json); extern int relay_remote_disconnect (struct t_relay_remote *remote); +extern void relay_remote_reconnect_schedule (struct t_relay_remote *remote); extern int relay_remote_reconnect (struct t_relay_remote *remote); +extern void relay_remote_timer (); extern void relay_remote_disconnect_all (); extern int relay_remote_rename (struct t_relay_remote *remote, const char *name); extern void relay_remote_free (struct t_relay_remote *remote); diff --git a/src/plugins/relay/relay.c b/src/plugins/relay/relay.c index 026a5fa4d..f0a1e4e85 100644 --- a/src/plugins/relay/relay.c +++ b/src/plugins/relay/relay.c @@ -238,6 +238,24 @@ relay_debug_dump_cb (const void *pointer, void *data, return WEECHAT_RC_OK; } +/* + * Timer callback, called each second. + */ + +int +relay_timer_cb (const void *pointer, void *data, int remaining_calls) +{ + /* make C compiler happy */ + (void) pointer; + (void) data; + (void) remaining_calls; + + relay_client_timer (); + relay_remote_timer (); + + return WEECHAT_RC_OK; +} + /* * Initializes relay plugin. */ @@ -300,7 +318,7 @@ weechat_plugin_init (struct t_weechat_plugin *plugin, int argc, char *argv[]) } relay_hook_timer = weechat_hook_timer (1 * 1000, 0, 0, - &relay_client_timer_cb, NULL, NULL); + &relay_timer_cb, NULL, NULL); return WEECHAT_RC_OK; } diff --git a/tests/unit/plugins/relay/api/remote/test-relay-remote-network.cpp b/tests/unit/plugins/relay/api/remote/test-relay-remote-network.cpp index 5e19e0ee0..0aed215b0 100644 --- a/tests/unit/plugins/relay/api/remote/test-relay-remote-network.cpp +++ b/tests/unit/plugins/relay/api/remote/test-relay-remote-network.cpp @@ -56,11 +56,11 @@ TEST_GROUP(RelayRemoteNetworkWithRemote) /* create two relay remotes */ ptr_relay_remote = relay_remote_new ("remote", "http://localhost:9000", - "off", NULL, "on", + NULL, "off", NULL, "on", "secret", "secretbase32"); ptr_relay_remote2 = relay_remote_new ("remote2", "https://localhost:9001/", - "off", "my_proxy", "off", + "30", "off", "my_proxy", "off", "secret", "secretbase32"); } diff --git a/tests/unit/plugins/relay/test-relay-remote.cpp b/tests/unit/plugins/relay/test-relay-remote.cpp index ed5968ff3..14e17738c 100644 --- a/tests/unit/plugins/relay/test-relay-remote.cpp +++ b/tests/unit/plugins/relay/test-relay-remote.cpp @@ -264,6 +264,56 @@ TEST(RelayRemote, Rename) /* TODO: write tests */ } +/* + * Tests functions: + * relay_remote_disconnect + */ + +TEST(RelayRemote, Disconnect) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * relay_remote_reconnect_schedule + */ + +TEST(RelayRemote, ReconnectSchedule) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * relay_remote_reconnect + */ + +TEST(RelayRemote, Reconnect) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * relay_remote_timer + */ + +TEST(RelayRemote, Timer) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * relay_remote_disconnect_all + */ + +TEST(RelayRemote, DisconnectAll) +{ + /* TODO: write tests */ +} + /* * Tests functions: * relay_remote_free @@ -284,26 +334,6 @@ TEST(RelayRemote, FreeAll) /* TODO: write tests */ } -/* - * Tests functions: - * relay_remote_disconnect - */ - -TEST(RelayRemote, Disconnect) -{ - /* TODO: write tests */ -} - -/* - * Tests functions: - * relay_remote_disconnect_all - */ - -TEST(RelayRemote, DisconnectAll) -{ - /* TODO: write tests */ -} - /* * Tests functions: * relay_remote_add_to_infolist