Commit Graph

499 Commits

Author SHA1 Message Date
Alexey Sokolov 6e0591ff98 Remove unused field and getter
When account-tag was introduced, these fields were used, but since cap
3.2 this is no longer useful
2024-02-10 00:18:11 +00:00
Alexey Sokolov 2b3b224bca Make modperl support AddServerDependentCapability 2024-01-14 12:11:00 +00:00
Alexey Sokolov efd136c01c Make modpython work with server-dependent caps 2024-01-14 11:12:32 +00:00
Alexey Sokolov e2508d9716 Add comments 2024-01-14 00:58:37 +00:00
Alexey Sokolov b1009bd809 Code cleanup
Since now there are no server-dependent caps defined in the core
2024-01-14 00:27:21 +00:00
Alexey Sokolov f7ff0ee3f3 Modulefy core server-dependent caps 2024-01-13 23:34:03 +00:00
Alexey Sokolov 99e6869b28 Add CCapability 2024-01-13 21:22:42 +00:00
Alexey Sokolov b5a6ff528b The test is now working 2024-01-07 22:55:52 +00:00
Alexey Sokolov 1d3b33354f Merge branch 'master' into cap302 2024-01-06 20:36:24 +00:00
Alexey Sokolov 66137bd89a Progress 2024-01-05 00:45:41 +00:00
Falk Rund 17a004aa0b Welcome to 2024
[skip ci]
2023-12-31 21:09:25 +01:00
Alexey Sokolov 4cbccac707 Merge branch 'master' into cap302 2023-11-19 10:53:47 +00:00
Alexey Sokolov 52a9752ed0 Add comments to header 2023-11-19 10:52:14 +00:00
Alexey Sokolov 0a355636b2 Cleanup ZNC_LVREFQUAL 2023-11-18 15:07:46 +00:00
Alexey Sokolov 9835f76939 Use std::variant to save a bit of RAM 2023-11-18 13:39:18 +00:00
Alexey Sokolov a1a254bef1 Update password hashes from SHA-256 to Argon2id
These days salted SHA-256 is considered quite weak for passwords.

Transparently upgrade existing hashes upon login.

Bump cmake requirement to able to use IMPORTED_TARGET, this will allow
further cleanup in next commits.
2023-09-27 01:11:07 +01:00
Alexey Sokolov 50a3226b4f Don't duplicate the map of cap handlers per client
The idea here was that modules would dynamically add handlers to the
map, then it needs to be per client; but a simpler way to achieve this
will be in next commit
2023-03-04 10:01:56 +00:00
Alexey Sokolov 9eebb1ff04 Move CClient constructor body to .cpp 2023-03-04 09:32:57 +00:00
Alexey Sokolov c15fc63c55 Implement cap negotiation 3.2 on server side
Used for "server-dependent" caps which already rely on sending NEW and
DEL to client. This functionality is not yet available for caps added by
modules.
2023-01-09 01:08:04 +00:00
Alexey Sokolov d49168b93f Make it possible for modules to send values in CAP LS 2023-01-08 15:46:21 +00:00
Alexey Sokolov b57d794aaf Send multiline CAP LS response for IRCv3.2 clients 2023-01-08 15:32:27 +00:00
Falk Rund f9fd05c307 Welcome to 2023 2023-01-01 06:49:00 +01:00
Alexey Sokolov c55237be0b Make CUser::Put* send to all clients
Instead of only networkless clients, which is a very rare case, because
most clients are connected to some network. This resulted in
CModule::PutModule to sometimes have no effect.

I fixed CUser::PutStatus and PutStatusNotice back in 2011 in
0b6d609014, but missed these 3 functions.

Deprecate CUser::PutAllUser() which is now essentially alias to
CUser::PutUser().
2022-10-28 23:18:43 +01:00
Falk Rund 6402d241ac Welcome to 2022
The same procedure as last year, Miss Sophie?
Same procedure as every year, James.
2022-01-01 14:05:32 +01:00
Alexey Sokolov 7ab8446dcf Merge pull request #1814 from blendbyte/new-deny-options
New User Options: DenySetIdent, DenySetNetwork, DenySetRealName, DenySetQuitMsg, DenySetCTCPReplies

Close #1796
2021-11-27 14:18:39 +00:00
Alexey Sokolov dcb5f3df82 Fix build with libressl
It got another feature of openssl implemented, which broke this
2021-11-14 00:45:01 +00:00
Bradley Shaw fe475e1ef0 Add more deny options
DenySetIdent - Denies setting ident

DenySetNetwork - Denies adding/removing networks/servers

DenySetRealName - Denies setting realname

DenySetQuitMsg - Denies setting quitmsg

