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
bafd5ea61c
struct Channel: add mode_lock structure to the channel object.
2010-03-07 21:41:06 -06:00
William Pitcock
a51b50c366
struct Mode: add off_mode bitfield to describe disabled channel modes.
2010-03-07 21:40:34 -06:00
William Pitcock
dd0f1f5b88
Add RPL_CHANNELMLOCKIS for ircd-side MLOCK enforcement.
2010-03-07 21:35:54 -06: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
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
c2e7ab8c1e
ConfItem.next is not used, remove it.
2010-03-03 23:36:28 +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
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
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
666de5311f
Remove some obsolete paths from config.h.
2010-02-22 23:53:45 +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
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
c9f01c4f2f
target change: Allow free replies.
...
When a user receives a private message, notice or RPL_UMODEGMSG,
add the source to a special set of 5 target slots.
These slots are checked in the normal way when sending messages,
allowing a reply without using up a free target.
This feature will not be very useful if a user is being messaged
by many different users; to help this, messages blocked entirely
by +g or +R do not affect the targets. CTCP replies also remain
free in terms of targets.
2010-02-15 01:07:07 +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
Jilles Tjoelker
ad1d39a76f
Make the number of targets tracked for target change a #define.
2010-02-13 15:18:17 +01: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
8f10356217
Remove remnants of <foo>_t typedefs.
2010-01-30 15:57:10 +01:00
William Pitcock
2e918bf515
Merge +C (no CTCP to channels) from ircd-seven.
2010-01-19 02:11:04 -06:00
William Pitcock
83595e6016
Add bandb IRCd APIs.
2010-01-07 17:10:16 -06:00
William Pitcock
0d781b9a4f
Add DBPATH.
2010-01-07 16:55:34 -06:00
William Pitcock
7083c02121
Run autoreconf.
2010-01-07 16:51:32 -06:00
Jilles Tjoelker
cef7a7bc4e
Remove FLAGS_SENDQEX, fix sendq exceeded snotes for servers.
...
from ircd-ratbox
2009-12-21 16:58:25 +01:00
Jilles Tjoelker
01a7f6d4f9
Remove two obsolete constants.
2009-06-03 23:18:07 +02: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
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
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
553aaaf4db
Remove two obsolete constants.
2009-06-03 23:18:07 +02: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
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
54ff698839
presence: Add CLICAP_PRESENCE.
...
This will enable broadcasting presence updates on channels.
2009-06-02 02:14:44 -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
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
f01154c478
presence: Declare MetadataEntry struct.
2009-06-02 01:29:58 -05:00
William Pitcock
0d3b24f9cf
presence: Create presence metadata tracking structures where appropriate.
2009-05-30 13:30:57 -05:00
William Pitcock
d7ca5991bc
struct Client: add a dictionary to contain presence metadata.
2009-05-30 13:17:39 -05:00
William Pitcock
32a7faa104
Automated merge with ssh://hg.atheme.org//hg/charybdis
2009-05-30 13:16:01 -05:00
William Pitcock
8669b3b99c
Add irc_dictionary.h to stdinc. I'm lazy.
2009-05-30 13:15:58 -05:00
Jilles Tjoelker
6dbb113478
Remove some obsolete unused definitions.
2009-05-21 16:01:46 +02:00
Jilles Tjoelker
aa9c9ed268
Allow ctcp replies through floodcount after ctcp'ing a large group.
...
A large group is any $$ or $# or a channel with more than
floodcount/2 local members, checked on each server separately.
Note that floodcount checks are done on the sender's server.
The special treatment is active for 15 seconds.
2009-05-17 20:52:16 +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
c6240d7940
Allow for capabilities to be marked as "required".
...
If capability negotiation fails on these capabilities, then the server link is dropped.
2009-04-20 09:36:55 -05:00
William Pitcock
5f8d323c59
can_kick hook, based on the ircd-seven one.
2009-04-20 09:20:11 -05:00
Jilles Tjoelker
c4d2d01419
Apply +z to messages blocked by +b and +q as well.
...
This adds a new server capab EOPMOD which will be used
for an extended topic command also.
2009-03-29 15:48:07 +02:00
Jilles Tjoelker
995f300eb1
Allow /rehash throttles to clear throttling.
2009-03-07 01:49:09 +01:00
Jilles Tjoelker
ad13bb7556
Rework remote rehash messages to apply to all server notices during rehash.
...
Previously various notices such as those applying
to modules were not sent to the remote oper.
2009-03-07 01:27:05 +01:00
Jilles Tjoelker
6865c0b099
Add channel::only_ascii_channels config option
...
to restrict channel names to printable ascii only.
Like disable_fake_channels this only applies to joins
by local users; unlike disable_fake_channels it applies
to opers as well.
2009-02-22 00:12:21 +01:00
Jilles Tjoelker
53307da8ca
Disable autoconnect for a server with excessive TS delta.
...
Note that in some cases (different TS delta settings,
heavy lag) it is possible only one of the servers
detects the problem and autoconnect may be left enabled.
The mechanism used for disabling is the same as
/quote set autoconn <server> 0; the A flag in /stats c
disappears and a rehash or /quote set autoconn can put
it back.
2009-02-05 23:43:07 +01:00
Jilles Tjoelker
ad08ad1876
For remote rehashes, send error messages to the requesting oper as well.
2009-01-30 00:11:12 +01:00
Jilles Tjoelker
975c61928a
Don't suggest putting values in an enum that are not in the enum.
...
Compilers may assume that variables of enumerated type
only contain values in the enumeration.
2009-01-28 01:02:34 +01:00
Jilles Tjoelker
161f040940
Update comments for parv[0] removal.
2009-01-18 18:22:43 +01:00
Jilles Tjoelker
3a17735469
Change /stats O to show privset blocks (oper only).
...
To show operator blocks, only /stats o (lowercase) now works.
2009-01-18 01:35:24 +01:00
Valeriy Yatsko
32eadd332e
Update client.h.
2008-12-13 23:22:12 +03:00
Jilles Tjoelker
83235e9ed5
Show rejectcache/throttle in /testline output.
...
This adds more RPL_TESTLINE numerics with code '!'.
Different from the other results, the I/K line or
RESV will be shown as well.
2008-12-19 19:24:12 +01:00
Jilles Tjoelker
ae09cb7dbe
Show throttle info in /stats t.
...
from ircd-ratbox (androsyn)
2008-12-16 21:02:04 +01:00
Jilles Tjoelker
422bb0b553
Make rehashing privset{} change online oper privileges.
...
This also fixes memory leak due to multiple privsets
with the same name (added after each rehash).
2008-12-14 18:25:15 +01:00
Valeriy Yatsko
b7a689d1e5
Remove irc_basename, replace it with rb_basename from libratbox.
2008-12-03 02:59:13 +03:00
Jilles Tjoelker
e33e589cbf
Split cidr_bitlen into cidr_ipv4_bitlen and cidr_ipv6_bitlen.
...
Taken from ircd-ratbox 3 via shadowircd.
2008-11-30 13:31:59 +01:00
Jilles Tjoelker
d764f7ce5a
Correct buffer without space for '\0', should have been safe due to padding.
2008-11-22 18:51:00 +01:00
Aaron Sethman
679ccbe5ef
make is_cti/is_sti collect times connected in unsigned long long instead of time_t as well..on 32bit boxes that is going to wrap pretty quickly
...
committer: Valeriy Yatsko <dwr@it-penza.org>
2008-11-16 10:04:09 +03:00
Jilles Tjoelker
db3efb7ac2
Allow the resolver to process longer hostnames,
...
for the benefit of some DNSBLs like the "TorDNSEL service".
2008-11-15 16:13:39 +01:00
Jilles Tjoelker
48957a4951
Add ircu-like /who format options.
...
Use /quote help who for details.
The format code "o" (oplevel) is not documented,
but implemented showing dummy information (999 for
chanop, n/a otherwise).
2008-11-09 00:12:56 +01:00
Jilles Tjoelker
10847f65d3
Remove old oper privilege flags.
2008-09-09 21:51:26 +02:00
Jilles Tjoelker
b159441429
Add need_ssl to auth{} and operator{}.
...
Specifying need_ssl on auth{} denies the connection if
it is not SSL/TLS, much like need_ident or need_sasl.
Specifying need_ssl on operator{} refuses opering with
ERR_NOOPERHOST if the connection is not SSL/TLS.
from ircd-ratbox
2008-09-07 01:18:58 +02:00
William Pitcock
5d47bdca0f
Make change_isupport() return the old value!!!
2008-08-29 15:36:41 -05:00
William Pitcock
474b0d3515
Add change_isupport() to change the value of an ISUPPORT token.
2008-08-29 15:27:34 -05:00
Jilles Tjoelker
3540120ad5
Fix ident for ssl connections.
2008-08-28 00:49:04 +02:00
William Pitcock
f37fc9389b
HasPrivilege(): check to make sure localClient and localClient.privset are non-NULL.
2008-08-17 08:52:04 -05:00
William Pitcock
6ac9e53ee4
All modules converted to use privsets by porting the macro over.
...
New macro, HasPrivilege() does most of the work here, the old IsOper*() macros
are deprecated, and will likely be removed later.
2008-08-17 08:36:17 -05:00
William Pitcock
ef24271618
Make a reference to privset in Client.localClient.
2008-08-17 08:23:40 -05:00
William Pitcock
598b4cf10c
privilegeset_ref(): return the privilegeset
2008-08-17 08:22:56 -05:00
Jilles Tjoelker
8c59a8403b
Add 328 numeric (ChanServ channel URL) to the header files.
2008-08-17 14:49:01 +02:00
Jilles Tjoelker
f11d08a405
Remove another servlink remnant.
2008-08-17 14:46:29 +02:00
William Pitcock
a2e1310cbe
oper_conf structure: add privset association.
2008-08-17 07:32:30 -05:00
William Pitcock
353f862553
Add privilegeset_extend().
2008-08-17 06:35:49 -05:00
William Pitcock
9c3f080b99
Add basic PrivilegeSet API.
2008-08-17 06:27:59 -05:00
Valery V Yatsko
33e65f0004
no more servlink - removed 'servlink_path' from reference.conf and source files
2008-08-16 22:23:56 +04:00
Valery V Yatsko
392ae75ca9
Moved extern chmode_flags declaration from channel.h to chmode.h, as
...
it's actually declared in the second one
2008-08-04 21:51:15 +04:00
Jilles Tjoelker
43946961df
Move to ratbox3 reject and throttle code.
...
Throttle replaces max_unknown_ip, reject is like before
(including the charybdis-specific unkline handling).
Both of these now apply before SSL negotiation.
This commit does not include the global_cidr and new dline code.
m_webirc is a bit nasty with throttling (unlike before
with max_unknown_ip), this may be fixed later (or
the webirc IP needs to be exempt{}ed).
2008-08-01 01:59:08 +02:00
Valery Yatsko
9bdd947118
channel.h cleaned up a bit - removed unused includes
2008-07-30 16:27:35 +04:00
Valery Yatsko
687ff2f994
Removed charybdis.h include - used nowhere
2008-07-30 16:19:56 +04:00
Valery Yatsko
104c6d469d
rb_uint32_t -> uint32_t, rb_uint16_t -> uint16_t
2008-07-30 02:45:31 +04:00
Valery Yatsko
adc7be98fc
Removed unneeded includes from newconf.h
2008-07-28 23:14:51 +04:00
Valery Yatsko
acdf71d9d2
A very draft version of extensions, which are adding can_join hooks for custom channel modes
2008-07-27 12:10:48 +04:00
Jilles Tjoelker
c24efdc0b7
Also apply floodcount to messages to remote clients (except services).
...
As before, only local clients can have their message blocked.
2008-07-22 01:46:34 +02:00
Jilles Tjoelker
ce3801b175
Remove some obsolete ConfItem flags.
2008-07-04 17:05:18 +02:00
Valery V Yatsko
b2064202fb
Removed SystemTime declaration
2008-06-28 14:38:27 +04:00
Valery V Yatsko
b3ebc7ab9e
Applied svn diff from ratbox3 r21458:21470
2008-06-28 14:13:50 +04:00
Valery V Yatsko
b4407833bd
Remove Channel->users_last, used nowhere
2008-06-28 12:25:53 +04:00
Valery V Yatsko
b617afdc02
channel_heap,ban_heap,topic_heap,member_heap declared statically in channel.c instead of ircd.{c,h}
2008-06-28 11:54:51 +04:00