solanum/extensions
Ed Kellett ed3ca2ff16
Propagate OPER
Move opername and privset storage to struct User, so it can exist for
remote opers.

On /oper and when bursting opers, send:

    :foo OPER opername privset

which sets foo's opername and privset. The contents of the privset on
remote servers come from the remote server's config, so the potential
for confusion exists if these do not match.

If an oper's privset does not exist on a server that sees it, it will
complain, but create a placeholder privset. If the privset is created by
a rehash, this will be reflected properly.

/privs is udpated to take an optional argument, the server to query, and
is now local by default:

    /privs [[nick_or_server] nick]
2019-09-13 10:08:27 +01:00
..
chantype_dummy.c extensions/chantype_dummy: ^ is a valid nickchar, but > isn't 2016-09-16 14:12:29 -05:00
chm_adminonly.c Move module description headers to the top 2016-03-09 01:29:41 -06:00
chm_insecure.c Move module description headers to the top 2016-03-09 01:29:41 -06:00
chm_nonotice.c Move module description headers to the top 2016-03-09 01:29:41 -06:00
chm_operonly.c Move module description headers to the top 2016-03-09 01:29:41 -06:00
chm_operonly_compat.c Move module description headers to the top 2016-03-09 01:29:41 -06:00
chm_operpeace.c Move module description headers to the top 2016-03-09 01:29:41 -06:00
chm_quietunreg_compat.c Move module description headers to the top 2016-03-09 01:29:41 -06:00
chm_sslonly.c Move module description headers to the top 2016-03-09 01:29:41 -06:00
chm_sslonly_compat.c Move module description headers to the top 2016-03-09 01:29:41 -06:00
createauthonly.c Move module description headers to the top 2016-03-09 01:29:41 -06:00
createoperonly.c Move module description headers to the top 2016-03-09 01:29:41 -06:00
example_module.c Message handlers should return void. 2016-03-09 01:37:03 -06:00
extb_account.c Move module description headers to the top 2016-03-09 01:29:41 -06:00
extb_canjoin.c Move module description headers to the top 2016-03-09 01:29:41 -06:00
extb_channel.c extensions/extb_channel: Allow matching secret channels. 2016-12-29 06:21:58 +00:00
extb_combi.c extb_combi: More int to bool conversion 2016-03-25 19:47:58 -04:00
extb_extgecos.c Move module description headers to the top 2016-03-09 01:29:41 -06:00
extb_hostmask.c gcc7 fixes: NICKLEN -> NAMELEN 2018-01-19 23:26:20 +00:00
extb_oper.c Propagate OPER 2019-09-13 10:08:27 +01:00
extb_realname.c Move module description headers to the top 2016-03-09 01:29:41 -06:00
extb_server.c Move module description headers to the top 2016-03-09 01:29:41 -06:00
extb_ssl.c Move module description headers to the top 2016-03-09 01:29:41 -06:00
extb_usermode.c extensions: Fix duplicate extban character usage 2016-03-28 03:26:10 +01:00
force_user_invis.c AV2 descriptions: forgot these 2016-03-07 04:11:58 -06:00
helpops.c helpops: remove +H if usermode:helpops is lost 2019-09-07 15:04:05 +01:00
hide_uncommon_channels.c Move module description headers to the top 2016-03-09 01:29:41 -06:00
hurt.c Use rb_* versions of nonportable string functions 2016-04-05 05:39:59 -05:00
ip_cloaking.c Move module description headers to the top 2016-03-09 01:29:41 -06:00
ip_cloaking_3.0.c cppcheck: fix various warnings/errors 2016-10-28 20:13:36 +01:00
ip_cloaking_4.0.c Move module description headers to the top 2016-03-09 01:29:41 -06:00
ip_cloaking_old.c cppcheck: fix various warnings/errors 2016-10-28 20:13:36 +01:00
m_adminwall.c Message handlers should return void. 2016-03-09 01:37:03 -06:00
m_echotags.c More cleanup 2016-03-23 00:11:26 -04:00
m_extendchans.c Message handlers should return void. 2016-03-09 01:37:03 -06:00
m_findforwards.c Message handlers should return void. 2016-03-09 01:37:03 -06:00
m_identify.c common.h: raison d'être is gone, so out it goes. 2016-03-23 09:33:56 -05:00
m_locops.c Move m_locops module to extensions. 2016-04-02 05:20:30 -05:00
m_mkpasswd.c mkpasswd: use urandom for salts, cleanup 2016-08-15 09:50:53 +00:00
m_ojoin.c ircd: send tags on every message 2017-08-06 16:21:29 +01:00
m_okick.c ircd: send tags on every message 2017-08-06 16:21:29 +01:00
m_omode.c ircd: send tags on every message 2017-08-06 16:21:29 +01:00
m_opme.c ircd: send tags on every message 2017-08-06 16:21:29 +01:00
m_remove.c ircd: send tags on every message 2017-08-06 16:21:29 +01:00
m_roleplay.c ircd: send tags on every message 2017-08-06 16:21:29 +01:00
m_sendbans.c common.h: raison d'être is gone, so out it goes. 2016-03-23 09:33:56 -05:00
m_webirc.c librb: Fix type of dst for rb_inet_pton_sock() 2019-08-31 16:10:50 +01:00
Makefile.am override: move kick immunity to its own module 2019-09-07 14:53:21 +01:00
no_kill_services.c Port some more extensions to AV2 and add descriptions 2016-03-07 03:50:03 -06:00
no_locops.c Port some more extensions to AV2 and add descriptions 2016-03-07 03:50:03 -06:00
no_oper_invis.c Port some more extensions to AV2 and add descriptions 2016-03-07 03:50:03 -06:00
override.c Merge pull request #278 from edk0/override 2019-09-07 14:26:01 +00:00
override_kick_immunity.c override: move kick immunity to its own module 2019-09-07 14:53:21 +01:00
README Remove m_42 from README. 2016-03-06 23:58:32 -06:00
restrict-unauthenticated.c Port some more extensions to AV2 and add descriptions 2016-03-07 03:50:03 -06:00
sno_channelcreate.c Move module description headers to the top 2016-03-09 01:29:41 -06:00
sno_farconnect.c More bool conversions 2016-03-09 02:19:31 -06:00
sno_globalkline.c Move module description headers to the top 2016-03-09 01:29:41 -06:00
sno_globalnickchange.c More bool conversions 2016-03-09 02:19:31 -06:00
sno_globaloper.c Move module description headers to the top 2016-03-09 01:29:41 -06:00
sno_whois.c Move module description headers to the top 2016-03-09 01:29:41 -06:00
spy_admin_notice.c Update extensions/spy_* with AV2 descriptions. 2016-03-07 04:09:14 -06:00
spy_info_notice.c Update extensions/spy_* with AV2 descriptions. 2016-03-07 04:09:14 -06:00
spy_links_notice.c Update extensions/spy_* with AV2 descriptions. 2016-03-07 04:09:14 -06:00
spy_motd_notice.c Update extensions/spy_* with AV2 descriptions. 2016-03-07 04:09:14 -06:00
spy_stats_notice.c Update extensions/spy_* with AV2 descriptions. 2016-03-07 04:09:14 -06:00
spy_stats_p_notice.c Update extensions/spy_* with AV2 descriptions. 2016-03-07 04:09:14 -06:00
spy_trace_notice.c Update extensions/spy_* with AV2 descriptions. 2016-03-07 04:09:14 -06:00
umode_noctcp.c Use rb_* versions of nonportable string functions 2016-04-05 05:39:59 -05:00

