Jilles Tjoelker
f80e76cf2c
Disallow changing away status via /presence.
...
Allowing this desynchronizes clients and servers that
do not know about this extension without good reason.
If you want to allow this, change it to spit out the
usual AWAY protocol.
2009-06-04 00:01:57 +02:00
Jilles Tjoelker
338dd42d64
Reject presence updates with too long keys, instead of truncating them
...
and causing soft assertion failures. Values are still
silently truncated though.
2009-06-03 23:49:50 +02:00
Jilles Tjoelker
9d393c9052
Add new constants for presence key/value lengths
...
instead of overloading NICKLEN/TOPICLEN.
2009-06-03 23:38:07 +02:00
Jilles Tjoelker
084af78f05
Remove two obsolete constants.
2009-06-03 23:18:07 +02:00
Jilles Tjoelker
104fea6cda
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
Jilles Tjoelker
f62bb0776a
Correct minimum parameter counts for PRESENCE.
2009-06-03 20:03:15 +02:00
Jilles Tjoelker
320a0f8528
ENCAPs cannot come from local clients, no need to check.
2009-06-03 19:57:27 +02:00
Jilles Tjoelker
7cc7a2c041
Remove special CAP presence handling of /whois away message.
...
This cannot work because /whois is executed remotely too
and CAPs aren't known remotely.
2009-06-03 19:54:49 +02:00
William Pitcock
fa00b4ada9
presence: m_presence module: Use safer get_metadata() where appropriate, to avoid crash possibilities.
2009-06-02 02:55:45 -05:00
William Pitcock
41c6374550
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
a436c5aab0
presence: delete_metadata(): Free from the right heap.
2009-06-02 02:46:37 -05:00
William Pitcock
50aa2dd31d
presence: Use RPL_WHOISMETADATA.
2009-06-02 02:44:31 -05:00
William Pitcock
46b3bb7655
presence: Add _butone() variant of sendto_common_channels_local_with_capability().
2009-06-02 02:38:38 -05:00
William Pitcock
8ccc820864
presence: Broadcast presence changes to peer clients with CLICAP_PRESENCE.
2009-06-02 02:36:18 -05:00
William Pitcock
489f4799c8
presence: Declare RPL_METADATACHG.
2009-06-02 02:32:07 -05:00
William Pitcock
a917e9baf3
presence: Add sendto_common_channels_local_with_capability(), used for broadcasting presence updates.
2009-06-02 02:28:02 -05:00
William Pitcock
727a98a669
presence: Declare RPL_WHOISMETADATA.
2009-06-02 02:19:37 -05:00
William Pitcock
fa2a410abe
presence: If CLICAP_PRESENCE is enabled, then RPL_AWAY is replaced by the "away" keyword in the presence dataset.
...
As such, only fall back to legacy RPL_AWAY if CLICAP_PRESENCE is not set on source_p.
2009-06-02 02:17:42 -05:00
William Pitcock
6364809623
presence: Add CLICAP_PRESENCE.
...
This will enable broadcasting presence updates on channels.
2009-06-02 02:14:44 -05:00
William Pitcock
e4a64911ae
presence: Remove no longer used away_heap.
2009-06-02 02:08:45 -05:00
William Pitcock
51f73b614b
presence: Replace stagnant free_away() call with delete_metadata(..., "away").
2009-06-02 02:06:18 -05:00
William Pitcock
987ef7eb1f
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
25e664566f
presence: Make set_metadata() erase any old metadata for an entry.
2009-06-02 01:53:05 -05:00
William Pitcock
85171f1f16
presence: Add get_metadata().
2009-06-02 01:50:40 -05:00
William Pitcock
0827f524e0
presence: Add m_presence module. This provides an ENCAP s2s interface and lowlevel client interface.
2009-06-02 01:45:43 -05:00
William Pitcock
e5847c3ef3
presence: Add set_metadata() and delete_metadata().
2009-06-02 01:41:44 -05:00
William Pitcock
95cc7c44e8
presence: Declare RPL_METADATASET and RPL_METADATAREM.
2009-06-02 01:32:09 -05:00
William Pitcock
d153f8fef1
presence: Declare MetadataEntry struct.
2009-06-02 01:29:58 -05:00
William Pitcock
dd7eb3ffaa
presence: Create presence metadata tracking structures where appropriate.
2009-05-30 13:30:57 -05:00
William Pitcock
c7f7b72079
struct Client: add a dictionary to contain presence metadata.
2009-05-30 13:17:39 -05:00
William Pitcock
3c6fb31a4b
Automated merge with ssh://hg.atheme.org//hg/charybdis
2009-05-30 13:16:01 -05:00
William Pitcock
a62c60d5dc
Add irc_dictionary.h to stdinc. I'm lazy.
2009-05-30 13:15:58 -05:00
Jilles Tjoelker
481912374a
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
5f1fd8a556
Remove some obsolete unused definitions.
2009-05-21 16:01:46 +02:00
Jilles Tjoelker
fcda56627d
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
8479094d8f
Check the return value on rb_pipe.
...
from ircd-ratbox (r26515) (androsyn)
2009-05-13 22:07:57 +02:00
Jilles Tjoelker
e17ab35b5d
Remove unused inet_socketpair() code, this is in libratbox now.
2009-05-12 23:56:28 +02:00
Jilles Tjoelker
e421505e8c
More rb_socketpair() return value checks.
...
from ircd-ratbox (r26507) (androsyn)
2009-05-12 23:30:46 +02:00
Jilles Tjoelker
77ced1e851
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
ecb0b4b941
Update copyright years in sgml docs.
2009-05-08 22:40:18 +02:00
Jilles Tjoelker
957765c32d
Remove notes about now fixed xline \s bugs from sgml docs.
2009-05-08 22:37:20 +02:00
Jilles Tjoelker
cbd758d71c
Rewrite perm xlines containing '",' from local opers (to '"\,').
...
The change also applies to xlines sent to other servers.
Note that the backslash must be supplied in an unxline.
Incoming xlines containing '",' are rejected to avoid
inconsistency between servers.
2009-05-08 14:42:55 +02:00
Jilles Tjoelker
b6c85cc60b
Disallow the sequence '",' in perm xlines,
...
it would cause problems with xline.conf.
2009-05-08 14:27:30 +02:00
Jilles Tjoelker
44bdc688cb
Change \s to space when writing xline.conf, to be compatible with older versions.
2009-05-08 13:40:09 +02:00
Jilles Tjoelker
448a723f81
Disallow double quotes in klines.
...
These could cause parse problems with kline.conf.
2009-05-08 01:50:35 +02:00
Jilles Tjoelker
6e5b8a5dec
Disallow commas in channel resvs.
...
These can never match and could cause parse problems in resv.conf.
2009-05-08 01:23:40 +02:00
Jilles Tjoelker
63860dd1a7
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
Jilles Tjoelker
eb5e3f1520
Stop changing \s to spaces in masktrace and testmask,
...
match_esc() handles \s directly now.
2009-05-07 23:58:32 +02:00
Jilles Tjoelker
031c4b89d3
Move check for required CAPABs to mr_server -- CAPAB may not be sent.
...
Also fix exit message.
2009-04-21 18:43:07 +02:00
William Pitcock
fde16193c4
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