JD Horelick
4355dbd3c9
branch merge
2010-02-25 15:12:18 -05:00
JD Horelick
47fab428b1
Backed out changeset 65db6ca26281
2010-02-25 15:11:43 -05:00
B.Greenham
2b3c7c29c3
Add chmode +G, which blocks messages in all caps.
2010-02-25 01:51:28 -05:00
B.Greenham
ea4041ece9
Automated merge with ssh://shadowircd/uranium/shadowircd/
2010-02-25 01:14:49 -05:00
B.Greenham
afd4834b50
Add chmode +N, which prevents nickchanges.
2010-02-25 01:14:38 -05:00
JD Horelick
13ec57db15
autochanmodes support
2010-02-24 22:18:13 -05:00
JD Horelick
44a8fbc29e
Actually add +p umode and expiry code. It currently does nothing though.
2010-02-24 21:53:45 -05:00
JD Horelick
5974ba0c55
Add the config handling code for expire_override_time config option.
...
Part one of override stuff. This is gonna be painful.
2010-02-24 20:28:17 -05:00
Jilles Tjoelker
ba6e142043
Use FLAGS_SENTUSER when checking whether to register when ping cookie is received.
2010-02-24 23:28:27 +01:00
B.Greenham
837a020a0c
Add general::secret_channels_in_whois.
2010-02-23 22:38:35 -05:00
B.Greenham
763e2baade
Make operspy prefix secret channels with * instead of ! .
2010-02-23 21:51:41 -05:00
Stephen Bennett
47148a3e79
Use FLAGS_SENTUSER instead of 'user' being non-empty to decide whether to register a user on CAP END.
...
identd and SASL can cause source_p->user to be present without USER having been sent.
Without this change, that could cause a crash later on as localClient->fullcaps is not initialised.
2010-02-23 22:35:58 +00:00
JD Horelick
45b9f1cbc0
Added channel::host_in_topic.
2010-02-23 20:19:58 -05:00
JD Horelick
c3a0fde28f
Added cycle_host_change option.
2010-02-23 19:50:45 -05:00
B.Greenham
f9e91eceaa
Add chmode +E, which prevents ops from using /kick on channels where it is set.
2010-02-23 18:14:43 -05:00
B.Greenham
6faf3f4d40
Make it so that only opers see modes in whois.
2010-02-23 03:12:19 -05:00
B.Greenham
be2d3c114f
Make the last commit actually compile.
2010-02-23 03:08:58 -05:00
B.Greenham
88b63e6506
Make the target user's modes show up in whois.
2010-02-23 02:59:35 -05:00
JD Horelick
9230426e7a
More moving
2010-02-23 02:52:01 -05:00
JD Horelick
67b90240c4
move user_join() to channels.c
2010-02-23 02:48:33 -05:00
JD Horelick
080bb5cf25
Start moving parts of join to channels.c so they can be used in more places.
2010-02-23 02:41:26 -05:00
B.Greenham
0bd6cfbe28
Compile fix.
2010-02-23 01:58:38 -05:00
B.Greenham
7e6c9180da
Add chmode +D, which blocks CTCP ACTION.
2010-02-23 01:08:42 -05:00
B.Greenham
6afd4b916f
Add chmode +T, which blocks notices.
2010-02-23 00:49:24 -05:00
B.Greenham
930629c5f2
Add umode +B, which marks users with it set as a bot in whois.
2010-02-23 00:21:24 -05:00
B.Greenham
854f6bd0af
Add umode +V, which blocks invites to anyone with it set.
2010-02-22 22:45:37 -05:00
B.Greenham
ccfc9b567d
Add umode +C, which blocks CTCPs to anyone with it set.
2010-02-22 22:14:47 -05:00
Jilles Tjoelker
fdd0b6ccf1
Do not penalize for spambot checks if creating a new channel.
2010-02-21 01:45:51 +01:00
Jilles Tjoelker
896e8e51b7
JOIN 0: Make spambot check equivalent to PART's.
2010-02-21 01:12:04 +01:00
Jilles Tjoelker
8cf4cea3da
Remove dead code: last_join_time is already updated by check_spambot_warning().
2010-02-21 01:10:04 +01:00
Jilles Tjoelker
d5e959f179
Do not check for spambot if the user is not allowed to join the channel.
2010-02-21 01:07:32 +01:00
Jilles Tjoelker
8a64e49e4c
challenge: Fix build.
2010-02-18 23:42:07 +01:00
William Pitcock
1c19179d64
Add certfp check to challenge too.
2010-02-17 23:01:25 -06:00
William Pitcock
e4c72f7919
Clarify ERR_NOOPERHOST and convert it to use sendto_one_numeric().
2010-02-17 06:51:41 -06:00
William Pitcock
d8a023eddd
Add support for client certificate fingerprints in o:lines.
2010-02-17 06:41:41 -06:00
Jilles Tjoelker
625a2b1f99
Subject /invite to umodes +g and +R.
...
The behaviour is the same as /msg except that where
/msg would send RPL_UMODEGMSG to the user, the /invite
is instead let through. This counts as a notification
for caller_id_wait like RPL_UMODEGMSG.
Checks are on the target user's server, which means an
error message will appear after RPL_INVITING.
This must be because the accept list is not globally
known.
2010-02-15 23:07:14 +01:00
Jilles Tjoelker
0f18c084bb
Add missing return value.
2010-02-15 22:18:00 +01:00
Jilles Tjoelker
3f76eb8a8c
Subject /invite to target change.
...
Similar to /msg, inviting a user that is not in a channel
you have op or voice in requires a free target; opers always
have a free target.
Being invited adds the source as a reply target.
2010-02-15 22:08:55 +01:00
Jilles Tjoelker
878733fd68
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
7eb9307794
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
3002877654
target change: Overwrite the least recently used target with a new one.
2010-02-15 00:31:17 +01:00
Jilles Tjoelker
d29b1834c3
Make the number of targets tracked for target change a #define.
2010-02-13 15:18:17 +01:00
Jilles Tjoelker
0e0c4508f1
testline/testgecos: Send "not an oper" message if appropriate.
2010-02-07 17:57:36 +01:00
Jilles Tjoelker
54656d7650
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
306274351b
Fix /links buffer overflow.
2010-01-27 21:05:10 +01:00
Jilles Tjoelker
04bf0760f9
Fix op-moderate (cmode +z) for channel names with '@'.
2010-01-24 19:37:00 +01:00
Jilles Tjoelker
343e239585
Put back fb7d6089158e, not setting large_ctcp_sent for CTCP ACTION.
2010-01-20 00:03:57 +01:00
William Pitcock
92a7995129
Merge +C (no CTCP to channels) from ircd-seven.
2010-01-19 02:11:04 -06:00
Jilles Tjoelker
ebc55af53c
Do not set large_ctcp_sent for CTCP ACTION as it does not request a reply.
2010-01-14 01:12:16 +01:00
Jilles Tjoelker
ddbd4a8151
If a removed resv was temporary, mention this in the server notice.
...
This agrees with xline.
2010-01-09 22:14:53 +01:00
Jilles Tjoelker
4d9be1a6a3
Add back unresv (permanent resv) notices.
2010-01-09 22:12:06 +01:00
Jilles Tjoelker
609a0d5514
Put back resv_forcepart.
...
This undoes erroneous revert in a3c064b3b8a2.
2010-01-09 19:08:48 +01:00
Jilles Tjoelker
70c6c150f6
Complete the move of xlines and resvs from aconf->name to aconf->host.
2010-01-08 18:46:29 +01:00
Jilles Tjoelker
c2e615382b
Do not change \s in xlines to spaces, match_esc() treats \s correctly.
...
This undoes erroneous revert in a3c064b3b8a2.
2010-01-08 18:13:47 +01:00
William Pitcock
4cb3ae7836
Add back missing notices.
2010-01-07 18:17:08 -06:00
William Pitcock
ff0482a9cb
Fix up more things with bandb.
2010-01-07 18:14:15 -06:00
William Pitcock
3aa4e417b9
Make this work again.
2010-01-07 17:50:49 -06:00
William Pitcock
03368cb9ab
Make this work again.
2010-01-07 17:49:08 -06:00
William Pitcock
d63447bfe7
Readd some oper notices.
2010-01-07 17:37:52 -06:00
William Pitcock
d8a4c5f618
Update modules to use bandb_add()/bandb_del().
2010-01-07 17:19:03 -06:00
Jilles Tjoelker
9e8b3b4345
SCAN UMODES: default list-max to 500, like a global WHO.
2010-01-01 22:55:25 +01:00
Stephen Bennett
4606e8fc6c
Merge
2009-12-08 19:23:32 +00:00
Stephen Bennett
c387fc41ae
Revert all presence-related changes
2009-12-08 19:22:55 +00:00
Jilles Tjoelker
14a64ad404
Use full (:n!u@h) prefix for sending ETB from a user to clients.
2009-09-20 00:44:47 +02:00
Jilles Tjoelker
100563e836
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
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
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
50aa2dd31d
presence: Use RPL_WHOISMETADATA.
2009-06-02 02:44:31 -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
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
0827f524e0
presence: Add m_presence module. This provides an ENCAP s2s interface and lowlevel client interface.
2009-06-02 01:45:43 -05: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
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
William Pitcock
16d8d9fc6d
can_kick hook, based on the ircd-seven one.
2009-04-20 09:20:11 -05:00
Stephen Bennett
59bb80930d
Allow / in spoofed hosts
2009-04-20 08:37:13 -05:00
Jilles Tjoelker
cb9345dcd1
Simplify floodcount checking, it is no longer affected by +g/+R anymore.
2009-04-19 00:04:21 +02:00
Jilles Tjoelker
c925bc7706
Use uid/sid for some ERR_CHANOPRIVSNEEDED if they go to a remote client.
2009-04-09 23:45:35 +02:00
Jilles Tjoelker
80df74cfc5
Add new topic command ETB, allowing services to set topic+setter+ts always
...
(provided channelTS != 0).
ETB is controlled by the EOPMOD capab. Fairly complicated
stuff is needed for older servers.
ETB can come from clients or servers, but at this time it
should only be sent from clients, as otherwise it is not
always possible to update older servers.
2009-03-29 17:08:42 +02:00
Jilles Tjoelker
6ce8910d97
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
cb4ddd7268
Do not send "<blah> is rehashing <blah>" notices to the remote oper.
2009-03-07 16:57:58 +01:00
Jilles Tjoelker
0b1e46f5b4
Allow /rehash throttles to clear throttling.
2009-03-07 01:49:09 +01:00
Jilles Tjoelker
8fc0a9b621
Correct WHOX overflow check so it also works for fields other than the last.
...
Found with llvm static analyzer.
2009-03-01 01:58:53 +01:00
Jilles Tjoelker
a6210c453a
Remove some unused variables.
...
Found with llvm static analyzer.
2009-03-01 01:53:40 +01:00
Jilles Tjoelker
dea418e9b4
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
f47964e44a
Disallow invites to juped channels.
...
In particular, this is checked when the source is
local and not resv_exempt, or the target is local and
not resv_exempt.
2009-02-06 14:07:03 +01:00
Jilles Tjoelker
6b2cf989b6
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