This directory contains extensions (modules) to charybdis ircd that
have been contributed by other people, or written by our development
team.  Unsupported extensions live under unsupported/.


Modules
-------

createauthonly.c - Only allow authenticated (identified) users to create
                   channels.

ip_cloaking.c  - Cloak (spoof) the host for users that have umode +h.

m_adminwall.c  - Sends a message to all admins network-wide (umode +a)
                 Syntax: ADMINWALL :<message>

m_findforwards.c - Find channels that forward (+f) to a given channel.
                   Syntax: FINDFORWARDS <channel>

m_identify.c - Identifies to NickServ or ChanServ
               Syntax: IDENTIFY [nick|channel] <password>

m_mkpasswd.c   - MKPASSWD - generate a DES or MD5 encryption of a password
                 Syntax:  MKPASSWD <plaintext> [MD5|DES]

m_ojoin.c      - OJOIN - Join a channel through any modes or limits with 
                         an optional status (@+)
                 Syntax: OJOIN [status]<channel>

m_olist.c      - OLIST - Lists channels like LIST, but shows hidden
                         channels. Oper only of course.

m_opme.c       - OPME - Allows an admin to op themselves in an opless channel
                 Syntax: OPME <channel>

m_omode.c      - OMODE - Allows an admin to do all sorts of evil upon a
			 channel, sets modes with extreme prejudice

m_remove.c     - REMOVE - Implements /REMOVE, which allows a channel op to
                          force-part a problematic user from a channel.  Most
                          likely, you don't want this, because it is non-standard,
                          and easily worked around for autojoin purposes.

no_oper_invis.c - Disallow opers setting marking themselves as invisible
                  (+i) unless they have the hidden_oper flag.

example_module.c - An example module to be used for creating your own.
                   Syntax: TEST


Spy Modules
-----------

The following are the 'spy' parts, accessible via the +y snomask

spy_admin_notice.c   - Spy on clients doing ADMIN
spy_info_notice.c    - Spy on clients doing INFO
spy_links_notice.c   - Spy on clients doing LINKS
spy_motd_notice.c    - Spy on clients doing MOTD
spy_stats_notice.c   - Spy on clients doing all STATS
spy_stats_p_notice.c - Spy on clients doing STATS p only
spy_trace_notice.c   - Spy on clients doing TRACE

Note: if you have both spy_stats_notice.c and spy_stats_p_notice.c loaded
you will get two messages.

Snomask Modules
---------------

sno_farconnect.c  - Remote client connect/exit notices (snomask +F)
sno_globalkline.c - Global K/D/X-line activation notices
sno_globaloper.c  - Global oper-up notices
sno_whois.c       - Spy on clients who WHOIS you seeing idle time (snomask +W).

Extban Modules
--------------

extb_account.so  - Account bans (+b $a[:mask])
extb_canjoin.so  - Banned from another channel (+b $j:mask)
extb_channel.so  - Other-channel bans (+b $c:mask)
extb_extgecos.so - Extended ban (+b $x:mask)
extb_oper.so     - Oper bans (+b $o)
extb_realname.so - Realname (gecos) bans (+b $r:mask)
extb_server.so   - Server bans (+b $s:mask)