Documentation updates in preperation for beta release.

This commit is contained in:
fishwaldo 2002-09-14 04:40:49 +00:00
parent e513c5b842
commit 1422ee74d7
14 changed files with 76 additions and 3132 deletions

11
.gitattributes vendored
View file

@ -10,7 +10,6 @@
/README.FIRST -text
/README.PLATFORMS -text
/README.VMS -text
/RELNOTES -text
/TODO -text
adns/.cvsignore -text
adns/COPYING -text
@ -68,10 +67,8 @@ doc/LazyLinks.txt -text
doc/Makefile.in -text
doc/Tao-of-IRC.940110 -text
doc/challenge.txt -text
doc/convertconf-example.conf -text
doc/dline.conf -text
doc/example.conf -text
doc/example.efnet.conf -text
doc/guidelines.txt -text
doc/index.txt -text
doc/ircd.8 -text
@ -86,19 +83,12 @@ doc/old/ChangeLog-Hybrid7Rc1 -text
doc/old/Etiquette -text
doc/old/Hybrid-team -text
doc/old/README -text
doc/old/US-Admin/Networking -text
doc/old/US-Admin/Operators -text
doc/old/US-Admin/README -text
doc/old/example.conf.trillian -text
doc/old/example_old.conf -text
doc/old/ircd.8 -text
doc/old/simple.conf -text
doc/operguide.txt -text
doc/opermyth.txt -text
doc/resv.txt -text
doc/server-version-info -text
doc/serverhide.txt -text
doc/simple.conf -text
doc/technical/Persistent_Clients.txt -text
doc/technical/README.TSora -text
doc/technical/README.openssl -text
@ -117,7 +107,6 @@ doc/technical/rfc1459.txt -text
doc/technical/send.txt -text
doc/technical/ts5.txt -text
doc/technical/whats-new-code.txt -text
doc/vchans.txt -text
doc/whats-new.txt -text
help/.cvsignore -text
help/Makefile.in -text

View file

@ -1,22 +1,67 @@
If you don't read this first, we won't help you.
:-)
NeoIRCd IRC Server. Pre 1.0 Release (Check the include/version.h file)
*******************************************************************************
Thanks for Using NeoIRCd. Please MAKE sure you read this file and the
INSTALL file before asking for help on our IRC channel or the support
boards.
******************************* IMPORTANT *************************************
NeoIRCd is a advanced IRCD based on the hybrid7 core. It contains many
enhancements to making it more usefull to networks that are services based
while retaining the stability and scaleablity of the Hybrid7 core.
*********** Note for those who dont bother reading docs *****************
* - Reading INSTALL is now a must, as the old DPATH is now specified *
* when configure is run. *
* You now need to ./configure --prefix="/path/to/install/it" *
* - The old config format WILL NOT WORK. Please see doc/example.conf ! *
* - The old kline format WILL NOT WORK. Please use convertklines which *
* will be installed with your ircd! *
* - If you get errors compiling custom.mo, check if you are using the *
* most recent version of gettext. Tested with GNU gettext 0.10.35. *
*************************************************************************
Some of the features of NeoIRCd are (in Addition to the Hybrid7 features
listed below):
* Full Services Support. This means that services (Like NeoStats and Epona) can
play nicely with NeoIRCd. Things like allowing services to
change nicks (instead of colliding) This includes currently, the following
support:
* SVSNICK - Services Can change the nickname
* SVSHOST - Change the hostname of the target
* SVSID - Set/change the services ID of the target
More SVS* commands are planned, like SVSKILL, for services to kill a user
* Full Server U-Line support. A U lined server can bounce and set modes on
any user or channel without following traditional IRC rules (Needed for
most services)
* +S usermode. +S means Services Client. Service Clients can only
be set via a U lined server, and +S clients can override all modes (just
like a Ulined Server)
* Dynamic U lines. Dynamic U lines are something new in NeoIRCd, where you
do not have to add a U line entry to every IRCD configuration. You
only add a entry on the server that the U Lined services connect to, and
when the U lined Server connects, its U line setting is propgated to the
rest of the network.
* Channel Admin mode. (+a) Channel admins have the ability to set *some*
modes on a channel that a normal operator (+o) does not. Things
Like Anonops and paranoid settings.
* Channel Mode +O. Operator only channels. Only opers/server admins can
join these channels. Invites and Invite exceptions can be used
to allow non ops to join the channel.
* Chanmode +r and Usermode +r. To help identify Registered
Channels and users respecitivly
* /nickserv, /chanserv, /identify aliases to send secured messages
to services.
* Swhois support. This was something in Unreal
that I thought was cool, and just had to add it.
Allows a admin/oper/services to add a aditional line to the /whois reply
of a target user
* Hidden Hosts/Vhosts and usermode +x. This cloaks the users
real hostname, to help protect them from attacks directed at their
IP address.
* Reserved Nicknames/Channels are network wide.
If you are know Hybrid7's features, The following are removed from NeoIRCd:
* VChans. Vchans are great way to battle channel take overs but on a
services based network, are kinda reduntant, as services can usually
help you recover from a channel takeover.
* OandV support. OandV support allowed a user to have both ops and voice
in a channel at the same time. This was redundant imho.
* Glines now no longer need 3 opers to agree on it. One oper sets a Gline,
and its network wide.
anyway, thats a short description of what NeoIRCd can do for
you. I think the best way to see its capabilites is to just try it
out. Installation and running instructions are in the INSTALL file, so
read that for more info.
ALSO, IF YOU ARE UPGRADING YOUR CURRENT SOURCE TREE, AND YOU TRY TO BUILD
IN IT WITHOUT PERFORMING AT LEAST 'make clean', THINGS _WILL_ BREAK. IT IS
RECOMMENDED THAT YOU RUN 'make distclean' AND THEN RERUN './configure'!
******************************* REQUIREMENTS **********************************
@ -53,36 +98,32 @@ Feature Specific Requirements:
*******************************************************************************
- To report bugs in hybrid, send the bug report to ircd-hybrid@the-project.org
- To report bugs in NeoIRCd, visit http://www.neostats.net/boards/
or visit us at irc://irc.irc-chat.org/#neostats
- Known bugs are listed in the BUGS file
- See the INSTALL document for info on configuring and compiling
ircd-hybrid.
NeoIRCd.
- Please read doc/index.txt to get an overview of the current documentation.
- Old Hybrid 5/6 configuration files are no longer supported. All conf
files will have to be converted to the Hybrid 7 format. A convertconf
utility is provided and installed into bin/.
- If you run in to a problem you think may be specific to your platform,
check README.PLATFORMS for some hints. Hybrid7 worked on a lot
of platforms, and although I don't have access to a lot of these
platforms, I see no reason why it wont work on them.
- If you are wondering why config.h is practically empty, its because many
things that were once in config.h are now specified in the 'general'
block of ircd.conf. Look at example.conf for more information about
these options.
- Please read doc/whats-new.txt for information about what is in this release
- Other files recommended for reading: BUGS, INSTALL, TODO, ChangeLog
The following notes are from the Hybird source:
- The files, /etc/services, /etc/protocols, and /etc/resolv.conf, MUST be
readable by the user running the server in order for ircd to start.
Errors from adns causing the ircd to refuse to start up are often related
to permission problems on these files.
- There is now a mailing list for general discussion of Hybrid. To subscribe
to the Hybrid List, send email to listmanager@the-project.org with
the subject "subscribe hybrid".
- If you run in to a problem you think may be specific to your platform,
check README.PLATFORMS for some hints.
- SOLARIS USERS: this code appears to tickle a bug in older gcc and
egcs ONLY on 64-bit Solaris7. gcc-2.95 and SunPro C on 64bit should
work fine, and any gcc or SunPro compiled on 32bit.
@ -107,9 +148,6 @@ Feature Specific Requirements:
Cygwin 1.3+ (static modules, no servlink)
OpenVMS/Alpha 7.2 (static modules, no servlink)
- Please read doc/whats-new.txt for information about what is in this release
- Other files recommended for reading: BUGS, INSTALL
--------------------------------------------------------------------------------
$Id: README.FIRST,v 1.2 2002/08/13 14:44:59 fishwaldo Exp $
$Id: README.FIRST,v 1.3 2002/09/14 04:40:49 fishwaldo Exp $

View file

@ -1,56 +0,0 @@
-- ircd-hybrid-7rc1 RELNOTES
o) Made topiclen configurable with autoconf
o) Autoconf fixes for Forte C
o) Bugfixes for m_jupe.c in contrib/
o) Fixed bug where we would give away spoofed IPs
o) You may now disable the help system for users, by setting
"use_help = no;" in your general {}; block.
--------------------------------------------------------------------------------
This is the current release candidate version of ircd-hybrid-7.
NOTE: This is still BETA code. Run it at your own risk. By running this
code you assume FULL responsibility for any problems it may cause. We do
NOT recommend that you run BETA code on production IRC networks such
as EFnet.
BUGS: Major bugs in this release are listed in BUGS
BUG REPORTS: If you run this code and encounter problems, you must report
the bug in one of the following ways:
a) By EMAIL to ircd-hybrid@the-project.org.
Please include a gdb backtrace and a copy of your config.h and ircd.conf
with any report (with passwords and other sensitive information masked).
DISCUSSION: There is a mailing list for discussion of hybrid issues,
including betas. To subscribe, send an emal to listmanager@the-project.org
with a single line in the body containing "subscribe hybrid". This is the
proper place to discuss new features, bugs, etc. Posting here is much more
likely to get something done than ranting on #TZ.
TESTING: This code is under active development, and a lot changes from beta
to beta. As the user of this code, we request that you help us test things
which have changed recently, and which would benefeit from being tested
much as possible. The following are some things that have changed, and what
you can do to help us test them.
o) Exiting Clients
- The way clients are exited and cleaned from memory has been largely
redone since the last release. Unusual situations involving clients
exiting will help expose any remaining problems.
o) Mac OS X Modules
- Support for Darwin and Mac OS X style modules, through the
NSModule(3) interface has been added, and is designed to work as
loadable modules do on most UNIX systems. Feeding it bad or
duplicate modules to find bugs would be appriciated.
Questions/comments directed to ircd-hybrid@the-project.org
Please read doc/whats-new.txt for information about what is in this release
Other files recommended for reading: BUGS, README.FIRST, INSTALL
--------------------------------------------------------------------------------
$Id: RELNOTES,v 1.2 2002/08/13 14:44:59 fishwaldo Exp $

View file

