Commit Graph

833 Commits

Author SHA1 Message Date
Nathan Phillip Brink c8e67ef406 Fix parallel compilation issue when building lexer/parser. 2012-02-29 23:14:07 -05:00
Jilles Tjoelker 00d66a41f4 Style: use a consistent order for the _C constants. 2011-03-31 00:05:42 +02:00
Stephen Bennett f970f73c68 Disallow mIRC italics in channel names when disable_fake_channels 2011-03-30 11:30:47 +01:00
Stephen Bennett 3fa27fe787 Don't allow +Z to be set by default_umodes 2011-03-11 13:12:40 +00:00
JD Horelick 01a8417f75 When setting/unsetting cmode +M, only wallops once, not for every server on the network. 2011-05-15 14:01:07 -04:00
Jilles Tjoelker 6cb47f18b5 Fix memory leak of operator certfp fields. 2011-01-25 00:39:07 +01:00
Elizabeth Jennifer Myers 6a00233824 newconf: fix a warning 2011-01-23 16:56:36 -05:00
Elizabeth Jennifer Myers fd999fad3a newconf: fix certificate fingerprint auth.
yy_oper->certfp was not copied into yy_tmpoper->certfp, thus the information was lost and certfp auth was never really working, since the string was always empty.
2011-01-23 16:12:32 -05:00
JD Horelick 696c935a4c When changing an oper's host, be sure that the mode value has enough room to hold +ah too. 2011-01-26 16:45:41 -05:00
JD Horelick 2f24d19944 Fix some warnings. 2011-01-19 15:59:30 -05:00
Jilles Tjoelker e9ced3de20 hunt_server: Disallow wildcarded nicknames.
Any hunted parameter with wildcards is now assumed
to be a server, never a user.

Reasons:
* fewer match() calls
* do not disclose existing nicknames
* more intuitive behaviour for CONNECT

m_trace has a copy of some hunt_server logic in it
(for the RPL_TRACELINK reply), so adjust that too.
2011-01-08 17:47:05 +01:00
Keith Buck f38f82ac36 Move list-related isupport items to the list module itself. 2011-01-06 00:40:08 -08:00
JD Horelick e8e3ef0dfb Add topic TS and channel TS constraints for /LIST. 2011-01-19 15:45:45 -05:00
JD Horelick e78f804d42 Implement operspy for /LIST. 2011-01-19 15:41:23 -05:00
Jilles Tjoelker 26576db0b3 Remove redundant prototypes in src/ircd_lexer.l.
These seem unnecessary and may cause problems because they
are wrong in some cases.

A comment says these were needed for GCC 3.3. If you are
still using this compiler, check this and if it breaks,
some other approach is needed.
2010-12-15 21:49:47 +01:00
JD Horelick 8c76e73bcf commit c90f903a667ed5744b93b6b89892de4e8c045d17
Author: Stephen Bennett <spb@exherbo.org>
Date:   Fri Dec 31 17:14:05 2010 +0000

    Expire umode +p correctly if it's set via oper_umodes, as well as by user_mode. Bug found by tgies.
2011-01-19 15:15:55 -05:00
JD Horelick bd73ea56ba commit 90509b2e2a364471f2461367fd02c11c8ab3c72d
Author: Stephen Bennett <spb@exherbo.org>
Date:   Fri Dec 31 17:11:50 2010 +0000

    Don't allow opers without the override privilege to get +p via the oper_umodes config setting
