diff --git a/Changes b/Changes index 54d888941..70b2f6552 100644 --- a/Changes +++ b/Changes @@ -768,3 +768,4 @@ seen. gmtime warning still there - Added more network files - Fixed some typos in s_conf.c - Fixed a win32 bug where /restart didn't remove the tray icon, reported by PHANTOm and Gilou +- Fixed Osiris's broken example.conf \ No newline at end of file diff --git a/doc/example.conf b/doc/example.conf index 6322122cc..e25b8d98c 100644 --- a/doc/example.conf +++ b/doc/example.conf @@ -1,143 +1,158 @@ -/* example.conf - ----UPDATED VERSION---- - For UnrealIRCd 3.2+ - By: Daniel Hawton - Email: osiris@unrealircd.org - Nick: Osiris - Date: 07/01 +/* + * example.conf by Daniel Hawton AKA Osiris (osiris@unrealircd.org) Last + * updated 2. August + * + * Works for Unreal3.2 and up + * + * Okay guys. This is the new example.conf. Its look is much like C++, kinda. + * Anyway it is time to go over this. It's hard to pick up at first, but + * with some pratice and reading you'll understand. + * + * NOTE: All lines, except the opening { line, end in an ;, including the + * closing } line. The IRCd will ignore commented lines. + */ - Based on irc.fyremoon.net's unrealircd.conf file - By: Stskeeps - - Okay guys. This is the new example.conf. - Its look is much like C++, kinda. Anyway - it is time to go over this. It's hard to pick - up at first, but with some pratice and reading - you'll understand. - -Osiris +/* Type of comments */ +#Comment type 1 (Shell type) +// Comment type 2(C++ style) +/* Comment type 3 (C Style) */ +#those lines are ignored by the ircd. - NOTE: All lines, except the opening { line, - end in an ;, including the closing } line. - Commented lines use #, c++ style //, or C /* *// - The IRCd will ignore commented lines. -*/ +/* + * NEW: me {} + * OLD: M:Line + * me {} defines the name, description and unreal server numeric for + * this server. Syntax is as follows: + * me { + * name "server.name"; + * info "Server Description"; + * numeric (server numeric*); + * }; + * If linking, this numeric may not be used by any other server on the network. + */ - -// NEW: me {} -// OLD: M:Line -// me {} defines the name, description and unreal -// server numeric for this server. -// Syntax is as follows: -// me { -// name "server.name"; -// info "Server Description"; -// numeric (server numeric*); -// }; -// * If linking, this numeric may not be used by any -// other server on the network. -// -me { +me +{ name "irc.foonet.com"; - info "FooNet Server"; + info "FooNet Server"; numeric 1; }; -// NEW: admin {} -// OLD: A:Line -// Admin gives information on the server admin. -// you may put as many lines under admin { as you -// wish. -// Syntax is as follows: -// admin { -// "first line"; -// "second line"; -// [etc] -// }; +/* + * NEW: admin {} + * OLD: A:Line Admin gives information on the server admin. you + * may put as many lines under admin { as you wish. + * Syntax is as follows: + * admin { + * "first line"; + * "second line"; + * [etc] + * }; + */ admin { "Bob Smith"; "bob"; "widely@used.name"; }; -// NEW: class {} -// OLD: Y:line (old was was confusing) -// These define settings for classes. -// A class is a group setting for connections. -// Example, a server connections, instead of going -// to a client's class, you direct it to the server -// class. -// Syntax is as follows -// class (class name) -// { -// pingfreq (how often to ping a user/server in seconds); -// maxclients (how many connections for this class); -// sendq (maximum send queue from a connection); -// }; +/* + * NEW: class {} + * OLD: Y:line (old was confusing) + * These define settings for classes. A class is a group setting for + * connections. Example, server connections, instead of going to a client's + * class, you direct it to the server class. Syntax is as follows + * class (class name) + * { + * pingfreq (how often to ping a user/server in seconds); + * maxclients (how many connections for this class); + * sendq (maximum send queue from a connection); + * }; + */ -class clients +class clients { pingfreq 90; maxclients 500; sendq 100000; }; -class servers +class servers { pingfreq 90; - maxclients 1; + maxclients 10; /* Max servers we can have linked at a time */ sendq 1000000; + connfreq 100; /* How many seconds between each connection attempt */ }; -// NEW: allow {} -// OLD: I:Line -// This defines allowing of connections... -// Basically for clients, it allows them to connect -// so you can have some control and/or set a password. -// Syntax is as follows: -// allow { -// ip (ip to allow); -// hostname (hostname); -// class (class to send them to [see class {}]; -// password "(password)"; <- OPTIONAL -// maxperip (how many connections per ip); -// }; +/* + * NEW: allow {} + * OLD: I:Line + * This defines allowing of connections... + * Basically for clients, it allows them to connect so you can have some + * control and/or set a password. + * Syntax is as follows: + * allow { + * ip (ip mask to allow); + * hostname (host mask); + * class (class to send them to [see class {}]); + * password "(password)"; (optional) + * maxperip (how many connections per ip); (optional) + * }; + */ + allow { - ip *; - hostname *; - class clients; - password "f00Ness"; - maxperip 3; + ip *; + hostname *; + class clients; + maxperip 5; }; -// NEW: allow channel {} -// OLD: N/A (NEW) -// Allows a user to join a channel... like an except from -// deny channel. -// Syntax: -// allow channel { -// channel "channel name"; -// }; -allow channel { +/* Passworded allow line */ +allow { + ip *@*; + hostname *@*.passworded.ugly.people; + class clients; + password "f00Ness"; + maxperip 1; +}; + +/* + * NEW: allow channel {} + * OLD: chrestrict + * Allows a user to join a channel... + * like an except from deny channel. + * Syntax: + * allow channel { + * channel "channel name"; + * }; + */ +allow channel { channel "#WarezSucks"; }; -// NEW: oper {} -// OLD: O:Line -// Defines an IRC Operator (or also cops, basically) -// IRC operators are there to keep sanity to the server -// and usually keep it maintained and connected to the network. -// The Syntax is as follows: -// oper (login) { -// class (class to put them in, if different from I, moves them to new class); -// from { -// userhost (ident@host); -// userhost (ident@host); -// }; -// flags -// { -// (flags here*); -// }; -// }; +/* + * NEW: oper {} + * OLD: O:Line + * Defines an IRC Operator + * IRC operators are there to keep sanity to the server and usually keep it + * maintained and connected to the network. + * The syntax is as follows: + * oper (login) { + * class (class to put them in, if different from I, moves them to new + * class); + * from { + * userhost (ident@host); + * userhost (ident@host); + * }; + * flags + * { + * (flags here*); + * }; + * OR + * flags "old type flags, like OAaRD"; + * }; + */ + /* OLD OPER FLAG | NEW FLAG NAME O global o local @@ -169,10 +184,10 @@ allow channel { H get_host */ -oper bobsmith { - class clients; - from { - userhost bob@smithco.com; +oper bobsmith { + class clients; + from { + userhost bob @ smithco.com; }; password "f00"; flags @@ -181,23 +196,26 @@ oper bobsmith { global; }; }; +/* + * NEW: listen {} + * OLD: P:Line + * This defines a port for the ircd to bind to, to + * allow users/servers to connect to the server. + * Syntax is as follows: + * listen (ip number):(port number) + * { + * options { + * (options here); + * }; + * }; + * or for a plain + * listen: listen (ip):(port); + * + * NOTICE: for ipv6 ips (3ffe:b80:2:51d::2 etc), use listen [ip]:port; + * + * That works also. + */ -// NEW: listen {} -// OLD: P:Line -// This defines a port for the ircd -// to bind to, to allow users/servers -// to connect to the server. -// Syntax is as follows: -// listen (ip number):(port number) -// { -// options -// { -// (options here); -// }; -// }; -// or for a plain listen: -// listen (ip):(port); -// That works also. /* Options for listen: OLD | NEW S serversonly @@ -207,38 +225,41 @@ oper bobsmith { * standard */ -listen *:6601 +listen *:6601 { - options - { - ssl; - serversonly; - }; + options + { + ssl; + clientsonly; + }; }; -listen *:8067; -listen *:6600; +listen *:8067; +listen *:6667; + +/* + * NEW: link {} + * OLD: C/N:Lines + * This defines an okay for a server connection. + * NOTE: BOTH SERVERS NEED A LINK {} SETTING TO CONNECT PROPERLY! + * Syntax is as follows: + * link (server name) + * { + * username (username, * works too); + * hostname (ip number/hostmask); + * bind-ip (What IP to bind to when connecting, or *); + * port (port to connect to, if any); + * hub (If this is a hub, * works, or servermasks it may bring in); + * [or leaf *;] + * password-connect "(pass to send)"; + * password-receive "(pass we should recieve)"; + * class (class to direct servers into); + * options { + * (options here*); + * }; + * }; +*/ -// NEW: link {} -// OLD: C/N:Lines -// This defines an okay for a server connection. -// NOTE: BOTH SERVERS NEED A LINK {} SETTING TO CONNECT PROPERLY! -// Syntax is as follows: -// link (server name) -// { -// username (username, * works too); -// hostname (ip number/hostmask); -// bind-ip (What IP to bind to when connecting, or *); -// port (port to connect to, if any); -// hub (If this is a hub, * works, or servermasks it may bring in); -// [or leaf *;] -// password-connect "(pass to send)"; -// password-receive "(pass we should recieve)"; -// class (class to direct servers into); -// options { -// (options here*); -// }; -// }; /* options: OLD | NEW @@ -248,74 +269,76 @@ listen *:6600; N/A quarantine */ -link hub.mynet.com + +link hub.mynet.com { - username *; - hostname 1.2.3.4; - bind-ip *; - port 7029; - hub *; - password-connect "LiNk"; - password-receive "LiNk"; - class servers; - options { + username *; + hostname 1.2 .3 .4; + bind - ip *; + port 7029; + hub *; + password - connect "LiNk"; + password - receive "LiNk"; + class servers; + options { autoconnect; ssl; zip; }; }; - -// NEW: ulines {} -// OLD: U:Line -// Lets these server's clients do pretty much anything. -// Syntax is as follows: -// ulines { -// (server to uline); -// (server to uline); -// }; -// You may put as many servers in there as you like. - +/* + * + * NEW: ulines {} + * OLD: U:Line + * Lets these server's clients do pretty much anything. + * Syntax is as follows: + * ulines { + * (server to uline); + * (server to uline); + * }; + * You may put as many servers in there as you like. +*/ ulines { services.roxnet.org; stats.roxnet.org; }; -// NEW: drpass {} -// OLD: X:Line -// This defines the passwords for /die and /restart. -// Syntax is as follows: -// drpass { -// restart "(password for restarting)"; -// die "(password for die)"; -// }; +/* + * NEW: drpass {} + * OLD: X:Line + * This defines the passwords for /die and /restart. + * Syntax is as follows: + * drpass { + * restart "(password for restarting)"; + * die "(password for die)"; + * }; + */ drpass { - restart "I-love-to-restart"; - die "die-you-stupid"; + restart "I-love-to-restart"; + die "die-you-stupid"; }; -// NEW: log {} -// OLD: N/A -// Tells the ircd where and what to log(s). -// You can have as many as you wish. -// -// FLAGS: -// errors kills tkl -// connects server-connects kline -// oper -// -// NOTICE: Right now, SEGV messages are *always* -// sent to ircd.log. codemastr is working on a way -// to redirect the messages to this log file. -// Syntax: -// log "log file" { -// flags { -// flag; -// flag; -// etc.. -// }; -// }; +/* + * NEW: log {} OLD: N/A Tells the ircd where and what to log(s). You can have + * as many as you wish. + * + * FLAGS: errors, kills, tkl, connects, server-connects, kline, oper + * + * NOTICE: Right now, SEGV messages are *always* sent to ircd.log. codemastr is + * working on a way to redirect the messages to this log file. * + * Syntax: + * log "log file" + * { + * flags + * { + * flag; + * flag; + * etc.. + * }; + * }; + */ -log "myircd.log" { +log "ircd.log" { flags { oper; kline; @@ -326,70 +349,90 @@ log "myircd.log" { }; }; -// NEW: tld {} -// OLD: T:Line -// This sets a different motd and rules files -// depending on the clients hostmask. -// Syntax is as follows: -// tld { -// mask (ident@host); -// motd "(motd file)"; -// rules "(rules file)"; -// }; +/* + * NEW: tld {} + * OLD: T:Line + * This sets a different motd and rules files + * depending on the clients hostmask. + * Syntax is as follows: + * tld { + * mask (ident@host); + * motd "(motd file)"; + * rules "(rules file)"; + * }; + */ + tld { mask *@*.fr; motd "ircd.motd.fr"; rules "ircd.rules.fr"; -}; - -// NEW: ban nick {} -// OLD: Q:Line -// Bans a nickname, so it can't be used. -// Syntax is as follows: -// ban nick { -// mask "(nick to ban)"; -// reason "(reason)"; -// }; -ban nick { - mask "*C*h*a*n*S*e*r*v*"; - reason "Reserved for Services"; }; -// NEW: ban ip {} -// OLD: Z:Line -// Bans an ip from connecting to the network. -// Syntax: -// ban ip { mask (ip number/hostmask); reason "(reason)"; }; -ban ip { mask 195.86.232.81; reason "Delinked server"; }; -// NEW: ban server {} -// OLD: Server Q:Line -// Disables a server from connecting to you. -// Syntax is as follows: -// ban server { -// mask "(server name)"; -// reason "(reason to give)"; -// }; +/* + * NEW: ban nick {} + * OLD: Q:Line + * Bans a nickname, so it can't be used. + * Syntax is as follows: + * ban nick { + * mask "(nick to ban)"; + * reason "(reason)"; + * }; +*/ +ban nick { + mask "*C*h*a*n*S*e*r*v*"; + reason "Reserved for Services"; +}; +/* + * NEW: ban ip {} + * OLD: Z:Line + * Bans an ip from connecting to the network. + * Syntax: + * ban ip { mask (ip number/hostmask); reason "(reason)"; }; +*/ +ban ip { + mask 195.86.232.81; + reason "Delinked server"; +}; +/* + * NEW: ban server {} + * OLD: Server Q:Line + * Disables a server from connecting to you. + * Syntax is as follows: + * ban server { + * mask "(server name)"; + * reason "(reason to give)"; + * }; +*/ + ban server { mask eris.berkeley.edu; reason "Get out of here."; }; +/* + * NEW: ban user {} + * OLD: K:Line + * This makes it so a user from a certain mask can't connect + * to your server. + * Syntax: + * ban user { mask (hostmask/ip number); reason "(reason)"; }; +*/ -// NEW: ban user {} -// OLD: K:Line -// This makes it so a user from a certain mask can't connect -// to your server. -// Syntax: -// ban user { mask (hostmask/ip number); reason "(reason)"; }; -ban user { mask *tirc@*.saturn.bbn.com; reason "Idiot"; }; +ban user { + mask *tirc@*.saturn.bbn.com; + reason "Idiot"; +}; + +/* + * NEW: ban realname {} + * OLD: n:Line + * This bans a certain realname from being used. + * Syntax: + * ban realname { + * mask "(real name)"; + * reason "(reason)"; + * }; +*/ -// NEW: ban realname {} -// OLD: n:Line -// This bans a certain realname from being used. -// Syntax: -// ban realname { -// mask "(real name)"; -// reason "(reason)"; -// }; ban realname { mask "Swat Team"; reason "mIRKFORCE"; @@ -400,150 +443,160 @@ ban realname { reason "sub7"; }; -// NOTE FOR ALL BANS, they may be repeated for addition entries! +/* + * NOTE FOR ALL BANS, they may be repeated for addition entries! + * + * NEW: except ban {} + * OLD: E:Line + * This makes it so you can't get banned. + * Syntax: + * except ban { mask (ident@host); }; + * Repeat the except ban {} as many times + * as you want for different hosts. + */ -// NEW: except ban {} -// OLD: E:Line -// This makes it so you can't get banned. -// Syntax: -// except ban { -// mask (ident@host); -// }; -// Repeat the mask line as many times as you want for different hosts. except ban { - // don't ban stskeeps - mask *stskeeps@212.*; + /* don't ban stskeeps */ + mask *stskeeps @ 212. *; }; -// NEW: except socks {} -// OLD: e:Line -// Makes it so ircd doesn't check you for socks -// syntax: -// except socks { -// mask (ip number/hostmask); -// }; -// repeat mask for each ip to except. +/* + * NEW: except socks {} + * OLD: e:Line + * Makes it so ircd doesn't check you for + * socks syntax: + * except socks { mask (ip number/hostmask); }; r + * repeat except socks {} for each ip to except. + */ + except socks { - mask 216.73.27.177; + mask 216.73 .27 .177; }; - -// NEW: deny dcc {} -// OLD: N/A (NEW) -// Use this to block dcc send's... stops viruses -// better. -// Syntax: -// deny dcc { -// filename "file to block (ie, *exe)"; -// reason "reason"; -// }; +/* + * NEW: deny dcc {} + * OLD: dccdeny.conf + * Use this to block dcc send's... stops + * viruses better. + * Syntax: + * deny dcc + * { + * filename "file to block (ie, *exe)"; + * reason "reason"; + * }; + */ deny dcc { filename "*sub7*"; reason "Possible Sub7 Virus"; }; -// NEW: deny channel {} -// OLD: N/A (NEW) -// This blocks channels from being joined. -// Syntax: -// deny channel { -// channel "(channel)"; -// reason "reason"; -// }; +/* + * NEW: deny channel {} + * OLD: N/A (NEW) + * This blocks channels from being joined. + * Syntax: + * deny channel { + * channel "(channel)"; + * reason "reason"; + * }; +*/ deny channel { channel "*warez*"; reason "Warez is illegal"; }; -// NEW: vhost {} -// OLD: Vhost.conf file -// This sets a fake ip for non-opers, or opers too lazy to -// /sethost :P -// Syntax: -// vhost { -// vhost (vhost.com); -// from { -// userhost (ident@host to allow to use it); -// }; -// login (login name); -// password (password); -// }; -// then to use this vhost, do /vhost (login) (password) in IRC +/* + * NEW: vhost {} + * OLD: Vhost.conf file + * This sets a fake ip for non-opers, or + * opers too lazy to /sethost :P + * Syntax: + * vhost { + * vhost (vhost.com); + * from { + * userhost (ident@host to allow to use it); + * }; + * login (login name); + * password (password); + * }; + * then to use this vhost, do /vhost (login) (password) in IRC + */ vhost { - vhost i.hate.microsefrs.com; + vhost i.hate.microsefrs.com; from { - userhost *@*.image.dk; + userhost *@*.image.dk; }; - login stskeeps; - password techie; + login stskeeps; + password moocowsrulemyworld; }; - + /* You can include other configuration files */ -// include "klines.conf"; -// Cloak-keys must be > 10000, and the field must be bigger -// then the field before it. -// cloak-keys { -// 10000; -// 20000; -// 30000; -// }; for example -// Network configuration +/* include "klines.conf"; */ + +/* + * Cloak-keys must be > 10000, and random. MUST be the same all over the + * network + * + * cloak-keys { 9999; 9998; 9997; }; for example + */ + +/* Network configuration */ set { network-name "ROXnet"; default-server "irc.roxnet.org"; - services-server "services.roxnet.org"; - stats-server "stats.roxnet.org"; - help-channel "#ROXnet"; - hiddenhost-prefix "rox"; - prefix-quit "no"; + services-server "services.roxnet.org"; + stats-server "stats.roxnet.org"; + help-channel "#ROXnet"; + hiddenhost-prefix "rox"; + prefix-quit "no"; cloak-keys { - 10000; - 20000; - 30000; + 9666; + 3333; + 3330; }; /* on-oper host */ hosts { local "locop.roxnet.org"; global "ircop.roxnet.org"; coadmin "coadmin.roxnet.org"; - admin "admin.roxnet.org"; - servicesadmin "csops.roxnet.org"; - techadmin "techadmin.roxnet.org"; - netadmin "netadmin.roxnet.org"; - host-on-oper-up "no"; + admin "admin.roxnet.org"; + servicesadmin "csops.roxnet.org"; + techadmin "techadmin.roxnet.org"; + netadmin "netadmin.roxnet.org"; + host-on-oper-up "no"; }; -}; +}; /* Server specific configuration */ set { - kline-address "stskeeps@roxnet.org"; - modes-on-connect "+xwG"; - oper-auto-join "#opers"; + kline-address "set.this.email"; + modes-on-connect "+xw"; + oper-auto-join "#opers"; dns { nameserver 127.0.0.1; - timeout 2s; + timeout 2s; retries 2s; }; options { enable-opermotd; enable-chatops; hide-ulines; - webtv-support; identd-check; }; - + socks { ban-message "Insecure SOCKS server"; quit-message "Insecure SOCKS server"; ban-time "4d"; }; maxchannelsperuser 10; - -}; -// Need more help? 1) Read the documentation like this file -// 2) Come to irc.fyremoon.net #UnrealIRCd -// To contact me, do #2 and/or email me: osiris@unrealircd.com -// -// Hope this helps you, -// -Osiris +}; +/* + * Need more help ? + * 1) Read the documentation like this file + * 2) Come to irc.ircsystems.net #Unreal-Support + * 3) Mail supporters@lists.unrealircd.org + * + * Hope this helps you, -Osiris + */