@ -1,473 +0,0 @@
/* doc/convertconf-example.conf - ircd-hybrid-7 Example configuration file
* Copyright (C) 2000-2002 Hybrid Development Team
*
* Written by ejb, wcampbel, db, leeh and others
*
* $Id: convertconf-example.conf,v 1.2 2002/08/13 14:45:01 fishwaldo Exp $
*/
/* logging {}: contains information about logfiles. */
logging {
/* log level: the amount of detail to log in ircd.log. The
* higher, the more information is logged. May be changed
* once the server is running via /quote SET LOG. Either:
* L_CRIT, L_ERROR, L_WARN, L_NOTICE, L_TRACE, L_INFO or L_DEBUG
*/
log_level = L_INFO;
};
/* shared {}: users that are allowed to remote kline (OLD U:) */
shared {
/* name: the server the user must be on to set klines. If this is not
* specified, the user will be allowed to kline from all servers.
*/
name = "irc2.some.server";
/* user: the user@host mask that is allowed to set klines. If this is
* not specified, all users on the server above will be allowed to set
* a remote kline.
*/
user = "oper@my.host.is.spoofed";
};
/* kill {}: users that are not allowed to connect (OLD K:)
* Oper issued klines will be added to the specified kline config
*/
kill {
user = "bad@*.hacked.edu";
reason = "Obviously hacked account";
};
/* deny {}: IPs that are not allowed to connect (before DNS/ident lookup)
* Oper issued dlines will be added to the specified dline config
*/
deny {
ip = "10.0.1.0/24";
reason = "Reconnecting vhosted bots";
};
/* exempt {}: IPs that are exempt from deny {} and Dlines. (OLD d:) */
exempt {
ip = "192.168.0.0/16";
};
/* resv {}: nicks and channels users may not use/join (OLD Q:) */
resv {
/* reason: the reason for the proceeding resv's */
reason = "There are no services on this network";
/* resv: the nicks and channels users may not join/use */
nick = "nickserv";
nick = "chanserv";
channel = "#services";
/* resv: wildcard masks are also supported in nicks only */
reason = "Clone bots";
nick = "clone*";
};
/* gecos {}: The X: replacement, used for banning users based on their
* "realname". The action may be either:
* warn: allow client to connect, but send message to opers
* reject: drop clients but also send message to opers.
* silent: silently drop clients who match.
*/
gecos {
name = "*sex*";
reason = "Possible spambot";
action = warn;
};
gecos {
name = "sub7server";
reason = "Trojan drone";
action = reject;
};
gecos {
name = "*http*";
reason = "Spambot";
action = silent;
};
/* The channel block contains options pertaining to channels */
channel {
/* invex: Enable/disable channel mode +I, a n!u@h list of masks
* that can join a +i channel without an invite.
*/
use_invex = yes;
/* except: Enable/disable channel mode +e, a n!u@h list of masks
* that can join a channel through a ban (+b).
*/
use_except = yes;
/* halfops: Enable/disable channel mode "+h <nick>", this allows
* users to perform all channel functions except +/-o and kick
* opped users.
*/
use_halfops = yes;
/* anonops: Enable/disable channel mode +a. This hides the people
* who are opped in the channel from people who are unopped.
*
* The ircd will 'sync' the users oplists when they become opped
* or deopped by sending mode changes. This can cause a flood and
* could potentially be abused.
*/
use_anonops = no;
/* vchans: permit virtual channels, multiple copies of the same
* channel name. read doc/vchans.txt for more details
*
* We advise against using this on production networks
*/
use_vchans = yes;
/* vchans oper only: only allow opers to create vchans via /cjoin */
vchans_oper_only = yes;
/* knock: Allows users to request an invite to a channel that
* is locked somehow (+ikl). If the channel is +p or you are banned
* the knock will not be sent.
*/
use_knock = yes;
/* knock delay: The amount of time a user must wait between issuing
* the knock command.
*/
knock_delay = 5 minutes;
/* knock channel delay: How often a knock to any specific channel
* is permitted, regardless of the user sending the knock.
*/
knock_delay_channel = 1 minute;
/* max chans: The maximum number of channels a user can join/be on. */
max_chans_per_user = 15;
/* quiet on ban: stop banned people talking in channels. */
quiet_on_ban = yes;
/* max bans: maximum number of +b/e/I modes in a channel */
max_bans = 25;
/* persist time: the minimum amount of time a channel will remain with
* all its modes intact once the last user has left the channel.
*
* set to 0 to disable.
*/
persist_time = 30 minutes;
/* splitcode: the ircd will check every 60s as to whether splitmode
* should be disabled or not, so there may be a delay between a
* netsplit ending and splitmode ending.
*
* both split users and split servers must be true to enter splitmode
*
* you may force splitmode to be permanent by /quote set splitmode on
*/
/* split users: when the usercount is lower than this level, consider
* ourselves split. this must be set for automatic splitmode
*/
default_split_user_count = 0;
/* split servers: when the servercount is lower than this, consider
* ourselves split. this must be set for automatic splitmode
*/
default_split_server_count = 0;
/* split no create: disallow users creating channels on split, works in
* tandem with persistant channels, that have retained their modes.
*/
no_create_on_split = no;
/* split: no join: disallow users joining channels at all on a split */
no_join_on_split = no;
};
/* The serverhide block contains the options regarding serverhiding */
serverhide {
/* flatten links: this option will show all servers in /links appear
* that they are linked to this current server
*/
flatten_links = no;
/* links delay: how often to update the links file when it is
* flattened.
*/
links_delay = 5 minutes;
/* hidden: hide this server from a /links output on servers that
* support it. this allows hub servers to be hidden etc.
*/
hidden = no;
/* disable hidden: prevent servers hiding themselves from a
* /links ouput.
*/
disable_hidden = no;
/* hide servers: hide remote servernames everywhere and instead use
* network_name and network_desc.
*/
hide_servers = no;
/* disable remote: disable users doing commands on remote servers */
disable_remote_commands = no;
/* disable local channels: prevent users from joining &channels.
* This is extreme, but its still a flaw in serverhide. It will
* however remove far more from users than it will give back in
* security.
*/
disable_local_channels = no;
};
/* The general block contains many of the options that were once compiled
* in options in config.h. The general block is read at start time.
*/
general {
/* floodcount: the default value of floodcount that is configurable
* via /quote set floodcount. This is the amount of lines a user
* may send to any other user/channel in one second.
*/
default_floodcount = 10;
/* failed oper notice: send a notice to all opers on the server when
* someone tries to OPER and uses the wrong password, host or ident.
*/
failed_oper_notice = yes;
/* dots in ident: the amount of '.' characters permitted in an ident
* reply before the user is rejected.
*/
dots_in_ident=2;
/* dot in ipv6: ircd-hybrid-6.0 and earlier will disallow hosts
* without a '.' in them. this will add one to the end. only needed
* for older servers.
*/
dot_in_ip6_addr = yes;
/* min nonwildcard: the minimum non wildcard characters in k/d/g lines
* placed via the server. klines hand placed are exempt from limits.
* wildcard chars: '.' '*' '?' '@'
*/
min_nonwildcard = 4;
/* max accept: maximum allowed /accept's for +g usermode */
max_accept = 20;
/* nick flood: enable the nickflood control code */
anti_nick_flood = yes;
/* nick flood: the nick changes allowed in the specified period */
max_nick_time = 20 seconds;
max_nick_changes = 5;
/* anti spam time: the minimum time a user must be connected before
* custom quit messages are allowed.
*/
anti_spam_exit_message_time = 5 minutes;
/* ts delta: the time delta allowed between server clocks before
* a warning is given, or before the link is dropped. all servers
* should run ntpdate/rdate to keep clocks in sync
*/
ts_warn_delta = 30 seconds;
ts_max_delta = 5 minutes;
/* client exit: prepend a users quit message with "Client exit: " */
client_exit = yes;
/* kline reason: show the user the reason why they are k/d/glined
* on exit. may give away who set k/dline when set via tcm.
*/
kline_with_reason = yes;
/* kline connection closed: make the users quit message on channels
* to be "Connection closed", instead of the kline reason.
*/
kline_with_connection_closed = no;
/* non redundant klines: flag and ignore redundant klines */
non_redundant_klines = yes;
/* warn no nline: warn opers about servers that try to connect but
* we dont have a connect {} block for. Twits with misconfigured
* servers can get really annoying with this enabled.
*/
warn_no_nline = yes;
/* stats o oper only: make stats o (opers) oper only */
stats_o_oper_only=yes;
/* stats P oper only: make stats P (ports) oper only */
stats_P_oper_only=no;
/* stats i oper only: make stats i (auth {}) oper only. set to:
* yes: show users no auth blocks, made oper only.
* masked: show users first matching auth block
* no: show users all auth blocks.
*/
stats_i_oper_only=masked;
/* stats k/K oper only: make stats k/K (klines) oper only. set to:
* yes: show users no auth blocks, made oper only
* masked: show users first matching auth block
* no: show users all auth blocks.
*/
stats_k_oper_only=masked;
/* caller id wait: time between notifying a +g user that somebody
* is messaging them.
*/
caller_id_wait = 1 minute;
/* pace wait simple: time between use of less intensive commands
* (HELP, remote WHOIS, WHOWAS)
*/
pace_wait_simple = 1 second;
/* pace wait: time between more intensive commands
* (ADMIN, INFO, LIST, LUSERS, MOTD, STATS, VERSION)
*/
pace_wait = 10 seconds;
/* short motd: send clients a notice telling them to read the motd
* instead of forcing a motd to clients who may simply ignore it.
*/
short_motd = no;
/* ping cookies: require clients to respond exactly to a ping command,
* can help block certain types of drones and FTP PASV mode spoofing.
*/
ping_cookie = no;
/* no oper flood: increase flood limits for opers. */
no_oper_flood = yes;
/* glines: enable glines, network wide temp klines */
glines = yes;
/* gline time: the amount of time a gline will remain before exiring */
gline_time = 1 day;
/* idletime: the maximum amount of time a user may idle before
* they are disconnected
*/
idletime = 0;
/* maximum links: the maximum amount of servers to connect to for
* connect blocks without a valid class.
*/
maximum_links = 1;
/* REMOVE ME. The following line checks youve been reading. */
havent_read_conf = 1;
/* logfiles: the logfiles to use for user connects, /oper uses,
* and failed /oper. These files must exist for logging to be used.
*/
fname_userlog = "logs/userlog";
fname_operlog = "logs/operlog";
fname_foperlog = "logs/foperlog";
/* max targets: the maximum amount of targets in a single
* PRIVMSG/NOTICE. set to 0 for unlimited targets.
*/
max_targets = 4;
/* client flood: maximum number of lines in a clients queue before
* they are dropped for flooding.
*/
client_flood = 20;
/* message locale: the default message locale if gettext() is enabled
* and working.
* Use "custom" for the (in)famous Hybrid custom messages.
* Use "standard" for the compiled in defaults.
*/
message_locale = "custom";
/* usermodes configurable: a list of usermodes for the options below
*
* +b - bots - See bot and drone flooding notices
* +c - cconn - Client connection/quit notices
* +d - debug - See debugging notices
* +f - full - See I: line full notices
* +g - callerid - Server Side Ignore
* +i - invisible - Not shown in NAMES or WHO unless you share a
* a channel
* +k - skill - See server generated KILL messages
* +l - locops - See LOCOPS messages
* +n - nchange - See client nick changes
* +r - rej - See rejected client notices
* +s - servnotice - See general server notices
* +u - unauth - See unauthorized client notices
* +w - wallop - See server generated WALLOPS
* +x - external - See remote server connection and split notices
* +y - spy - See LINKS, STATS, TRACE notices etc.
* +z - operwall - See oper generated WALLOPS
*/
/* oper only umodes: usermodes only opers may set */
oper_only_umodes = bots, cconn, debug, full, skill, nchange,
rej, spy, external, operwall, locops, unauth;
/* oper umodes: default usermodes opers get when they /oper */
oper_umodes = locops, servnotice, operwall, wallop;
/* servlink path: path to 'servlink' program used by ircd to handle
* encrypted/compressed server <-> server links.
*
* only define if servlink is not in same directory as ircd itself.
*/
#servlink_path = "/usr/local/ircd/bin/servlink";
/* default cipher: default cipher to use for cryptlink when none is
* specified in connect block.
*/
#default_cipher_preference = "BF/256";
/* use egd: if your system does not have *random devices yet you
* want to use OpenSSL and encrypted links, enable this. Beware -
* EGD is *very* CPU intensive when gathering data for its pool
*/
#use_egd = yes;
/* egdpool path: path to EGD pool. Not necessary for OpenSSL >= 0.9.7
* which automatically finds the path.
*/
#egdpool_path = "/var/run/egd-pool";
/* compression level: level of compression for compressed links between
* servers.
*
* values are between: 1 (least compression, fastest)
* and: 9 (most compression, slowest).
*/
#compression_level = 6;
/* throttle time: the minimum amount of time between connections from
* the same ip. exempt {} blocks are excluded from this throttling.
* Offers protection against flooders who reconnect quickly.
* Set to 0 to disable.
*/
throttle_time = 10;
};
modules {
/* module path: paths to search for modules specified below and
* in /modload.
*/
path = "/usr/local/ircd/modules";
path = "/usr/local/ircd/modules/autoload";
/* module: the name of a module to load on startup/rehash */
#module = "some_module.so";
};

View file

