Stephen Bennett
6b8db2daf2
Allow the final parameter of MLOCK to be empty, to remove an existing mlock
2010-05-02 20:42:46 +01:00
Stephen Bennett
78e6b731e4
Rework ircd-side MLOCK enforcement: instead of trying to track modes locked on or off, instead keep a simple list of mode letters that are locked, and reject any change to those modes.
2010-04-30 22:01:21 +01:00
Jilles Tjoelker
0a01ecfa85
Fix crash if identify_service/identify_command were not specified in ircd.conf.
2010-04-18 13:54:03 +02:00
JD Horelick
944b0584ea
Change config option for ident_timeout to default_ident_timeout as jilles
...
recommended.
2010-04-05 16:29:11 -04:00
JD Horelick
0ffb810660
Add a configuration option for ident_timeout.
2010-04-05 15:28:44 -04:00
Jilles Tjoelker
19716b9fd6
New custom channel mode API allowing reloading such modules.
...
Additionally, attempting to use too many modes or two times
the same letter is now detected and prevented.
Modules now request that a channel mode be added/orphaned,
instead of ugly manipulation from which that request had
to be guessed.
Slight changes are needed to modules that provide channel modes.
From the old API, one important function has been made static,
the other important function has been renamed, so loading old
modules should fail safely.
2010-04-01 01:16:16 +02:00
Jilles Tjoelker
803ce385bf
Fix various compiler warnings.
2010-03-27 20:09:46 +01:00
Jilles Tjoelker
dca9e55257
Add propagated resvs, like klines and xlines.
2010-03-27 16:13:57 +01:00
Jilles Tjoelker
3cbbfb2556
Add propagated xlines, like klines.
2010-03-16 23:05:50 +01:00
Jilles Tjoelker
1702b69419
Add option general::use_propagated_bans to allow disabling new KLINE.
...
If this option is yes (default), KLINE by itself sets global (propagated) bans.
If this option is no, KLINE by itself sets a local kline following cluster{},
compatible with 3.2 and older versions.
2010-03-14 17:21:20 +01:00
William Pitcock
f02f338b31
chm_simple(): enforce MLOCK
2010-03-07 23:15:52 -06:00
William Pitcock
8727cbe88a
Add propagation of MLOCK state for simple modes.
...
Special modes like +j can be tracked easily just by adding the necessary
code to parse them to set_channel_mlock(). This will cover propagation
as well.
2010-03-07 23:13:39 -06:00
William Pitcock
b99c9ae0bf
Fix order on channel_mlock() call.
2010-03-07 23:12:35 -06:00
William Pitcock
084ecbe030
Add MLOCK message to netjoin burst.
2010-03-07 22:29:34 -06:00
William Pitcock
ec55bec527
Add MLOCK capability token.
2010-03-07 22:25:41 -06:00
William Pitcock
a51c452643
Rename channel_modes() to channel_modes_real(), and use macros to build both the mode list, and the mlock list.
2010-03-07 22:22:14 -06:00
William Pitcock
c59d46e572
Correct 325 (RPL_CHANNELMLOCKIS) numeric.
2010-03-07 21:37:23 -06:00
William Pitcock
dd0f1f5b88
Add RPL_CHANNELMLOCKIS for ircd-side MLOCK enforcement.
2010-03-07 21:35:54 -06:00
William Pitcock
030cdce7d0
Fix construction of the channel mode vector table.
...
This fixes chm_* modules and should be backported to ircd-seven and charybdis 3.2.
2010-03-07 14:45:42 -06:00
Jilles Tjoelker
778dd56bf2
Show d/kline setter to opers in stats/testline.
2010-03-06 22:37:42 +01:00
Jilles Tjoelker
ee6da53d74
Avoid crash if get_oper_name() somehow gave no {} for local oper.
2010-03-06 16:37:50 +01:00
Jilles Tjoelker
5c2b9eaf48
BAN: Reject bans with insufficient non-wildcard characters.
...
Such bans are not applied locally, but are propagated normally.
They can only be removed on a server that applies them.
Note that normally KLINE will not accept such bans.
This is mainly for services, differing min_wildcard and
ircd changes.
2010-03-06 01:45:41 +01:00
Jilles Tjoelker
cedb7d05b4
Remove +/- from the BAN message, instead indicating unban with duration=0.
...
A kline must now last at least one second since its creation time.
Also add better logic for bans that have already expired
when they come in.
2010-03-05 22:51:47 +01:00
Jilles Tjoelker
f54e1a8fd6
Use memmove instead of memcpy where there is overlap (modunload).
2010-03-05 22:05:15 +01:00
Jilles Tjoelker
431a1a2784
Add propagated klines.
...
A KLINE command without the ON clause now sets a propagated
("global") ban. KLINE commands with the ON clause work as
before.
Propagated klines can only be removed with an UNKLINE command
without the ON clause, and this removes them everywhere.
In fact, they remain in a deactivated state until the latest
expiry ever used for the mask has passed.
Propagated klines are part of the netburst using a new BAN
message and capab. If such a burst has an effect, both the
server name and the original oper are shown in the server
notice.
No checks whatsoever are done on bursted klines at this time.
The system should be extended to XLINE and RESV later.
There is currently no way to list propagated klines,
but TESTLINE works normally.
2010-03-05 18:36:44 +01:00
Jilles Tjoelker
9197bc355e
Add code to expire "propagated" bans.
...
The data structure is very simple: a dlink list of all propagated bans.
2010-03-04 00:21:22 +01:00
Jilles Tjoelker
f9545a9b54
Make struct operhash_entry private.
2010-03-01 01:24:00 +01:00
Jilles Tjoelker
27f616ddf5
Track who set a dline/kline/xline/resv as in ratbox3.
...
Like in ratbox3, there is no way to query this information
(other than bandb's tables, but they worked before this
commit).
2010-03-01 01:23:22 +01:00
Jilles Tjoelker
3d242eb30f
Merge bugfix that also applied to 3.2.x.
2010-02-28 16:45:55 +01:00
Jilles Tjoelker
4db0e2bdf2
Fix memory leak on /rehash bans.
...
We do not have the 'oper' field in klines yet.
2010-02-28 16:45:25 +01:00
Jilles Tjoelker
a12ad04472
Generate the "Temporary K-line %d min" part from aconf->hold - aconf->created.
2010-02-28 16:27:06 +01:00
Jilles Tjoelker
b52c294986
Store the creation time of klines and dlines as a time_t instead of as text.
...
The value 0 indicates the creation time is unknown (currently the case
for bandb).
Also store a creation time for xlines and resvs, but do not use it yet.
2010-02-28 00:46:56 +01:00
Jilles Tjoelker
58c728aed8
Add a missing comment for new /challenge numerics.
2010-02-27 23:56:56 +01:00
Alexander F?r?y
51027be825
Use RPL_QUIETLIST and RPL_ENDOFQUIETLIST instead of RPL_BANLIST and
...
RPL_ENDOFBANLIST for channel mode +q.
2010-02-27 01:08:41 +01:00
Jilles Tjoelker
1815320d3b
Remove more old kline.conf stuff.
...
Make sure to recompile modules, stuff has been removed
close to the start of ConfigFileEntry.
2010-02-22 19:31:05 +01:00
Jilles Tjoelker
22342cd11f
Remove code to write bans to csv files.
2010-02-22 19:09:46 +01:00
Jilles Tjoelker
981586df2b
spambot checks: Fix excessive expiry in some cases.
2010-02-21 01:29:41 +01:00
William Pitcock
dbcd150bce
Do not try to free the alias dict if it does not exist.
2010-02-18 18:38:26 -06:00
William Pitcock
cb7f3af4d3
Change license version in version.c.SH (GPLv1 -> GPLv2) so that it agrees with the other documentation.
2010-02-17 23:05:47 -06:00
William Pitcock
9600850e8f
s/o:lines/operator blocks/
2010-02-17 23:01:58 -06:00
William Pitcock
76169ea734
Clarify ERR_NOOPERHOST and convert it to use sendto_one_numeric().
2010-02-17 06:51:41 -06:00
William Pitcock
ff31db8473
Add support for client certificate fingerprints in o:lines.
2010-02-17 06:41:41 -06:00
Jilles Tjoelker
4f2685f3e1
Move target change code to src/tgchange.c,
...
so we can use it for /invite as well.
2010-02-15 21:58:34 +01:00
Jilles Tjoelker
179becdf5f
target change: Overwrite the least recently used target with a new one.
2010-02-15 00:31:17 +01:00
JD Horelick
97deedc42f
English fix to fix the fix i made about 80 minutes ago.
...
I suck at a/an cometimes. Also, fix.
2010-02-08 18:04:54 -05:00
JD Horelick
bc4fccbc44
One or 2 English language cleanups. Less than I thought there were.
2010-02-08 16:28:08 -05:00
Jilles Tjoelker
8eda114a78
Pass certfp to other servers and show it in whois. Do not show it on connect.
...
The server protocol for this is
:<uid> ENCAP * CERTFP :<40 hex chars>
both in new user introductions and in burst.
As in oftc-hybrid, only the user themselves and opers can see the certfp.
Displaying the certfp on connect seems unnecessary to me,
the user can whois themselves if needed.
2010-02-06 00:18:27 +01:00
Jilles Tjoelker
17e4b48b55
Apply ratbox3 workaround for too permissive inet_pton6():
...
Any kline (or various other things) containing * or ? is
a mask kline and not an IP kline. Ideally, rb_inet_pton_sock()
would return failure for those, but in practice this is not
always the case for IPv6.
Such a kline that is erroneously treated as an IP line
likely matches way fewer IPs than expected.
2010-02-03 00:44:51 +01:00
William Pitcock
11dff8a423
Clarify CertFP message.
2010-01-31 17:35:15 -06:00
Jilles Tjoelker
7247337afa
Add certfp support to libratbox and ssld.
...
This lets a user connect with a client certificate, and
passes the certificate's fingerprint to ircd, which
currently just notices it to the user.
A new ssld->ircd message 'F' is used to pass on the
fingerprint.
This is only for OpenSSL for now, not GNUTLS.
2010-01-31 19:04:20 +01:00
William Pitcock
47f9d6002a
Automated merge with ssh://hg.atheme.org//hg/charybdis
2010-01-30 19:21:28 -06:00
William Pitcock
7d778d510a
modreload: Causing an entire 50,000 user network to crash due to user-error is a bad idea, don't let it happen again by not allowing paths in /modreload.
2010-01-30 19:21:17 -06:00
Jilles Tjoelker
5f2df25109
Slightly tighten auth{} duplicate check:
...
If the existing auth{} block has no auth_user, it will
trump any auth{} block for the same u@h.
2010-01-31 01:40:43 +01:00
Jilles Tjoelker
3d1f32c07a
Take auth_user into account when detecting redundant/duplicate auth{}.
...
from ircd-seven (spb)
2010-01-31 01:36:37 +01:00
Jilles Tjoelker
90afc118fd
No need to be paranoid about clearing auth_user.
...
It is a username, not a password.
2010-01-31 01:30:25 +01:00
Jilles Tjoelker
fcb057992c
Fix memory leak with auth_user.
...
from ircd-seven (spb)
2010-01-31 01:29:08 +01:00
Jilles Tjoelker
8f10356217
Remove remnants of <foo>_t typedefs.
2010-01-30 15:57:10 +01:00
Jilles Tjoelker
cd5d9abf63
Do not read in help files starting with a dot (including dot and dot-dot).
2010-01-22 02:02:45 +01:00
Stephen Bennett
d06f3da955
Don't cache files that are empty or not files. Avoids crashing on the likes of 'HELP .'
2010-01-21 16:27:34 +00:00
William Pitcock
2e918bf515
Merge +C (no CTCP to channels) from ircd-seven.
2010-01-19 02:11:04 -06:00
William Pitcock
fdb90316e1
Automated merge with ssh://hg.atheme.org//hg/charybdis
2010-01-19 01:47:27 -06:00
William Pitcock
bde6442c47
supported: Add CLIENTVER=3.0 to indicate presence of 3.0 core capabilities (such as CAP, extended WHO, etc) as requested by LifeIsPain.
2010-01-19 01:47:21 -06:00
Jilles Tjoelker
70ea02ebd6
Complete the move of xlines and resvs from aconf->name to aconf->host.
2010-01-08 18:46:29 +01:00
William Pitcock
23959371d0
Fix up more things with bandb.
2010-01-07 18:14:15 -06:00
William Pitcock
80c9ac516e
Load in new bans from bandb on startup.
2010-01-07 18:06:15 -06:00
William Pitcock
6eebc37378
Start bandb on ircd initialization.
2010-01-07 17:22:44 -06:00
William Pitcock
83595e6016
Add bandb IRCd APIs.
2010-01-07 17:10:16 -06:00
Jilles Tjoelker
22df9f8989
Update some copyright years.
2010-01-01 22:46:34 +01:00
Jilles Tjoelker
cef7a7bc4e
Remove FLAGS_SENDQEX, fix sendq exceeded snotes for servers.
...
from ircd-ratbox
2009-12-21 16:58:25 +01:00
Stephen Bennett
6657de63ac
Merge
2009-12-08 19:23:32 +00:00
Stephen Bennett
c127b45b83
Revert all presence-related changes
2009-12-08 19:22:55 +00:00
Jilles Tjoelker
456e5b3d64
Fix crashes when there are no alias blocks in the conf.
2009-12-05 20:48:02 +01:00
William Pitcock
ae62bed786
Automated merge with ssh://hg.atheme.org//hg/charybdis
2009-10-24 21:07:53 -05:00
William Pitcock
04708f0e5b
If you're going to censor my jokes, at least do it right.
2009-10-24 21:07:41 -05:00
Jilles Tjoelker
c2c25552ca
Force part local users (not resv_exempt) on channel resv.
...
A notice will be sent to any force parted users that the channel
is temporarily/permanently unavailable on the server.
A new config option channel::resv_forcepart can be used to disable this.
from ircd-ratbox (dubkat)
2009-09-19 21:24:35 +02:00
William Pitcock
5cca545c3c
Display o:line "nickname" in global oper-up messages.
2009-07-13 12:55:35 -05:00
Jilles Tjoelker
beccbe318c
Show yyerror() parse errors on stderr on startup.
...
Noticed by: spb
2009-06-18 00:37:19 +02:00
Jilles Tjoelker
7919c03041
Add new constants for presence key/value lengths
...
instead of overloading NICKLEN/TOPICLEN.
2009-06-03 23:38:07 +02:00
Jilles Tjoelker
383eac2e64
Do not send two 792 numerics when changing a metadata from one non-empty value to another.
2009-06-03 20:44:37 +02:00
William Pitcock
2914055be3
presence: send..._with_capability...(): don't send if the client does not have the capab but isn't on a channel
2009-06-02 02:48:22 -05:00
William Pitcock
9def763407
presence: delete_metadata(): Free from the right heap.
2009-06-02 02:46:37 -05:00
William Pitcock
972e31192f
presence: Add _butone() variant of sendto_common_channels_local_with_capability().
2009-06-02 02:38:38 -05:00
William Pitcock
48c5e056ca
presence: Broadcast presence changes to peer clients with CLICAP_PRESENCE.
2009-06-02 02:36:18 -05:00
William Pitcock
695cc4bc0c
presence: Declare RPL_METADATACHG.
2009-06-02 02:32:07 -05:00
William Pitcock
62928328bf
presence: Add sendto_common_channels_local_with_capability(), used for broadcasting presence updates.
2009-06-02 02:28:02 -05:00
William Pitcock
727bca6269
presence: Declare RPL_WHOISMETADATA.
2009-06-02 02:19:37 -05:00
William Pitcock
28d4abde2b
presence: Remove no longer used away_heap.
2009-06-02 02:08:45 -05:00
William Pitcock
884b5d41c1
presence: Remove user.away, replaced by a metadata entry.
...
Cache the metadata retrieval value where feasible for minimal performance impact.
2009-06-02 02:03:51 -05:00
William Pitcock
df2688426d
presence: Make set_metadata() erase any old metadata for an entry.
2009-06-02 01:53:05 -05:00
William Pitcock
75ea650c3c
presence: Add get_metadata().
2009-06-02 01:50:40 -05:00
William Pitcock
e581ea8e3d
presence: Add set_metadata() and delete_metadata().
2009-06-02 01:41:44 -05:00
William Pitcock
195d10c293
presence: Declare RPL_METADATASET and RPL_METADATAREM.
2009-06-02 01:32:09 -05:00
William Pitcock
0d3b24f9cf
presence: Create presence metadata tracking structures where appropriate.
2009-05-30 13:30:57 -05:00
Jilles Tjoelker
1bb1f1b0e7
Remove check_banned_lines() code duplication.
...
We can just call check_dlines(), check_klines() and check_xlines().
2009-05-21 23:11:32 +02:00
Jilles Tjoelker
cf09122bf7
Check the return value on rb_pipe.
...
from ircd-ratbox (r26515) (androsyn)
2009-05-13 22:07:57 +02:00
Jilles Tjoelker
c04a500dfa
Remove unused inet_socketpair() code, this is in libratbox now.
2009-05-12 23:56:28 +02:00
Jilles Tjoelker
eda22d87af
More rb_socketpair() return value checks.
...
from ircd-ratbox (r26507) (androsyn)
2009-05-12 23:30:46 +02:00
Jilles Tjoelker
6388eda683
Report errors and close the incoming connection if socketpair fails
...
for ssl connections.
from ircd-ratbox (r26503) (androsyn)
2009-05-12 23:18:41 +02:00
Jilles Tjoelker
97c9dd8a26
Change xlines to store spaces as \s.
...
Spaces in xline.conf files are changed to \s in memory
and recognized on unxline, but are not changed in the
file. New xlines are added to xline.conf files with \s.
xline.conf written by this commit or newer will not work
properly with charybdis older than 1124:131254925f32 (which
introduced \s support in match_esc()).
2009-05-08 00:21:14 +02:00
William Pitcock
5f8d323c59
can_kick hook, based on the ircd-seven one.
2009-04-20 09:20:11 -05:00