Commit Graph

509 Commits

Author SHA1 Message Date
JD Horelick e09ea16973 "Import" changeset 1346:c57955c5225e from charybdis by hand. 2010-09-11 13:23:35 -04:00
William Pitcock dc45456c96 struct Channel: add mode_lock structure to the channel object. 2010-03-07 21:41:06 -06:00
William Pitcock 34f6a40e79 struct Mode: add off_mode bitfield to describe disabled channel modes. 2010-03-07 21:40:34 -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 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
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 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 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
William Pitcock 6f187f63b5 strip_colour(): strip ASCII 29 (mIRC 7 italics). 2010-06-19 16:53:56 -05:00
JD Horelick fb06d910df SVN Id removal part two 2010-06-10 21:28:15 -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 f135c53751 Make PRIVMSG @#channel and PRIVMSG +#channel go to halfops and admins as well as chanops.
6.1 is now feature complete.
2010-04-07 16:53:59 -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 4369131cc7 Change the default ident timeout time to 5s to not be as annoying
to clients that don't send an ident and add a TODO item for 6.2 to
make ident timeout time configurable in the ircd.conf.

Currently it's only configurable in the include/defaults.h (ugly)
or on-the-fly with /set (doesn't persist, have to re-set it on each
restart/server).
2010-04-04 17:13:04 -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
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 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
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 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 ebae0e200e ConfItem.next is not used, remove it. 2010-03-03 23:36:28 +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
Jilles Tjoelker 157c1f04bd Generate the "Temporary K-line %d min" part from aconf->hold - aconf->created. 2010-02-28 16:27:06 +01:00
Jilles Tjoelker ce60772db6 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
Alexander F?r?y 360742bdf4 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
JD Horelick 069f104a2e Add shared::modules option, remote module stuff coming later/soon. 2010-03-24 15:50:15 -04:00
JD Horelick 74e3e4f1e2 Add DIE shared option for remote restart and die which are on their
way next.
2010-03-23 14:19:48 -04:00
JD Horelick 1cc810d3a7 Add general::true_no_oper_flood . I'm not going to explain it here.
Ask me what it does on IRC if you're curious.
2010-03-21 00:14:02 -04:00
B.Greenham 114406d021 Add strip_unprintable, a function that strips all unprintable characters from a string. 2010-03-20 12:39:39 -04:00
B.Greenham 473d0842db Fix some compiler warnings that I generated by accidentally copying something twice. 2010-03-17 02:19:18 -04:00
JD Horelick ceb3eb1de9 Add rehash to the shared all flag because all should prolly = all. 2010-03-14 15:42:28 -04:00
JD Horelick e78f685073 Add use_part_messages config option. When disabled, this will show
all PARTs without a message/reason. Recommended to set to no if
a static quit message is set.
2010-03-13 22:56:38 -05:00
JD Horelick c0e2aa60b8 Added static_quit support. Pretty much what the name implies. 2010-03-13 22:19:29 -05:00
B.Greenham c1c91f9438 s/owner/admin/ throughout the source code and docs. 2010-03-07 23:18:39 -05:00
B.Greenham 6a97cac667 Make channel_metadata_time_add accept a regular value as well as a time value. 2010-03-05 11:57:48 -05:00
B.Greenham 0b370fcc63 There's no reason to have two nearly identical structs for metadata, move metadata struct to ircd.h and use it for both channel and user metadata. 2010-03-05 00:51:40 -05:00
B.Greenham 8bced6dc39 Add *_metadata_clear and start using them. 2010-03-05 00:39:18 -05:00
B.Greenham 104becbf7f Add channel_metadata_time_add, a local only form of metadata that stores time values. And use it to make +J work. 2010-03-05 00:18:56 -05:00
B.Greenham 6f659342dc Add channel metadata system. 2010-03-04 15:08:16 -05:00
B.Greenham 3b0e9fa20e Automated merge with ssh://shadowircd/uranium/shadowircd/ 2010-03-03 20:38:57 -05:00
B.Greenham fb87421d0e Add user metadata. 2010-03-03 20:38:50 -05:00