@ -1,932 +0,0 @@
/* doc/example.efnet.conf - ircd-hybrid-7 EFnet Example configuration file
*
* Modified for EFnet by: Disciple
* Based on example.conf written by ejb, wcampbel, db, leeh and others
*
* $Id: example.efnet.conf,v 1.2 2002/08/13 14:45:01 fishwaldo Exp $
*/
/* IMPORTANT NOTES:
*
* class {} blocks MUST be specified before anything that uses them. That
* means they must be defined before auth {} and before connect {}.
*
* auth {} blocks MUST be specified in order of precedence. The first one
* that matches a user will be used. So place spoofs first, then specials,
* then general access, then restricted.
*
* Both shell style (#) and C style comments are supported.
*
* Files may be included by either:
* .include "filename"
* .include <filename>
*
* Times/durations are written as:
* 12 hours 30 minutes 1 second
*
* Valid units of time:
* month, week, day, hour, minute, second
*
* Valid units of size:
* megabyte/mbyte/mb, kilobyte/kbyte/kb, byte
*
* Sizes and times may be singular or plural.
*/
/* EFNET NOTE:
*
* This configuration file is a BASIC configuration file for use
* on EFnet. You MUST still take the time to set this file up
* properly.
*
* DISCLAIMER: This file was NOT generated by the ircd-hybrid team,
* it was submitted and maintained by Disciple@EFnet
*/
/* serverinfo {}: Contains information about the server. (OLD M:) */
serverinfo {
/* name: the name of our server */
name = "efnet.irc";
/* description: the description of our server. '[' and ']' may not
* be used here for compatibility with older servers.
*/
description = "ircd-hybrid-7 EFnet Server";
/* network info: the name and description of the network this server
* is on. Shown in the 005 reply and used with serverhiding.
*/
network_name = "EFnet";
network_desc = "Eris Free Network";
/* hub: allow this server to act as a hub and have multiple servers
* connected to it.
*/
hub = no;
/* vhost: the IP to bind to when we connect outward to ipv4 servers.
* This should be an ipv4 IP only.
*/
#vhost = "192.169.0.1";
/* vhost6: the IP to bind to when we connect outward to ipv6 servers.
* This should be an ipv6 IP only.
*/
#vhost6 = "3ffe:80e8:546::2";
/* max clients: the maximum number of clients allowed to connect */
max_clients = 512;
/* rsa key: the path to the file containing our rsa key for cryptlink.
*
* Example command to store a 2048 bit RSA keypair in
* rsa.key, and the public key in rsa.pub:
*
* openssl genrsa -out rsa.key 2048
* openssl rsa -in rsa.key -pubout -out rsa.pub
* chown <ircd-user>.<ircd.group> rsa.key rsa.pub
* chmod 0600 rsa.key
* chmod 0644 rsa.pub
*/
#rsa_private_key_file = "/usr/local/ircd/etc/rsa.key";
};
/* admin {}: contains admin information about the server. (OLD A:) */
admin {
name = "EFnet Admin";
description = "Main Server Administrator";
email = "<irc-admin@efnet.irc>";
};
/* logging {}: contains information about logfiles. */
logging {
/* log level: the amount of detail to log in ircd.log. The
* higher, the more information is logged. May be changed
* once the server is running via /quote SET LOG. Either:
* L_CRIT, L_ERROR, L_WARN, L_NOTICE, L_TRACE, L_INFO or L_DEBUG
*/
log_level = L_INFO;
};
/* class {}: contain information about classes for users (OLD Y:) */
class {
/* name: the name of the class. classes are text now */
name = "users";
/* ping time: how often a client must reply to a PING from the
* server before they are dropped.
*/
ping_time = 2 minutes;
/* number per ip: the number of users per host allowed to connect */
number_per_ip = 2;
/* max number: the maximum number of users allowed in this class */
max_number = 100;
/* sendq: the amount of data allowed in a clients queue before
* they are dropped.
*/
sendq = 100 kbytes;
};
class {
name = "restricted";
ping_time = 1 minute 30 seconds;
number_per_ip = 1;
max_number = 100;
sendq = 60kb;
};
class {
name = "opers";
ping_time = 5 minutes;
number_per_ip = 10;
max_number = 100;
sendq = 1 mbyte;
};
class {
name = "server";
ping_time = 5 minutes;
/* connectfreq: only used in server classes. specifies the delay
* between autoconnecting to servers.
*/
connectfreq = 5 minutes;
/* max number: the amount of servers to autoconnect to */
max_number = 1;
/* sendq: servers need a higher sendq as they send more data */
sendq = 15 megabytes;
};
/* listen {}: contain information about the ports ircd listens on (OLD P:) */
listen {
/* port: the specific port to listen on. if no host is specified
* before, it will listen on all available IPs.
*
* ports are seperated via a comma, a range may be specified using ".."
*/
/* port: listen on all available IPs, ports 6665 to 6669 */
port = 6665 .. 6669;
/* host: set a specific IP/host the ports after the line will listen
* on. This may be ipv4 or ipv6.
*/
host = "1.2.3.4";
port = 7000, 7001;
host = "3ffe:1234:a:b:c::d";
port = 7002;
};
/* auth {}: allow users to connect to the ircd (OLD I:) */
auth {
/* user: the user@host allowed to connect. multiple IPv4/IPv6 user
* lines are permitted per auth block.
*/
user = "*@172.16.0.0/12";
user = "*test@123D:B567:*";
/* password: an optional password that is required to use this block */
password = "letmein";
/* spoof: fake the users host to be be this. This is free-form,
* just do everyone a favour and dont abuse it. (OLD I: = flag)
*/
spoof = "I.still.hate.packets";
/* spoof notice: enable spoofing notification to admins (default yes) */
spoof_notice = yes;
/* exceed limit: allow a user to exceed class limits (OLD I: > flag) */
exceed_limit = yes;
/* kline exempt: exempt this user from k/glines (OLD I: ^ flag) */
kline_exempt = yes;
/* gline exempt: exempt this user from glines (OLD I: _ flag) */
gline_exempt = yes;
/* no tilde: remove ~ from a user with no ident (OLD I: - flag) */
no_tilde = yes;
/* class: the class the user is placed in */
class = "opers";
};
auth {
/* redirect: the server and port to redirect a user to. A user does
* not have to obey the redirection, the ircd just suggests to them
* an alternative server.
*/
redirserv = "irc.fi";
redirport = 6667;
user = "*.fi";
/* class: a class is required even though it is not used */
class = "users";
};
auth {
user = "*@*";
class = "users";
/* restricted: stop the client sending mode changes */
#restricted = yes;
/* have ident: require the user has identd to connect (OLD I: + flag) */
have_ident = yes;
};
/* operator {}: defines ircd operators. (OLD O:)
* ircd-hybrid no longer supports local operators, privileges are
* controlled via flags.
*/
operator {
/* name: the name of the oper */
name = "god";
/* user: the user@host required for this operator. CIDR is not
* supported. multiple user="" lines are supported.
*/
user = "*god@*";
user = "*@127.0.0.1";
/* password: the password required to oper. By default this will
* need to be encrypted using 'mkpasswd'. MD5 is supported.
*/
password = "crYpTpwH3r3"
/* rsa key: the public key for this oper when using Challenge.
* A password should not be defined when this is used, see
* doc/challenge.txt for more information.
*/
#rsa_public_key_file = "/usr/local/ircd/etc/oper.pub";
/* class: the class the oper joins when they successfully /oper */
class = "opers";
/* privileges: controls the activities and commands an oper are
* allowed to do on the server. All options default to no.
* Available options:
*
* global_kill: allows remote users to be /KILL'd (OLD 'O' flag)
* remote: allows remote SQUIT and CONNECT (OLD 'R' flag)
* kline: allows KILL, KLINE and DLINE (OLD 'K' flag)
* unkline: allows UNKLINE and UNDLINE (OLD 'U' flag)
* gline: allows GLINE (OLD 'G' flag)
* nick_changes: allows oper to see nickchanges (OLD 'N' flag)
* via usermode +n
* rehash: allows oper to REHASH config (OLD 'H' flag)
* die: allows DIE and RESTART (OLD 'D' flag)
* admin: gives admin privileges. admins
* may (un)load modules and see the
* real IPs of servers and spoofed
* users IP.
*/
global_kill = yes;
remote = yes;
kline = yes;
unkline = yes;
gline = yes;
die = yes;
rehash = yes;
nick_changes = yes;
admin = yes;
};
/* connect {}: controls servers we connect to (OLD C:, N:, H:, L:) */
connect {
/* name: the name of the server */
name = "irc.uplink.com";
/* host: the host or IP to connect to. If a hostname is used it
* must match the reverse dns of the server.
*/
host = "192.168.0.1";
/* passwords: the passwords we send (OLD C:) and accept (OLD N:).
* The remote server will have these passwords reversed.
*/
send_password = "password"; # OLD C:
accept_password = "anotherpassword"; # OLD N:
/* encrypted: controls whether the accept_password above has been
* encrypted. (OLD CRYPT_LINK_PASSWORD now optional per connect)
*/
encrypted = no;
/* port: the port to connect to this server on (OLD P:) */
port = 6666;
/* hub mask: the mask of servers that this server may hub. Multiple
* entries are permitted (OLD H:)
*/
hub_mask = "*";
/* leaf mask: the mask of servers this server may not hub. Multiple
* entries are permitted. Useful for forbidding EU -> US -> EU routes.
* (OLD L:)
*/
#leaf_mask = "*.uk";
/* class: the class this server is in */
class = "server";
/* autoconnect: controls whether we autoconnect to this server or not,
* dependent on class limits.
*/
autoconn = no;
/* compressed: controls whether traffic is compressed via ziplinks.
* By default this is disabled (OLD c: (lowercased))
*/
#compressed = yes;
/* lazylink: controls whether this server is a LazyLink. LazyLink
* servers may NOT hub. see doc/LazyLinks.as.implemented.txt
*
* EFnet Note: With this enabled, you download a connect burst
* as it is needed, instead of all at once. This
* could allow servers on much smaller lines (modems) to
* link a server. As such, this is probably not a
* good idea to run on EFnet.
*/
#lazylink = no; # Not a good idea on EFnet
/* masking: the servername we pretend to be when we connect */
#fakename = "*.arpa";
};
connect {
name = "encrypted.auth.example";
host = "some.host.somewhere";
port = 6667;
/* cryptlink: enable full encryption for all data passing between our
* server and this link and rsa authentication.
*/
cryptlink = yes;
/* rsa key: the path to the public keyfile of the server. Used instead
* of passwords.
*/
rsa_public_key_file = "etc/remote.server.keyfile";
/* cipher preference: set the preferred cipher for this link
*
* Available ciphers are:
* BF/256 BF/128 CAST/128 IDEA/128 RC5.16/128
* RC5.12/128 RC5.8/128 3DES/168 DES/56
*
* NOTE: Some ciphers may not be supported by your OpenSSL.
* Check the output from 'configure' for available ciphers.
*
* NOTE2: To help you decide what cipher to use, tools/encspeed
* will show you approximately how fast each cipher is.
* However, blowfish is fast and secure, and is probably
* a good default for most situations.
*
* NOTE3: Default if none is set is BF/128
*
* The cipher *MUST* be the same in both directions. If you
* set a cipher preference, your uplink must set the same cipher,
* else it will not link.
*/
#cipher_preference = "BF/256";
};
connect {
name = "ipv6.some.server";
host = "3ffd:dead:beef::1";
send_password = "password";
accept_password = "password";
port = 6666;
/* aftype: controls whether the connection uses "ipv4" or "ipv6".
* Default is ipv4.
*/
aftype = ipv6;
class = "server";
};
/* shared {}: users that are allowed to remote kline (OLD U:)
*
* EFnet Note: This can be effectively used for remote klines.
* Please note that there is no password authentication
* for users setting remote klines. You must also be
* /oper'd in order to issue a remote kline.
*/
shared {
/* name: the server the user must be on to set klines. If this is not
* specified, the user will be allowed to kline from all servers.
*/
name = "irc2.some.server";
/* user: the user@host mask that is allowed to set klines. If this is
* not specified, all users on the server above will be allowed to set
* a remote kline.
*/
user = "oper@my.host.is.spoofed";
};
/* kill {}: users that are not allowed to connect (OLD K:)
* Oper issued klines will be added to the specified kline config
*/
kill {
user = "bad@*.hacked.edu";
reason = "Obviously hacked account";
};
/* deny {}: IPs that are not allowed to connect (OLD D:) (before DNS/ident
* lookup) Oper issued dlines will be added to the specified dline config
*/
deny {
ip = "10.0.1.0/24";
reason = "Reconnecting vhosted bots";
};
/* exempt {}: IPs that are exempt from deny {} and Dlines. (OLD d:)
*
* EFnet Note: exempt {} blocks are NOT hidden, so do NOT exempt
* EFnet server IP's.
*/
exempt {
ip = "192.168.0.0/16";
};
/* resv {}: nicks and channels users may not use/join (OLD Q:) */
resv {
/* reason: the reason for the proceeding resv's */
reason = "There are no services on this network";
/* resv: the nicks and channels users may not join/use */
nick = "nickserv";
nick = "chanserv";
nick = "operserv";
nick = "JUPES";
nick = "JUPE";
nick = "CH?NF?X"; # CHANFIX (services.int)
/* These are totally optional, but may be a good idea */
nick = "oper";
nick = "ircop";
nick = "op";
nick = "ident";
nick = "pass";
channel = "#jupedchan";
/* resv: wildcard masks are also supported in nicks only */
reason = "Clone bots";
nick = "clone*";
};
/* gecos {}: The X: replacement, used for banning users based on their
* "realname". The action may be either:
* warn: allow client to connect, but send message to opers
* reject: drop clients but also send message to opers.
* silent: silently drop clients who match.
*/
gecos {
name = "*sex*";
reason = "Possible spambot";
action = warn;
};
gecos {
name = "sub7server";
reason = "Trojan drone";
action = reject;
};
gecos {
name = "*http*";
reason = "Spambot";
action = silent;
};
/* The channel block contains options pertaining to channels */
channel {
/* invex: Enable/disable channel mode +I, a n!u@h list of masks
* that can join a +i channel without an invite.
*
* EFNet Note: This should NOT be run on EFnet.
*/
use_invex = no; # Don't enable this on EFnet
/* except: Enable/disable channel mode +e, a n!u@h list of masks
* that can join a channel through a ban (+b).
*
* EFNet Note: This should NOT be run on EFnet.
*/
use_except = no; # Don't enable this on EFnet
/* halfops: Enable/disable channel mode "+h <nick>", this allows
* users to perform all channel functions except +/-o and kick
* opped users.
*
* EFNet Note: This should NOT be run on EFnet.
*/
use_halfops = no; # Don't enable this on EFnet
/* anonops: Enable/disable channel mode +a. This hides the people
* who are opped in the channel from people who are unopped.
*
* The ircd will 'sync' the users oplists when they become opped
* or deopped by sending mode changes. This can cause a flood and
* could potentially be abused.
*
* EFNet Note: This should NOT be run on EFnet.
*/
use_anonops = no; # Don't enable this on EFnet
/* vchans: permit virtual channels, multiple copies of the same
* channel name. read doc/vchans.txt for more details
*
* If you ./configure'd with --enable-efnet, the code for this
* feature will not be compiled into the ircd
*
* EFNet Note: This should NOT be run on EFnet (this feature
* would very badly break EFnet).
*
*/
use_vchans = no; # Don't enable this on EFnet
/* vchans oper only: only allow opers to create vchans via /cjoin */
vchans_oper_only = yes;
/* knock: Allows users to request an invite to a channel that
* is locked somehow (+ikl). If the channel is +p or you are banned
* the knock will not be sent.
*
* EFnet Note: As this feature is used by European servers, but
* not North American ones, it has been left enabled
* by default. Please feel free to disable this
* if you do not want to run channel knock.
*/
use_knock = yes;
/* knock delay: The amount of time a user must wait between issuing
* the knock command.
*/
knock_delay = 1 minute;
/* knock channel delay: How often a knock to any specific channel
* is permitted, regardless of the user sending the knock.
*/
knock_delay_channel = 1 minute;
/* max chans: The maximum number of channels a user can join/be on. */
max_chans_per_user = 25;
/* quiet on ban: stop banned people talking in channels. */
quiet_on_ban = yes;
/* max bans: maximum number of +b/e/I modes in a channel */
max_bans = 25;
/* persist time: the minimum amount of time a channel will remain with
* all its modes intact once the last user has left the channel.
*
* set to 0 to disable.
*/
persist_time = 30 minutes;
/* splitcode: the ircd will check every 60s as to whether splitmode
* should be disabled or not, so there may be a delay between a
* netsplit ending and splitmode ending.
*
* both split users and split servers must be true to enter splitmode
*
* you may force splitmode to be permanent by /quote set splitmode on
*/
/* split users: when the usercount is lower than this level, consider
* ourselves split. this must be set for automatic splitmode
*/
default_split_user_count = 10000;
/* split servers: when the servercount is lower than this, consider
* ourselves split. this must be set for automatic splitmode
*/
default_split_server_count = 10;
/* split no create: disallow users creating channels on split, works in
* tandem with persistant channels, that have retained their modes.
*/
no_create_on_split = no;
/* split: no join: disallow users joining channels at all on a split */
no_join_on_split = no;
};
/* The serverhide block contains the options regarding serverhiding */
serverhide {
/* flatten links: this option will show all servers in /links appear
* that they are linked to this current server
*
* EFnet Note: While this is not a requirement on EFnet, it
* may be a good idea.
*/
flatten_links = yes;
/* links delay: how often to update the links file when it is
* flattened.
*/
links_delay = 5 minutes;
/* hidden: hide this server from a /links output on servers that
* support it. this allows hub servers to be hidden etc.
*/
hidden = no;
/* disable hidden: prevent servers hiding themselves from a
* /links ouput.
*/
disable_hidden = no;
/* hide servers: hide remote servernames everywhere and instead use
* network_name and network_desc.
*/
hide_servers = no;
/* disable remote: disable users doing commands on remote servers */
disable_remote_commands = no;
/* disable local channels: prevent users from joining &channels.
* This is extreme, but it is still a flaw in serverhide. It will
* however remove far more from users than it will give back in
* security.
*/
disable_local_channels = no;
};
/* The general block contains many of the options that were once compiled
* in options in config.h. The general block is read at start time.
*/
general {
/* floodcount: the default value of floodcount that is configurable
* via /quote set floodcount. This is the amount of lines a user
* may send to any other user/channel in one second.
*/
default_floodcount = 10;
/* failed oper notice: send a notice to all opers on the server when
* someone tries to OPER and uses the wrong password, host or ident.
*/
failed_oper_notice = yes;
/* dots in ident: the amount of '.' characters permitted in an ident
* reply before the user is rejected.
*/
dots_in_ident=0;
/* dot in ipv6: ircd-hybrid-6.0 and earlier will disallow hosts
* without a '.' in them. this will add one to the end. only needed
* for older servers.
*/
dot_in_ip6_addr = no;
/* min nonwildcard: the minimum non wildcard characters in k/d/g lines
* placed via the server. klines hand placed are exempt from limits.
* wildcard chars: '.' '*' '?' '@'
*/
min_nonwildcard = 3;
/* max accept: maximum allowed /accept's for +g usermode */
max_accept = 20;
/* nick flood: enable the nickflood control code */
anti_nick_flood = yes;
/* nick flood: the nick changes allowed in the specified period */
max_nick_time = 20 seconds;
max_nick_changes = 5;
/* anti spam time: the minimum time a user must be connected before
* custom quit messages are allowed.
*/
anti_spam_exit_message_time = 5 minutes;
/* ts delta: the time delta allowed between server clocks before
* a warning is given, or before the link is dropped. all servers
* should run ntpdate/rdate to keep clocks in sync
*/
ts_warn_delta = 30 seconds;
ts_max_delta = 5 minutes;
/* client exit: prepend a users quit message with "Client exit: " */
client_exit = no;
/* kline reason: show the user the reason why they are k/d/glined
* on exit. may give away who set k/dline when set via tcm.
*/
kline_with_reason = yes;
/* kline connection closed: make the users quit message on channels
* to be "Connection closed", instead of the kline reason.
*/
kline_with_connection_closed = yes;
/* non redundant klines: flag and ignore redundant klines */
non_redundant_klines = yes;
/* warn no nline: warn opers about servers that try to connect but
* we dont have a connect {} block for. Twits with misconfigured
* servers can get really annoying with this enabled.
*/
warn_no_nline = yes;
/* stats o oper only: make stats o (opers) oper only */
stats_o_oper_only=yes;
/* stats P oper only: make stats P (ports) oper only */
stats_P_oper_only=yes;
/* stats i oper only: make stats i (auth {}) oper only. set to:
* yes: show users no auth blocks, made oper only.
* masked: show users first matching auth block
* no: show users all auth blocks.
*/
stats_i_oper_only=yes;
/* stats k/K oper only: make stats k/K (klines) oper only. set to:
* yes: show users no auth blocks, made oper only
* masked: show users first matching auth block
* no: show users all auth blocks.
*/
stats_k_oper_only=yes;
/* caller id wait: time between notifying a +g user that somebody
* is messaging them.
*/
caller_id_wait = 1 minute;
/* pace wait simple: time between use of less intensive commands
* (HELP, remote WHOIS, WHOWAS)
*/
pace_wait_simple = 1 second;
/* pace wait: time between more intensive commands
* (ADMIN, INFO, LIST, LUSERS, MOTD, STATS, VERSION)
*/
pace_wait = 10 seconds;
/* short motd: send clients a notice telling them to read the motd
* instead of forcing a motd to clients who may simply ignore it.
*/
short_motd = no;
/* ping cookies: require clients to respond exactly to a ping command,
* can help block certain types of drones and FTP PASV mode spoofing.
*/
ping_cookie = no;
/* no oper flood: increase flood limits for opers. */
no_oper_flood = yes;
/* glines: enable glines, network wide temp klines
*
* EFnet Note: This feature is required for European EFnet servers
* and is used by several North American servers. As
* such, it has been left on by default. If you
* do not want your server to participate in G:Lines
* you should disable this.
*/
glines = yes;
/* gline time: the amount of time a gline will remain before exiring */
gline_time = 1 day;
/* idletime: the maximum amount of time a user may idle before
* they are disconnected
*/
idletime = 0;
/* maximum links: the maximum amount of servers to connect to for
* connect blocks without a valid class.
*/
maximum_links = 1;
/* REMOVE ME. The following line checks you've been reading. */
havent_read_conf = 1;
/* logfiles: the logfiles to use for user connects, /oper uses,
* and failed /oper. These files must exist for logging to be used.
*/
fname_userlog = "logs/userlog";
fname_operlog = "logs/operlog";
fname_foperlog = "logs/foperlog";
/* max targets: the maximum amount of targets in a single
* PRIVMSG/NOTICE. set to 999 NOT 0 for unlimited.
*/
max_targets = 4;
/* client flood: maximum number of lines in a clients queue before
* they are dropped for flooding.
*/
client_flood = 20;
/* use help: whether an improved help system per command is available
* to users. If this is disabled, users will just be shown a command
* list.
*
* EFNET NOTE: It is not recommended you enable this due to the method
* of reading help files.
*/
use_help = no;
/* message locale: the default message locale if gettext() is enabled
* and working.
* Use "custom" for the (in)famous Hybrid custom messages.
* Use "standard" for the compiled in defaults.
*/
message_locale = "standard";
/* usermodes configurable: a list of usermodes for the options below
*
* +b - bots - See bot and drone flooding notices
* +c - cconn - Client connection/quit notices
* +d - debug - See debugging notices
* +f - full - See I: line full notices
* +g - callerid - Server Side Ignore (for privmsgs etc)
* +i - invisible - Not shown in NAMES or WHO unless you share a
* a channel
* +k - skill - See server generated KILL messages
* +l - locops - See LOCOPS messages
* +n - nchange - See client nick changes
* +r - rej - See rejected client notices
* +s - servnotice - See general server notices
* +u - unauth - See unauthorized client notices
* +w - wallop - See server generated WALLOPS
* +x - external - See remote server connection and split notices
* +y - spy - See LINKS, STATS, TRACE notices etc.
* +z - operwall - See oper generated WALLOPS
*/
/* oper only umodes: usermodes only opers may set */
oper_only_umodes = bots, cconn, debug, full, skill, nchange,
rej, spy, external, operwall, locops, unauth;
/* oper umodes: default usermodes opers get when they /oper */
oper_umodes = locops, servnotice, operwall, wallop;
/* servlink path: path to 'servlink' program used by ircd to handle
* encrypted/compressed server <-> server links.
*
* only define if servlink is not in same directory as ircd itself.
*/
#servlink_path = "/usr/local/ircd/bin/servlink";
/* default cipher: default cipher to use for cryptlink when none is
* specified in connect block.
*/
#default_cipher_preference = "BF/256";
/* use egd: if your system does not have *random devices yet you
* want to use OpenSSL and encrypted links, enable this. Beware -
* EGD is *very* CPU intensive when gathering data for its pool
*/
#use_egd = yes;
/* egdpool path: path to EGD pool. Not necessary for OpenSSL >= 0.9.7
* which automatically finds the path.
*/
#egdpool_path = "/var/run/egd-pool";
/* compression level: level of compression for compressed links between
* servers.
*
* values are between: 1 (least compression, fastest)
* and: 9 (most compression, slowest).
*/
#compression_level = 6;
/* throttle time: the minimum amount of time between connections from
* the same ip. exempt {} blocks are excluded from this throttling.
* Offers protection against flooders who reconnect quickly.
* Set to 0 to disable.
*
* EFnet Note: exempt {} blocks are NOT hidden, so do NOT exempt
* EFnet server IP's.
*/
throttle_time = 0;
};
modules {
/* module path: paths to search for modules specified below and
* in /modload.
*/
path = "/usr/local/ircd/modules";
path = "/usr/local/ircd/modules/autoload";
/* module: the name of a module to load on startup/rehash */
#module = "some_module.so";
};

