/*
 * example.conf by Alexander Ganchev AKA Peace (unrealirc@gmail.com).
 * $Id: example.bg.conf,v 1.1.4.4 2006/06/16 18:29:13 syzop Exp $
 *
 * Prednaznachen e za Unreal3.2 i versii sled nego
 * Dobre priqteli. Tova e noviqt example.conf.Izglejda kato nqkoi fail C++ (shega).
 * Kakto i da e..vreme e da go configurirame. Trudnichko e kato za purvi put, no 
 * sus malko praktikuvane i chetene shte mu sviknete.
 * 
 * Kopiraite tozi fail vuv vashata glavna direktoriq i go prekrustete na 'unrealircd.conf'.
 * VAJNO: Vsichki linii (tova sa zavurshvashtite na vseki red),
 * {trqbwa da zavurshvat sus ; a kraq na samata liniqta slagate i } - demek nakraq stava };
 * MOLQ PROCHETETE doc/unreal32docs.html!Online versiqta shte namerite tuk - 
 * www.vulnscan.org/UnrealIrcd/unreal32docs.html 
 * Sudurja dosta informaciq za config faila: dava vi informaciq za vseki blok,stoinost, i taka natatuka..
 */

/* Tipove Komentari */
#Comment type 1 (Shell type)
// Comment type 2(C++ style)
/* Comment type 3 (C Style) */
#tezi linii shte budat ignorirani ot ircd-to.

/*
 * UnrealIRCd poddurja modulite,clock.dll & commands.dll
 * zavisimost ot vashata operacionna sistema izberete za Windows ili za *NIX shte izpolzvate
 * Nezavisimo ot Operacionnata vi sistema trqbva da mahnete //- predi loadmodule i na 2-ta reda.
 */

/* FOR *NIX, uncomment the following 2lines: */
//loadmodule "src/modules/commands.so";
//loadmodule "src/modules/cloak.so";

/* FOR Windows, uncomment the following 2 lines: */
//loadmodule "modules/commands.dll";
//loadmodule "modules/cloak.dll";
 
/*
 * Sushto taka moje da vkliuchite i drugi configuracionni failove.
 * help.conf vi se qvqva komadata /helpop text. The badwords.*.conf
 * falovete sudurjat vsichki "badword kato slojite mod +G v kanal
 * spamfilter.conf sudurja nqkoi dobri pravila za zabrani za puskane na troianski kone.
 * Ako iskate mojete da gi vkliuchite tqh :
 */
include "help.conf";
include "badwords.channel.conf";
include "badwords.message.conf";
include "badwords.quit.conf";
include "spamfilter.conf";

/* NEW: me {}
 * OLD: M:Line
 * me {} opredelq imeto,opisanie i cifrata na vashiqt unrealircd server.
 * Sintaksisut e kakto sledva :
 * me { 
 *  name "server.name"; 
 *  info "Server Description";
 *  numeric (server numeric*);
 * }; 
 * Ako linkvate Servera si,Cifrata moje bi nqma da bude izpolzvaema ot drugite serveri vuv mrejata
 * Sreshtu numeric napishete nqkakvo chislo (kolkoto po-malko - tolkova po-dobre)
 */
me
{
	name "Imeto Na Servera vi";
	info "Opisanie Na Servera";
	numeric 0;
};

/*
 * NEW: admin {} 
 * OLD: A:Line
 * Admin dava informaciq za server admin-a na mrejata.
 * Mojete da slojite mnogo linii pod grafata 'admin {' ako iskate. 
 * Sintaksisa kakto sledva:
 * admin {
 *   "Purva liniq"; 
 *   "Vtora liniq"; 
 *   [drugi]
 * };
 */
admin {
	"TUk Slojete informaciq za admina";
	"Tuk mojete da slojite i ime ili email";
};

/*
 * NEW: class {} 
 * OLD: Y:line (old was confusing) 
 * Class e grupa nastroiki za vashata vruzka.Primer,Server connect-vane,max clienti i drugi.
 * delqt se na 2 Class-a. Class Cliends & Servers.
 * {
 *     pingfreq ((kolko chesto da pignesh user/server v sekundi);
 *     maxclients (vuzmojnite connekcii za opredelen 'Class');
 *     sendq (maksimuma ot hora v edna opashka);
 *     recvq (maximum receive queue from a connection [flood control]);
 *  };
 */

class           clients
{
	pingfreq 90;
	maxclients 500;
	sendq 100000;
	recvq 8000;
};

