Hello community,

here is the log from the commit of package znc for openSUSE:Factory checked in 
at 2019-06-19 20:59:07
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/znc (Old)
 and      /work/SRC/openSUSE:Factory/.znc.new.4811 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "znc"

Wed Jun 19 20:59:07 2019 rev:18 rq:705792 version:1.7.3

Changes:
--------
--- /work/SRC/openSUSE:Factory/znc/znc.changes  2019-03-26 22:33:33.697689288 
+0100
+++ /work/SRC/openSUSE:Factory/.znc.new.4811/znc.changes        2019-06-19 
20:59:09.846022134 +0200
@@ -1,0 +2,9 @@
+Tue May 28 07:01:09 UTC 2019 - Martin Pluskal <[email protected]>
+
+- Update to version 1.7.3:
+  * This is a security release to fix CVE-2019-9917.
+  * Docker only: the znc image now supports --user option of docker
+    run.
+- Drop no longer needed znc-CVE-2019-9917.patch
+
+-------------------------------------------------------------------

Old:
----
  znc-1.7.2.tar.gz
  znc-1.7.2.tar.gz.sig
  znc-CVE-2019-9917.patch

New:
----
  znc-1.7.3.tar.gz
  znc-1.7.3.tar.gz.sig

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ znc.spec ++++++
--- /var/tmp/diff_new_pack.POYdPf/_old  2019-06-19 20:59:10.358022592 +0200
+++ /var/tmp/diff_new_pack.POYdPf/_new  2019-06-19 20:59:10.362022596 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           znc
-Version:        1.7.2
+Version:        1.7.3
 Release:        0
 Summary:        Advanced IRC Bouncer
 License:        Apache-2.0
@@ -26,11 +26,10 @@
 Source0:        https://znc.in/releases/%{name}-%{version}.tar.gz
 Source1:        https://znc.in/releases/%{name}-%{version}.tar.gz.sig
 Source2:        %{name}.keyring
-# PATCH-FIX-UPSTREAM znc-CVE-2019-9917.patch boo#1130360
-Patch0:         znc-CVE-2019-9917.patch
 BuildRequires:  cmake >= 3.1
 BuildRequires:  fdupes
 BuildRequires:  gcc-c++
+BuildRequires:  libboost_locale-devel
 BuildRequires:  perl
 BuildRequires:  pkgconfig
 BuildRequires:  systemd-rpm-macros
@@ -44,11 +43,6 @@
 Requires(pre):  shadow
 Recommends:     %{name}-lang
 %systemd_requires
-%if 0%{?suse_version} > 1325
-BuildRequires:  libboost_locale-devel
-%else
-BuildRequires:  boost-devel
-%endif
 
 %description
 ZNC is an IRC bouncer with many features like detaching, multiple
@@ -112,7 +106,6 @@
 
 %prep
 %setup -q
-%patch0 -p1
 
 %build
 %cmake \

++++++ znc-1.7.2.tar.gz -> znc-1.7.3.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/znc-1.7.2/CMakeLists.txt new/znc-1.7.3/CMakeLists.txt
--- old/znc-1.7.2/CMakeLists.txt        2019-01-27 10:20:05.000000000 +0100
+++ new/znc-1.7.3/CMakeLists.txt        2019-03-30 15:37:00.000000000 +0100
@@ -15,8 +15,8 @@
 #
 
 cmake_minimum_required(VERSION 3.1)