View file

@ -1,212 +0,0 @@
/************************************************************************
* IRC - Internet Relay Chat, doc/NETWORKING
* Copyright (C) 1990, Helen Rose
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 1, or (at your option)
* any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
Author: Helen Rose
hrose@cs.bu.edu
Date: 10 Oct 1990
*** Please read this before doing any connecting or writing to ask for
connections. The information contained in this section is crucial to the
way IRC is run.
In August of 1990, IRC suffered a critical split in viewpoints of key
people in the IRC heirarchy. The result was IRC split into two networks,
EFnet (Eris Free network) and Anet (Anarchy network). This split continues
today. There is some debate over whether IRC will ever reunite, however,
neither side is willing to bend from their standpoint.
Below is a paragraph from each side, listing their viewpoints on why their
respective net is "better" than the other. Please read these, and decide
for yourself which is the better network. Currently, there are about 95
servers on EFnet (and the same number of users) and 15 servers on Anet (and
about half the number of users).
Anet
====
joshua@coombs.anu.edu.au
(DCLXVI == Josh Geller)
Arguments in favor of joining Anet include stabler links, ease of
connecting (just connect your server to eris.berkeley.edu; if you decide
later you wish to be on EFnet you merely have to add whatever patches are
required and get a link from the appropriate EFnet server), no likelihood
of regulation of numbers of servers (there has been some talk of limiting
the number of servers on EFnet).
EFnet
*===*
ckd@cs.bu.edu, hrose@cs.bu.edu
(ckd = Christopher Davis, Trillian = Helen Rose)
Arguments in favor of joining EFnet are virtually limitless. From a
redundant backbone plan (which assures everyone of getting a close,
fast link and tries to keep traffic off of long haul networks) to the
fact that the obvious security hole that exists with open-server servers
does not exist. (Anyone running an open server allows any user with
telnet access to crash the server's machine without too much work.)
---real networking document---
Throughout this document every effort will be made to apply to *BOTH* ANet
and EFnet. If this is not possible, EFnet will be referred to, considering
it is the side where the majority is located.
Anet has one network coordinator:richardt@legato.com. Mail to him for all
correspondence. At this time, no backbone layouts have been published for
Anet.
EFnet is coordinated in several areas:
ckd@cs.bu.edu and hrose@cs.bu.edu coordinate the US routing. They also
coordinate all incoming connections to the US. If you are in the United
States and need a link, please mail to "operlist-request@cs.bu.edu"
supplying the information listed below.
savela@tel.vtt.fi, irc@tolsun.oulu.fi, and d88-skl@nada.kth.se coordinate
the NORDUnet connections. (msa, WiZ, and meLazy on irc, respectively)
muts@fysak.fys.ruu.nl coordinates Dutch servers.
stumpf@Informatik.TU-Muenchen.de and Gruner@Informatik.TU-Muenchen.de
coordinate German servers. (Maex and Armin/Gonzo)
phil@cnam.cnam.fr coordinates the one French IRC server, and any others
that might want be started.
avalon@coombs.anu.oz.au coordinates the Australian servers.
bowles@is.s.u-tokyo.ac.jp coordinates the Japanese servers.
==how to get an IRC connection==
(1) If you are in the United States and on Anet, mail to
richardt@legato.com.
(2) If you are in the United States and on EFnet:
a) find out if your system has /etc/ping (sometimes /usr/etc/ping)
and ping the following hosts-
server/machine name IP Address Geographical Location
bucsd.bu.edu 128.197.10.2 Boston, MA
irc.mit.edu 18.70.0.224 Cambridge, MA
poe.acc.virginia.edu 128.143.20.20 Charlottesville, VA
sindri.cs.cornell.edu 128.84.254.96 Ithaca, NY
polaris.ctr.columbia.edu 128.59.64.79 New York City, NY
fairhope.andrew.cmu.edu 128.2.11.213 Pittsburgh, PA
*.umich.edu 141.212.66.36 Ann Arbor, MI
h.ece.uiuc.edu 128.174.115.18 Urbana-Champaign, IL
minnie.cc.utexas.edu 128.83.135.13 Austin, TX
ucsu.colorado.edu 128.138.129.83 Boulder, CO
badger.ugcs.caltech.edu 131.215.128.29 Pasadena, CA
*.spies.com 130.143.3.3 Cupertino, CA
*.washington.edu 128.95.152.35 Seattle, WA
(yes, this seems like alot, but the backbone structure is quite complex and
redundant so when we have a network break, servers can pick up other
servers within moments)
b) a simple ping hostname (or ping IP address) will suffice. Ping the
five geographically closest machines. Let the ping run for 100 packets.
This allows the network coordinators to best evaluate your position
on the network and to give you a connection that is fastest.
Note: when using the SunOS version of ping, use ping -s machinename;
"regular" SunOS ping is useless.
c) mail these results to operlist-request@cs.bu.edu requesting a link.
(3) If you are in Europe and are requesting a link, mail to the
appropriate contact listed above, and they will instruct you on how to
secure a link for your server.
These are the results of the typical /etc/ping command:
(note that since bucsd.bu.edu runs SunOS, I used ping -s...)
bucsd% /usr/etc/ping -s betwixt.cs.caltech.edu
PING betwixt.cs.caltech.edu: 56 data bytes
64 bytes from betwixt.cs.caltech.edu (131.215.128.4): icmp_seq=0. time=169. ms
64 bytes from betwixt.cs.caltech.edu (131.215.128.4): icmp_seq=1. time=190. ms
64 bytes from betwixt.cs.caltech.edu (131.215.128.4): icmp_seq=2. time=200. ms
64 bytes from betwixt.cs.caltech.edu (131.215.128.4): icmp_seq=3. time=170. ms
[...]
64 bytes from betwixt.cs.caltech.edu (131.215.128.4): icmp_seq=18. time=180. ms
64 bytes from betwixt.cs.caltech.edu (131.215.128.4): icmp_seq=19. time=220. ms
64 bytes from betwixt.cs.caltech.edu (131.215.128.4): icmp_seq=20. time=170. ms
64 bytes from betwixt.cs.caltech.edu (131.215.128.4): icmp_seq=21. time=200. ms
^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^^^^^^
Size of packet hostname IP address packet number trip time
----betwixt.cs.caltech.edu PING Statistics----
22 packets transmitted, 22 packets received, 0% packet loss
round-trip (ms) min/avg/max = 160/179/220
When you send pings to operlist-request, please only send the results
(the above three lines)--we *don't* need each packet's time.
Guidelines:
Avg Time Connection is
======== =============
20-50 ms Optimal
50-80 ms Excellent
80-120 ms Very Good
120-180 ms Average
180-240 ms Acceptable
240-300 ms Below Average
300-400 ms Bad
400+ ms Find a better link, if possible
** *** WHERE TO FIND HELP!!! ***
**
** If you have any other questions about connecting to an irc server, please
** mail to operlist-request@cs.bu.edu. If you have problems mailing there,
** try mailing hrose@cs.bu.edu or ckd@cs.bu.edu.
**
** *** WHERE TO FIND HELP!!! ***
If you are in need of further help, you may find it by using your IRC
client, entering IRC, and sending a /wallops. Be sure to read the help
information on /wallops before doing so. Please use /wallops for IRC
questions or help only, and not for questions like "have you seen nicky
I need to talk to him". /wallops with care, or you will be annoying
every operator on IRC.
Appendix
========
Open client servers
Until such a time that your server becomes connected, you should use your
irc client and connect to open client servers. Some of these servers are-
irc.mit.edu
bucsd.bu.edu
fairhope.andrew.cmu.edu
hermes.tcad.ee.ufl.edu
mingin.engin.umich.edu
minnie.cc.utexas.edu
badger.ugcs.caltech.edu
ucsu.colorado.edu
dharma.cpac.washington.edu
fysak.fys.ruu.nl
nic.funet.fi
coombs.anu.edu.au
Start up your irc client, and then type /help for help.
Happy IRC'ing!

View file

@ -1,253 +0,0 @@
Internet Relay Chat Operator Etiquette Guide
January, 1991
Welcome! You've either been selected to be an IRC Operator or you have set
up your server and thus have taken on the dual task of IRC Server
Administrator and IRC Operator. Your future days will be filled with hours
of fun chatting on IRC, and then wondering why everyone you talked to went
away, because the links had apparently broken.
Linking:
========
You will be assigned links from the IRC Routing Coordinators. Please use
these links and these links ONLY. The links have been designed to maximize
efficiency and make delays in chatting minimal. You will be given two
links, one to each regional backbone site. Connect to the primary site
first and then to the secondary site. You should not need to connect to any
other sites. You will be informed if this policy changes.
Kills and Walls:
===============
/kill and /wall are special operator commands. You should use them with
care, and only if absolutely needed. The format are as follows:
/kill USERNAME comment. comment can be a phrase of almost any length
(within reason) and should be used for specifying the reason of the kill.
example: /kill Trillian She's a Ghost
IRC Ghosts are created after a net split has occured and the net has yet to
relink.
/wall PHRASE. This is used for an emergency command like the net is about
to split into little pieces, and everyone should reconfigure their links
as soon as possible. You will see a WALL when it happens, an operators
nickname will appear with # signs around it.
#Trillian# Server bucsd.bu.edu coming down for upgrade. Prepare to
reconfigure links.
/wallops PHRASE This is used to talk to ALL operators at once. It is not
often warranted, but is useful. Often, when there is an important IRC
situation that requires all the operators attention, /wallops is used. The
form for wallops is a nickname with ! signs around it.
!Trillian! Australia should leaf off of eris, not carry all the US traffic.
/TRACE command
/TRACE is useful to know what servers are connected to what. Sometimes
/trace can be confusing, especially you are using it for the first time.
Here is an example of a trace from bucsd.bu.edu to betwixt.cs.caltech.edu.
/TRACE betwixt.cs.caltech.edu
IRC log started Mon Aug 26 17:04
*** Link eff.org<2.6.1a> ==> h.ece.uiuc.edu
-bucsd.bu.edu- *** Link bucsd.bu.edu<2.6.1a> ==> h.ece.uiuc.edu
-h.ece.uiuc.edu- *** Serv Class[3] h.ece.uiuc.edu ==> ucsu.colorado.EDU
-h.ece.uiuc.edu- *** Serv Class[2] h.ece.uiuc.edu ==> bucsd.bu.edu
-h.ece.uiuc.edu- *** Serv Class[10] h.ece.uiuc.edu ==> silver.ucs.indiana.edu
-h.ece.uiuc.edu- *** Serv Class[11] h.ece.uiuc.edu ==> monitor.ece.uiuc.edu[h.ece.uiuc.edu]
-h.ece.uiuc.edu- *** User Class[0] h.ece.uiuc.edu ==> Razorbone[uxa.cso.uiuc.edu]
-h.ece.uiuc.edu- *** Serv Class[10] h.ece.uiuc.edu ==> MHD54.MOORHEAD.MSUS.EDU[134.29.97.1]
-h.ece.uiuc.edu- *** Serv Class[4] h.ece.uiuc.edu ==> *.umich.edu[mingin.engin.umich.edu]
-h.ece.uiuc.edu- *** User Class[0] h.ece.uiuc.edu ==> BooServ[sunc4.cs.uiuc.edu]
-h.ece.uiuc.edu- *** Serv Class[10] h.ece.uiuc.edu ==> nic.stolaf.edu
-h.ece.uiuc.edu- *** Oper Class[0] h.ece.uiuc.edu ==> SodaPop[h.ece.uiuc.edu]
-h.ece.uiuc.edu- *** Serv Class[4] h.ece.uiuc.edu ==> oddjob.uchicago.edu
-h.ece.uiuc.edu- *** User Class[0] h.ece.uiuc.edu ==> Deviant[isca01.isca.uiowa.edu]
-h.ece.uiuc.edu- *** Serv Class[10] h.ece.uiuc.edu ==> *.uc.edu[hilbert.che.uc.edu]
-h.ece.uiuc.edu- *** Class 0 Entries linked: 4
-h.ece.uiuc.edu- *** Class 11 Entries linked: 1
-h.ece.uiuc.edu- *** Class 10 Entries linked: 4
-h.ece.uiuc.edu- *** Class 4 Entries linked: 2
-h.ece.uiuc.edu- *** Class 3 Entries linked: 1
-h.ece.uiuc.edu- *** Class 2 Entries linked: 1
This shows that from eff.org (running version 2.6.1a to h.ece.uiuc.edu,
routing goes through bucsd.bu.edu before reaching h.ece.uiuc.edu.
"h" is connected to ucsu.colorado.edu, silver.ucs.indiana.edu,
monitor.ece.uiuc.edu (which resolves to [h.ece.uiuc.edu], hence the
square brackets), mhd54.moorhead.msus.edu, *.umich.edu (which resolves
to mingin.engin.umich.edu), nic.stolaf.edu, oddjob.uchicago.edu,
*.uc.edu (which resolves to hilbert.che.uc.edu), and bucsd.bu.edu, which
is known as its "uplink". It is quite normal for a server to have
several "uplinks" if it is busy. An uplink is the link towards the top
of the tree which carries alot of traffic. "h" also has several users on
it, RazorBone, BooServ, and Deviant. SodaPop is also an active operator
on h.ece.uiuc.edu. You can tell each host from what each person is
logged into by looking just past their nickname. For example, Deviant is
logged in from isca01.isca.uiowa.edu.
/SQUIT server {comment}
/squit isolates a specified link from the next closest uplink server.
This is usually used in conjunction with CONNECT (explained later) to
reroute traffic. This will be described in detail in the section
"routing", preceding CONNECT.
SQUIT can be used in one of two ways. It can be used on a local
server, which would cause the server name specified to be unlinked
relative to your path; or you can send a message to another server
instructing it to issue an SQUIT to that server, in which case the
break will be relative to the remote server.
Usage (and examples):
/squit E
If the network looks like this initially (and you are on server A)
A <---> B <---> C <---> D
^
|
v
G <---> E <---> F <---> ... (rest of the net)
Then after issuing the previous /squit the network would look like this:
A <---> B <---> C <---> D
G <---> E <---> F <---> ...
/squit E {comment}
It usually helps to give a reason why you are sending a
SQUIT for a server. This can be accomplished by sending
the command "/squit server This link is making the US route
through Finland". The SQUIT will then be sent out, and the
server sending the squit will WALLOP sending the comment
so all operators can see it.
/CONNECT server {portnum server2}
/connect is used to establish a link between two servers. These
connections must be authorized by each server's ircd.conf file, but
any operator can issue a CONNECT between authorized servers. This
command is most often used in conjunction with SQUIT to reroute
traffic.
If only one argument is given, this command causes the server you
are on to attempt to connect to the server specified. For example,
"/connect B" (in the previous example) would cause your server (A) to
connect to B.
Suppose you wanted to reconnect server F to server E? You cannot
contact server F since it is no longer part of your network. However,
you can tell server E to connect to it. A remote CONNECT can be issued
to server E.
Examples (assume you are on server A):
/connect B
If the network initially looks like this:
A B <---> ... (rest of network)
Then afterwards (if the connection succeeds) the network will look
like this:
A <---> B <---> ...
In the example where you wanted to reconnect server E to F, the
following syntax would be appropriate (note: we are assuming that
F's irc socket port is 6667, which is the default)
/connect F 6667 E
If the network initially looks like this:
A <---> B <---> C <---> D
^
|
v
G <---> E F <---> ...
Then after your CONNECT request the network topology will look like this:
A <---> B <---> C <---> D
^
|
v
G <---> E <---> F <---> ...
Be careful when connecting servers that you know which command to
use! If you simply issued "/connect F" from your server, the
network would look like this:
... <---> F <---> A <---> B <---> C <---> D
^
|
v
G <---> E
which for various reasons (discussed below) might be very
undesirable.
Routing
=======
When and how should you do rerouting? This depends on where your
server is topologically located and whether you route traffic. If you
are a leaf node (i.e. only connect to one server at a time) then
chances are you won't need to do any routing at all. Your ircd.conf
file should be written to connect to the best possible servers first
before trying alternates. At the most, you may decide to squit an
alternate server and connect to your primary if/when it goes back up.
This only involves local squits, however.
If you are operating a backbone site, you may find yourself
rerouting things quite often. If the EFnet servers (see the file
doc/networking) badger.ugcs.caltech.edu (Pasadena, CA),
irc.mit.edu (Boston, MA), minnie.cc.utexas.edu (Austin, TX) and
ucsu.colorado.edu (Boulder, CO) were routing traffic in the following way:
... <---> minnie <---> badger <---> bucsd <---> ucsu <---> ...
It would make sense to either squit ucsu and reconnect it to minnie,
or disconnect minnie from badger and connect to ucsu, because
topologically (and geographically) ucsu and minnie are rather close.
There are occasions when US traffic for some reasons winds up being
routed through Australia. This is another case where traffic should
definitely be rerouted. However, there are sometimes occasions when
routing is going through "backdoor" methods. If you see something
totally outrageous (like the east coast and the west coast being
connected by eff.org) please /WALLOPS and ask before you send any
squits, because chances are, it's like that for a reason.
Of course, any operator can remotely squit or connect servers, so
if you see a problem and you're sure you know how to fix it, it's a
good idea to do so. If the operator of a server which is is being
routed poorly is online, it's probably best to contact him/her first,
though.
Chances are that hub operators will be more familiar with the
general topology of the network and which servers connect to which
(which is why most of the manual routing is left to them), so if you
have any problems, talk to the other operators via /wallops. That's
what it's there for!
Also, be aware that servers will notify all the operators online of
remote SQUITs and CONNECTs via WALLOPS.
Please let us know if there should be any additions to this guide. Again,
this is not MANDATORY, this is just a GUIDE. Please conduct yourself as
an IRC Operator would...you are looked upon for assistance, both emotional
and mental.
Helen Rose Christopher Davis
<hrose@cs.bu.edu> <ckd@cs.bu.edu>
Noah Friedman
<friedman@ai.mit.edu>
January, 1991

View file

@ -1,3 +0,0 @@
This stuff is so ancient it's not even funny anymore. Take it with
a grain of salt if you bother to read it.

View file

@ -1,369 +0,0 @@
# IRC - Internet Relay Chat, doc/example.conf
# Copyright (C) 1994, Helen Rose
##
## updated by Diane Bruce Dec 19 1997, aka db or Dianora
## My changes will be shown in ## marks
##
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 1, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#
# This is an example configuration file for the IRC server
#
# You only need an ircd.conf (IRC server configuration file) if you are
# running an IRC server. If you are running a standalone client this file
# is not necessary.
#
# This file will explain the various lines in the IRC server
# configuration file. Not all lines are mandatory. You can check to make
# sure that your configuration file is correct by using the program
# "chkconf", provided in the server distribution (and when you do "make
# install" this program will be installed in the same directory as the irc
# server).
#
# The options for whether a line is needed or not are:
# MANDATORY: you absolutely MUST have this line
# NETWORKED: you must have this line if you are connecting this irc
# server to any other server (servers can run standalone).
# SUGGESTED: it is highly suggested that you use this line
# OPTIONAL: it's completely up to you whether to define this or not
# DISCOURAGED: you really really should not use this line if at all
# possible.
# NOT NECESSARY: an old or out of date line that isn't needed.
#
# MANDATORY lines are absolute *musts*, that is, if you do not have this
# line then your server will not work properly. SUGGESTED lines are
# close-to-mandatory (that is, the server will run without it, but you are
# highly encouraged to use these lines).
#
# Note that "*" in a field indicates an "unused" field.
#
#
# ========================================================================
# NOTE! this entire configuration file is read UPSIDE-DOWN! So if you have
# to put something in a specific order (for example, client-connection
# lines), put them in reverse order!
# ========================================================================
#
#
# M: [MANDATORY]. This line sets your server's name, description, and
# port number. Fields, in order, are:
#
# M:hostname:*:Description Of Your Server:6667
#
M:csa.bu.edu:*:Boston University Computer Science Department:6667
#
# A: [MANDATORY]. This line lists your administrative information
# (contact address, etc). To view this information, /admin (server) will
# show it to you.
#
# The A: line has no set information, in fact, you can put arbitrary text
# in there if you wish (it is encouraged that you put at *least* a contact
# address for a person responsible for the irc server, however)
#
A:Boston University CS Department:Main Client Server:Helen Rose <hrose@cs.bu.edu>
#
# Y: [SUGGESTED]. These lines define connection classes. Connection
# classes allow you to fine-tune your client and server connections. It is
# suggested that clients and servers be placed in seperate classes, and if
# you have lots of server connections (if you do have lots of servers you
# shouldn't be reading this file :-) each set of servers (defined
# arbitrarily by you) should have its own class. If you have clients
# coming in from lots of different sites, you may want to seperate them
# out into classes. For instance, you may want to put local users in one
# class, with remote users in another class.
#
# The class numbers are not arbitrary. In auto-connecting servers -- that
# is, servers that you have a port number (e.g. 6667) on the end of the C:
# line (see below) the higher the number the higher the priority in
# auto-connecting.
#
# The fields in order are: class number, ping frequency (in seconds),
# connect frequency (in seconds), maximum number of links (used for
# auto-connecting, and for limiting the number of clients in that class),
# and sendq (this overrides any value set in include/config.h for #define
# MAXSENDQLENGTH).
#
# Note that it is a good idea to have ping frequency the same at both ends
# of the link.
#
# in this case, connect-frequency is 0 indicating that this is a client
# class (servers never connect to clients, it is the other way around).
Y:1:90:0:20:100000
#
##
## in the case of hybrid and Csr servers, the connect-frequency
## field is now used as a count of number of clients to allow per IP
## (or in the case of CSr the number of clients per IP or clients per
## idented host; soon to be in Hybrid as well :-) )
## i.e. to limit one set of I lines to 1 client connection per IP
##
##Y:1:90:1:20:100000
## -db
##
#
# this is a normal server connection (normal as of March, 1994)
Y:2:90:300:1:600000
#
Y:10:90:0:3:100000
#
# I: [MANDATORY]. The I: lines are client-authorization lines. Without
# these lines, no clients will be able to connect to your server.
# Wildcards ("*") are permitted. Passwords are also permitted (clients can
# be configured to send passwords).
#
# Ident (for more information on this, see rfc1413) can also be used by
# placing a @ in the appropriate fields.
#
# Fields are as follows:
# I:IP-address-mask:optional password:domain-mask::connection class (opt)
#
# With a password..... This will allow anyone from anywhere to connect
# as long as they know the password ("foobar"). Note listing this I: line
# first, it will be read *last*, meaning it is the "fall-through". That
# is, anyone who doesn't match the I: lines listed below must know the
# password ("foobar") to connect.
#
I:*@*:foobar:*@*::1
# This is a standard vanilla I: line which will permit anyone with an IP
# address starting with 128.197 OR with a hostname ending in .bu.edu to
# connect to the server. NOTE, the ircd matches on the *right-most* match,
# so if I connect as hrose@csa.bu.edu (which is hrose@128.197.10.3) I will
# show up on irc as hrose@csa.bu.edu since that is the first match it
# found. (Even though the second match is valid).
I:128.197.*::*.bu.edu::1
#
# using ident
I:*@128.197.*::*@*.bu.edu::1
# and you can even specify just certain usernames running ident (as long
# as the client's site is running the ident daemon):
I:NOMATCH::hrose@csa.bu.edu::1
# putting NOMATCH in the first field will stop the ircd from matching
# automatically against the IP address and it will force the server to
# match against the hostname. (the "NOMATCH" string is not mandatory, you
# can use any arbitrary text in the first field).
#
#
# O: [OPTIONAL]. These lines define operator access. You do not need to
# have an operator to run a server. A well configured leaf site should not
# need an operator online, if it's connections are well defined, the irc
# administrator can use kill -HUP on the ircd to reload the configuration
# file.
##
## *sigh* unfortunately, O lines are now pretty mandatory
## in a modern EFnet
## -db
##
# The fields are as follows:
# O:hostname (ident "@" permitted):password:NickName
# if the person in "NickName" is not coming from the hostname defined in
# the first field then the person will get the error message "No O: lines
# for your host".
# NOTE that since Crypted Passwords are defined by default in
# include/config.h this text probably will not be plaintext. See
# ircd/crypt/README for more information.
#
O:*.bu.edu:Zaphod:Trillian::10
#
# and this line forces ident:
O:hrose@csa.bu.edu:Zaphod:Trillian::10
#
# This line is a "local operator", it is specified with a lower-case "o"
# -- it is the only lower-case type in the ircd.conf file.
#
# this line permits the nickname "jhs" with the password of "ITBites" to
# be a local operator only (be able to issue commands locally -- can /kill
# and /squit and /connect -- but *only* locally)
#
o:*.bu.edu:ITBites:jhs::10
#
# a crypted password line (NOTE that if you have crypted passwords, *all*
# of you passwords must be crypted! In fact, if you are getting an error
# "Incorrect Password" it may well be because crypted passwords are
# defined and you have used plaintext. So my example of plaintext and
# crypted strings in the same IRC server configuration file is an
# impossibility (but it is just theoretical, which is why I explained both).
#
O:rocker@csa.bu.edu:T0eiVgHrqeKTQ:Rocker::10
#
# U: [NOT NECESSARY]. This line defines the default server for the IRC
# client that ships with the server -- the default client is in irc/irc
# You should not use U: lines but instead use the UPHOST definition in
# include/config.h
U:csa.bu.edu:foobar:csa.bu.edu
##
## U lines are now obsolete in hybrid. ignore.
## - db
##
#
# The host part of C/N lines MUST contain a valid hostname or IP address
# The host part in the C:line MUST be identical to the host part in the N:line
# The name part of the C/N lines MUST match the associated H/L line name
#
# C: [NETWORKED]. These lines define what servers your server tries to
# connect to.
# N: [NETWORKED]. These lines define what servers your server permits
# connections to be initiated from.
# C/N lines MUST be used in pairs. You cannot have one without the other.
#
# C: lines contain the following fields:
# C:remote server's hostname:passwd:remote server's name:port:conn class
# (connection class)
# N: lines contain the following fields:
# N:remote server's hostname:passwd:remote server's name:host mask:conn class
# (connection class)
# "host mask" is the number of parts in *your* hostname to mask to. For
# instance, with my servername being "csa.bu.edu", if I wanted to present
# my servername to be "*.bu.edu" I would have a host-mask portion of "1".
#
# it is *strongly* advised that your C/N line passwords be different for
# security's sake.
#
# ident is allowed in the server's hostname part of the field.
# these lines tell the server to automatically (note the port number, that
# means automatic connection) connect to cs-ftp.bu.edu:
C:hrose@cs-ftp.bu.edu:bigspark:cs-ftp.bu.edu:6667:2
N:hrose@cs-ftp.bu.edu:bigalpha:cs-ftp.bu.edu::2
#
# This server's connection lines are more vanilla, masking the host to
# *.bu.edu (as described above):
C:irc-2.mit.edu:camelsrk00l:irc-2.mit.edu::2
N:irc-2.mit.edu:andsoarellamas:irc-2.mit.edu:1:2
#
# K: [OPTIONAL]. These lines define user@host patterns to be banned from
# this particular server (with an optional time field). Note that K: lines
# are *not* global, and if you ban a user they can still use any other IRC
# server (unless they have specifically been banned there as well).
#
# the fields are defined as:
# K:hostmask:time field:username
# wildcards are permitted in any one of the fields, in other words, you can
# K:*::* if you wanted (but your server wouldn't be used much ;-)
#
# This K: line bans the username "FSSPR" (the wildcards are used to make
# sure that any ident-checking character will match) on any machine from
# the University of Alaska.
K:*.alaska.edu::*FSSPR*
#
# This K: line bans any users from acs*.bu.edu between the hours of 8am
# and 12pm and 1pm and 5pm (the time is always the server's local time):
K:acs*.bu.edu:0800-1200,1300-1700:*
# Note that 24 hour time is used (no "AM" or "PM").
#
# R: [DISCOURAGED]. These lines restrict user access based on a more
# stringent checking system than is available in the K: line. It looks for
# a match (based on hostname and username) and then runs an outside
# program (which MUST be specified using a full pathname). The output of
# the program should be a string in the form "Y <message>" (which permits
# access for the user) or "N <message>" (which denies access for the
# user). If "Y <message>" is received by the server, the server ignores
# the message and permits access for the user. If "N <message>" is
# returned, the server tells the user that he/she is not permitted to
# access that irc server, and gives the reason.
#
# Again, like K: lines, R: lines are local and thus not very effective in
# blocking certain machines from having IRC access.
#
# Use of R: requires that you have defined R_LINES in include/config.h
#
# The fields are as follows:
# R:hostmask:/full/path/to/program:username
# you can use wildcards in either the hostmask or username portion
#
R:csl.bu.edu:/home/hrose/bin.sun3/sun3access:*
##
## R lines are HIGHLY discouraged in hybrid right now
## -db
##
#
# Q: [DISCOURAGED]. These lines "quarantine" specified servers. Because
# of the way they operates, the same Q: lines MUST be installed by
# everyone or the net will keep breaking. I CANNOT EMPHASIZE THIS ENOUGH.
# Do NOT use Q: lines lightly!
#
# The fields are as follows:
# Q:*:reason why quarantine is in place:servername
#
Q::this server is too slow and lags the net:cm5.eng.umd.edu
##
## Q line support was completely removed from hybrid. So, even
## if you did add a Q line, it wouldn't do anything :-)
## -db
##
#
# L: [OPTIONAL]. These lines "Leaf" specified servers. They are only
# useful if you are a non-leaf site yourself. There are two ways you can
# use L: lines. The first will limit one particular site to a particular
# tree depth (including 0, which would mean the server has to connect with
# no servers linked behind it otherwise the connection will fail). The
# second will allow you to be selective about which other servers you wish
# the connecting server to behave as a leaf towards.
#
# The fields are as follows:
# L:disallow connections to this hostmask::server name:depth
# For example, this will force kaja.gi.alaska.edu to connect only as a
# leaf (if it is not a leaf, the link will be dropped):
L:::kaja.gi.alaska.edu
# This line will force cm5.eng.umd.edu to have a depth of only 1 below it
# (that is, it is allowed to have only leaves connected to it):
L:::cm5.eng.umd.edu:1
#
# This line will prohibit anything matching *.edu to be connected behind
# any server matching *.au:
L:*.edu::*.au
#
# H: [OPTIONAL]. These lines define who you permit to act as a "hub" to
# you (that is, who you permit to connect non-leafed servers to you).
#
# the first field may use wildcards, the third field *must* be an exact
# match for a server's name (NOT a server's hostname, if they differ, the
# server's name must be used). If the servername is a wildcard (e.g. *.au)
# that is an acceptable name for the third field.
#
# The fields are as follows:
# H:servers which are permitted entry::hub server
#
# Example, permit cs-ftp.bu.edu to allow any servers behind it to connect:
H:*::cs-ftp.bu.edu
#
# Example, permit irc-2.mit.edu to allow any MIT servers behind it to
# connect:
H:*.mit.edu::irc-2.mit.edu
#
# P: [OPTIONAL]. This field allows the server to listen on various ports
# (other than 6667) for connections. Any internet domain port that is
# below 1024 means the ircd has to be run from inetd. The server can
# listen to ports in the UNIX domain or the internet domain. If you wish
# to create a port in the UNIX domain you must compile with UNIXPORT
# defined in include/config.h. If you are permitting connections to a
# seperate port, you can control access to that port by the host field.
#
# The fields are as follows::
# P:hostmask or UNIX socket file:*:*:port number
# for example, an internet domain socket on port 6665 for South African
# users:
P:*.za:*:*:6665
#
# This line is an example of a UNIX domain socket in /tmp
P:/tmp/.ircd:*:*:6666
##
## There IS no UNIX domain socket support in hybrid, thats how
## we gained some speed :-)
## It makes no sense at all, when you read the new-server requirements
## an irc server has to be run on a dedicated server now. UNIX domain
## sockets aren't much use if no shell users are allowed on the server.
## -db
##
## D line E line etc. are described in the other example.conf
## -db

View file

@ -1,477 +0,0 @@
#
# IRC - Internet Relay Chat, doc/example.conf
# Copyright (C) 1992, Bill Wisner
#
# $Id: example_old.conf,v 1.2 2002/08/13 14:45:01 fishwaldo Exp $
#
# Example of an old style ircd.conf file, which h7 will not parse
# but is kept here for historical interest
#
# Modified by Rodder, Jon Lusky <lusky@blown.net>,
# at one time, but he didn't credit his changes.
# Updated Dec 19, 1997 Diane Bruce aka db/Dianora <db@db.net>
# please also read example.conf.trillian, it covers
# elements this example misses.
# -db
# Updated again July 17, 1998 -db
# Updated 990102 to take out P: line connection limiting code
# Updated again July 5, 1999 -db
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 1, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#
#
# IRC example configuration file
#
# This file describes the information that should be present in your IRC
# configuration and how to present it.
#
# M: set your server's name. Fields are, in order, host name (domain style),
# optional bind address, a text name, and unused.
#
# NOTE: The "optional bind address" is an address used in binding to a
# local address when we connect outbound. For example, if your server machine
# is myhost.example.com (192.168.1.5) and you want IRCD to connect to others
# from irc.example.com (192.168.1.250), you'd put 192.168.1.250 in the
# "optional bind address" field. If left blank, UNIX will choose the primary
# address of the interface closest to the destination.
#
# NOTE: As of hybrid-6, the port field no longer binds a port by default.
# It is an inoperative and obsolete field.
#
M:hayes.ims.alaska.edu:192.168.1.250:University of Alaska Fairbanks:
#
# A: administrative information. This line should have three fields, which
# may contain any arbitrary text. It is printed by the /ADMIN command.
#
A:University of Alaska Institute of Marine Science:Fairbanks, AK USA:Bill Wisner <wisner@ims.alaska.edu>
#
# .include lines, insert a file from DPATH directory into the conf
# you could use this to insert a common file between several
# ircd's if you wished. include files are handled after all the
# other lines in the conf file are done. i.e. a .include is always
# as if it was at the end of the conf file.
#
.include "olines.conf"
#
# Y: define connection class. A class must be defined in a Y: line before
# it is used in a C, N, or I line. The fields are, in order, class number,
# ping frequency in seconds, connect frequency in seconds, maximum
# number of links (used for auto-connecting), and size of sendq.
# For servers a sendq of at least 4mb is recommended if not more.
#
# N.B. Y lines must be defined before I lines and O lines, since
# both I lines and O lines make reference to Y lines or classes.
#
# For clients, the connect frequency field is used to set the maximum
# number of connects from same IP address. i.e. setting this field to '1'
# will limit every I line using this Y, to one connection per IP address.
# leaving it blank or 0, will disable any such checking.
#
# Class numbers must be positive to ensure future modification of ircd to
# use -1 internally could not be complicated with it's use externally.
#
Y:1:90:0:20:100000
Y:2:90:300:10:4000000
#
# I: authorize clients to connect to your server. You can use domains,
# IP addresses, and asterisk wildcards. The second field can contain a
# password that the client must use in order to be allowed to connect.
# The optional fifth field may contain a connection class number.
#
I:NOMATCH::*.alaska.edu::1
I:NOMATCH:password:acad3.alaska.edu::1
#
# If using IDENT, to activate it, you need to place a "user@" in the
# host segment.
#
I:*@acad3.alask.edu::*@acad3.alaska.edu::1
I:root@acad.alask.edu::root@acad.alaska.edu::1
#
# The above are bad examples of I-lines, what really happens is something
# like this:
#
## both these are obsolete in hybrid-6
##I:128.250.*::*.mu.oz.au::1
##I:root@128.250.*::root@*.mu.oz.au::1
## This is a correct example in hybrid-6, the username
## is not used for an IP I line (this may be changed, its a simple change
## but EFnet is currently deprecating the use of non resolving client hosts)
## If the IP block has a resolving host name, it will be shown instead
## of the IP address. This just serves to allow on an entire block of ip's
## without needing to specify each individual hostname.
## Note, you must use an 'x' in the name field
I:128.250.0.0/16::x::1
#
# You can also limit the number of connections from one host
# to any value. This can be used to stop cloners
# This is done using the normally unused confreq line in the Y line.
#
# i.e.
# Allow 100 users in a "bad boy" class, but allow only ONE
# user per IP to connect at a time.
#
Y:3:90:1:100:100000
#
# Remember to put your "bad boy" I line last in the file, so it
# seen first and matches first before your standard I lines
#
# With hybrid ircd, max connections is taken from the class
# not per I line. i.e. the 3 I lines following will always add
# up to 100 or less, not 100 per I line.
#
I:NOMATCH::*@*ppp*::3
I:NOMATCH::*@*slip*::3
I:NOMATCH::*@*ts*::3
#
# a name pattern in the first field will never cause a match since it's only
# ever matched against an IP# in the form a.b.c.d and a number in the third
# field will never match since a hostname is always compared against this
# field. The '@' needs to be in the IP# section for ident to be used.
#
## additional prefix characters in I lines are defined
##
## from comstud
##
## 1) There are noticable differences in I: lines now.
## There are 4 special characters that you can stick in front
## of a hostname or ip# that do special things.
## These characers are:
## - This will never put a ~ for a user not running identd
## + This will force people matching this I: to require identd
## ! This means to only allow 1 connection per ip# in this I:
## $ (Not used in hybrid)
##
## Examples:
##
## a) I:x::!*@*ppp*::class will only allow X connections per ip# for people
## who have *ppp* in their hostname where X is given in the Y: line.
## If there is no ! and you have a limit in your Y: line, then it matches
## full user@host instead of just host.
## b) I:x::-*@*.cris.com::class will never show a ~, even though they may
## not be running identd. (This is equivilent to the old way of not
## specifying a @ in the I: line).
## Additionally since ircd-hybrid-6
## B/E/F lines were removed and replaced with 3 other special characters
## in I lines
##
## ^ This will exempt a user from K/G lines, limited protection from D lines
## & User can run bots (old B line)
## > This user is exempt from I line/server side connection limits
## (old F line)
##
## A variant of amm's spoofing code was added
## = Spoof this users IP, normally only used for opers
##
## Examples
## c) I:NOMATCH::^db@koruna.varner.com::3
## This user is exempt from k/g lines
## d) I:NOMATCH::&jerdfelt@*mindspring.net::3
## This user can run a bot, and is also "e lined"
## e) I:NOMATCH::>lusky@*vol.com::3
## This user is immune from I line limits
## f) I:NOMATCH::^&>mpearce@*varner.com::3
## This user can run a bot, is exempt
## from client connect limits.
## g) I:smurfers.are.lame::=dgalas@*somewhere.com::3
## Show this user as being dgalas@smurfers.are.lame
## an IP can be used instead as long as the name field does not begin
## with an 'x'
## i.e.
## I:192.168.0.0/24::x::3 #this is an IP I line
## I:192.168.0.0::db@*somesite.com::3 #this is a spoofed IP
#
# O: authorize operators. Fields are, in order, host name the operator must
# be logged in from (wildcards allowed), operator's password, operator's
# nickname.
## The 4th field is the port number used in c/n's, in ircd-hybrid
## this field is used to contain oper flags for this oper
## You may wish to constrain an oper from using global kill or unkline
## for example.
## The flags are:
## K/k - allow/disallow kill and kline
## O/o - allow/disallow global kill
## R/r - allow/disallow remote squit/connect
## U/u - allow/disallow unkline
## G/g - allow/disallow gline
## N/n - allow the use of +n , which should be restricted to tcm use only
## for privacy reasons. (+c probably belongs controlled here too but isn't)
## H/h - allow the use of /rehash, default is H for O and o, add h to
## disable an opers use of /rehash
## D/d - allow the use of /die or /restart. Default is d for disallowing
## /die /restart
##
## Default flags for opers are GKORUH
## Default flags for local ops, KUH
## These flags over-rule what the normal privs of an oper would be,
## but they cannot allow a local oper to do global kills for example.
##
## The global kill of a global oper can be disabled by using o for
## example, in the port field.
##
# The first example allows me to become an operator from any
# machine in alaska.edu by typing /oper crunchy frog.
#
O:*.alaska.edu:frog:crunchy
#
## This example allow this oper, to global kill, do remote squit/connect
## unklines, glines, and use umode +n
##
O:db@*db.net:-encrypted password-:Dianora:ORUGN:3
#
##
## This example disables this opers use of global kill, unkline, and gline
## The oper can still do remote squits/connects
##
O:newbie@*some.net:-encrypted password-:newbie:oug:3
##
## This example disables this opers use of global kill, unkline,
## gline and gline and remote squits/connects
## essentially the same permissions as a local oper, but with the "vanity"
## They can still local kill and kline for example.
##
O:vanity@*some.net:-encrypted password-:vanity:oug:3
##
## you could make someone vantiy even more, by disabling their
## kill/kline privs... note they can still do full traces
## umode +c (watch connections) and do rehash
## But otherwise, this set of flags is not practical for
## a normal oper.
##
O:vanity@*some.net:-encrypted password-:vanity:nougk:3
#
## a monitor bot could be given the following privs
## k - no kline/kill
## g - make sure no GLINE
## o - no global kill (already taken care of by 'k' flag above)
## r - no remote routing/squits
## N - allow this monitor to use umode +n for nick changes
##
## Some admins do not like remote tcm kills/klines. If this
## tcm oper gets compromised, the best they can do is
## rehash/trace/umode +cn , i.e. no global kills or "fun" for the
## compromised o line. But its still quite usuable for monitoring
## clones and nick flooders.
##
#
o:tcm@*varner.com:-encrypted password-:tcm:kgorN:3
#
## Of course, leaving out the flags entirely defaults to
## reasonable defaults, so if you don't want to worry about it, then don't.
## You can always add G later for example.
#
## O : Global operator
## No explicit G or G-line flag, no N or allow umode +n flag
##
O:db@ircd.dianora.com:-encrypted password-:Dianora::3
#
# o : local operator.
o:trainee@shell.box.com:password:MyNick::3
#
##
## The fifth field of an O line, is the new class this oper will join
##
# C:, N: set up connections to other servers.
#
# C: specifies a server that your server may connect to.
# N: allows a remote server to connect to your own.
#
# The two lines are usually given in pairs.
#
# These lines may contain a password in the second field. In fact, to
# maintain proper security, *all* IRC server links must have passwords.
#
# If a C: line contains four fields (the fourth being a TCP port number)
# IRC will actively try to connect to that server. You should have at least
# one such line.
#
# If an N: line contains four fields, the fourth should contain a number that
# specifies how many components of your own server's name to strip off the
# front and be replaced with a *. This is done to implement hostmasking.
# For example, to make hayes.ims.alaska.edu present itself to the world as
# *.alaska.edu, I would use a 2 (to strip off the first two parts). If you
# use this, be sure to tell the administrator of the servers you link to --
# they must add your hostmasked name to their configuration file or you will
# be unable to connect.
#
# The host part of C/N lines MUST contain a valid hostname or IP address
# The host part in the C:line MUST be identical to the host part in the N:line
# The name part of the C/N lines MUST match the associated H/L line name
#
# The fifth field may contain a connection class number.
#
# The following two lines tell my server to try connecting to
# byron.u.washington.edu.
#
C:byron.u.washington.edu:crunchyfrog:byron.u.washington.edu:6667:2
N:byron.u.washington.edu:crunchyfrog:byron.u.washington.edu:2:2
#
# The following two lines allow a server to connect to my server, but my
# server will not make any attempt to connect to it. Note that since the
# server is local to me, I am not using hostmasking.
#
C:kaja.gi.alaska.edu:llamas:kaja.gi.alaska.edu::2
N:kaja.gi.alaska.edu:llamas:kaja.gi.alaska.edu::2
#
# C and N lines may also use the "user@" combination in the same way as
# the I-lines.
#
C:wisner@kaja.gi.alaska.edu:llamas:kaja.gi.alaska.edu::2
N:wisner@kaja.gi.alaska.edu:llamas:kaja.gi.alaska.edu::2
#
# K: kill a user automatically upon connecting. This is used to deny
# troublesome users access to your server. The fields are, in order,
# hostname (wildcards are allowed), time of day, and username.
## Timed k-lines and R: lines are not recommended by the hybrid
## team. They might not even work. Timed-klines made more sense
## for university ircd's but nowadays with so many open irc servers
## around, it just seems pointless.
## -Dianora
# The second example restricts access from acad3.alaska.edu from
# 9:00am to noon, and 2:00pm to 5:00pm. This form is only supported if
# TIMED_KLINES is defined.
#
K:*.alaska.edu::FSSPR
K:acad3.alaska.edu:0900-1200,1400-1700:*
#
# R: restrict user access. This is an extended form of the K: line.
# It looks for a match then runs an outside program that will determine
# whether the person should be allowed on. The fields are hostname,
# program, and username. A full pathname to the program should be used.
# The output of the program should be a string of the form "Y <message>"
# to allow the user, or "N <message>" to block them. In the first case
# the message is ignored; in the latter, it is sent as an error message
# to the user. R: lines are only functional if activated in config.h.
#
R:kaja.gi.alaska.edu:/usr/local/lib/irc/does-eric-get-in:ejo
#
#
# L: leaf. This forces the server listed to act as a leaf. If such a
# server allows any other servers to connect to it, its link is
# dropped. If a port parameter is non-zero, it is used to control the
# maximum depth that link will allow, where depth is the tree depth of
# that branch.
#
L:::kaja.gi.alaska.edu
L:::cm5.eng.umd.edu:1
#
# A new extension to the L-line allows you to be selective
# about which other servers you wish the connecting server to behave as
# as a leaf towards. The following would not allow any server connecting
# with a name that matches *.fi to introduce a server matching *.edu.
#
L:*.edu::*.fi
#
# H: Hub. This is required to allow other servers which connect to you as
# a hub and introduce other servers.
#
H:*.au:*:*.au
#
# P : port. The port line allows the server to listen on various ports for
# connections. Fields in order: unused,
# address to bind to, unused, port to listen on
#
# NOTE: As of hybrid-6, you MUST have at least one P: line defining a port
# to listen on, or the server won't do much.
#
P::::6667
P::209.42.128.252::31337
#
# Listen on port 6665 on all available interfaces. Only allow connections from
# net 128.32. This is checked before existance of other access is available.
# 128.32.* == 128.32.0.0 where 0 is a wildcard.
# Also listen to port 31337 on only 209.42.128.252. Allow connections from
# anywhere.
#
# D : dump. Dumps all connect attempts from the matched IP
# without any procesing.
#
# First arg is target IP and CIDR mask, second is a comment.
#
D:208.148.84.3:bot host that changes domain names frequently
D:128.183.0/24:NASA users aren't supposed to be on IRC
#
# d : immunity to D dump
# As in D line , First arg is targe IP and CIDR mask, second is a comment.
#
d:199.0.154.0/24:Don't D line ais.net:
#
# server "clusters"
# U: lines treat each of these servers as being part of your server cluster
# klines placed on this server will be forwarded to the servers named
# in the U lines here. LOCOPS will also be forwarded, but will appear
# as "SLOCOPS" instead of "LOCOPS"
#
# i.e. irc_hub.somewhere.net has leaf servers irc1.somewhere.net
# irc2.somewhere.net
# Hub server would have
U:irc1.somewhere.net:
U:irc2.somewhere.net
# each client server would have
U:irc_hub.somewhere.net
#
#
# Q lines, not the old server Q lines, but Quarantine lines for
# nicks. Only checked at NICK time, i.e. if added and hashed in
# will not kill users who match this nick.
#
Q:dcc-*:dcc bots not allowed on this server
Q:lamestbot:You have to be kidding me
Q:crush:In memory of Janet Pippin
Q:cwush:In memory of Janet Pippin
Q:callas:Only allowed from this host:callas@oper.irc.arpa.com
#
# if JUPE_CHANNEL is defined you can also jupe a channel locally
# i.e. no one on your server can join this channel.
# You need the backslash to escape the # in the channel
#
Q:\#packet:I am tired of the packet fights for this channel
#
# X lines.
# Used to match gecos fields and prohibit users or warn about users
# who have matching strings in those fields from getting on the server.
#
# All X line matches are sent to opers in +r user mode
# On an X line, a non 0 value for port exits that client
# a 0 value, only warns on +r
#
# These three examples only warn
X:*www*:Possible spambot warning 1::0
X:*http*:Possible spambot warning 2::0
X:*sex*:Possible spambot warning 3::0
#
# These two examples reject the client
# use this to reject IPHONE users
X:* vc:IPHONE user::1
# This is a very probable spambot
X:*see me at*:This has GOT to be a spambot::1
X:*hi baby*:This has GOT to be a spambot::1

View file

@ -1,62 +0,0 @@
# IRC minimal example configuration file
#
# $Id: simple.conf,v 1.2 2002/08/13 14:45:01 fishwaldo Exp $
# $Id: simple.conf,v 1.2 2002/08/13 14:45:01 fishwaldo Exp $
#
# This is a basic ircd.conf that will get you up and running with
# little or no modifications. See the example.conf file for more
# detailed explanations.
#
# M: set your server's name. Fields are, in order, host name (domain style),
# optional bind ip address, a text name, and unused.
#
M:irc.example.com::Test IRC Server:
#
# A: administrative information. This line should have three fields, which
# may contain any arbitrary text. It is printed by the /ADMIN command.
#
A:Example, Inc Test IRC Server:Atlanta, GA USA:John Doe <jdoe@example.com>
#
# Y: see example.conf for docs on how Y/I lines work
#
# class 1, 90 second ping timeout, no limit of clients per ip
# 200 max clients in this class, 100k sendq
Y:1:90:0:200:100000
#
# class 2 give opers more sendq, only 10 opers max on this server
Y:2:90:0:10:500000
#
# allow anyone to connect, but force ident, clients go into class 1
I:NOMATCH::*@*::1
#
#
# O: authorize operators. Fields are, in order, host name the operator must
# be logged in from (wildcards allowed), operator's password, operator's
# nickname. Use the 'mkpasswd' command from the tools dir to encrypt
# a password.
# When opered, client goes into class 2 where they have more sendq
#
O:*.example.com:yl9xlY019Bbfc:JohnDoe::2
#
# P: port. The port line allows the server to listen on various ports for
# connections. Fields in order: unused,
# address to bind to, unused, port to listen on
#
# NOTE: As of hybrid-6, you MUST have at least one P: line defining a port
# to listen on, or the server won't do much.
# The line below listens to port 6667 on all IP addresses of a machine
P::::6667
# The above below listens to port 31337 on only 192.168.1.123
P::192.168.1.123::31337
#
#
# Q: Quarantine a nick: not the old server Q lines, but Quarantine
# lines for nicks. Only checked at NICK time, i.e. if added
# and hashed in will not kill users who match this nick.
#
Q:dcc-*:dcc bots not allowed on this server
Q:lamestbot:You have to be kidding me
Q:nickserv:There is no nickserv on this net!
#
# There are many more configuration options, see example.conf for the rest.
#

View file

@ -1,113 +0,0 @@
# Hybrid 7 minimal example configuration file
#
# $Id: simple.conf,v 1.2 2002/08/13 14:45:01 fishwaldo Exp $
#
# This is a basic ircd.conf that will get your server running with
# little modification. See the example.conf for more specific
# information.
#
# The serverinfo block sets up your server's name. Fields that may
# be set are the name, description, vhost, network_name, network_desc,
# and hub.
serverinfo {
name="irc.example.com";
description="Test IRC Server";
hub=no;
};
# The administrator block sets up the server administrator information,
# that is shown when a user issues the /ADMIN command. All three fields
# are required.
administrator {
description="Example, Inc Test IRC Server";
name="John Doe";
email="jdoe@example.com";
};
# Class blocks define the "privileges" that clients and servers get when they
# connect. Ping timing, sendQ size, and user limits are all controlled by
# classes. See example.conf for more information
# Note: to avoid having possible problems later, define class blocks
# before anything that uses them (auth, connect, operator)
class {
name="users";
ping_time=90;
number_per_ip=0;
max_number=200;
sendq=100000;
};
class {
name="opers";
ping_time=90;
number_per_ip=0;
max_number=10;
sendq=500000;
};
# Auth blocks define who can connect and what class they are put into.
auth {
user="*@*";
class="users";
};
# Operator blocks define who is able to use the OPER command and become IRC
# operators. The necessary fields are the user@host, oper nick name, and
# the password, encrypted with the mkpasswd program provided.
operator {
name="JohnDoe";
user="*@*.example.com";
password="yl9xlY019Bbfc";
class="opers";
};
# Listen blocks define what ports your server will listen to client and
# server connections on. ip is an optional field (Essential for virtual
# hosted machines.)
listen {
port=6667;
};
# Quarantine blocks deny certain nicknames from being used.
quarantine {
name="dcc-*";
reason="DCC bots are not permitted on this server";
};
quarantine {
name="LamestBot";
reason="You have to be kidding me!";
};
quarantine {
name="NickServ";
reason="There are no Nick Services on this Network";
};
# The general block contains most of the configurable options that were once
# in config.h. The most important ones are below. For the rest, please see
# NOTE TO DEVELOPERS: Do we set defaults for the variables in the general
# block? If so, then I can leave out most of the things
# in here and make it simpler to configure. If not,
# please let me know so I can document things clearly
general {
# Control nick flooding
anti_nick_flood=yes;
max_nick_time=20;
max_nick_changes=5;
# Show extra warnings when servers connections cannot succeed
# because of no "N" line (a misconfigured connect block)
warn_no_nline=yes;
};
# There are many more configurable options. See example.conf for the rest

View file

@ -1,132 +0,0 @@
$Id: vchans.txt,v 1.2 2002/08/13 14:45:01 fishwaldo Exp $
"Virtual Channels"
======================
Non flat channels
Or relative ops take 3
Diane Bruce (db@db.net)
Roger Espel Llima (espel@iagora.net)
David Harmelin (lunah@mach.unseen.org)
Introduction
------------
IRC has many problems with attacks on channels. The singular
namespace only allows for one channel per name and people can
fight over this singular namespace. The vchannel proposal allows
two competing groups to both run a channel under the same namespace.
Description:
The scheme works like this. ircd is modified to allow the creation
of a copy of a channel name. An additional command is added to irc
called "CJOIN" for "create on join." This allows the creation of
multiple versions of the same channel behind one channel name.
eg.
Using ClientA,B,C,D and channel #cats for examples.
Scenario 1
----------
ClientA /join #cats
There is a single channel known as "#cats" there is no difference
so far. Any other client joining "#cats" shows up on the same channel
as client A.
ClientB /join #cats
There are two clients on channel #cats. No difference from standard IRC
so far. As it happens it behaves as standard IRC completely in this scenario.
Scenario 2
----------
ClientA ops ClientB on #cats T0, Client B "takes over."
ClientA /parts #cats (or has been kicked) ClientA attempts
to rejoin #cats, discovers they have been banned. ClientA then
does /quote cjoin #cats, thus creating a new version of #cats. The channels
are identifiable to users via a 'key'. This key is the nick of a user
currently in the channel.
We now have (where T0 is earlier timestamp then T1)
T1
/ ClientA with ops
#cats/
\
T0 \ ClientB with ops, this version of #cats has ClientA banned.
Thus in this scenario the keys of the channel are 'ClientA' and 'ClientB'.
Newbie irc user ClientC connects and sends /join #cats, the ircd will
then present them with a list of #cats variants to join.
This is in the form of numerics:
RPL_VCHANEXIST (276) - Tells the client the channel they are trying
to join has vchannels available.
RPL_VCHANLIST (277) - A list of the keys the user can select.
RPL_VCHANHELP (278) - A little help numeric detailing how to join
a vchannel.
ClientC would then pick a key and join that channel.
Scenario 3
----------
Classic "Channel faction war". In this scenario two competing
factions for the same channel fight it out. In todays IRC one faction
"wins" kicking and deopping the other faction. With this modified model
the "loser" faction can /cjoin #cats and create their own version of the
channel.
Established "regulars" can choose to join the "other" version of
the channel with a key on /join.
This key can be the nick of any user (or bot) currently on the channel.
this alternative version of the channel. Note this automatically means
one nick cannot be on two variants of the same channel.
i.e. ClientD does /join #cats !catbot
Where catbot is the nick of a bot on #cats.
T1 /Clients A,D,catbot
/
#cats/
\
\
T0 \Client B
Implementation
--------------
All a CJOIN does, is link a new channel with the base name of the
current channel into the IRC namespace. i.e. #cats T1 is actually
##cats_970165390 with a link list from the base channel name of #cats.
This allows clients on non "virtual channel" servers to join, as the
name maps into "normal" old fashioned IRC channel name space.
Using a namespace with "##" to map sub channels lessens the parsing
needed for vchan aware servers to pick up new vchans.
Name space collision is dealt with by the ircd by changing the name
slightly. i.e. CJOIN tries to create ##cats_970165390 but discovers
the channel already exists. In this case the name is pertubed by 1
until successful creation happens. The TS of the channel must be the
same as the TS in the channel name, else the vchan is not created.
"JOIN" is modified to allow the addition of a nick "tag" which has the
prefix '!'.

View file

@ -19,7 +19,7 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
* USA
*
* $Id: m_whois.c,v 1.7 2002/09/13 16:30:04 fishwaldo Exp $
* $Id: m_whois.c,v 1.8 2002/09/14 04:40:49 fishwaldo Exp $
*/
#include "stdinc.h"
@ -76,7 +76,7 @@ _moddeinit(void)
mod_del_cmd(&whois_msgtab);
}
const char *_version = "$Revision: 1.7 $";
const char *_version = "$Revision: 1.8 $";
#endif
/*
** m_whois
@ -489,7 +489,6 @@ static void whois_person(struct Client *source_p,struct Client *target_p, int gl
/* although we should fill in parc and parv, we don't ..
be careful of this when writing whois hooks */
printf("doing whois\n");
if(MyClient(source_p))
hook_call_event("doing_whois", &hd);