]> jfr.im git - irc/freenode/solanum.git/log
irc/freenode/solanum.git
3 years agoMake show_ip not care about remoteness (#139) main origin/HEAD origin/main
Ed Kellett [Fri, 9 Apr 2021 20:01:11 +0000 (21:01 +0100)] 
Make show_ip not care about remoteness (#139)

3 years agoA missing colon to RPL_MAP recently split (#131)
Eric Mertens [Wed, 17 Mar 2021 00:51:42 +0000 (17:51 -0700)] 
A missing colon to RPL_MAP recently split (#131)

3 years agoprivilegeset_add_privs: append rather than replace
Ed Kellett [Sun, 28 Feb 2021 11:41:08 +0000 (11:41 +0000)] 
privilegeset_add_privs: append rather than replace

3 years agoMake privilegeset_privs more const
Ed Kellett [Sun, 14 Feb 2021 00:31:43 +0000 (00:31 +0000)] 
Make privilegeset_privs more const

3 years agoprivilegeset_diff: return things in a struct
Ed Kellett [Sun, 14 Feb 2021 00:28:22 +0000 (00:28 +0000)] 
privilegeset_diff: return things in a struct

3 years agoprivilege: factor out a null check
Ed Kellett [Fri, 29 Jan 2021 13:13:53 +0000 (13:13 +0000)] 
privilege: factor out a null check

3 years agoUse bsearch to check privset membership
Ed Kellett [Fri, 29 Jan 2021 12:54:37 +0000 (12:54 +0000)] 
Use bsearch to check privset membership

I don't really care if it's faster, I just prefer it

3 years agoAdd tests for privsets
Ed Kellett [Fri, 29 Jan 2021 11:55:06 +0000 (11:55 +0000)] 
Add tests for privsets

3 years agoTrack and inform modules of privset changes
Ed Kellett [Fri, 29 Jan 2021 11:54:12 +0000 (11:54 +0000)] 
Track and inform modules of privset changes

3 years agodoc/reference.conf: add an example TLSv1.3 ciphersuite name
Aaron Jones [Mon, 1 Feb 2021 15:51:59 +0000 (15:51 +0000)] 
doc/reference.conf: add an example TLSv1.3 ciphersuite name

[ci skip]

3 years agoOpenSSL: Support configuration of TLSv1.3 ciphersuites
Aaron Jones [Mon, 1 Feb 2021 08:35:44 +0000 (08:35 +0000)] 
OpenSSL: Support configuration of TLSv1.3 ciphersuites

The OpenSSL developers decided, during the OpenSSL 1.1.1 development
phase, to use a different API and different set of lists for TLSv1.3
ciphersuites, than for every TLS version preceeding it.

This is stupid, but we have to work with it.

This commit also improves configuration fault resilience. The reason
is that if you don't pass any valid old-style ciphersuites, OpenSSL
will not negotiate an older protocol at all. However, when they
implemented the new API, they decided that lack of any valid
ciphersuites should result in using the defaults. This means that if
you pass a completely invalid ciphersuite list (like "foo"), OR if
you pass a TLSv1.2-only ciphersuite list, TLSv1.3 continues to work.
This is not mirrored; passing a TLSv1.3-only ciphersuite list will
break TLSv1.2 and below.

Therefore we work around this lack of mirroring by falling back to
the default list for each protocol. This means that if
ssl_cipher_list is complete garbage, the default will be used, and
TLS setup will succeed for both protocols. This is logged, so that
administrators can fix their configuration.

I prefer this approach over explicitly disabling the protocols if
their respective ciphersuite lists are invalid, because it will
result in unusable TLSv1.3 if people run newer solanum with their
older charybdis/solanum configuration files that contain custom
ssl_cipher_list definitions. Hindering TLSv1.3 adoption is not an
option, in my opinion.

The downside of this is that it is no longer possible to disable a
protocol family by not including any of its ciphersuites. This could
be remedied by an ssl_protocol_list configuration directive if it is
decided that this functionality is ultimately necessary.

This work is not required for either of the other TLS backends,
because neither of those libraries yet support TLSv1.3, and in the
event that they eventually do, I expect them to allow configuration
of newer ciphersuites with the existing APIs. This can be revisited
if it turns out not to be the case.

Signed-off-by: Aaron Jones <redacted>
Tested-by: Aaron Jones <redacted>
3 years agodoc: Change missed chadybdis name to solanum (#111)
Taavi Väänänen [Thu, 28 Jan 2021 14:14:40 +0000 (16:14 +0200)] 
doc: Change missed chadybdis name to solanum (#111)

Looks like this was missed in a6f63a8.

3 years agowallops: require new oper:wallops right (#110)
Taavi Väänänen [Thu, 28 Jan 2021 14:09:31 +0000 (16:09 +0200)] 
wallops: require new oper:wallops right (#110)

Split oper:wallops right from oper:mass_notice. Update documentation and
examples to grant oper:wallops everywhere oper:mass_notice was granted.

closes #103

3 years agochmode: centralise + test mode limits (#94)
Ed Kellett [Tue, 26 Jan 2021 11:22:39 +0000 (11:22 +0000)] 
chmode: centralise + test mode limits (#94)

3 years agowsproc: call rb_clear_cloexec on child fds
Doug Freed [Sun, 13 Dec 2020 08:42:03 +0000 (08:42 +0000)] 
wsproc: call rb_clear_cloexec on child fds

3 years agosslproc: call rb_clear_cloexec on child fds
Doug Freed [Sun, 13 Dec 2020 08:41:46 +0000 (08:41 +0000)] 
sslproc: call rb_clear_cloexec on child fds

3 years agolibrb/helper: call rb_clear_cloexec on child fds
Doug Freed [Sun, 13 Dec 2020 08:41:13 +0000 (08:41 +0000)] 
librb/helper: call rb_clear_cloexec on child fds

3 years agolibrb: call rb_set_cloexec in rb_setup_fd
Doug Freed [Sun, 13 Dec 2020 08:39:29 +0000 (08:39 +0000)] 
librb: call rb_set_cloexec in rb_setup_fd

3 years agolibrb: add rb_{set,clear}_cloexec
Doug Freed [Sun, 13 Dec 2020 08:38:25 +0000 (08:38 +0000)] 
librb: add rb_{set,clear}_cloexec

3 years agoCI: test on gcc-10 too
Doug Freed [Thu, 17 Dec 2020 17:02:36 +0000 (17:02 +0000)] 
CI: test on gcc-10 too

3 years ago/accept list should track nick changes when you share channels (#96)
jess [Mon, 25 Jan 2021 05:00:34 +0000 (05:00 +0000)] 
/accept list should track nick changes when you share channels (#96)

* move has_common_channel to s_user.c

* don't remove clients from /accept on NICK when there's a common channel

Co-authored-by: Ed Kellett <redacted>
3 years agoAdd +R channel mode module requiring services account to chat (#102)
Eric Mertens [Sun, 24 Jan 2021 13:13:03 +0000 (05:13 -0800)] 
Add +R channel mode module requiring services account to chat (#102)

* Add +R channel mode module requiring services account to chat

* Use void* in hook argument

* move chm_regmsg from modules to extensions

* generate error message when module fails to load

3 years agoREADME: update build statusbadge to use GH Actions
Doug Freed [Sat, 12 Dec 2020 09:09:11 +0000 (09:09 +0000)] 
README: update build statusbadge to use GH Actions

3 years agoKill appveyor too
Doug Freed [Sat, 12 Dec 2020 09:03:22 +0000 (09:03 +0000)] 
Kill appveyor too

[ci skip]

3 years agoOper-guide workflow for Github Actions
Doug Freed [Sat, 12 Dec 2020 08:39:26 +0000 (03:39 -0500)] 
Oper-guide workflow for Github Actions

3 years agoKill Travis
Doug Freed [Sat, 12 Dec 2020 08:34:12 +0000 (03:34 -0500)] 
Kill Travis

3 years agoStart CI configuration for Github Actions
Doug Freed [Sat, 12 Dec 2020 08:33:09 +0000 (03:33 -0500)] 
Start CI configuration for Github Actions

3 years agochmode: end the grace period more intelligently (#84)
Ed Kellett [Mon, 30 Nov 2020 09:24:32 +0000 (09:24 +0000)] 
chmode: end the grace period more intelligently (#84)

We were ending the flood grace period for any channel mode command other
than `MODE #foo [bq]` by means of a hardcoded check. I've moved that to
after we parse the mode string, so we can correctly identify all
requests to change modes and end the grace period on exactly those.

It would have been entirely possible to move the check even further down
and flood_endgrace on only mode commands that *actually* change modes,
but I don't like the idea of making it sensitive to external conditions.

3 years agosend: fix infinite recursion in _send_linebuf
Doug Freed [Sun, 29 Nov 2020 01:03:29 +0000 (20:03 -0500)] 
send: fix infinite recursion in _send_linebuf

A netwide snote eventually calls into this function again with the same
server as has already been determined is over its sendq.  Mark the link
dead before sending the snote to avoid infinite recursion.

3 years agobandb: remove embedded sqlite
Doug Freed [Mon, 23 Nov 2020 03:12:36 +0000 (03:12 +0000)] 
bandb: remove embedded sqlite

3 years agofix broken atheme link in README.md
jesopo [Mon, 23 Nov 2020 15:12:14 +0000 (15:12 +0000)] 
fix broken atheme link in README.md

3 years agoextensions: remove m_roleplay
Doug Freed [Sun, 22 Nov 2020 22:24:27 +0000 (22:24 +0000)] 
extensions: remove m_roleplay

3 years agom_challenge: various fixes
Doug Freed [Thu, 19 Nov 2020 19:19:14 +0000 (14:19 -0500)] 
m_challenge: various fixes

3 years agoadd ConfigFileEntry.oper_secure_only, to require TLS to oper up (#76)
jess [Wed, 18 Nov 2020 14:29:08 +0000 (14:29 +0000)] 
add ConfigFileEntry.oper_secure_only, to require TLS to oper up (#76)

3 years agoGet rid of hub_mask/leaf_mask
Ed Kellett [Sat, 14 Nov 2020 18:00:20 +0000 (18:00 +0000)] 
Get rid of hub_mask/leaf_mask

3 years agoUse opernames not servernames for remote opers
Ed Kellett [Fri, 13 Nov 2020 22:47:09 +0000 (22:47 +0000)] 
Use opernames not servernames for remote opers

3 years agos_serv: refactor burst_modes_TS6 to use multiline
Doug Freed [Sun, 8 Nov 2020 18:33:45 +0000 (18:33 +0000)] 
s_serv: refactor burst_modes_TS6 to use multiline

3 years agom_findforwards: refactor to use multiline
Doug Freed [Sun, 8 Nov 2020 17:28:29 +0000 (17:28 +0000)] 
m_findforwards: refactor to use multiline

Fixes #57

3 years agom_monitor: refactor to use multiline
Doug Freed [Sun, 8 Nov 2020 16:17:52 +0000 (16:17 +0000)] 
m_monitor: refactor to use multiline

3 years agom_privs: refactor to use multiline
Doug Freed [Sun, 8 Nov 2020 01:44:10 +0000 (01:44 +0000)] 
m_privs: refactor to use multiline

3 years agom_whois: refactor channel list to use multiline
Doug Freed [Sun, 8 Nov 2020 00:39:11 +0000 (00:39 +0000)] 
m_whois: refactor channel list to use multiline

3 years agonames: refactor to use multiline
Doug Freed [Fri, 6 Nov 2020 23:44:57 +0000 (23:44 +0000)] 
names: refactor to use multiline

3 years agom_cap: refactor clicap_generate to use multiline
Doug Freed [Fri, 6 Nov 2020 22:30:45 +0000 (22:30 +0000)] 
m_cap: refactor clicap_generate to use multiline

3 years agoAdd some tests for multiline
Ed Kellett [Mon, 9 Nov 2020 00:16:52 +0000 (00:16 +0000)] 
Add some tests for multiline

3 years agosend: add sendto_one_multiline_* API
Doug Freed [Fri, 6 Nov 2020 19:03:59 +0000 (19:03 +0000)] 
send: add sendto_one_multiline_* API

Allows simplifying multiline wrapping for multiple usages, like CAP
LS/LIST, NAMES, and WHOIS channel listing

3 years agoiter lists backwards when sending BMASK
jesopo [Thu, 12 Nov 2020 21:10:08 +0000 (21:10 +0000)] 
iter lists backwards when sending BMASK

3 years agoUpdate .gitignore for 25d169b649 (#69)
Ed Kellett [Wed, 11 Nov 2020 22:14:12 +0000 (22:14 +0000)] 
Update .gitignore for 25d169b649 (#69)

3 years agoRemove *.la from install/lib
Ed Kellett [Mon, 9 Nov 2020 21:53:53 +0000 (21:53 +0000)] 
Remove *.la from install/lib

Co-authored-by: Unit 193 <redacted>
3 years agoDon't reassign logdir
Ed Kellett [Mon, 9 Nov 2020 21:53:44 +0000 (21:53 +0000)] 
Don't reassign logdir

Co-authored-by: Unit 193 <redacted>
3 years agotests: clean *.db, *.log
Ed Kellett [Mon, 9 Nov 2020 21:17:00 +0000 (21:17 +0000)] 
tests: clean *.db, *.log

Co-authored-by: Unit 193 <redacted>
3 years agohelp: cleanup indexes properly
Ed Kellett [Mon, 9 Nov 2020 21:16:45 +0000 (21:16 +0000)] 
help: cleanup indexes properly

Co-authored-by: Unit 193 <redacted>
3 years agoreadme: add building instructions
Ed Kellett [Mon, 9 Nov 2020 21:08:56 +0000 (21:08 +0000)] 
readme: add building instructions

3 years agoForget the old drain reason when rehashing
Ed Kellett [Mon, 9 Nov 2020 18:29:54 +0000 (18:29 +0000)] 
Forget the old drain reason when rehashing

3 years agom_info: Add some missing things
Ed Kellett [Mon, 9 Nov 2020 14:50:08 +0000 (14:50 +0000)] 
m_info: Add some missing things

3 years agoAutogenerate tests/runtime/modules
Ed Kellett [Sun, 8 Nov 2020 20:37:24 +0000 (20:37 +0000)] 
Autogenerate tests/runtime/modules

3 years agotests: autogenerate TESTS
Ed Kellett [Sun, 8 Nov 2020 14:30:36 +0000 (14:30 +0000)] 
tests: autogenerate TESTS

3 years agotests: cleanup .gitignore
Ed Kellett [Sun, 8 Nov 2020 14:29:30 +0000 (14:29 +0000)] 
tests: cleanup .gitignore

3 years agotests: implicitly link *_util.c into every test
Ed Kellett [Sat, 7 Nov 2020 23:48:04 +0000 (23:48 +0000)] 
tests: implicitly link *_util.c into every test

3 years agoRename bantool to solanum-bantool (#64)
Eric Mertens [Mon, 9 Nov 2020 02:51:27 +0000 (18:51 -0800)] 
Rename bantool to solanum-bantool (#64)

Rename bantool to solanum-bantool

3 years agom_info: string constness
Ed Kellett [Mon, 9 Nov 2020 00:55:26 +0000 (00:55 +0000)] 
m_info: string constness

3 years agom_info: remove repetition
Ed Kellett [Sun, 8 Nov 2020 21:15:20 +0000 (21:15 +0000)] 
m_info: remove repetition

3 years agom_info: be type-safe, somewhat enforced by macros
Ed Kellett [Sun, 8 Nov 2020 21:09:15 +0000 (21:09 +0000)] 
m_info: be type-safe, somewhat enforced by macros

3 years agoRemove some unnecessary commenty things
Ed Kellett [Sun, 8 Nov 2020 19:11:54 +0000 (19:11 +0000)] 
Remove some unnecessary commenty things

3 years agoAdd /stats s to list secure blocks
Ed Kellett [Sun, 8 Nov 2020 23:29:56 +0000 (23:29 +0000)] 
Add /stats s to list secure blocks

`s` and `S` were both used for ssld stats, but only `S` was documented,
so I'm taking `s`. You can't stop me!

3 years agoDocument general::stats_l_oper_only
Ed Kellett [Sun, 8 Nov 2020 17:40:01 +0000 (17:40 +0000)] 
Document general::stats_l_oper_only

3 years agoAdd general::stats_l_oper_only
Ed Kellett [Sun, 8 Nov 2020 17:37:52 +0000 (17:37 +0000)] 
Add general::stats_l_oper_only

3 years agomake more snotes L_NETWIDE
jess [Sun, 8 Nov 2020 19:30:41 +0000 (19:30 +0000)] 
make more snotes L_NETWIDE

3 years agoStop using chm_nosuch as a sentinel value (#53)
Eric Mertens [Sun, 8 Nov 2020 17:50:17 +0000 (09:50 -0800)] 
Stop using chm_nosuch as a sentinel value (#53)

Remove chmode compat modules

This removes the need for chm_nosuch as well. Unknown mode detection happens in mode parsing now.

3 years agoDocument general::hidden_caps
Ed Kellett [Sun, 8 Nov 2020 03:52:18 +0000 (03:52 +0000)] 
Document general::hidden_caps

3 years agoAdd general::hidden_caps
Ed Kellett [Sun, 8 Nov 2020 00:25:54 +0000 (00:25 +0000)] 
Add general::hidden_caps

3 years agoResolve shfit/reduce conflict in timespec production (#54)
Eric Mertens [Sun, 8 Nov 2020 03:54:25 +0000 (19:54 -0800)] 
Resolve shfit/reduce conflict in timespec production (#54)

Resolve shfit/reduce conflict in timespec production (no operational change)

3 years agoClean up duplication in ChannelModeFunc prototypes (#52)
Eric Mertens [Sun, 8 Nov 2020 00:45:12 +0000 (16:45 -0800)] 
Clean up duplication in ChannelModeFunc prototypes (#52)

3 years agoTest chmode parsing
Ed Kellett [Fri, 6 Nov 2020 14:16:23 +0000 (14:16 +0000)] 
Test chmode parsing

3 years agochmode: Generate a canonical mode string
Ed Kellett [Fri, 6 Nov 2020 14:00:06 +0000 (14:00 +0000)] 
chmode: Generate a canonical mode string

Primarily because I want to use it in tests, but it also means people
reading override snotes don't have as much mental overhead. I hope.

3 years agochmode: Get elevated access for op-only queries
Ed Kellett [Thu, 5 Nov 2020 22:19:00 +0000 (22:19 +0000)] 
chmode: Get elevated access for op-only queries

3 years agoRework channel mode handling
Ed Kellett [Thu, 5 Nov 2020 16:31:57 +0000 (16:31 +0000)] 
Rework channel mode handling

Incoming MODE processing is split into a parsing step and an execution
step, instead of a mode's effector function being involved in its own
parsing. Modes can no longer use custom logic to control their parsing,
and instead supply a combination of CHM_* flags to the parser. As a
result, we know before we try to effect any mode changes what all of
them will be.

The reauthorize hack for override is no longer necessary. A side effect
of its introduction was that `MODE #foo b x!y@z` no longer worked; in
removing it we restore that behaviour.

We gain the ability to reject various invalid inputs that:
- mutate or query unknown modes
- supply excess mode arguments
- query modes that can't be queried

In each case, whether we *should* reject it is an open question; for now
I'm rejecting the first one.

3 years agochmode: Make mode table manageable
Ed Kellett [Mon, 2 Nov 2020 23:07:31 +0000 (23:07 +0000)] 
chmode: Make mode table manageable

3 years agom_cap: simplify cap_req, remove multiline
Doug Freed [Fri, 6 Nov 2020 22:57:40 +0000 (22:57 +0000)] 
m_cap: simplify cap_req, remove multiline

Spec doesn't really allow multiline here, so don't use it

3 years agoDocument s2s ECHO
Ed Kellett [Fri, 6 Nov 2020 17:48:15 +0000 (17:48 +0000)] 
Document s2s ECHO

3 years agom_message: Initiate message echo on target server
Ed Kellett [Fri, 6 Nov 2020 17:41:02 +0000 (17:41 +0000)] 
m_message: Initiate message echo on target server

3 years agoRemove sno_whois mention in example configuration (#48)
Eric Mertens [Fri, 6 Nov 2020 17:04:14 +0000 (09:04 -0800)] 
Remove sno_whois mention in example configuration (#48)

3 years agoUpdate news
Ed Kellett [Wed, 4 Nov 2020 11:16:03 +0000 (11:16 +0000)] 
Update news

3 years agom_webirc: Blow away ident if we've got it
Ed Kellett [Sun, 25 Oct 2020 19:40:03 +0000 (19:40 +0000)] 
m_webirc: Blow away ident if we've got it

Previously, anyone on the WEBIRC gateway would get its ident if it
advertised one, which seems wrong to me.

This allows ident to be used with WEBIRC while still letting users send
their own ~username in band.

3 years agoExplanatory comment for LFLAGS_FAKE
Ed Kellett [Sun, 1 Nov 2020 04:09:41 +0000 (04:09 +0000)] 
Explanatory comment for LFLAGS_FAKE

3 years agoMark fake test clients, don't assert they're real
Ed Kellett [Sat, 31 Oct 2020 15:15:25 +0000 (15:15 +0000)] 
Mark fake test clients, don't assert they're real

3 years agotravis: Enable assertions correctly
Ed Kellett [Sat, 31 Oct 2020 15:14:59 +0000 (15:14 +0000)] 
travis: Enable assertions correctly

3 years agoMultiply out handle_remote_unresv
Ed Kellett [Sun, 1 Nov 2020 04:05:18 +0000 (04:05 +0000)] 
Multiply out handle_remote_unresv

3 years agoRemove shared blocks
Ed Kellett [Sat, 31 Oct 2020 15:03:46 +0000 (15:03 +0000)] 
Remove shared blocks

3 years agoRemove hardcoded TLSv1 disables
Ed Kellett [Sun, 1 Nov 2020 00:03:17 +0000 (00:03 +0000)] 
Remove hardcoded TLSv1 disables

3 years agoAdd a comment explaining match_arrange_stars
Ed Kellett [Sat, 31 Oct 2020 16:21:48 +0000 (16:21 +0000)] 
Add a comment explaining match_arrange_stars

3 years agomatch: assert mask_match mask is not too long
Ed Kellett [Fri, 30 Oct 2020 10:44:03 +0000 (10:44 +0000)] 
match: assert mask_match mask is not too long

3 years agoFix a corner case of superset matching
Ed Kellett [Fri, 30 Oct 2020 01:06:07 +0000 (01:06 +0000)] 
Fix a corner case of superset matching

The algorithm we're using gets stuck if it has a ? and can only see a *
to feed to it, even if it could skip over that * and consume a character
following it. Remedy this by rearranging the input so * always precedes
? in runs of wildcards, so when we're matching ? we know we can skip
things.

3 years agoUpdate gitignore
Ed Kellett [Fri, 30 Oct 2020 20:46:08 +0000 (20:46 +0000)] 
Update gitignore

(shhhh)

3 years agoAdd (some failing) tests for mask matching
Ed Kellett [Fri, 30 Oct 2020 00:55:21 +0000 (00:55 +0000)] 
Add (some failing) tests for mask matching

3 years agoRefactor clear_out_address_conf*
Ed Kellett [Thu, 29 Oct 2020 16:59:37 +0000 (16:59 +0000)] 
Refactor clear_out_address_conf*

3 years agoRename UMODE_SSLCLIENT, IsSSLClient
Ed Kellett [Wed, 28 Oct 2020 21:55:26 +0000 (21:55 +0000)] 
Rename UMODE_SSLCLIENT, IsSSLClient

3 years agoDocument secure blocks
Ed Kellett [Wed, 28 Oct 2020 20:58:10 +0000 (20:58 +0000)] 
Document secure blocks

3 years agoAdd secure{} blocks
Ed Kellett [Wed, 28 Oct 2020 20:55:35 +0000 (20:55 +0000)] 
Add secure{} blocks

3 years agoReplace IsInsecure with IsSecure
Ed Kellett [Wed, 28 Oct 2020 15:28:51 +0000 (15:28 +0000)] 
Replace IsInsecure with IsSecure

3 years agoauthproc: Don't try to notice dead clients
Ed Kellett [Wed, 28 Oct 2020 20:59:43 +0000 (20:59 +0000)] 
authproc: Don't try to notice dead clients