-project(ZNC VERSION 1.7.2)
-set(ZNC_VERSION 1.7.2)
+project(ZNC VERSION 1.7.3)
+set(ZNC_VERSION 1.7.3)
 set(append_git_version false)
 set(alpha_version "") # e.g. "-rc1"
 set(VERSION_EXTRA "" CACHE STRING
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/znc-1.7.2/ChangeLog.md new/znc-1.7.3/ChangeLog.md
--- old/znc-1.7.2/ChangeLog.md  2019-01-27 10:20:05.000000000 +0100
+++ new/znc-1.7.3/ChangeLog.md  2019-03-30 15:37:00.000000000 +0100
@@ -1,3 +1,13 @@
+# ZNC 1.7.3 (2019-03-30)
+
+## Fixes
+This is a security release to fix CVE-2019-9917. Thanks to LunarBNC for the 
bugreport.
+
+## New
+Docker only: the znc image now supports --user option of docker run.
+
+
+
 # ZNC 1.7.2 (2019-01-19)
 
 ## New
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/znc-1.7.2/configure new/znc-1.7.3/configure
--- old/znc-1.7.2/configure     2019-01-27 10:20:29.000000000 +0100
+++ new/znc-1.7.3/configure     2019-03-30 15:37:24.000000000 +0100
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for znc 1.7.2.
+# Generated by GNU Autoconf 2.69 for znc 1.7.3.
 #
 #
 # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@@ -577,8 +577,8 @@
 # Identity of this package.
 PACKAGE_NAME='znc'
 PACKAGE_TARNAME='znc'
-PACKAGE_VERSION='1.7.2'
-PACKAGE_STRING='znc 1.7.2'
+PACKAGE_VERSION='1.7.3'
+PACKAGE_STRING='znc 1.7.3'
 PACKAGE_BUGREPORT=''
 PACKAGE_URL=''
 
@@ -1269,7 +1269,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures znc 1.7.2 to adapt to many kinds of systems.
+\`configure' configures znc 1.7.3 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1334,7 +1334,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of znc 1.7.2:";;
+     short | recursive ) echo "Configuration of znc 1.7.3:";;
    esac
   cat <<\_ACEOF
 
@@ -1475,7 +1475,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-znc configure 1.7.2
+znc configure 1.7.3
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1643,7 +1643,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by znc $as_me 1.7.2, which was
+It was created by znc $as_me 1.7.3, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -1991,7 +1991,7 @@
 ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 
-LIBZNC_VERSION=1.7.2
+LIBZNC_VERSION=1.7.3
 
 
 ac_ext=cpp
@@ -6290,7 +6290,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by znc $as_me 1.7.2, which was
+This file was extended by znc $as_me 1.7.3, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -6352,7 +6352,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; 
s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-znc config.status 1.7.2
+znc config.status 1.7.3
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
@@ -7081,7 +7081,7 @@
 fi
 
 echo
-echo ZNC 1.7.2 configured
+echo ZNC 1.7.3 configured
 echo
 echo "prefix:       $prefix"
 echo "debug:        $DEBUG"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/znc-1.7.2/configure.ac new/znc-1.7.3/configure.ac
--- old/znc-1.7.2/configure.ac  2019-01-27 10:20:05.000000000 +0100
+++ new/znc-1.7.3/configure.ac  2019-03-30 15:37:00.000000000 +0100
@@ -7,8 +7,8 @@
 dnl Needed for AC_PATH_PROGS_FEATURE_CHECK which was added in 2.62
 AC_PREREQ([2.62])
 dnl Keep the version number in sync with version.h!
-AC_INIT([znc], [1.7.2])
-LIBZNC_VERSION=1.7.2
+AC_INIT([znc], [1.7.3])
+LIBZNC_VERSION=1.7.3
 AC_CONFIG_MACRO_DIR([m4])
 AC_CONFIG_SRCDIR([src/znc.cpp])
 AC_LANG([C++])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/znc-1.7.2/include/znc/version.h 
new/znc-1.7.3/include/znc/version.h
--- old/znc-1.7.2/include/znc/version.h 2019-01-27 10:20:05.000000000 +0100
+++ new/znc-1.7.3/include/znc/version.h 2019-03-30 15:37:00.000000000 +0100
@@ -20,9 +20,9 @@
 // The following defines are for #if comparison (preprocessor only likes ints)
 #define VERSION_MAJOR 1
 #define VERSION_MINOR 7
-#define VERSION_PATCH 2
+#define VERSION_PATCH 3
 // This one is for display purpose and to check ABI compatibility of modules
-#define VERSION_STR "1.7.2"
+#define VERSION_STR "1.7.3"
 #endif
 
 // Don't use this one
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/znc-1.7.2/modules/controlpanel.cpp 
new/znc-1.7.3/modules/controlpanel.cpp
--- old/znc-1.7.2/modules/controlpanel.cpp      2019-01-27 10:20:05.000000000 
+0100
+++ new/znc-1.7.3/modules/controlpanel.cpp      2019-03-30 15:37:00.000000000 
+0100
@@ -495,7 +495,7 @@
 #ifdef HAVE_ICU
         else if (sVar == "clientencoding") {
             pUser->SetClientEncoding(sValue);
-            PutModule("ClientEncoding = " + sValue);
+            PutModule("ClientEncoding = " + pUser->GetClientEncoding());
         }
 #endif
         else
Binary files old/znc-1.7.2/modules/modperl/generated.tar.gz and 
new/znc-1.7.3/modules/modperl/generated.tar.gz differ
Binary files old/znc-1.7.2/modules/modpython/generated.tar.gz and 
new/znc-1.7.3/modules/modpython/generated.tar.gz differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/znc-1.7.2/src/IRCNetwork.cpp 
new/znc-1.7.3/src/IRCNetwork.cpp
--- old/znc-1.7.2/src/IRCNetwork.cpp    2019-01-27 10:20:05.000000000 +0100
+++ new/znc-1.7.3/src/IRCNetwork.cpp    2019-03-30 15:37:00.000000000 +0100
@@ -1482,9 +1482,9 @@
 }
 
 void CIRCNetwork::SetEncoding(const CString& s) {
-    m_sEncoding = s;
+    m_sEncoding = CZNC::Get().FixupEncoding(s);
     if (GetIRCSock()) {
-        GetIRCSock()->SetEncoding(s);
+        GetIRCSock()->SetEncoding(m_sEncoding);
     }
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/znc-1.7.2/src/User.cpp new/znc-1.7.3/src/User.cpp
--- old/znc-1.7.2/src/User.cpp  2019-01-27 10:20:05.000000000 +0100
+++ new/znc-1.7.3/src/User.cpp  2019-03-30 15:37:00.000000000 +0100
@@ -1253,9 +1253,9 @@
 void CUser::SetDenySetBindHost(bool b) { m_bDenySetBindHost = b; }
 void CUser::SetDefaultChanModes(const CString& s) { m_sDefaultChanModes = s; }
 void CUser::SetClientEncoding(const CString& s) {
-    m_sClientEncoding = s;
+    m_sClientEncoding = CZNC::Get().FixupEncoding(s);
     for (CClient* pClient : GetAllClients()) {
-        pClient->SetEncoding(s);
+        pClient->SetEncoding(m_sClientEncoding);
     }
 }
 void CUser::SetQuitMsg(const CString& s) { m_sQuitMsg = s; }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/znc-1.7.2/src/po/znc.pt_BR.po 
new/znc-1.7.3/src/po/znc.pt_BR.po
--- old/znc-1.7.2/src/po/znc.pt_BR.po   2019-01-27 10:20:05.000000000 +0100
+++ new/znc-1.7.3/src/po/znc.pt_BR.po   2019-03-30 15:37:00.000000000 +0100
@@ -77,7 +77,7 @@
 
 #: IRCNetwork.cpp:235
 msgid "Jumping servers because this server is no longer in the list"
-msgstr ""
+msgstr "Trocando de servidor, pois este servidor não está mais na lista"
 
 #: IRCNetwork.cpp:640 User.cpp:678
 msgid "Welcome to ZNC"
@@ -90,7 +90,7 @@
 
 #: IRCNetwork.cpp:758
 msgid "This network is being deleted or moved to another user."
-msgstr ""
+msgstr "Esta rede está sendo excluída ou movida para outro usuário."
 
 #: IRCNetwork.cpp:987
 msgid "The channel {1} could not be joined, disabling it."
@@ -98,11 +98,13 @@
 
 #: IRCNetwork.cpp:1116
 msgid "Your current server was removed, jumping..."
-msgstr ""
+msgstr "O seu servidor atual foi removido, trocando de servidor..."
 
 #: IRCNetwork.cpp:1279
 msgid "Cannot connect to {1}, because ZNC is not compiled with SSL support."
 msgstr ""
+"Não foi possível conectar-se a {1}. O ZNC não foi compilado com suporte a "
+"SSL."
 
 #: IRCNetwork.cpp:1300
 msgid "Some module aborted the connection attempt"
@@ -114,7 +116,7 @@
 
 #: IRCSock.cpp:692
 msgid "ZNC seems to be connected to itself, disconnecting..."
-msgstr ""
+msgstr "Parece que o ZNC está conectado a si mesmo. Desconectando..."
 
 #: IRCSock.cpp:739
 msgid "Server {1} redirects us to {2}:{3} with reason: {4}"
@@ -122,15 +124,15 @@
 
 #: IRCSock.cpp:743
 msgid "Perhaps you want to add it as a new server."
-msgstr ""
+msgstr "Talvez você queira adicioná-lo como um novo servidor."
 
 #: IRCSock.cpp:973
 msgid "Channel {1} is linked to another channel and was thus disabled."
-msgstr ""
+msgstr "O canal {1} foi desabilitado por estar vinculado a outro canal."
 
 #: IRCSock.cpp:985
 msgid "Switched to SSL (STARTTLS)"
-msgstr ""
+msgstr "Alternado para SSL (STARTTLS)"
 
 #: IRCSock.cpp:1038
 msgid "You quit: {1}"
@@ -151,10 +153,11 @@
 #: IRCSock.cpp:1308
 msgid "If you trust this certificate, do /znc AddTrustedServerFingerprint {1}"
 msgstr ""
+"Caso confie neste certificado, digite /znc AddTrustedServerFingerprint {1}"
 
 #: IRCSock.cpp:1325
 msgid "IRC connection timed out.  Reconnecting..."
-msgstr ""
+msgstr "A conexão ao servidor expirou. Reconectando..."
 
 #: IRCSock.cpp:1337
 msgid "Connection Refused.  Reconnecting..."
@@ -179,6 +182,8 @@
 #: Client.cpp:359
 msgid "A client from {1} attempted to login as you, but was rejected: {2}"
 msgstr ""
+"Um cliente com o IP {1} tentou iniciar sessão na sua conta, mas foi "
+"rejeitado: {2}"
 
 #: Client.cpp:394
 msgid "Network {1} doesn't exist."
@@ -205,6 +210,8 @@
 "If you want to choose another network, use /znc JumpNetwork <network>, or "
 "connect to ZNC with username {1}/<network> (instead of just {1})"
 msgstr ""
+"Caso queira escolher outra rede, digite /znc JumpNetwork <rede>, ou então "
+"conecte ao ZNC com o nome de usuário {1}/<rede> (em vez de somente {1})"
 
 #: Client.cpp:420
 msgid ""
@@ -253,8 +260,8 @@
 #: Client.cpp:1337 Client.cpp:1359 ClientCommand.cpp:129 ClientCommand.cpp:151
 msgid "There was {1} channel matching [{2}]"
 msgid_plural "There were {1} channels matching [{2}]"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "Foi encontrado {1} canal correspondente a [{2}]"
+msgstr[1] "Foi encontrado {1} canal correspondentes a [{2}]"
 
 #: Client.cpp:1340 ClientCommand.cpp:132
 msgid "Attached {1} channel"
@@ -264,7 +271,7 @@
 
 #: Client.cpp:1352
 msgid "Usage: /detach <#chans>"
-msgstr ""
+msgstr "Uso: /detach <#canais>"
 
 #: Client.cpp:1362 ClientCommand.cpp:154
 msgid "Detached {1} channel"
@@ -292,7 +299,7 @@
 
 #: Modules.cpp:573 ClientCommand.cpp:1894
 msgid "No matches for '{1}'"
-msgstr ""
+msgstr "Nenhuma correspondência para '{1}'"
 
 #: Modules.cpp:691
 msgid "This module doesn't implement any commands."
@@ -312,7 +319,7 @@
 
 #: Modules.cpp:1659
 msgid "Module {1} does not support module type {2}."
-msgstr ""
+msgstr "O módulo {1} não suporta o tipo de módulo {2}."
 
 #: Modules.cpp:1666
 msgid "Module {1} requires a user."
@@ -328,11 +335,11 @@
 
 #: Modules.cpp:1694
 msgid "Module {1} aborted: {2}"
-msgstr ""
+msgstr "Módulo {1} finalizado: {2}"
 
 #: Modules.cpp:1696
 msgid "Module {1} aborted."
-msgstr ""
+msgstr "Módulo {1} finalizado."
 
 #: Modules.cpp:1720 Modules.cpp:1762
 msgid "Module [{1}] not loaded."
@@ -340,11 +347,11 @@
 
 #: Modules.cpp:1744
 msgid "Module {1} unloaded."
-msgstr ""
+msgstr "Módulo {1} desligado."
 
 #: Modules.cpp:1749
 msgid "Unable to unload module {1}."
-msgstr ""
+msgstr "Não foi possível desativar o módulo {1}."
 
 #: Modules.cpp:1778
 msgid "Reloaded module {1}."
@@ -389,12 +396,12 @@
 #: Modules.cpp:2002 Modules.cpp:2008
 msgctxt "modhelpcmd"
 msgid "Command"
-msgstr ""
+msgstr "Comando"
 
 #: Modules.cpp:2003 Modules.cpp:2009
 msgctxt "modhelpcmd"
 msgid "Description"
-msgstr ""
+msgstr "Descrição"
 
 #: ClientCommand.cpp:51 ClientCommand.cpp:115 ClientCommand.cpp:137
 #: ClientCommand.cpp:749 ClientCommand.cpp:768 ClientCommand.cpp:794
@@ -403,7 +410,7 @@
 #: ClientCommand.cpp:1401 ClientCommand.cpp:1412 ClientCommand.cpp:1421
 #: ClientCommand.cpp:1433
 msgid "You must be connected with a network to use this command"
-msgstr ""
+msgstr "Você precisa estar conectado a uma rede para usar este comando"
 
 #: ClientCommand.cpp:58
 msgid "Usage: ListNicks <#chan>"
@@ -423,7 +430,7 @@
 
 #: ClientCommand.cpp:91 ClientCommand.cpp:106
 msgid "Nick"
-msgstr ""
+msgstr "Apelido"
 
 #: ClientCommand.cpp:92 ClientCommand.cpp:107
 msgid "Ident"
@@ -431,15 +438,15 @@
 
 #: ClientCommand.cpp:93 ClientCommand.cpp:108
 msgid "Host"
-msgstr ""
+msgstr "Host"
 
 #: ClientCommand.cpp:122
 msgid "Usage: Attach <#chans>"
-msgstr ""
+msgstr "Uso: Attach <#canais>"
 
 #: ClientCommand.cpp:144
 msgid "Usage: Detach <#chans>"
-msgstr ""
+msgstr "Uso: Detach <#canais>"
 
 #: ClientCommand.cpp:161
 msgid "There is no MOTD set."
@@ -455,7 +462,7 @@
 
 #: ClientCommand.cpp:173
 msgid "Wrote config to {1}"
-msgstr ""
+msgstr "Configuração salva em {1}"
 
 #: ClientCommand.cpp:175
 msgid "Error while trying to write config."
@@ -480,12 +487,12 @@
 #: ClientCommand.cpp:484 ClientCommand.cpp:500
 msgctxt "listchans"
 msgid "Name"
-msgstr ""
+msgstr "Nome"
 
 #: ClientCommand.cpp:485 ClientCommand.cpp:503
 msgctxt "listchans"
 msgid "Status"
-msgstr ""
+msgstr "Estado"
 
 #: ClientCommand.cpp:486 ClientCommand.cpp:510
 msgctxt "listchans"
@@ -505,12 +512,12 @@
 #: ClientCommand.cpp:489 ClientCommand.cpp:521
 msgctxt "listchans"
 msgid "Modes"
-msgstr ""
+msgstr "Modos"
 
 #: ClientCommand.cpp:490 ClientCommand.cpp:522
 msgctxt "listchans"
 msgid "Users"
-msgstr ""
+msgstr "Usuários"
 
 #: ClientCommand.cpp:505
 msgctxt "listchans"
@@ -520,12 +527,12 @@
 #: ClientCommand.cpp:506
 msgctxt "listchans"
 msgid "Joined"
-msgstr ""
+msgstr "Entrou"
 
 #: ClientCommand.cpp:507
 msgctxt "listchans"
 msgid "Disabled"
-msgstr ""
+msgstr "Desabilitado"
 
 #: ClientCommand.cpp:508
 msgctxt "listchans"
@@ -535,7 +542,7 @@
 #: ClientCommand.cpp:511 ClientCommand.cpp:519
 msgctxt "listchans"
 msgid "yes"
-msgstr ""
+msgstr "sim"
 
 #: ClientCommand.cpp:536
 msgid "Total: {1}, Joined: {2}, Detached: {3}, Disabled: {4}"
@@ -546,10 +553,13 @@
 "Network number limit reached. Ask an admin to increase the limit for you, or "
 "delete unneeded networks using /znc DelNetwork <name>"
 msgstr ""
+"O limite de redes foi atingido. Peça a um administrador para aumentar o seu "
+"limite de redes, ou então exclua redes desnecessárias usando o comando /znc "
+"DelNetwork <nome>"
 
 #: ClientCommand.cpp:550
 msgid "Usage: AddNetwork <name>"
-msgstr ""
+msgstr "Uso: AddNetwork <nome>"
 
 #: ClientCommand.cpp:554
 msgid "Network name should be alphanumeric"
@@ -571,11 +581,11 @@
 
 #: ClientCommand.cpp:582
 msgid "Network deleted"
-msgstr ""
+msgstr "A rede foi excluída"
 
 #: ClientCommand.cpp:585
 msgid "Failed to delete network, perhaps this network doesn't exist"
-msgstr ""
+msgstr "Falha ao excluir rede. Talvez esta rede não existe."
 
 #: ClientCommand.cpp:595
 msgid "User {1} not found"
@@ -584,7 +594,7 @@
 #: ClientCommand.cpp:603 ClientCommand.cpp:611
 msgctxt "listnetworks"
 msgid "Network"
-msgstr ""
+msgstr "Rede"
 
 #: ClientCommand.cpp:604 ClientCommand.cpp:613 ClientCommand.cpp:622
 msgctxt "listnetworks"
@@ -594,36 +604,36 @@
 #: ClientCommand.cpp:605 ClientCommand.cpp:615
 msgctxt "listnetworks"
 msgid "IRC Server"
-msgstr ""
+msgstr "Servidor IRC"
 
 #: ClientCommand.cpp:606 ClientCommand.cpp:617
 msgctxt "listnetworks"
 msgid "IRC User"
-msgstr ""
+msgstr "Usuário IRC"
 
 #: ClientCommand.cpp:607 ClientCommand.cpp:619
 msgctxt "listnetworks"
 msgid "Channels"
-msgstr ""
+msgstr "Canais"
 
 #: ClientCommand.cpp:614
 msgctxt "listnetworks"
 msgid "Yes"
-msgstr ""
+msgstr "Sim"
 
 #: ClientCommand.cpp:623
 msgctxt "listnetworks"
 msgid "No"
-msgstr ""
+msgstr "Não"
 
 #: ClientCommand.cpp:628
 msgctxt "listnetworks"
 msgid "No networks"
-msgstr ""
+msgstr "Não há redes disponíveis."
 
 #: ClientCommand.cpp:632 ClientCommand.cpp:932
 msgid "Access denied."
-msgstr ""
+msgstr "Acesso negado."
 
 #: ClientCommand.cpp:643
 msgid "Usage: MoveNetwork <old user> <old network> <new user> [new network]"
@@ -659,7 +669,7 @@
 
 #: ClientCommand.cpp:718
 msgid "Success."
-msgstr ""
+msgstr "Sucesso."
 
 #: ClientCommand.cpp:721
 msgid "Copied the network to new user, but failed to delete old network"
@@ -687,7 +697,7 @@
 
 #: ClientCommand.cpp:759
 msgid "Server added"
-msgstr ""
+msgstr "Servidor adicionado"
 
 #: ClientCommand.cpp:762
 msgid ""
@@ -714,27 +724,27 @@
 #: ClientCommand.cpp:802 ClientCommand.cpp:809
 msgctxt "listservers"
 msgid "Host"
-msgstr ""
+msgstr "Host"
 
 #: ClientCommand.cpp:803 ClientCommand.cpp:811
 msgctxt "listservers"
 msgid "Port"
-msgstr ""
+msgstr "Porta"
 
 #: ClientCommand.cpp:804 ClientCommand.cpp:814
 msgctxt "listservers"
 msgid "SSL"
-msgstr ""
+msgstr "SSL"
 
 #: ClientCommand.cpp:805 ClientCommand.cpp:816
 msgctxt "listservers"
 msgid "Password"
-msgstr ""
+msgstr "Senha"
 
 #: ClientCommand.cpp:815
 msgctxt "listservers|cell"
 msgid "SSL"
-msgstr ""
+msgstr "SSL"
 
 #: ClientCommand.cpp:832
 msgid "Usage: AddTrustedServerFingerprint <fi:ng:er>"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/znc-1.7.2/src/znc.cpp new/znc-1.7.3/src/znc.cpp
--- old/znc-1.7.2/src/znc.cpp   2019-01-27 10:20:05.000000000 +0100
+++ new/znc-1.7.3/src/znc.cpp   2019-03-30 15:37:00.000000000 +0100
@@ -2092,18 +2092,36 @@
     m_uiForceEncoding++;
 #ifdef HAVE_ICU
     for (Csock* pSock : GetManager()) {
-        if (pSock->GetEncoding().empty()) {
-            pSock->SetEncoding("UTF-8");
-        }
+        pSock->SetEncoding(FixupEncoding(pSock->GetEncoding()));
     }
 #endif
 }
 void CZNC::UnforceEncoding() { m_uiForceEncoding--; }
 bool CZNC::IsForcingEncoding() const { return m_uiForceEncoding; }
 CString CZNC::FixupEncoding(const CString& sEncoding) const {
-    if (sEncoding.empty() && m_uiForceEncoding) {
+    if (!m_uiForceEncoding) {
+        return sEncoding;
+    }
+    if (sEncoding.empty()) {
         return "UTF-8";
     }
+    const char* sRealEncoding = sEncoding.c_str();
+    if (sEncoding[0] == '*' || sEncoding[0] == '^') {
+        sRealEncoding++;
+    }
+    if (!*sRealEncoding) {
+        return "UTF-8";
+    }
+#ifdef HAVE_ICU
+    UErrorCode e = U_ZERO_ERROR;
+    UConverter* cnv = ucnv_open(sRealEncoding, &e);
+    if (cnv) {
+        ucnv_close(cnv);
+    }
+    if (U_FAILURE(e)) {
+        return "UTF-8";
+    }
+#endif
     return sEncoding;
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/znc-1.7.2/test/integration/tests/scripting.cpp 
new/znc-1.7.3/test/integration/tests/scripting.cpp
--- old/znc-1.7.2/test/integration/tests/scripting.cpp  2019-01-27 
10:20:05.000000000 +0100
+++ new/znc-1.7.3/test/integration/tests/scripting.cpp  2019-03-30 
15:37:00.000000000 +0100
@@ -55,6 +55,13 @@
     ircd.Write(":n!u@h PRIVMSG nick :Hi\xF0, github issue #1229");
     // "replacement character"
     client.ReadUntil("Hi\xEF\xBF\xBD, github issue");
+
+    // Non-existing encoding
+    client.Write("PRIVMSG *controlpanel :Set ClientEncoding $me Western");
+    client.Write("JOIN #a\342");
+    client.ReadUntil(
+        ":*[email protected] PRIVMSG nick :ClientEncoding = UTF-8");
+    ircd.ReadUntil("JOIN #a\xEF\xBF\xBD");
 }
 
 TEST_F(ZNCTest, ModpythonSocket) {



Reply via email to