class           servers
{
	pingfreq 90;
	maxclients 10;		/* Maksimum serveri koito moje da se link-nat */
	sendq 1000000;
	connfreq 100; /* Sekundite mejdu vseki opit za connect-vane */

};

/*
 * NEW: allow {} 
 * OLD: I:Line
 * Tazi Opciq opredelq koi shte ima pravo da vliza na servera vi...
 * Mojete da kontrolirate vashite klienti,da im slagate paroli i drugi.
 * control and/or set a password. 
 * Syntax is as follows: 
 * allow {
 *    ip (razresheno ip za izpolzvane);
 *    hostname (host mask);
 *    class (class to send them to [see class {}]);
 *    password "(parola)"; (po izbor)
 *    maxperip (pozvoleni vruzki ot edno ip); (optional) 
 * };
 */

allow {
	ip             *@*;
	hostname       *@*;
	class           clients;
	maxperip 5;
};

/* Passworded allow line */
allow {
	ip             *@255.255.255.255;
	hostname       *@*.passworded.ugly.people;
	class           clients;
	password "Test";
	maxperip 1;
};

/*
 * NEW: allow channel {} 
 * OLD: chrestrict 
 * Razreshenie na userite da vlizat v opredelen kanal... 
 * Syntax:
 * allow channel {
 *   channel "imeto na kanala";
 * };
 */
allow           channel {
	channel "#Free";
};

/*
 * NEW: oper {} 
 * OLD: O:Line
 * Opredelete koi da bude IRC Operator na servera vi
 * IRC operators tova sa tochno tezi hora koito da se grijat za servera, 
 * da go poddurjat i da se connect-vat redovno.
 * Sinktaksisut e kakto sledva :
 * 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
 *     { 
 *       (tuk shte slagate flagovete*);
 *     };
 *     OR
 *     flags "old type flags, like OAaRD"; (sushto moje da slagate i samo bukvite)
 * };
 */

/* Za lista s oper flagovete, poglednete doc/unreal32docs.html#operblock
 *[Zaduljitelno da se prochete]
  */

oper admin {
	class           clients;
	from {
		userhost *@*;
	};
	password "Test";
	flags
	{
		netadmin;
		can_zline;
		can_gzline;
		can_gkline;
		global;
		coadmin;
		can_globalkill;
		can_kline;
		can_unkline;
		can_rehash;
		can_globops;
		can_localroute;
		can_wallops;
		can_localkill;
		can_localnotice;
		can_globalroute;
		can_globalnotice;
		can_dccdeny;
		can_setq;
		services-admin;
	};
};

/*
 * NEW: listen {}
 * OLD: P:Line
 * Tuk shte opredelite porta na vasheto ircd prez koito
 * da vlizat useri/serveri.
 * Siktaksisut e kakto sledva : 
 * listen (ip):(nomera na porta) 
 * { 
 *   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.
 */

/* Options for listen:
	OLD	| 	NEW
	S		serversonly
	C		clientsonly
	J		java
	s		ssl
	*		standard
*/

/* BELEJKI ZA SSL PORTOVE : SSL portovete sa dosta nestandartni,
 * osven nomera na 'high-SSL portovete', nqkoi hora kazvat che mojej da gi startirash
 * na 994 port, zashtoto tova e oficialniqt SSL port..no tova izskva root!Osven tova port 194
 * e oficialniqt irc port i mojete nqkoi put da probvate da vidite dali ircd-to e startirano 
 * na tozi port.
 * Nashiqt suvet e da izpolzvate port 6697 za SSL, toi se izpolzva vuv nqkoi mreji i 
 * mojete da otvorite mnogo SSL portove ako iskate, no izpolzvaite i 6697 po standart.
 */

listen         *:6697
{
	options
	{
		ssl;
		clientsonly;
	};
};

listen         *:8067;
listen         *:6667;

/*
 * NEW: link {}
 * OLD: C/N:Lines
 * Tezi opcii sa za link-vane na serveri
 * BELEJKA: Dva servera se nujdaqt ot LINK {} za da budat linknati bez problemi!
 * Sintaksisut e kakto sledva:
 * link (server name)
 * {
 *	username	(username, moshete da slojite sushto i * );
 * 	hostname	(ip nomer/hostmask);
 *	bind-ip		(kum koe ip da bude svurzano sled kato se connect-ne, ili slojete * );
 *	port		(port za svurzvane (moje da slojite vseki);
 *	hub (ako servera vi e hub,slojete * , ili servermask-a);
 *	[ili leaf *;]
 *	password-connect "(parola za svurzvane)";
 *	password-receive "(povtorete parolata)";
 *	class		(class);
 *	options {
 *		(options here*);
 *	};
 *      /* Ako izpolzvate SSL,vie mojete da izberete shifur za da izpolzvate SSL mode
 *       * Lista shte namerite vuv "openssl ciphers",samostoqtelen shifur sus :'s
 *      */
 *      ciphers "DES-CBC3-MD5";
 * 
 * };