2011-01-19 15:15:50 -05:00
B.Greenham 0258787d5d Fix small bug in the VERSION/RPL_MYINFO stuff, as pointed out by init. 2011-01-19 11:28:16 -05:00
JD Horelick 4b631c0586 Send ERR_TOOMANYCHANNELS for each channel join that fails due to channel limits.
The reason why we do this is because some clients are dependent on receiving a numeric
for every channel join failure, even due to this limit where it can be assumed that
subsequent joins failed.
2010-12-15 00:02:47 -05:00
William Pitcock dc34aae05e Correct error message involving no fingerprint credentials or password credentials being available. 2010-12-14 21:25:44 -06:00
William Pitcock 5ac470475d Add support for linking using SSL certificate fingerprints as the link credential rather than the traditional server-password pair. 2010-12-13 23:14:00 -06:00
JD Horelick 0284952c9f Move cmode +N to cmode +d, so that extensions/m_roleplay can retain cmode +N and maintain a consistent interface with charybdis. 2011-01-19 23:40:21 -05:00
B.Greenham 5323ec7352 Move flood_attack_channel to channel.c so it can be used outside m_message.c 2010-12-11 16:11:54 -05:00
William Pitcock 359d4d5b20 chmode: Remove chm_regonly, a vestige from ratbox which doesn't apply to native charybdis (or shadowircd) networks. 2010-12-06 23:51:14 -05:00
William Pitcock fa9fb0d66b Use %u instead of %d. 2010-12-04 23:13:35 -06:00
William Pitcock b67bc679f3 blacklist: Remove the sscanf() for the IPv4 blacklist check.
From ratbox r27061 (androsyn).
2010-12-04 23:11:04 -06:00
JD Horelick ab72b3e800 Wallops (and log) upon setting/unsetting of +M or any hidden chmode.
(+M is currently the only hidden chmode)
2010-11-22 13:14:02 -05:00
JD Horelick 8071ad5acf Fix a small warning. 2010-11-13 20:37:41 -05:00
William Pitcock 78ab5aa473 parse(): make reentrant 2010-10-24 21:02:32 -05:00
JD Horelick 64be6183f8 Fix a bug I caused. Whoops. 2010-10-25 20:11:10 -04:00
JD Horelick 0a2e2a35c8 A few more fixes. Part 3 of 2 I suppose. 2010-10-23 22:46:50 -04:00
JD Horelick 16d76e8659 Clang warning fixes part 2 of 2. 2010-10-23 22:32:31 -04:00
B.Greenham 07db71cda0 Fix VERSION and RPL_MYINFO to only show modes that are enabled. Also fix up some errors from the last commit. 2010-10-11 16:35:18 -04:00
B.Greenham b7262e0cce Return an error upon trying to set orphaned cmode, rather than just silently ignoring the mode command. 2010-10-11 14:27:47 -04:00
B.Greenham 4c16b692f3 Add channel::disabledmodes.
This replaces use_invex, use_except, and use_forward, although
those options are still used internally and will continue to work
for users, to maintain config compatibility between charybdis
and shadowircd.
2010-10-11 14:12:52 -04:00
B.Greenham e0b0e08d25 Fix a bug that allowed users to set forwards to channels they lack ops in (and not set forwards to channels they have ops in). 2010-07-28 20:26:13 -04:00
B.Greenham 4023293674 Merge. 2010-10-11 11:58:39 -04:00
B.Greenham 90728edb58 Backed out changeset 3097ade953f5
Backout modesets.

They're overly invasive and a bit uglier than is required.
The same thing can be accomplished in a better way with another method.
2010-10-11 11:58:21 -04:00
Jilles Tjoelker cc2a7258f1 Send only one ERR_MLOCKRESTRICTED per MODE command.
This agrees with other error messages from MODE.
2010-08-24 23:03:23 +02:00
JD Horelick f10ec0c42e Change ERR_MLOCKRESTRICTED to 742 as 735-739 seem for MONITOR extensions. 2010-09-11 13:55:06 -04:00
William Pitcock fc579e36e7 Enforce TS rules on MLOCKs. 2010-08-23 20:22:59 -05:00
William Pitcock c95fc52d5a Send numeric 735 on MLOCK policy-restricted mode changes that are ignored. 2010-08-23 19:04:46 -05:00
William Pitcock ed6565a5a0 Add ERR_MLOCKRESTRICTED (735) to reflect bounces caused by MLOCK. 2010-08-23 18:59:32 -05:00
B.Greenham 1fe75e33cc mode api: Remove most modes from the chmode_table, and have them initialized in modeset files.
Modeset files are modules stored in shadowircd/modes. All they do is initalize
a set of modes on load, and orphan said modes on unload.