DenySetCTCPReplies - Denies adding/removing CTCP replies
2021-07-03 17:16:42 +01:00
Alexey Sokolov fd71a69fab Rewrite message parsing using string_view
It's a bit too early yet to require C++17 so the implementation from
BackportCpp (string_view-standalone) is used instead.

Fixes https://crbug.com/oss-fuzz/34413 - slow message parsing on huge
messages. In real word, messages can't be that big, because CSocket
enforces a line length limit.

This can be considered a regression of 1.7.0, because before it, instead
of gathering params into a vector, code was searching 1st word in the
string, then 2nd word, then 3rd word, starting from beginning each time.
It was not very efficient, but the number of passes over the string was
limited.
2021-05-22 09:57:04 +01:00
MAGIC 99687b0f24 Welcome to 2021 2021-01-01 19:37:07 +01:00
njhanley 99b33eade9 Add MoveChan and SwapChans commands 2020-09-29 19:32:45 -04:00
njhanley 926d140a47 Respect order of subconfigs in znc.conf 2020-09-03 00:27:15 -04:00
NuclearW c79961c514 Add support for cap account-tag
The account-tag capability is now requested when ZNC connects to an IRC server, the same is then offered to clients connecting.
This permits the tag to then pass through to account-tag aware clients.
2020-08-02 23:26:17 -04:00
Alexey Sokolov dd42fcd209 Remove autoconf, leave only CMake 2020-05-01 23:44:19 +01:00
Alexey Sokolov ff7758b573 Increase version number to 1.9.x 2020-05-01 22:20:07 +01:00
Alexey Sokolov 54053c0676 Return version number to git: 1.8.x 2020-05-01 22:18:38 +01:00
Alexey Sokolov 6295fffee5 ZNC 1.8.0-alpha1 2020-03-29 15:23:47 +01:00
Alexey Sokolov f3d7922499 Update copyright in files which were missing in the previous update 2020-01-05 11:37:51 +00:00
MAGIC 9081aa971d Welcome to 2020 2020-01-02 00:36:05 +01:00
Alexey Sokolov c0e71184be Backport SSL changes from asio branch (#1639).
This shouldn't change any behavior.
2019-12-29 13:03:52 +00:00
Aspen (linudaemon) 95369455fc Rework MODE/RPL_CHANMODEIS handling for trailing args (#1661)
Some servers may send a colon even if the last parameter doesn't need it, currently this leads to issues with permission/mode tracking, as the core doesn't handle the colon properly.

This fix replaces reconstructing the parameter string with just passing a vector of the relevant parameters to CChan::SetModes() and adds overrides for CChan::SetModes() and CChan::ModeChange() that accept the vector instead.

Clean up uses of old CModeMessage::GetModes()
2019-08-08 21:54:49 +01:00
Alexey Sokolov 2c951bcac1 Merge branch 'master' of github.com:znc/znc 2019-06-15 02:28:30 +01:00
Alexey Sokolov ac66d48430 Merge branch '1.7.x' 2019-06-15 02:02:42 +01:00
Alexey Sokolov 8de9e376ce Fix remote code execution and privilege escalation vulnerability.
To trigger this, need to have a user already.

Thanks for Jeriko One <jeriko.one@gmx.us> for finding and reporting this.

CVE-2019-12816
2019-06-15 02:00:42 +01:00
girst 3988cfef98 ListStyle (compact) replacement for two-column tables
by calling CTable::SetStyle(CTable::ListStyle) one can switch from the
bulky and unreadable-on-narrow-devices-or-nonmonospaced-fonts tables to
a more compact list style of output. The first "column" will be bolded
for better visibility and seperated with a colon from the second.

This is currently designed to replace two column tables only.
2019-05-19 14:03:41 +02:00
Alexey Sokolov 9966bea961 Return version back to 1.7.x 2019-03-30 14:41:01 +00:00
Alexey Sokolov 6b03fac6c1 ZNC 1.7.3-rc1 2019-03-22 00:31:10 +00:00
Alexey Sokolov 855ab8c55d Revert version number to 1.7.x 2019-01-27 09:37:10 +00:00
Alexey Sokolov 2ed4d1b664 ZNC 1.7.2-rc1 2019-01-12 09:08:16 +00:00
Alexey Sokolov 0ab205ccfa Merge pull request #1628 from dgw/welcome-to-2019
Welcome to 2019
2019-01-08 22:50:58 +00:00
dgw 8d5427cf9b Welcome to 2019
What are we going to do today, Brain?

The same thing we do every year, Pinky: Update all the copyright
headers!

[Skip CI]
2019-01-01 17:05:05 -06:00