*/

/*
	options:
	OLD	|	NEW
	S		ssl
	Z		zip
	N/A		autoconnect
	N/A		quarantine
	N/A		nodnscache
*/


link            services.Test.com
{
	username	*;
	hostname 	1.2.3.4;
	bind-ip 	*;
	port 		7029;
	hub             *;
	password-connect "LiNk";
	password-receive "LiNk";
	class           servers;
		options {
			/* Belejka: vie ne mojete da izpolzvate autoconnect kogato linkvate serveri */
	         	autoconnect;
			ssl;
			zip;
		};
};
/*
 *
 * NEW: ulines {}
 * OLD: U:Line
 * U-liniite davat poveche komandi na serverut vi,Uliniite se slagat samo za services/stats
 * serveri i NIKOGA za normalnite UnrealIRCd serveri!
 * Sintaksisut e kakto sledva:
 * ulines {
 *	(server to uline);
 *	(server to uline);
 *  [etc]
 * };
*/
ulines {
	services.Test.org;
	stats.Test.org;
};

/*
 * NEW: drpass {}
 * OLD: X:Line
 * Tuk shte slagate parolite za /die i /restart na servera.
 * Sintaksusut e kakto sledva:
 * drpass { 
 *  restart		"(parola za restart na servera)";
 *  die		        "(parola za die na servera)";
 * };
 */
drpass {
	restart "restart";
	die "die";
};

/*
 * NEW: log {} OLD: nishto ne se kazva otnosno tova kude i kakvo da logva.Mojete 
 * gi slagate ako iskate
 * 
 * FLAGS: errors, kills, tkl, connects, server-connects, kline, oper
 * 
 * Syntax: 
 * log "log file" 
 * {
 *    flags
 *    {
 *        flag;
 *        flag; 
 *        etc.. 
 *    }; 
 * };
 */

log "ircd.log" {
	/* Iztriite log faila i napravete nov koito da stiga do 2MB.
	    */
	maxsize 2097152;
	flags {
		oper;
		kline;
		connects;
		server-connects;
		kills;
		errors;
		sadmin-commands;
		chg-commands;
		oper-override;
		spamfilter;
	};
};

/*
 * NEW: alias {}
 * OLD: N/A
 * Chrez tezi nastroiki moje da napravite prehod ot /nickserv,/chanserv i drugi kum drugi nickove.
 * FLAGS: services,stats,normal 
 *
 ** Syntax:
 * alias "Ime" {
 *	target "points to";
 *	type aliastype;
 * };
 * [BELEJKA: Mojete da vkliuchite i opredeleniq,za celta poglednete doc/unreal32docs.html section 2.9]
 */

// Tova posochva komandata /nickserv-a na user-a NickServ koito e svurzan s set::services-server server
/*alias NickServ {
	target "NickServ";
	type services;
};*/

// Ako iskate komandite da sa na drug nick mojete da promenite nick-a
//alias ChanServ {type services; };

// Posochva /StatServ na user-a StatServ koqto svurzva set::stats-server server
//alias StatServ {type stats; };

// Posochva /superbot na user-a SuperBot
//alias SuperBot {type normal; };

/* Standart Aliases */
alias NickServ { type services; };
alias ChanServ { type services; };
alias OperServ { type services; };
alias HelpServ { type services; };
alias StatServ { type stats; };

/*
 * NEW: alias {}
 * OLD: N/A
 * Tezi moje da posochite zamestiteli na /identify,/services, i drugi...
 * Syntax:
 * alias "Ime" {
 *	format "format string" {
 *		target "points to";
 *              type aliastype;
 *		parameters "parameters to send";
 *	};
 *	type command;
 * };
 */
/* Tova se pokazva otdelno, zashtoto vypreki che ima syshtoto ime kato predishnata direktiva
 *e dosta razlichno po otnoshenie na sintaksis, vypreki che osigurqva prosta funkciq i raz4ita na standartni alias-i za da raboti.
 */