All cmodes not included in ircd-ratbox are now located in modeset files, rather
than being in the core. These modes no longer simply use defines, their
locations are stored in a the new struct module_modes. Each of these is set
when intializing the mode in the modeset files, and set to 0 when orphaning
the mode upon unloading the modeset file.

In addition, use_forward has been removed, as it is now obsoleted by modesets.
2010-07-02 19:09:46 -04:00
JD Horelick ed6ad7a375 Change the DNSBL hit snomask to SNO_REJ (+r) as to not spam SNO_GENERAL 2010-06-23 15:01:49 -04:00
JD Horelick 40114db23c Make DNSBL hits snote on hit. The snote displays nick, IP and what DNSBL they hit. 2010-06-23 13:44:33 -04:00
JD Horelick 133755685e Removal of ancient SVN ID's part one 2010-06-10 21:22:44 -04:00
Jilles Tjoelker dfea673fca Make number_per_ident actually apply to unidented connections as well,
as documented in reference.conf.

Noticed by: spb
2010-06-09 21:22:47 +02:00
Stephen Bennett c554add299 Allow the final parameter of MLOCK to be empty, to remove an existing mlock 2010-05-02 20:42:46 +01:00
Stephen Bennett b72bd23a03 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
JD Horelick 2d10c55990 Branch merge 2010-09-11 13:31:13 -04:00
JD Horelick ea84bfdeff Backed out changeset c04f6578869c 2010-09-11 13:31:00 -04:00
JD Horelick e09ea16973 "Import" changeset 1346:c57955c5225e from charybdis by hand. 2010-09-11 13:23:35 -04:00
Jilles Tjoelker b96db1e3fe Fix crash if identify_service/identify_command were not specified in ircd.conf. 2010-04-18 13:54:03 +02:00
B.Greenham 2498a1b577 Fix some valgrind warnings. 2010-05-27 18:03:51 -04:00
JD Horelick 1add004b97 Change kicknorejoin to be hardcoded to 2 seconds instead of a
configurable opton.
2010-05-21 04:20:45 -04:00
JD Horelick f0e0e5672d Backed out changeset 9bd802724b74 2010-05-21 04:08:05 -04:00
JD Horelick 446c7d4f57 Remove +J chmode (KICKNOREJOIN) 2010-05-21 03:29:07 -04:00
B.Greenham 41e026e175 Don't throw a warning if general:default_operhost is empty. 2010-04-07 15:08:02 -04:00
B.Greenham 67537fefa4 Add OPERHOST option to /set, which allows you to change the host operators get on oper up (provided they don't have a specific one already defined in their operator block.) 2010-04-07 15:04:42 -04:00
JD Horelick 1434082803 Change config option for ident_timeout to default_ident_timeout as jilles
recommended. Also update the TODO. Also, cocks.
2010-04-05 16:29:11 -04:00
JD Horelick e50ed244f4 Add a configuration option for ident_timeout. 2010-04-05 15:28:44 -04:00
JD Horelick 015b28a06c Branch Merge 2010-04-04 16:25:20 -04:00
Jilles Tjoelker 6795400d0a 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
B.Greenham 92b26e74a9 Make chm_staff (staff only modes) only settable if you have ops in the channel in question.
If operators need to set such modes in a channel where they don't have ops, that's what override/omode are for.
2010-03-31 11:22:32 -04:00
JD Horelick 10a8240ff4 Fix a typo that could've caused a bug 2010-03-29 03:53:55 -04:00
JD Horelick ef07b59ac8 Add helpchan and helpurl that tell users the official help channel
and (optionally) link them to your network's specific helppages on
the intertubes. It is shown in /quote help (with no extra parameters).
2010-03-28 14:08:47 -04:00
Jilles Tjoelker 7c880acbfe Fix various compiler warnings. 2010-03-27 20:09:46 +01:00
Jilles Tjoelker 9b9d818b32 Add propagated resvs, like klines and xlines. 2010-03-27 16:13:57 +01:00
Jilles Tjoelker 112e8a666b Add propagated xlines, like klines. 2010-03-16 23:05:50 +01:00
JD Horelick 504f309e38 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-27 14:58:04 -04:00
William Pitcock e7c34075dd chm_simple(): enforce MLOCK 2010-03-07 23:15:52 -06:00
William Pitcock 28805dc5fc 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 b552cf8745 Fix order on channel_mlock() call. 2010-03-07 23:12:35 -06:00
William Pitcock 6b5059c363 Add MLOCK message to netjoin burst. 2010-03-07 22:29:34 -06:00
William Pitcock 27958781f6 Add MLOCK capability token. 2010-03-07 22:25:41 -06:00
William Pitcock 5f58af73d7 Correct 325 (RPL_CHANNELMLOCKIS) numeric. 2010-03-07 21:37:23 -06:00
William Pitcock 22caef5e58 Add RPL_CHANNELMLOCKIS for ircd-side MLOCK enforcement. 2010-03-07 21:35:54 -06:00
Jilles Tjoelker 3721c57468 Show the services login name in WHOWAS.
The numeric is the same (330) as used in WHOIS.

This takes at most half a megabyte of memory (large network, 30 char nicks).
2010-08-29 22:30:54 +02:00
Jilles Tjoelker 80d57d3924 Move RPL_WHOISLOGGEDIN to sendto_one_numeric(). 2010-08-29 22:29:17 +02:00
Jilles Tjoelker 9e94d9ea13 Add target change for channels.
This has a separate enabling option channel::channel_target_change.

It applies to PRIVMSG, NOTICE and TOPIC by unvoiced unopped non-opers.

The same slots are used for channels and users.
2010-08-28 20:02:42 -04:00
JD Horelick 7f3998618e Change oper-up message. 2010-08-28 18:16:28 -04:00
JD Horelick 4eaadbf404 Fix a couple of compile warnings. 2010-08-01 14:29:06 -04:00
B.Greenham d76346d3d4 Make channel::admin_on_channel_create only work if admin is enabled. 2010-07-29 14:26:18 -04:00
B.Greenham d7a3d23cdd Add channel::admin_on_channel_create, which gives users creating new channels +ao instead of +o, if enabled. 2010-07-29 14:22:33 -04:00
JD Horelick 9e8efa00d4 Fix a quick compile warning. 2010-07-10 01:29:22 -04:00
JD Horelick 6898ce9dde Add general::hide_channel_below_users option.
This allows server owners to set how many users must be in a channel before
/LIST will show it.
2010-07-10 01:28:21 -04:00
JD Horelick 33736ea75f Tweak auto-accept:
* does not apply to NOTICE (as those may well be automated)
* mirrors +g behaviour so that no useless accept entries are added for services
* respects max_accept, if it would be exceeded the message is dropped with numeric 494
* check moved up so this is checked before floodcount/tgchange

Pulled from Charybdis upstream changeset 1388:b1ef26176350 done by jilles.
2010-07-04 15:27:34 -04:00
B.Greenham 659dbfa585 Automated merge with ssh://shadowircd/uranium/shadowircd/ 2010-07-02 19:09:51 -04:00
JD Horelick 1d0a5f6d0e I am made of the fail today.
/me climbs aboard the failbus.
2010-06-23 16:32:10 -04:00
JD Horelick a58c4fedeb Sort of standardize the display of DNSBL hit snotes. 2010-06-23 16:30:08 -04:00
Jilles Tjoelker f8cebd00f2 Show d/kline setter to opers in stats/testline. 2010-03-06 22:37:42 +01:00
Jilles Tjoelker c3666dd012 Avoid crash if get_oper_name() somehow gave no {} for local oper. 2010-03-06 16:37:50 +01:00
Jilles Tjoelker 70fd7fc9fb 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 e49d818579 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 a4893a45be Use memmove instead of memcpy where there is overlap (modunload). 2010-03-05 22:05:15 +01:00
Jilles Tjoelker 65b8e0029e 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 12894c8888 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 cf06f92b78 Make struct operhash_entry private. 2010-03-01 01:24:00 +01:00
Jilles Tjoelker a0f4c418d3 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