From a797e2bf7099de118871e4f1c4644193f94eaf46 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Helleu?= Date: Sat, 16 Aug 2025 21:18:48 +0200 Subject: [PATCH] relay/api: fix crash when an invalid HTTP request is received from a client When invalid data is received (not an HTTP request), client->http_req->method is NULL, so we have to check it's not NULL before comparing it to the supported methods. This fixes a regression introduced in commit 93ec10b563718e5c2eb59457ce6685e57a53274a. --- CHANGELOG.md | 6 ++ po/cs.po | 6 +- po/de.po | 7 +- po/es.po | 6 +- po/fr.po | 8 +- po/hu.po | 6 +- po/it.po | 6 +- po/ja.po | 8 +- po/pl.po | 8 +- po/pt.po | 7 +- po/pt_BR.po | 6 +- po/ru.po | 6 +- po/sr.po | 7 +- po/tr.po | 105 ++++++++++++--------- po/weechat.pot | 6 +- src/plugins/relay/api/relay-api-protocol.c | 42 ++++++--- 16 files changed, 165 insertions(+), 75 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a4192fa64..7f27f8f2f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,12 @@ SPDX-License-Identifier: GPL-3.0-or-later # WeeChat ChangeLog +## Version 4.7.1 (under dev) + +### Fixed + +- relay/api: fix crash when an invalid HTTP request is received from a client + ## Version 4.7.0 (2025-07-19) ### Changed diff --git a/po/cs.po b/po/cs.po index d09c68349..bd4cb9916 100644 --- a/po/cs.po +++ b/po/cs.po @@ -23,7 +23,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2025-06-30 09:32+0200\n" +"POT-Creation-Date: 2025-08-16 19:26+0200\n" "PO-Revision-Date: 2025-05-04 09:24+0200\n" "Last-Translator: Ondřej Súkup \n" "Language-Team: weechat-dev \n" @@ -14025,6 +14025,10 @@ msgstr "" msgid "%s%s: failed to execute route \"%s %s\" for client %s%s%s" msgstr "%s%s: selhalo parsování příkazu \"%s\" (prosím oznamte to vývojárům):" +#, fuzzy, c-format +msgid "%s%s: invalid data received from client %s%s%s" +msgstr "%s%s: TLS handshake selhal" + #, fuzzy, c-format #| msgid "%s%s: unable to create socket" msgid "%sremote[%s]: unable to send data, disconnecting" diff --git a/po/de.po b/po/de.po index 1d462478e..9934dbfe2 100644 --- a/po/de.po +++ b/po/de.po @@ -28,7 +28,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2025-06-30 09:32+0200\n" +"POT-Creation-Date: 2025-08-16 19:26+0200\n" "PO-Revision-Date: 2025-05-05 09:24+0200\n" "Last-Translator: Nils Görs \n" "Language-Team: German \n" @@ -15419,6 +15419,11 @@ msgstr "" msgid "%s%s: failed to execute route \"%s %s\" for client %s%s%s" msgstr "%s%s: Route „%s %s“ für Client %s%s%s konnte nicht ausgeführt werden" +#, fuzzy, c-format +#| msgid "%s%s: invalid websocket handshake received for client %s%s%s" +msgid "%s%s: invalid data received from client %s%s%s" +msgstr "%s%s: ungültigen WebSocket Handshake für Client %s%s%s empfangen" + #, c-format msgid "%sremote[%s]: unable to send data, disconnecting" msgstr "" diff --git a/po/es.po b/po/es.po index a4c4161d9..9047ade32 100644 --- a/po/es.po +++ b/po/es.po @@ -24,7 +24,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2025-06-30 09:32+0200\n" +"POT-Creation-Date: 2025-08-16 19:26+0200\n" "PO-Revision-Date: 2025-05-04 09:25+0200\n" "Last-Translator: Santiago Forero \n" "Language-Team: weechat-dev \n" @@ -14359,6 +14359,10 @@ msgstr "" msgid "%s%s: failed to execute route \"%s %s\" for client %s%s%s" msgstr "%s%s: falló la ejecución del comando \"%s\" por el cliente %s%s%s" +#, fuzzy, c-format +msgid "%s%s: invalid data received from client %s%s%s" +msgstr "%s%s: agotado el tiempo de espera del saludo TLS del cliente %s%s%s" + #, fuzzy, c-format #| msgid "%s%s: unable to create socket" msgid "%sremote[%s]: unable to send data, disconnecting" diff --git a/po/fr.po b/po/fr.po index abd81d9ab..dd0f733b8 100644 --- a/po/fr.po +++ b/po/fr.po @@ -23,8 +23,8 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2025-06-30 09:32+0200\n" -"PO-Revision-Date: 2025-06-30 09:34+0200\n" +"POT-Creation-Date: 2025-08-16 19:26+0200\n" +"PO-Revision-Date: 2025-08-16 19:27+0200\n" "Last-Translator: Sébastien Helleu \n" "Language-Team: weechat-dev \n" "Language: fr\n" @@ -15116,6 +15116,10 @@ msgstr "" msgid "%s%s: failed to execute route \"%s %s\" for client %s%s%s" msgstr "%s%s : échec d'exécution de la route \"%s %s\" pour le client %s%s%s" +#, c-format +msgid "%s%s: invalid data received from client %s%s%s" +msgstr "%s%s : données invalides reçues du client %s%s%s" + #, c-format msgid "%sremote[%s]: unable to send data, disconnecting" msgstr "%sremote[%s] : impossible d'envoyer des données, déconnexion" diff --git a/po/hu.po b/po/hu.po index 11a3fbdb8..b8324fe07 100644 --- a/po/hu.po +++ b/po/hu.po @@ -22,7 +22,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2025-06-30 09:32+0200\n" +"POT-Creation-Date: 2025-08-16 19:26+0200\n" "PO-Revision-Date: 2025-05-04 09:25+0200\n" "Last-Translator: Andras Voroskoi \n" "Language-Team: weechat-dev \n" @@ -13424,6 +13424,10 @@ msgstr "" msgid "%s%s: failed to execute route \"%s %s\" for client %s%s%s" msgstr "Nem sikerült a(z) \"%s\" naplófájlt írni\n" +#, fuzzy, c-format +msgid "%s%s: invalid data received from client %s%s%s" +msgstr "%s gnutls kézfogás sikertelen\n" + #, fuzzy, c-format msgid "%sremote[%s]: unable to send data, disconnecting" msgstr "%s nem sikerült a szervert létrehozni\n" diff --git a/po/it.po b/po/it.po index c6a437824..60754bd61 100644 --- a/po/it.po +++ b/po/it.po @@ -22,7 +22,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2025-06-30 09:32+0200\n" +"POT-Creation-Date: 2025-08-16 19:26+0200\n" "PO-Revision-Date: 2025-05-04 09:25+0200\n" "Last-Translator: Esteban I. Ruiz Moreno \n" "Language-Team: weechat-dev \n" @@ -14361,6 +14361,10 @@ msgstr "" msgid "%s%s: failed to execute route \"%s %s\" for client %s%s%s" msgstr "%s%s: impossibile eseguire il comando \"%s\" per il client %s%s%s" +#, fuzzy, c-format +msgid "%s%s: invalid data received from client %s%s%s" +msgstr "%s%s: set di caratter invalido: \"%s\"" + #, fuzzy, c-format #| msgid "%s%s: unable to create socket" msgid "%sremote[%s]: unable to send data, disconnecting" diff --git a/po/ja.po b/po/ja.po index 4de59c2cb..f7810cdf6 100644 --- a/po/ja.po +++ b/po/ja.po @@ -22,7 +22,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2025-06-30 09:32+0200\n" +"POT-Creation-Date: 2025-08-16 19:26+0200\n" "PO-Revision-Date: 2025-05-04 09:25+0200\n" "Last-Translator: AYANOKOUZI, Ryuunosuke \n" "Language-Team: Japanese \n" "Language-Team: weechat-dev \n" @@ -15045,6 +15045,12 @@ msgstr "" msgid "%s%s: failed to execute route \"%s %s\" for client %s%s%s" msgstr "%s%s: nie udało się wykonać trasy „%s %s” dla klienta %s%s%s" +#, fuzzy, c-format +#| msgid "%s%s: invalid websocket handshake received for client %s%s%s" +msgid "%s%s: invalid data received from client %s%s%s" +msgstr "" +"%s%s: otrzymano niepoprawny pakiet dla gniazda webowego od klienta %s%s%s" + #, fuzzy, c-format #| msgid "%sremote[%s]: unable to create socket" msgid "%sremote[%s]: unable to send data, disconnecting" diff --git a/po/pt.po b/po/pt.po index f78381833..a19d86a77 100644 --- a/po/pt.po +++ b/po/pt.po @@ -22,7 +22,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2025-06-30 09:32+0200\n" +"POT-Creation-Date: 2025-08-16 19:26+0200\n" "PO-Revision-Date: 2025-05-04 09:25+0200\n" "Last-Translator: Vasco Almeida \n" "Language-Team: Portuguese <>\n" @@ -14734,6 +14734,11 @@ msgstr "" msgid "%s%s: failed to execute route \"%s %s\" for client %s%s%s" msgstr "%s%s: falha ao executar o comando \"%s\" do cliente %s%s%s" +#, fuzzy, c-format +#| msgid "%s%s: invalid websocket handshake received for client %s%s%s" +msgid "%s%s: invalid data received from client %s%s%s" +msgstr "%s%s: websocket handshake inválido recebido do cliente %s%s%s" + #, fuzzy, c-format #| msgid "%s%s: unable to create socket" msgid "%sremote[%s]: unable to send data, disconnecting" diff --git a/po/pt_BR.po b/po/pt_BR.po index 629c23c6d..cfab077b4 100644 --- a/po/pt_BR.po +++ b/po/pt_BR.po @@ -23,7 +23,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2025-06-30 09:32+0200\n" +"POT-Creation-Date: 2025-08-16 19:26+0200\n" "PO-Revision-Date: 2025-05-04 09:25+0200\n" "Last-Translator: Érico Nogueira \n" "Language-Team: weechat-dev \n" @@ -13857,6 +13857,10 @@ msgstr "" msgid "%s%s: failed to execute route \"%s %s\" for client %s%s%s" msgstr "%s%s: falha ao executar comando \"%s\" para cliente %d" +#, fuzzy, c-format +msgid "%s%s: invalid data received from client %s%s%s" +msgstr "%s%s: handshake TLS falhou" + #, fuzzy, c-format msgid "%sremote[%s]: unable to send data, disconnecting" msgstr "%s%s: não foi possível criar pipe" diff --git a/po/ru.po b/po/ru.po index f5fe1f148..146235af2 100644 --- a/po/ru.po +++ b/po/ru.po @@ -23,7 +23,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2025-06-30 09:32+0200\n" +"POT-Creation-Date: 2025-08-16 19:26+0200\n" "PO-Revision-Date: 2025-05-04 09:25+0200\n" "Last-Translator: Aleksey V Zapparov AKA ixti \n" "Language-Team: weechat-dev \n" @@ -13476,6 +13476,10 @@ msgstr "" msgid "%s%s: failed to execute route \"%s %s\" for client %s%s%s" msgstr "Не могу записать лог-файл \"%s\"\n" +#, fuzzy, c-format +msgid "%s%s: invalid data received from client %s%s%s" +msgstr "%s инициализация gnutls не удалось\n" + #, fuzzy, c-format msgid "%sremote[%s]: unable to send data, disconnecting" msgstr "%s не могу создать сервер\n" diff --git a/po/sr.po b/po/sr.po index ed0e83a86..8de1ac2a5 100644 --- a/po/sr.po +++ b/po/sr.po @@ -22,7 +22,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2025-06-30 09:32+0200\n" +"POT-Creation-Date: 2025-08-16 19:26+0200\n" "PO-Revision-Date: 2025-07-09 15:48+0400\n" "Last-Translator: Ivan Pešić \n" "Language-Team: weechat-dev \n" @@ -14669,6 +14669,11 @@ msgstr "" msgid "%s%s: failed to execute route \"%s %s\" for client %s%s%s" msgstr "%s%s: није успело извршавање руте „%s %s” за клијента %s%s%s" +#, fuzzy, c-format +#| msgid "%s%s: invalid websocket handshake received for client %s%s%s" +msgid "%s%s: invalid data received from client %s%s%s" +msgstr "%s%s: примљено је неважеће вебсокет руковање од клијента %s%s%s" + #, c-format msgid "%sremote[%s]: unable to send data, disconnecting" msgstr "%sудаљени[%s]: није могао да пошаље податке, веза се прекида" diff --git a/po/tr.po b/po/tr.po index 0d4194d2d..0a3af918f 100644 --- a/po/tr.po +++ b/po/tr.po @@ -23,7 +23,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2025-06-30 09:32+0200\n" +"POT-Creation-Date: 2025-08-16 19:26+0200\n" "PO-Revision-Date: 2025-07-06 09:25+0200\n" "Last-Translator: Emir SARI \n" "Language-Team: weechat-dev \n" @@ -1466,10 +1466,11 @@ msgid "" "term|url|windows || callbacks [] || mouse|cursor [verbose] " "|| hdata [free] || time || unicode || whitespace" msgstr "" -"list || set || dump [] || hooks [ " -"[...]] || buffer|certs|color|dirs|infolists|key|libs|memory|tags|" -"term|url|windows || callbacks [] || mouse|cursor [verbose] " -"|| hdata [free] || time || unicode || whitespace" +"list || set || dump [] || hooks " +"[ [...]] || buffer|certs|color|dirs|infolists|" +"key|libs|memory|tags|term|url|windows || callbacks [] || mouse|" +"cursor [verbose] || hdata [free] || time || unicode || " +"whitespace" msgid "raw[list]: list plugins with debug levels" msgstr "raw[list]: Eklentileri hata ayıklama düzeyleriyle listele" @@ -1577,8 +1578,9 @@ msgid "raw[term]: display infos about terminal" msgstr "raw[term]: Uçbirim hakkında bilgi görüntüle" msgid "raw[url]: toggle debug for calls to hook_url (display output hashtable)" -msgstr "raw[url]: hook_url'sine olan çağrılar için hata ayıklamayı aç/kapat " -"(çıktı sağlama tablosunu görüntüle)" +msgstr "" +"raw[url]: hook_url'sine olan çağrılar için hata ayıklamayı aç/kapat (çıktı " +"sağlama tablosunu görüntüle)" msgid "raw[windows]: display windows tree" msgstr "raw[windows]: Pencere ağacını görüntüle" @@ -1586,8 +1588,9 @@ msgstr "raw[windows]: Pencere ağacını görüntüle" msgid "" "raw[time]: measure time to execute a command or to send text to the current " "buffer" -msgstr "raw[time]: Geçerli arabelleğe metin göndermek veya üzerinde komut " -"yürütmek için gereken zamanı ölç" +msgstr "" +"raw[time]: Geçerli arabelleğe metin göndermek veya üzerinde komut yürütmek " +"için gereken zamanı ölç" msgid "" "raw[unicode]: display information about string and unicode chars (evaluated, " @@ -1621,15 +1624,15 @@ msgid "" "raw[-s]: split expression before evaluating it (many commands can be " "separated by semicolons)" msgstr "" -"raw[-s]: İfadeyi değerlendirmeden önce böl (birden çok komut noktalı virgülle " -"ayrılabilir)" +"raw[-s]: İfadeyi değerlendirmeden önce böl (birden çok komut noktalı " +"virgülle ayrılabilir)" msgid "" "raw[-d]: display debug output after evaluation (with two -d: more verbose " "debug)" msgstr "" -"raw[-d]: Değerlendirme sonrası hata ayıklama çıktısını görüntüle (iki -d ile: " -"Daha ayrıntılı hata ayıklama bilgisi)" +"raw[-d]: Değerlendirme sonrası hata ayıklama çıktısını görüntüle (iki -d " +"ile: Daha ayrıntılı hata ayıklama bilgisi)" msgid "" "raw[-c]: evaluate as condition: use operators and parentheses, return a " @@ -1641,7 +1644,8 @@ msgstr "" msgid "" "expression: expression to evaluate, variables with format ${variable} are " "replaced (see below)" -msgstr "ifade: Değerlendirilecek ifade, ${variable} biçimindeki değişkenler " +msgstr "" +"ifade: Değerlendirilecek ifade, ${variable} biçimindeki değişkenler " "değerlendirilir (aşağıya bakın)" msgid "operator: a logical or comparison operator (see below)" @@ -1650,7 +1654,8 @@ msgstr "işleç: bir mantıksal veya karşılaştırma işleci (aşağıya bakı msgid "" "An expression is considered as \"true\" if it is not NULL, not empty, and " "different from \"0\"." -msgstr "Bir ifade; NULL veya boş değilse ve \"0\"dan farklıysa \"true\" olarak " +msgstr "" +"Bir ifade; NULL veya boş değilse ve \"0\"dan farklıysa \"true\" olarak " "değerlendirilir." msgid "" @@ -1928,16 +1933,17 @@ msgid " !~ is NOT matching POSIX extended regex" msgstr " !~ eşleşen POSIX genişletilmiş düzenli ifadesi DEĞİL" msgid " ==* is matching mask, case-sensitive (wildcard \"*\" is allowed)" -msgstr " ==* eşleşen maske, BÜYÜK/küçük harf duyarlı (\"*\" jokerine izin " -"verilir)" +msgstr "" +" ==* eşleşen maske, BÜYÜK/küçük harf duyarlı (\"*\" jokerine izin verilir)" msgid " !!* is NOT matching mask, case-sensitive (wildcard \"*\" is allowed)" -msgstr " !!* eşleşen maske DEĞİL, BÜYÜK/küçük harf duyarlı (\"*\" jokerine " -"izin verilir)" +msgstr "" +" !!* eşleşen maske DEĞİL, BÜYÜK/küçük harf duyarlı (\"*\" jokerine izin " +"verilir)" msgid " =* is matching mask, case-insensitive (wildcard \"*\" is allowed)" -msgstr " =* eşleşen maske, BÜYÜK/küçük harf duyarsız (\"*\" jokerine izin " -"verilir)" +msgstr "" +" =* eşleşen maske, BÜYÜK/küçük harf duyarsız (\"*\" jokerine izin verilir)" msgid "" " !* is NOT matching mask, case-insensitive (wildcard \"*\" is allowed)" @@ -2389,9 +2395,8 @@ msgid "" " || refresh |... || recreate || del " "|..." msgstr "" -"list || add|addreplace \"\" \"\" || rename " -" || refresh |... || recreate || del " -"|..." +"list || add|addreplace \"\" \"\" || rename " +" || refresh |... || recreate || del |..." msgid "raw[list]: list all custom bar items" msgstr "raw[list]: Tüm özel çubuk ögelerini listele" @@ -2408,7 +2413,8 @@ msgstr "ad: Özel çubuk ögesi adı" msgid "" "conditions: evaluated conditions to display the bar item (for example to " "display the bar item only in specific buffers)" -msgstr "koşullar: Çubuk ögesini görüntülemek için değerlendirilmiş koşullar " +msgstr "" +"koşullar: Çubuk ögesini görüntülemek için değerlendirilmiş koşullar " "(örneğin, çubuk ögesini yalnızca belirli arabelleklerde görüntülemek için)" msgid "content: content (evaluated, see /help eval)" @@ -2467,9 +2473,9 @@ msgid "" msgstr "" "[list|listdefault|listdiff] [] || bind [ " "[]] || bindctxt [ []] || " -"unbind || unbindctxt || reset || " -"resetctxt || resetall -yes [] || missing [] " -"|| legacy ..." +"unbind || unbindctxt || reset || resetctxt " +" || resetall -yes [] || missing [] || legacy " +"..." msgid "raw[list]: list all current keys" msgstr "" @@ -4714,12 +4720,12 @@ msgid "" "messages from nick \"FlashCode\", \"irc_notice+nick_toto*\" for notices from " "a nick starting with \"toto\"" msgstr "" -"vurgulanacak künyelerin virgülle ayrılmış listesi; BÜYÜK/küçük harf " -"duyarsız karşılaştırma; her bir künyede \"*\" jokerine izin verilir; " -"künyeler arasında mantıksal \"and\" yapmak için künyeleri \"+\" ile " -"ayırabilirsiniz; örnekler: \"GazMan\" takma adından iletiler için " -"\"nick_gazman\", \"toto\" ile başlayan bir takma addan gelecek bildirimler " -"için \"irc_notice+nick_toto\"" +"vurgulanacak künyelerin virgülle ayrılmış listesi; BÜYÜK/küçük harf duyarsız " +"karşılaştırma; her bir künyede \"*\" jokerine izin verilir; künyeler " +"arasında mantıksal \"and\" yapmak için künyeleri \"+\" ile ayırabilirsiniz; " +"örnekler: \"GazMan\" takma adından iletiler için \"nick_gazman\", \"toto\" " +"ile başlayan bir takma addan gelecek bildirimler için " +"\"irc_notice+nick_toto\"" msgid "" "conditions to add a buffer in hotlist (if notify level is OK for the " @@ -11969,8 +11975,8 @@ msgid "" "allowed in tags; an empty value allows highlight on any tag" msgstr "" "vurgulamayı irc arabelleklerindeki bu künyelere sınırla (kullanıcı " -"iletilerinde vurgulama olup sunucu iletilerinde olmaması için); künyeler " -"bir virgülle ayrılmalıdır ve \"+\" künyeler arasında mantıksal bir \"and\" " +"iletilerinde vurgulama olup sunucu iletilerinde olmaması için); künyeler bir " +"virgülle ayrılmalıdır ve \"+\" künyeler arasında mantıksal bir \"and\" " "yapmak için kullanılabilir; künyelerde \"*\" jokerine izin verilir; boş bir " "değer herhangi bir künyede vurgulamaya izin verir" @@ -12701,17 +12707,17 @@ msgid "" "\"channel\" was not found), \"pos_text\": index of \"text\" message (\"-1\" " "if \"text\" was not found)" msgstr "" -"\"tags\": künyeler, \"tag_xxx\": künyenin kaçırılmamış değeri \"xxx\" " -"(künye başına bir anahtar), \"message_without_tags\": künyesiz ileti, " -"\"nick\": takma ad, \"user\": kullanıcı adı, \"host\": makine, \"command\": " -"komut, \"channel\": kanal, \"arguments\": argümanlar (kanalı içerir), " -"\"text\": metin (örneğin: kullanıcı iletisi), \"param1\" ... \"paramN\": " -"ayrıştırılmış komut parametreleri, \"num_params\": ayrıştırılmış komut " -"parametrelerinin sayısı, \"pos_command\": \"command\" iletisinin indeksi " -"(komut bulunamazsa \"-1\"), \"pos_arguments\": \"arguments\" iletisinin " -"indeksi (\"arguments\" bulunamazsa \"-1\"), \"pos_channel\": \"channel\" " -"iletisinin indeksi (\"channel\" bulunamazsa \"-1\"), \"pos_text\": \"text\" " -"iletisinin indeksi (\"text\" bulunamazsa \"-1\")" +"\"tags\": künyeler, \"tag_xxx\": künyenin kaçırılmamış değeri \"xxx\" (künye " +"başına bir anahtar), \"message_without_tags\": künyesiz ileti, \"nick\": " +"takma ad, \"user\": kullanıcı adı, \"host\": makine, \"command\": komut, " +"\"channel\": kanal, \"arguments\": argümanlar (kanalı içerir), \"text\": " +"metin (örneğin: kullanıcı iletisi), \"param1\" ... \"paramN\": ayrıştırılmış " +"komut parametreleri, \"num_params\": ayrıştırılmış komut parametrelerinin " +"sayısı, \"pos_command\": \"command\" iletisinin indeksi (komut bulunamazsa " +"\"-1\"), \"pos_arguments\": \"arguments\" iletisinin indeksi (\"arguments\" " +"bulunamazsa \"-1\"), \"pos_channel\": \"channel\" iletisinin indeksi " +"(\"channel\" bulunamazsa \"-1\"), \"pos_text\": \"text\" iletisinin indeksi " +"(\"text\" bulunamazsa \"-1\")" msgid "split an IRC message (to fit in 512 bytes by default)" msgstr "bir IRC iletisini böl (öntanımlı olarak 512 bayt'a sığması için)" @@ -14938,6 +14944,11 @@ msgstr "" msgid "%s%s: failed to execute route \"%s %s\" for client %s%s%s" msgstr "%s%s: \"%s\" komutu yürütülemedi, %s%s%s istemcisi için" +#, fuzzy, c-format +#| msgid "%s%s: invalid websocket handshake received for client %s%s%s" +msgid "%s%s: invalid data received from client %s%s%s" +msgstr "%s%s: %s%s%s istemcisi için geçersiz web soketi el sıkışması alındı" + #, fuzzy, c-format #| msgid "%s%s: unable to create socket" msgid "%sremote[%s]: unable to send data, disconnecting" diff --git a/po/weechat.pot b/po/weechat.pot index 842f9d9be..d5a84929c 100644 --- a/po/weechat.pot +++ b/po/weechat.pot @@ -23,7 +23,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2025-06-30 09:32+0200\n" +"POT-Creation-Date: 2025-08-16 19:26+0200\n" "PO-Revision-Date: 2014-08-16 10:27+0200\n" "Last-Translator: Sébastien Helleu \n" "Language-Team: weechat-dev \n" @@ -12259,6 +12259,10 @@ msgstr "" msgid "%s%s: failed to execute route \"%s %s\" for client %s%s%s" msgstr "" +#, c-format +msgid "%s%s: invalid data received from client %s%s%s" +msgstr "" + #, c-format msgid "%sremote[%s]: unable to send data, disconnecting" msgstr "" diff --git a/src/plugins/relay/api/relay-api-protocol.c b/src/plugins/relay/api/relay-api-protocol.c index 8ba53a478..106357882 100644 --- a/src/plugins/relay/api/relay-api-protocol.c +++ b/src/plugins/relay/api/relay-api-protocol.c @@ -1356,10 +1356,11 @@ relay_api_protocol_recv_http (struct t_relay_client *client) } resource_not_found: - if ((strcmp (client->http_req->method, "GET") != 0) - && (strcmp (client->http_req->method, "POST") != 0) - && (strcmp (client->http_req->method, "PUT") != 0) - && (strcmp (client->http_req->method, "DELETE") != 0)) + if (!client->http_req->method + || ((strcmp (client->http_req->method, "GET") != 0) + && (strcmp (client->http_req->method, "POST") != 0) + && (strcmp (client->http_req->method, "PUT") != 0) + && (strcmp (client->http_req->method, "DELETE") != 0))) { goto error_method_not_allowed; } @@ -1392,15 +1393,28 @@ error_memory: error: if (weechat_relay_plugin->debug >= 1) { - weechat_printf (NULL, - _("%s%s: failed to execute route \"%s %s\" " - "for client %s%s%s"), - weechat_prefix ("error"), - RELAY_PLUGIN_NAME, - client->http_req->method, - client->http_req->path, - RELAY_COLOR_CHAT_CLIENT, - client->desc, - RELAY_COLOR_CHAT); + if (client->http_req->method && client->http_req->path) + { + weechat_printf (NULL, + _("%s%s: failed to execute route \"%s %s\" " + "for client %s%s%s"), + weechat_prefix ("error"), + RELAY_PLUGIN_NAME, + client->http_req->method, + client->http_req->path, + RELAY_COLOR_CHAT_CLIENT, + client->desc, + RELAY_COLOR_CHAT); + } + else + { + weechat_printf (NULL, + _("%s%s: invalid data received from client %s%s%s"), + weechat_prefix ("error"), + RELAY_PLUGIN_NAME, + RELAY_COLOR_CHAT_CLIENT, + client->desc, + RELAY_COLOR_CHAT); + } } }