/*
alias "identify" {
	format "^#" {
		target "chanserv";
		type services;
		parameters "IDENTIFY %1-";
	};
	format "^[^#]" {
		target "nickserv";
		type services;
		parameters "IDENTIFY %1-";
	};
	type command;
};
*/
/* alias::format ditektivata e obichaen izraz.Pyrviq format se svyrzva s 
 * komandata /identify kogato pyrviq simvol e "#". Sled tova se izprashta do chanserv 
 * alias-a s parametri identify. %1-. Togava vtoriq ormat se svyrzva s komandata /identify 
 * kogato pyrviq simvol ne e "#". 
 * Togava se izprashta do nickserv alias-a s parametri identify %1-.
*/

/* Standard aliases */
alias "services" {
	format "^#" {
		target "chanserv";
		type services;
		parameters "%1-";
	};
	format "^[^#]" {
		target "nickserv";
		type services;
		parameters "%1-";
	};
	type command;
};

alias "identify" {
	format "^#" {
		target "chanserv";
		type services;
		parameters "IDENTIFY %1-";
	};
	format "^[^#]" {
		target "nickserv";
		type services;
		parameters "IDENTIFY %1-";
	};
	type command;
};

/*
 * NEW: tld {}
 * OLD: T:Line
 * Tezi nastroki sa za razlichni 'motd' i 'rules' failove 
 * v zavisimost ot klientskata hostmask-a.
 * Sintaksisut e kakto sledva:
 * tld {
 *  *    mask (ident@host);
 *    motd "(motd file)";
 *    rules "(rules file)";
 * };
 */

tld {
	mask *@*;
	motd "ircd.motd";
	rules "ircd.rules";
};

/* BELEJKA: vzemete nqkoi fail primer - vzemete tao.of.irc.doc..sled tova go kopiraite v 
 * glavnata direktoriq na Unrealircd-to vi.Prekrustete go na irc.motd..Napravete po sushtiq
 * nachin i ircd.rules (FAILOVETE SA ZADULJITELNI)
 */

/*
 * NEW: ban nick {}
 * OLD: Q:Line
 * Ako slojite ban na nickname to veche tozi nick stava neizpolzvaem.
 * Sintaksisut e kakto sledva :
 * ban nick {
 *	mask "(nick koito jelaete da zabranite)";
 *	reason "(prichina)";
 * };
*/
ban nick {
	mask "Test";
	reason "Test Nickname";
};
/*
 * NEW: ban ip {}
 * OLD: Z:Line
 * Ban na ip.
 * Sintaksis:
 * ban ip { mask (ip nomer/hostmask); reason "(prichina)"; };
*/
ban ip {
	mask 100.100.200.300;
	reason "Wrong Ip";
};
/*
 * NEW: ban server {}
 * OLD: Server Q:Line
 * Slagane na ban na server.Ako servera e link-nat kum otdalecheniq server
 * (toest tozi) localniqt server shte se diskonect-ne avtormatichno.
 * Syntax is as follows:
 * ban server {
 *	mask "(Imeto na servera)";
 *	reason "(Prichina)";
 * };
*/

ban server {
	mask irc.microsoft.com;
	reason "Get out of here";
};
/*
 * NEW: ban user {}
 * OLD: K:Line
 * Tazi opciq pozvolqva da zabranite dostupa na user do vashiqt server
 * Sintaksis:
 * ban user { mask (hostmask/ip nomer); reason "(Prichina)"; };
*/

ban user {
	mask *tirc@*.microsoft.com;
	reason "Idiot";
};
/*
 * NEW: ban realname {}
 * OLD: n:Line
 * Tazi opciq vi dava pravo da zabranite dostupa na user ot opredeleno 'realname'.
 * Sintaksis:
 * ban realname {
 *	mask "(real name)";
 * 	reason "(prichina)";
 * };
*/

ban realname {
	mask "test";
	reason "mIRKFORCE";
};

ban realname {
	mask  "sub7";
	reason "virus";
};

/*
 * BELEJKA ZA VSICHKI BANOVE, mojete da povtarqte procedurata sus razlichni nickove!
 * 
 * NEW: except ban {} 
 * OLD: E:Line
 * Nick koito ne moje da bude bannat. 
 * Sintaksis:
 * except ban { mask (ident@host); }
 */

except ban {
	/* don't ban stskeeps */
	mask           *stskeeps@212.*;
};
/*
 * NEW: deny dcc {} 
 * OLD: dccdeny.conf
 * Izpolzvaite go za da zabranite dcc.Predpazva vi ot virusi
 * Syntax: 
 * deny dcc 
 * { 
 *   filename "Fail koito shte blokirate (ie, *exe)";
 *   reason "prichina";
 * };
 */
deny dcc {
	filename "Sub7";
	reason "Possible Sub7 Virus";
};

