Elizabeth Jennifer Myers
8aabb973c0
Implement chanroles, as discussed with nenolod.
...
The theory behind this is that services sends an ENCAP * GRANT #channel
UID :+flagspec message specifying the chanroles the user has. They are
mapped into flag bits and applied to the membership of the user. They
then are restricted or permitted to what they can do based on the
permissions mask regardless of rank.
For backwards compatibility, the default permission bit (without a GRANT
statement) allows a user to to anything an existing op can do ONLY if
they are an op.
Todo: make CHANROLE_STATUS work (the ability to apply +ov to people),
which is at the moment controlled by CHANROLE_MODE.
2011-07-06 13:46:22 -04:00
Jilles Tjoelker
fa0e215255
Tweak previous commit to avoid problems with OMODE.
...
Do not allow a user to op themselves if they are
already opped, as "already opped" could be because
of OMODE's hack which will be unconditionally
reverted after the mode change.
Also, this matches old behaviour for users not
being able to generate mode changes redundantly
opping themselves.
Note that this change should only be taken advantage
of if all servers run patched code. Otherwise, mode
changes will be silently dropped and a desync
results.
2010-12-31 02:43:16 +01:00
William Pitcock
402cce0b9c
Remove stupid hybrid-esque 'impossible to op yourself' hack.
...
Who the fuck thought that check was a good idea?
2010-12-30 19:21:14 -06:00
William Pitcock
96d2612765
Don't bother running the get_channel_access hook if the client is not really on the channel.
2010-12-14 23:04:11 -06:00
William Pitcock
3c52f289b1
Actually make get_channel_access() public.
2010-12-07 00:12:36 -06:00
William Pitcock
749d8c11dd
Add a hook for get_channel_access().
2010-12-06 22:57:28 -06:00
William Pitcock
83b72f917a
chmode: Remove chm_regonly, a vestige from ratbox which doesn't apply to native charybdis networks.
2010-12-06 22:46:37 -06:00
Jilles Tjoelker
6917ed0eba
Send only one ERR_MLOCKRESTRICTED per MODE command.
...
This agrees with other error messages from MODE.
2010-08-24 23:03:23 +02:00
William Pitcock
6fb6bd15ae
Enforce TS rules on MLOCKs.
2010-08-23 20:22:59 -05:00
William Pitcock
01ed04abaf
Send numeric 735 on MLOCK policy-restricted mode changes that are ignored.
2010-08-23 19:04:46 -05:00
Stephen Bennett
6b8db2daf2
Allow the final parameter of MLOCK to be empty, to remove an existing mlock
2010-05-02 20:42:46 +01:00
Stephen Bennett
78e6b731e4
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
Jilles Tjoelker
19716b9fd6
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
William Pitcock
f02f338b31
chm_simple(): enforce MLOCK
2010-03-07 23:15:52 -06:00
William Pitcock
8727cbe88a
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
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
William Pitcock
2e918bf515
Merge +C (no CTCP to channels) from ircd-seven.
2010-01-19 02:11:04 -06:00
Stephen Bennett
179f024d18
/ is a host character and not a nick character, so make pretty_mask treat it as such
2009-04-20 08:42:41 -05:00
Jilles Tjoelker
a33bdd9fb6
Remove obsolete comment.
2009-01-25 21:02:04 +01: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
Valery V Yatsko
c18cb68b91
Generating cflags bufs dynamically: one for RPL_MYINFO and one for
...
supported.c
2008-06-25 07:51:32 +04:00
Valery V Yatsko
9bec26cc38
Merged find_orphaned_cflags and construct_noparam_modes in one function
...
as there's no reason to use them separetly
2008-06-25 07:13:58 +04:00
Valery V Yatsko
f588b95674
New way of noparam mode search
2008-06-24 22:21:26 +04:00
Valery V Yatsko
cbed45a2da
New orphaned cflags implementation, now using chm_orphaned instead of
...
storing orphaned flags in a variable
2008-06-24 22:00:41 +04:00
Jilles Tjoelker
d463189921
Fix some tracking for cmode +r.
2008-06-25 19:40:12 +02:00
Jilles Tjoelker
84c9a8c7be
Fix limits on simple modes.
...
Formerly some mode strings like +svvvv were not accepted.
2008-06-25 19:27:30 +02:00
Valery V Yatsko
46d59e1138
A draft version of find_cmode_slot and orphaned concept for channel
...
flags
2008-06-24 21:26:49 +04:00
Valery V Yatsko
efccc22c27
Applying dyn-cmodes.diff - first step in implementing channel module
...
addition in extensions
2008-06-24 20:45:19 +04:00
Jilles Tjoelker
2e819b6b3e
Fix various compiler warnings.
2008-04-20 15:20:10 +02:00
Valery Yatsko
4562c60489
irc_string.h -> match.h, irc_string.h; includes changed
2008-04-20 09:47:38 +04:00
Valery Yatsko
cbe4e1ba31
legacy irc sprintf gone
2008-04-20 09:12:09 +04:00
Valery Yatsko
f427c8b00d
strlcpy -> rb_strlcpy
2008-04-20 08:40:40 +04:00
Valery Yatsko
c84557ac70
chm_* declarations gone to chmode.h - this makes some modules clean
2008-04-08 23:39:35 +04:00
William Pitcock
4016731b1c
s_log.* -> logger.* (s_foo looks ugly, lets try to get rid of it)
2008-04-02 21:52:01 -05:00
Valery Yatsko
e335494516
CurrentTime -> rb_currenttime();
2008-04-02 03:53:20 +04:00
Valery Yatsko
81af5bcb39
libcharybdis includes gone.
2008-04-02 02:39:19 +04:00
William Pitcock
5cefa1d6c8
macro replacement
2008-04-01 15:43:10 -05:00
William Pitcock
330fc5c10c
dlink -> rb_dlink
2008-04-01 15:41:52 -05:00
William Pitcock
b2f0da886e
ircs[n]printf -> rb_s[n]printf
2008-04-01 15:38:40 -05:00
William Pitcock
aed5ce90a5
Remove CHFL_DEOPPED entirely.
...
Since charybdis 2.3 will require TS6, emulating legacy semantics is
unnecessary.
2008-02-27 14:08:27 -06:00
Jilles Tjoelker
1ef5b43053
Require resv oper privilege to set cmode +L or +P.
2007-12-18 00:24:05 +01:00
jilles
832942858c
[svn] Fix desyncs with very long extbans. Bans can now be upto 195 chars long.
2007-11-07 15:45:14 -08:00
jilles
fd488ac17a
[svn] Use mask_match() to check bans from local clients for
...
redundancy. This fixes the problem that bans like *!?@*
prevent any ban starting with *!*@ being set.
2007-07-14 06:34:50 -07:00
jilles
94d53e53a4
[svn] add_id() for local client: do not collapse() the ban mask.
...
The code calling this already collapses the mask, and if
not, doing it here would cause a desync.
2007-07-14 05:20:48 -07:00
jilles
1178125363
[svn] Put "End of Channel Quiet List" instead of
...
"End of Channel Ban List" for a +q list.
Due to client restrictions the numerics for
quiet lists must be the same as for ban lists.
2007-02-21 11:52:51 -08:00
nenolod
5366977b4f
[svn] Backport from early 3.x:
...
--
nenolod 2006/09/27 16:39:14 UTC (20060927-2178)
Log:
- remove "Processing connection to foobar.net" message
Changes: Modified:
+0 -3 trunk/src/s_auth.c (File Modified)
nenolod 2006/09/27 16:34:26 UTC (20060927-2176)
Log:
- missed the processing connection one (actually, we can probably nuke this one)
Changes: Modified:
+1 -2 trunk/src/s_auth.c (File Modified)
river 2006/09/27 16:33:05 UTC (20060927-2174)
Log:
get_client_name = stupid
Changes: Modified:
+10 -7 trunk/modules/core/m_kill.c (File Modified)
nenolod 2006/09/27 16:32:37 UTC (20060927-2172)
Log:
- remove excessive arguments
Changes: Modified:
+1 -2 trunk/src/s_conf.c (File Modified)
+1 -1 trunk/src/s_user.c (File Modified)
nenolod 2006/09/27 16:30:59 UTC (20060927-2170)
Log:
- use sendto_one_notice() for on-connect notices too.
Changes: Modified:
+10 -10 trunk/src/s_auth.c (File Modified)
nenolod 2006/09/27 16:27:01 UTC (20060927-2168)
Log:
- use sendto_one_notice() in the core, too.
Changes: Modified:
+2 -2 trunk/src/chmode.c (File Modified)
+8 -15 trunk/src/modules.c (File Modified)
+3 -5 trunk/src/s_conf.c (File Modified)
+1 -2 trunk/src/s_newconf.c (File Modified)
+20 -57 trunk/src/s_user.c (File Modified)
river 2006/09/27 16:19:25 UTC (20060927-2166)
Log:
the KILL command will use get_client_name(, SHOW_IP) instead of
target->name, and will show a more useful error for local opers
Changes: Modified:
+6 -4 trunk/modules/core/m_kill.c (File Modified)
nenolod 2006/09/27 16:09:48 UTC (20060927-2164)
Log:
- fix bugs in sendto_one_notice()/sendto_one_numeric() where a client identifier won't be sent to unregistered clients
Changes: Modified:
+4 -2 trunk/src/send.c (File Modified)
nenolod 2006/09/27 16:05:46 UTC (20060927-2161)
Log:
- back out r2159
Changes: Modified:
+1 -1 trunk/include/client.h (File Modified)
nenolod 2006/09/27 16:04:05 UTC (20060927-2159)
Log:
- get_id(): fall back to "*" if client has no known name
Changes: Modified:
+1 -1 trunk/include/client.h (File Modified)
nenolod 2006/09/27 16:01:29 UTC (20060927-2157)
Log:
- convert to sendto_one_notice().
Changes: Modified:
+2 -3 trunk/unsupported/m_clearchan.c (File Modified)
+4 -6 trunk/unsupported/m_force.c (File Modified)
nenolod 2006/09/27 15:57:11 UTC (20060927-2155)
Log:
- use sendto_one_notice() in many places instead of
sendto_one(source_p, ":%s NOTICE %s :", ...);
Changes: Modified:
+10 -25 trunk/extensions/example_module.c (File Modified)
+5 -14 trunk/extensions/hurt.c (File Modified)
+1 -2 trunk/extensions/m_42.c (File Modified)
+7 -12 trunk/extensions/m_mkpasswd.c (File Modified)
+1 -2 trunk/extensions/m_ojoin.c (File Modified)
+1 -2 trunk/extensions/m_opme.c (File Modified)
+3 -3 trunk/extensions/spy_whois_notice.c (File Modified)
+3 -3 trunk/extensions/spy_whois_notice_global.c (File Modified)
+3 -7 trunk/modules/core/m_die.c (File Modified)
+2 -4 trunk/modules/core/m_kill.c (File Modified)
+2 -2 trunk/modules/core/m_squit.c (File Modified)
+1 -2 trunk/modules/m_challenge.c (File Modified)
+11 -15 trunk/modules/m_connect.c (File Modified)
+20 -28 trunk/modules/m_dline.c (File Modified)
+2 -2 trunk/modules/m_etrace.c (File Modified)
+11 -21 trunk/modules/m_gline.c (File Modified)
+2 -4 trunk/modules/m_kline.c (File Modified)
+1 -2 trunk/modules/m_rehash.c (File Modified)
+3 -7 trunk/modules/m_restart.c (File Modified)
+31 -45 trunk/modules/m_set.c (File Modified)
+2 -4 trunk/modules/m_testmask.c (File Modified)
+5 -8 trunk/modules/m_unreject.c (File Modified)
+2 -5 trunk/modules/m_xline.c (File Modified)
--
2007-01-24 23:23:01 -08:00
nenolod
212380e3f4
[svn] - the new plan:
...
+ branches/release-2.1 -> 2.2 base
+ 3.0 -> branches/cxxconversion
+ backport some immediate 3.0 functionality for 2.2
+ other stuff
2007-01-24 22:40:21 -08:00