├── .dockerignore ├── .gitattributes ├── .gitignore ├── .indent.pro ├── .lvimrc ├── .travis.yml ├── .ycm_extra_conf.py ├── CONTRIBUTING.md ├── CREDITS ├── Dockerfile ├── INSTALL ├── LICENSE ├── Makefile.am ├── NEWS ├── README.md ├── autogen.sh ├── bandb ├── Makefile.am ├── bandb.c ├── rsdb.h └── rsdb_sqlite3.c ├── configure.ac ├── doc ├── Makefile.am ├── README.md ├── example.conf ├── historical │ ├── CIDR.txt │ ├── Tao-of-IRC.940110 │ ├── operguide.txt │ └── opermyth.txt ├── ircd.8 ├── ircd.motd ├── reference.charybdis.conf ├── reference.conf ├── sgml │ └── oper-guide │ │ ├── charybdis-oper-guide.sgml │ │ ├── cmodes.sgml │ │ ├── commands.sgml │ │ ├── config.sgml │ │ ├── intro.sgml │ │ ├── oprivs.sgml │ │ ├── stylesheet.dsl │ │ ├── ucommands.sgml │ │ └── umodes.sgml └── technical │ ├── README.TSora │ ├── capab.txt │ ├── cidr_bans │ ├── cluster.txt │ ├── elemental-deviation.markdown │ ├── euid.txt │ ├── event.txt │ ├── extban.txt │ ├── fd-management.txt │ ├── hooks.txt │ ├── hostmask.txt │ ├── index.txt │ ├── linebuf.txt │ ├── monitor.txt │ ├── network.txt │ ├── sasl.txt │ ├── send.txt │ ├── ts6-protocol.txt │ └── ts6.txt ├── extensions ├── .indent.pro ├── Makefile.am ├── README ├── block_invalid_utf8.c ├── chm_adminonly.c ├── chm_nocaps.c ├── chm_norepeat.c ├── chm_operonly.c ├── chm_operonly_compat.c ├── chm_quietunreg_compat.c ├── chm_sslonly.c ├── chm_sslonly_compat.c ├── createauthonly.c ├── createoperonly.c ├── example_module.c ├── extb_account.c ├── extb_canjoin.c ├── extb_channel.c ├── extb_extgecos.c ├── extb_oper.c ├── extb_realname.c ├── extb_server.c ├── extb_ssl.c ├── extb_usermode.c ├── force_user_invis.c ├── hurt.c ├── ip_cloaking.c ├── m_42.c ├── m_adminwall.c ├── m_cycle.c ├── m_findforwards.c ├── m_force.c ├── m_identify.c ├── m_mkpasswd.c ├── m_oaccept.c ├── m_ojoin.c ├── m_okick.c ├── m_olist.c ├── m_omode.c ├── m_opme.c ├── m_oquit.c ├── m_roleplay.c ├── m_sendbans.c ├── no_locops.c ├── no_oper_invis.c ├── sno_farconnect.c ├── sno_globalkline.c ├── sno_globaloper.c ├── spy_admin_notice.c ├── spy_info_notice.c ├── spy_links_notice.c ├── spy_motd_notice.c ├── spy_stats_notice.c ├── spy_stats_p_notice.c └── spy_trace_notice.c ├── extra ├── runit │ └── ircd │ │ └── run └── services │ ├── anope1.8 │ └── elemental-ircd.c │ ├── anope2.0 │ └── elemental-ircd.cpp │ └── atheme │ └── elemental-ircd.c ├── help ├── Makefile.am ├── opers │ ├── accept │ ├── admin │ ├── adminwall │ ├── away │ ├── capab │ ├── chantrace │ ├── chghost │ ├── close │ ├── cmode │ ├── cnotice │ ├── connect │ ├── cprivmsg │ ├── credits │ ├── cycle │ ├── die │ ├── dline │ ├── error │ ├── etrace │ ├── extban │ ├── findforwards │ ├── forcejoin │ ├── forcepart │ ├── help │ ├── identify │ ├── index │ ├── info │ ├── invite │ ├── ison │ ├── join │ ├── kick │ ├── kill │ ├── kline │ ├── knock │ ├── links │ ├── list │ ├── locops │ ├── lusers │ ├── map │ ├── masktrace │ ├── mkpasswd │ ├── modlist │ ├── modload │ ├── modreload │ ├── modrestart │ ├── modunload │ ├── monitor │ ├── motd │ ├── names │ ├── nick │ ├── notice │ ├── oaccept │ ├── ojoin │ ├── okick │ ├── omode │ ├── oper │ ├── operspy │ ├── operwall │ ├── opme │ ├── oquit │ ├── part │ ├── pass │ ├── ping │ ├── pong │ ├── post │ ├── privmsg │ ├── privs │ ├── quit │ ├── rehash │ ├── restart │ ├── resv │ ├── roleplay │ ├── scan │ ├── sendbans │ ├── server │ ├── set │ ├── sjoin │ ├── snomask │ ├── squit │ ├── stats │ ├── svinfo │ ├── testgecos │ ├── testline │ ├── testmask │ ├── time │ ├── topic │ ├── trace │ ├── uhelp │ ├── umode │ ├── undline │ ├── unkline │ ├── unreject │ ├── unresv │ ├── unxline │ ├── user │ ├── userhost │ ├── users │ ├── version │ ├── wallops │ ├── who │ ├── whois │ ├── whowas │ └── xline └── users │ ├── cmode │ ├── index │ ├── info │ ├── notice │ ├── privmsg │ ├── roleplay │ ├── stats │ └── umode ├── include ├── .indent.pro ├── bandbi.h ├── blacklist.h ├── cache.h ├── channel.h ├── chmode.h ├── class.h ├── client.h ├── common.h ├── config.h ├── defaults.h ├── hash.h ├── hook.h ├── hostmask.h ├── inline │ └── stringops.h ├── irc_dictionary.h ├── ircd.h ├── ircd_defs.h ├── ircd_getopt.h ├── ircd_signal.h ├── listener.h ├── logger.h ├── m_info.h ├── match.h ├── modules.h ├── monitor.h ├── msg.h ├── newconf.h ├── numeric.h ├── operhash.h ├── packet.h ├── parse.h ├── privilege.h ├── reject.h ├── res.h ├── reslib.h ├── restart.h ├── s_auth.h ├── s_conf.h ├── s_newconf.h ├── s_serv.h ├── s_stats.h ├── s_user.h ├── scache.h ├── send.h ├── snomask.h ├── sslproc.h ├── stdinc.h ├── substitution.h ├── supported.h ├── tgchange.h └── whowas.h ├── libratbox ├── .indent.pro ├── COPYING ├── CREDITS ├── ChangeLog ├── INSTALL ├── Makefile.am ├── README ├── TODO ├── configure.ac ├── extra │ └── gdb_functions ├── include │ ├── .gitignore │ ├── Makefile.am │ ├── commio-int.h │ ├── commio-ssl.h │ ├── event-int.h │ ├── ratbox_lib.h │ ├── rb_attributes.h.m4 │ ├── rb_balloc.h │ ├── rb_commio.h │ ├── rb_event.h │ ├── rb_helper.h │ ├── rb_linebuf.h │ ├── rb_memory.h │ ├── rb_patricia.h │ ├── rb_rawbuf.h │ ├── rb_snprintf.h │ └── rb_tools.h ├── libratbox.pc.in ├── m4 │ ├── charybdis.m4 │ ├── gcc_stack_protect.m4 │ └── ratbox.m4 └── src │ ├── Makefile.am │ ├── balloc.c │ ├── commio.c │ ├── crypt.c │ ├── event.c │ ├── export-syms.txt │ ├── helper.c │ ├── linebuf.c │ ├── netio │ ├── devpoll.c │ ├── epoll.c │ ├── kqueue.c │ ├── poll.c │ ├── ports.c │ ├── select.c │ └── win32.c │ ├── patricia.c │ ├── platform │ ├── unix.c │ └── windows.c │ ├── ratbox_lib.c │ ├── rawbuf.c │ ├── rb_memory.c │ ├── snprintf.c │ ├── ssl │ ├── gnutls.c │ └── openssl.c │ └── tools.c ├── m4 ├── modules ├── .indent.pro ├── Makefile.am ├── chm_nocolour.c ├── chm_noctcp.c ├── chm_nonotice.c ├── chm_nooperkick.c ├── core │ ├── m_ban.c │ ├── m_die.c │ ├── m_error.c │ ├── m_join.c │ ├── m_kick.c │ ├── m_kill.c │ ├── m_message.c │ ├── m_metadata.c │ ├── m_mode.c │ ├── m_nick.c │ ├── m_part.c │ ├── m_quit.c │ ├── m_server.c │ └── m_squit.c ├── m_accept.c ├── m_admin.c ├── m_away.c ├── m_cap.c ├── m_capab.c ├── m_certfp.c ├── m_chghost.c ├── m_close.c ├── m_cmessage.c ├── m_connect.c ├── m_dline.c ├── m_encap.c ├── m_etrace.c ├── m_help.c ├── m_info.c ├── m_invite.c ├── m_ison.c ├── m_kline.c ├── m_knock.c ├── m_links.c ├── m_list.c ├── m_locops.c ├── m_lusers.c ├── m_map.c ├── m_monitor.c ├── m_motd.c ├── m_names.c ├── m_oper.c ├── m_operspy.c ├── m_pass.c ├── m_ping.c ├── m_pong.c ├── m_post.c ├── m_privs.c ├── m_rehash.c ├── m_restart.c ├── m_resv.c ├── m_sasl.c ├── m_scan.c ├── m_services.c ├── m_set.c ├── m_signon.c ├── m_snote.c ├── m_stats.c ├── m_svinfo.c ├── m_tb.c ├── m_testline.c ├── m_testmask.c ├── m_time.c ├── m_topic.c ├── m_trace.c ├── m_unreject.c ├── m_user.c ├── m_userhost.c ├── m_users.c ├── m_version.c ├── m_wallops.c ├── m_webirc.c ├── m_who.c ├── m_whois.c ├── m_whowas.c ├── m_xline.c ├── m_yourid.c └── sno_routing.c ├── scripts ├── coverity.sh ├── maintainer_rebuild.sh ├── makerelease.sh └── version.sh ├── src ├── .gitignore ├── .indent.pro ├── Makefile.am ├── bandbi.c ├── blacklist.c ├── cache.c ├── channel.c ├── chmode.c ├── class.c ├── client.c ├── extban.c ├── getopt.c ├── hash.c ├── hook.c ├── hostmask.c ├── irc_dictionary.c ├── ircd.c ├── ircd_lexer.l ├── ircd_parser.y ├── ircd_signal.c ├── listener.c ├── logger.c ├── main.c ├── match.c ├── messages.tab ├── modules.c ├── monitor.c ├── newconf.c ├── numeric.c ├── operhash.c ├── packet.c ├── parse.c ├── privilege.c ├── reject.c ├── res.c ├── reslib.c ├── restart.c ├── s_auth.c ├── s_conf.c ├── s_newconf.c ├── s_serv.c ├── s_user.c ├── scache.c ├── send.c ├── snomask.c ├── sslproc.c ├── substitution.c ├── supported.c ├── tgchange.c └── whowas.c ├── ssld ├── Makefile.am └── ssld.c ├── tests ├── .gitignore ├── Makefile.am ├── admin-format.tcl ├── away-notify.tcl ├── chghost.tcl ├── echo-message.tcl ├── kick.tcl ├── lib │ ├── numeric.tcl │ └── runtest.tcl ├── metadata.tcl ├── mode-nooperkick.tcl ├── monitor.tcl ├── monitor_oom.tcl ├── omode.tcl ├── privmsg.tcl ├── register.tcl ├── snomask-kline.tcl ├── topic.tcl ├── umodeg.tcl └── yourid.tcl ├── testsuite ├── .gitignore ├── astyle │ └── check_style.sh ├── common.conf ├── dh.pem ├── ensure-links.tcl ├── ircd.conf.1 ├── ircd.conf.2 ├── ircd.conf.3 ├── killall.sh ├── ssl.cert ├── ssl.key ├── startall.sh └── wait-links.sh └── tools ├── Makefile.am ├── README ├── README.mkpasswd ├── genssl.sh.in ├── mkkeypair ├── mkpasswd.c ├── shadow_help_irssi.pl ├── shadow_help_weechat.pl ├── shadow_help_xchat.pl ├── untabify └── viconf.c /.dockerignore: -------------------------------------------------------------------------------- 1 | .gitignore -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | *.exp linguist-language=TCL 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | Makefile 2 | Makefile.in 3 | *~ 4 | *.o 5 | *.so 6 | *.dSYM/ 7 | *.lo 8 | *.la 9 | *.lib 10 | *.swp 11 | *.orig 12 | *.log 13 | *.exe 14 | *.dll 15 | *.def 16 | .deps 17 | .dirstamp 18 | .libs 19 | aclocal.m4 20 | autom4te.cache 21 | bandb/bandb 22 | bandb/bantool 23 | compile 24 | confdefs.h 25 | config.log 26 | config.status 27 | config.guess 28 | config.sub 29 | configure 30 | cscope.* 31 | depcomp 32 | include/setup.h 33 | install-sh 34 | libratbox/include/libratbox_config.h.in 35 | libratbox/include/libratbox_config.h 36 | libratbox/include/librb-config.h 37 | libratbox/include/stamp-h1 38 | libratbox/libratbox.pc 39 | libratbox/libtool 40 | libratbox/m4/libtool.m4 41 | libratbox/m4/lt* 42 | libratbox/m4/argz.m4 43 | libratbox/src/version.c 44 | libratbox/aux 45 | libtool 46 | libltdl/ 47 | ltmain.sh 48 | missing 49 | scripts/*.tbz2 50 | scripts/*.tgz 51 | scripts/*.tar.bz2 52 | scripts/*.tar.gz 53 | servlink/servlink 54 | setup.h.in 55 | src/ircd 56 | src/version.c 57 | src/ircd_lexer.c 58 | src/ircd_parser.c 59 | src/ircd_parser.h 60 | stamp-h1 61 | ssld/ssld 62 | tools/convertilines 63 | tools/convertklines 64 | tools/genssl.sh 65 | tools/mkpasswd 66 | tools/viconf 67 | ylwrap 68 | include/serno.h 69 | libratbox/src/version.c.last 70 | *.pyc 71 | .git 72 | 73 | tags 74 | 75 | ### Vim ### 76 | [._]*.s[a-w][a-z] 77 | [._]s[a-w][a-z] 78 | *.un~ 79 | Session.vim 80 | .netrwhist 81 | *~ 82 | 83 | -------------------------------------------------------------------------------- /.indent.pro: -------------------------------------------------------------------------------- 1 | /* $Id: .indent.pro 238 2005-09-21 05:26:03Z nenolod $ */ 2 | 3 | /* copy this file to the source dir then run indent file.c */ 4 | 5 | --gnu-style 6 | 7 | /* This is the indent before the brace not inside the block. */ 8 | --brace-indent0 9 | 10 | /* Indent case: by 2 and braces inside case by 0(then by 0)... */ 11 | --case-brace-indentation0 12 | --case-indentation2 13 | 14 | --indent-level8 15 | 16 | /* Put while() on the brace from do... */ 17 | --cuddle-do-while 18 | 19 | /* Disable an annoying format... */ 20 | --no-space-after-function-call-names 21 | 22 | /* Disable an annoying format... */ 23 | --dont-break-procedure-type 24 | 25 | /* Disable an annoying format... */ 26 | --no-space-after-casts 27 | 28 | --line-length200 29 | 30 | /* typedefs */ 31 | -T boolean_t 32 | -T node_t 33 | -T list_t 34 | -T tld_t 35 | -T kline_t 36 | -T EVH 37 | -T sra_t 38 | -T server_t 39 | -T user_t 40 | -T channel_t 41 | -T chanuser_t 42 | -T myuser_t 43 | -T mychan_t 44 | -T chanacs_t 45 | -T CONFIGENTRY 46 | -T CONFIGFILE 47 | -T Block 48 | -T MemBlock 49 | -T BlockHeap 50 | -------------------------------------------------------------------------------- /.lvimrc: -------------------------------------------------------------------------------- 1 | au BufWritePost *.c execute 'silent !astyle --style=linux --mode=c -n' shellescape(expand('%'), 1) ' >/dev/null' 2 | au BufWritePost *.h execute 'silent !astyle --style=linux --mode=c -n' shellescape(expand('%'), 1) ' >/dev/null' 3 | 4 | setl ts=4 5 | setl sw=4 6 | setl et 7 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contribution guidelines 2 | 3 | Please open contributions as either issue reports or pull requests. We will ask 4 | that anything that requires testing outside our normally supported platforms be 5 | marked as such. 6 | 7 | Style 8 | ----- 9 | 10 | Please run all code against the following `astyle` command before sending in 11 | a pull request: 12 | 13 | ```console 14 | $ astyle --style=linux --mode=c -n $file 15 | ``` 16 | 17 | It should be trivial to set up your text editor to do this for you. If you use 18 | vim, add this to your vim configuration: 19 | 20 | ```vimscript 21 | " Lvimrc 22 | " if .lvimrc exists in current or parent directory of the currently loaded file, 23 | " load it as config 24 | if filereadable('../.lvimrc') 25 | source ../.lvimrc 26 | endif 27 | if filereadable('./.lvimrc') 28 | source ./.lvimrc 29 | endif 30 | ``` 31 | 32 | Otherwise please make sure the appropriate command is ran as part of your 33 | editing process before you send a pull request. All pull requests that do not 34 | follow the coding style will not be considered until they follow the coding 35 | style. 36 | 37 | Testing 38 | ------- 39 | 40 | When testing Elemental, please be sure to test it on a network of at least 41 | 3 instances of elemental. Please also be sure to have one of these instances 42 | run **without** the patch you are testing, to be able to show that there is 43 | a difference. 44 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM docker.io/phusion/baseimage:0.9.17 2 | MAINTAINER Xena 3 | 4 | # Update base system 5 | RUN apt-get update && apt-get upgrade -yq \ 6 | && apt-get -yq install \ 7 | build-essential \ 8 | autoconf-archive \ 9 | libssl-dev \ 10 | flex \ 11 | bison \ 12 | libsqlite3-dev \ 13 | libtool \ 14 | pkg-config \ 15 | && adduser --system --home /home/ircd ircd \ 16 | && mkdir /home/ircd/src \ 17 | && chmod 777 /home/ircd/src 18 | 19 | ADD . /home/ircd/src 20 | 21 | RUN cd /home/ircd/src; ./autogen.sh && ./configure --prefix=/home/ircd/run ; make ; make install 22 | 23 | ADD doc/example.conf /home/ircd/run/etc/ircd.conf 24 | ADD extra/runit/ircd/ /etc/service/ircd/ 25 | 26 | RUN chmod -R 777 /home/ircd/run 27 | 28 | EXPOSE 6667 29 | 30 | CMD /sbin/my_init 31 | -------------------------------------------------------------------------------- /Makefile.am: -------------------------------------------------------------------------------- 1 | AUTOMAKE_OPTIONS = foreign 2 | ACLOCAL_AMFLAGS = -I m4 3 | 4 | SUBDIRS = libratbox 5 | 6 | if BUILD_LTDL 7 | SUBDIRS += extra/libltdl 8 | endif 9 | 10 | SUBDIRS += src \ 11 | ssld \ 12 | bandb \ 13 | tools \ 14 | modules \ 15 | extensions \ 16 | help \ 17 | doc \ 18 | tests 19 | 20 | logdir = @prefix@/logs 21 | 22 | install-data-hook: 23 | test -d ${logdir} || mkdir -p ${logdir} 24 | -------------------------------------------------------------------------------- /autogen.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | set -e 4 | 5 | autoreconf --version 6 | autoreconf --install --verbose --force --warnings=portability,no-unsupported 7 | scripts/version.sh 8 | -------------------------------------------------------------------------------- /bandb/Makefile.am: -------------------------------------------------------------------------------- 1 | 2 | AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_srcdir)/libratbox/include 3 | AM_CFLAGS = @SQLITE_CFLAGS@ 4 | AM_LDFLAGS = @SQLITE_LIBS@ -L$(top_srcdir)/libratbox/src 5 | LDADD = -lratbox 6 | 7 | bin_PROGRAMS = bandb 8 | 9 | bandb_SOURCES = bandb.c \ 10 | rsdb_sqlite3.c 11 | -------------------------------------------------------------------------------- /bandb/rsdb.h: -------------------------------------------------------------------------------- 1 | #ifndef INCLUDED_rsdb_h 2 | #define INCLUDED_rsdb_h 3 | 4 | /* error handler callback */ 5 | typedef void rsdb_error_cb(const char *); 6 | 7 | typedef int (*rsdb_callback) (int, const char **); 8 | 9 | typedef enum rsdb_transtype { 10 | RSDB_TRANS_START, 11 | RSDB_TRANS_END 12 | } 13 | rsdb_transtype; 14 | 15 | struct rsdb_table { 16 | char ***row; 17 | int row_count; 18 | int col_count; 19 | void *arg; 20 | }; 21 | 22 | int rsdb_init(rsdb_error_cb *); 23 | void rsdb_shutdown(void); 24 | 25 | const char *rsdb_quote(const char *src); 26 | 27 | void rsdb_exec(rsdb_callback cb, const char *format, ...); 28 | 29 | void rsdb_exec_fetch(struct rsdb_table *data, const char *format, ...); 30 | void rsdb_exec_fetch_end(struct rsdb_table *data); 31 | 32 | void rsdb_transaction(rsdb_transtype type); 33 | 34 | #endif 35 | -------------------------------------------------------------------------------- /doc/Makefile.am: -------------------------------------------------------------------------------- 1 | man_MANS = ircd.8 2 | 3 | sysconf_DATA = example.conf reference.conf ircd.motd 4 | -------------------------------------------------------------------------------- /doc/README.md: -------------------------------------------------------------------------------- 1 | # Documentation Tree 2 | 3 | This folder is the "attic" of the project. Things of historical significance, 4 | technical interest, or example configuration files will live in here. 5 | 6 | ## `historical` 7 | 8 | This subfolder contains things that are of universal historical interest to 9 | keep around. 10 | 11 | ## `technical` 12 | 13 | Anything in here should probably be moved to the github wiki if it is decently 14 | relevant. 15 | 16 | --- 17 | 18 | If there is anything in here about support for things that are really old or 19 | otherwise obsolete, please feel free to let us know so we can get rid of it. 20 | -------------------------------------------------------------------------------- /doc/ircd.motd: -------------------------------------------------------------------------------- 1 | This is the Elemental-IRCd MOTD. You can use this if you like; 2 | but if you do, your teacher may send you to magic kindergarten. 3 | -------------------------------------------------------------------------------- /doc/sgml/oper-guide/charybdis-oper-guide.sgml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | ]> 10 | 11 | 12 | 2009 13 | Operators guide for the charybdis IRC server 14 | 15 | William 16 | Pitcock 17 | 18 | 19 | Jilles 20 | Tjoelker 21 | 22 | 23 | 2005-2009 24 | William Pitcock and Jilles Tjoelker 25 | 26 | 27 | 28 | Permission is granted to copy, distribute and/or modify this document under the terms of the GNU 29 | General Public License, Version 2 or any later version published by the Free Software Foundation 30 | 31 | 32 | 33 | 34 | 35 | &intro; 36 | &umodes; 37 | &cmodes; 38 | &ucommands; 39 | &commands; 40 | &oprivs; 41 | &config; 42 | 43 | 61 | -------------------------------------------------------------------------------- /doc/sgml/oper-guide/intro.sgml: -------------------------------------------------------------------------------- 1 | 2 | Introduction 3 | 4 | Scope of this document 5 | 6 | This document describes the commands and functions available to operators in 7 | shadowircd, as used on Thinstack. 8 | 9 | 10 | This document, and various ideas for features of charybdis, have 11 | been taken from dancer-ircd/hyperion, the ircd used on freenode, 12 | mainly written by Andrew Suffield and Jilles Tjoelker. 13 | 14 | 15 | While this document may be of some interest to the users of charybdis servers, 16 | it is intended as a reference for network staff. 17 | 18 | 19 | ShadowIRCd is based on Charybdis which is based on ircd-ratbox 3.0.0, 20 | although much has changed. ircd-ratbox 21 | is commonly used on efnet, and some other networks. 22 | 23 | 24 | 25 | 42 | -------------------------------------------------------------------------------- /doc/sgml/oper-guide/stylesheet.dsl: -------------------------------------------------------------------------------- 1 | 3 | 4 | ]> 5 | 6 | 7 | 8 | 9 | 10 | (define %generate-book-titlepage% #t) 11 | (define %generate-book-titlepage-on-separate-page% #t) 12 | (define %generate-book-toc% #t) 13 | (define %generate-book-toc-on-titlepage% #f) 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | (define %header-navigation% #t) 22 | (define %section-autolabel% #t) 23 | (define %root-filename% "index") 24 | (define %use-id-as-filename% #t) 25 | (define %css-decoration% #t) 26 | (define %example-rules% #t) 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /doc/technical/capab.txt: -------------------------------------------------------------------------------- 1 | Server capabilities 2 | William Pitcock 3 | ------------------- 4 | 5 | Not all TSora IRCd's support these. 6 | 7 | QS - supports Quit Storm (SQUIT does not have to send recursive quits) 8 | EX - supports ban exceptions (+e) 9 | CHW - supports messages directed to channel operators only i.e. @#channel 10 | IE - supports invite exceptions (+I) 11 | EOB - supports end of burst notification (EOB token) 12 | KLN - supports remote KLINE 13 | UNKLN - supports remote UNKLINE 14 | GLN - supports hybrid7-style GLINE (:oper GLINE user host :reason) 15 | HOPS - supports halfops (+h -- %) 16 | HUB - denotes that the target server is a HUB 17 | AOPS - supports anonymous ops (+a, op hiding/op status hiding) 18 | KNOCK - supports KNOCK extension (request invite to +ikl channel) 19 | TBURST - supports old TBURST command [broken, don't use.] 20 | TB - supports new TB command [do use.] 21 | PARA - supports sending invite notices via INVITE from server 22 | ENCAP - supports message encapsulation 23 | SERVICES - supports ratbox's services extensions 24 | SAVE - supports SAVE extension (friendlier alternative to KILL on nick collide) 25 | RSFNC - supports RSFNC extension (forcenick) 26 | CLUSTER - supports remote XLINE, UNXLINE, RESV, UNRESV and LOCOPS 27 | EUID - supports EUID, non-ENCAP CHGHOST and NICKDELAY 28 | ZIP - supports ziplinks 29 | ENC - supports encryption (cryptlinks) 30 | 31 | The KLN, UNKLN and CLUSTER capabilities do not apply to klines, xlines 32 | and resvs sent over ENCAP. 33 | 34 | Disabling ban/invite exceptions in ircd.conf does not remove the EX/IE capabs. 35 | -------------------------------------------------------------------------------- /doc/technical/cidr_bans: -------------------------------------------------------------------------------- 1 | Basically what this patch does is allow for users to use cidr masks when 2 | setting bans, exceptions, and invite invex(modes beI respectively). This 3 | works for both IPv4 and IPv6 addresses. 4 | 5 | I won't go into details of how cidr works here, but to use them, you could 6 | do something like: 7 | 8 | /mode #foo +b *!*@10.0.0.0/8 9 | /mode #foo +e *!*@10.0.10.0/24 10 | 11 | Aaron Sethman 12 | August 06, 2002 13 | -------------------------------------------------------------------------------- /doc/technical/cluster.txt: -------------------------------------------------------------------------------- 1 | 2 | Short description of how remote kline and friends are propagated under 3 | the old hyb7 style (CAP_KLN etc) and under the new style over ENCAP. 4 | 5 | CAP_KLN: 6 | : KLINE