/*
 * NEW: deny channel {}
 * OLD: N/A (NEW)
 * Zabranqva kanali po vash izbor.
 * Syntax:
 * deny channel {
 * 	channel "(kanal)";
 * 	reason "prichina";
 * };
*/
deny channel {
	channel "hackers";
	reason "Warez is illegal";
};

/*
 * NEW: vhost {}
 * OLD: Vhost.conf file
 * Tazi nastroika vi slaga Falshivo ip.Slaga se za hora koito ne sa operatori
 * ili puk za operatori (za po murzelivite /sethost :P
 * Sintaksis:
 *   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;
	from {
		userhost       *@*;
	};
	login           stskeeps;
	password        moocowsrulemyworld;
};

/* Mojete da vkliuchite i drugi konfiguracionni failove */
/* vkliuchete "klines.conf"; */

/* Network configuration */
set {
	network-name 		"Imeto na Mrejata vi";
	default-server 		"Imeto na Servera";
	services-server 	"Services.servera";
	stats-server 		"Stats.Servera";
	help-channel 		"#Kanal za pomosht";
	hiddenhost-prefix	"skrithost";
	/* prefix-quit 		"quit na userite"; */
	/* Cloak Keys se slagat na vsichki serveri ot mrejata.
	 * Te se izpolzvat za po golqma sigurnost.Trqbva da budat izbrani 3 reda 
	 * ot 5-100 simvola i da sudurjat SMESENI golemi,malki bukvi i cifri...
	 * V primera e posocheno edin takuv 'Cloak Key'..napishete oshte 2
	 */
	cloak-keys {
	    "aoAr1HnR6gl3sJ7hVz4Zb7x4YwpW";
	    "Slojete Tuk Vashi Razburkani";
	    "Slojete Tuk Vashi Razburkani";
	};
    /* on-oper host */
	hosts {
		local		"Host za localen operator";
		global		"Host za globalen operator";
		coadmin		"Host za coadmin";
		admin		"Host za admin";
		servicesadmin 	"Host za services-admin";
		netadmin 	"Host za netadmin";
		host-on-oper-up "yes\no";
	};
};

/* Server specific configuration */

set {
	kline-address "slojete adres za kline";  
	auto-join   "#kanal za auto-join"; 
	modes-on-connect "+iw";
	modes-on-oper	 "+wgs";
	oper-auto-join "#Kanal za auto-join na operatorite";
	dns {
		nameserver 127.0.0.1;
		timeout 2s;
		retries 2;
	};
	options {
		hide-ulines;
		/* Ako jelaete da proverqva identa mahnete */
		/* identd-check; */
		show-connect-info;
	};
 
	maxchannelsperuser 10;
	/* Tova e minimalnoto vreme v koeto user moje da se svurje sled kato izleze ot servera.
	 * Tova shte pomogne da se spre spam-a */
	 anti-spam-quit-message-time 10s;
	/* Napravete statichen quit koito da zamestva drugite quit-ove na userite.
	  custom quits are allowed on local server */
	/* static-quit "Client quit";  */

	/* Mojete da blokirate 'Part-reason-ite' kato slojite nqkakuv text po vash izbor */
	/* static-part yes; */
       
	/* Mojete da slagate 'stats' ili inache kazano nqkoi flagove da budat razresheni i
	 * izpolzvaemi samo ot operite. Primer za tova sa - klines,glines i shuns
	 */
	 oper-only-stats "okfGsMRUEelLCXzdD";

	 /* Throttling: Dolniqt primer pokazva che mojete da slojite limit 3 svurzvaniq
	  za 60 sec (na host). */
	  throttle {
		connections 3;
		period 60s;
	};

	/* Anti flood protection */
	anti-flood {
		nick-flood 3:60;	/* 3 smenqniq na nicka za 60 seconds (po default) */
	};

	/* Spam filter */
	spamfilter {
	    ban-time 1d; /* vremetraeneto e po default *line ban set by spamfilter */
	    ban-reason "Spam/Advertising"; /* default prichina */
	    virus-help-channel  "#help"; /* Kanal za skanirane na virusi */
	     /* s izkliuchenie "#help"; drugite kanali se osvobojdavat ot filtrirane */
	};
};


/*
 * Ako imate problem ili nujda ot pomosht?
 * 1) www.vulnscan.org/UnrealIrcd/unreal32docs.html
 * 2) www.vulnscan.org/UnrealIrcd/faq/ <- sudurja 80% ot vuprosite vi!
 * 3) Ako imate problem moje da se oburnete i kum irc.ircsystems.net #unreal-support,
 *    no purvo PROCHETETE HELP FAILA i 'FAQ'.
 */

