The <memory> headers is needed for unique_ptr even when SSL is not
enabled. This fixes the following build failure:
src/Utils.cpp: In static member function 'static bool CUtils::CheckCIDR(const CString&, const CString&)':
src/Utils.cpp:674:5: error: 'unique_ptr' is not a member of 'std'
std::unique_ptr<addrinfo, decltype(deleter)> aiHost(aiHostC, deleter);
^
Close#1554
Fix interaction between self-message and CTCP:
CTCP request from client A gets reflected from ZNC to client B, because
B has self-message. B sees this as a usual CTCP request (from the same
nick), and replies (to the same nick). ZNC reflects that response to A
because A has self-message, and also passes that response to IRC server,
which sends that response back to ZNC, which sends it to its both clients.
Close#1488
Deprecate old module hooks which accept mode as unsigned char.
SWIG handles unsigned char as int, but char as a string.
Before this commit, usage of HasPerm from perl modules required this:
either $chan->HasPerm(ord('@')) or $chan->HasPerm(ord($ZNC::CChan::Op)).
Now ord() is not necessary, and these calls work too:
$chan->HasPerm('@') and $chan->HasPerm($ZNC::CChan::Op).
Fix#1486
bits are being set in file mode rather than open flags. As a result file permissions get strange bits set.
```
build# ls -l /etc/opt/znc/znc.conf
-rwS------ 1 znc znc 1.62K Feb 9 14:47 /var/opt/ooce/znc/configs/znc.conf
build# stat -c %a /etc/opt/znc/znc.conf
4600
```
Setting AuthOnlyViaModule on a user causes CheckPass to never return true,
causing all authentication attempts using the configured password to fail, both
on IRC connections and for webadmin. This is useful in situations where an
external module (cyrusauth, certauth, imapauth) handles authentication. Setting
the global AuthOnlyViaModule option causes similar behavior across every
user. If AuthOnlyViaModule is set to true globally, it cannot be overridden
per-user.
Close#1474Close#331