/*
 * example.conf par Daniel Hawton AKA Osiris (osiris@unrealircd.org).
 * Ancien traducteur français : babass
 * Tradution française : Alef Burzmali - http://www.burzmali.com
 * Dernière mise à jour : 2010-09-11
 * $Id$
 *
 * Fonctionne pour Unreal3.2 et supérieur
 *
 * Okay les gars, voici la nouvelle version de l'example.conf. Cela ressemble plus à du C++.
 * Peu importe, il est temps de se lancer.  Il est difficile de l'attaquer pour la première fois, mais
 * avec un peu d'expérience et de lecture vous comprendrez.
 *
 * Copiez juste ce fichier dans votre répertoire unrealircd principal et appellez le 'unrealircd.conf'.
 *
 * NOTE: Toutes les lignes, exceptées les ligne d'ouvertures { , se terminent par un ;, en particulier
 * celles de fermeture }.
 * L'IRCd ignorera les lignes commentées.
 *
 * LISEZ S'IL VOUS PLAIT doc/unreal32docs.fr.html !
 * La version en ligne est aussi disponible à : http://www.unrealircd.com/files/docs/unreal32docs.fr.html
 * Elle contient beaucoup d'informations à propos du fichier de configuration : fournit des informations
 * à propos de chaque bloc, variable, etc..
 * Si vous essayez de modifier ce fichier sans avoir bien lu la documentation,
 * vous êtes presque sûr de vous tromper.
 */

/* Type de commentaires */
#Commentaire type 1 (type Shell)
// Commentaire type 2 (style C++)
/* Commentaire type 3 (style C) */
# Toutes ces lignes sont ignorées par l'ircd.

/*
 * UnrealIRCd supporte des modules et certains sont obligatoires.
 * Vous aurez besoin au moins du module commands et du module cloaking.
 *
 * La ligne suivante charge tous les modules sur les systèmes UNIX.
 */
loadmodule "src/modules/*.so";

/* Cette ligne charge tous les modules pour Windows, commentez la ligne du dessus */
loadmodule "modules/*.dll";

/*
 * Vous pouvez également inclure d'autres fichiers de configuration.
 * doc/help.fr.conf contient tout le texte de /helpop en français.
 * help.conf contient la version anglaise.
 * Les fichiers badwords.*.conf contiennent tous les badwords pour le mode +G...
 * spamfilter.conf contient quelques bonnes règles pour les trojans courrants.
 * Vous voudrez probablement les inclure:
 */
include "doc/help.fr.conf";
include "badwords.channel.conf";
include "badwords.message.conf";
include "badwords.quit.conf";
include "spamfilter.conf";

/*
 * ACTUEL : me {}
 * ANCIEN : M:Line
 * me {} definit le nom, la description et l'identifiant numérique pour ce serveur.
 * La syntaxe est la suivante :
 * me {
 *  name "nom.du.serveur";
 *  info "Description du Serveur";
 *  numeric (numeric* serveur);
 * };
 * En cas de link, cet identifiant ne peut être utilisé pour aucun autre serveur du réseau.
 */
me
{
	name "irc.foonet.com";
	info "FooNet Server";
	numeric 1;
};

/*
 * ACTUEL : admin {}
 * ANCIEN : A:Line
 * Admin donne des informations sur les server admins.
 * Vous pouvez mettre autant de lignes que vous voulez après admin {.
 * La syntaxe est la suivante :
 * admin {
 *   "première ligne";
 *   "deuxième ligne";
 *   [etc]
 * };
 */
admin {
	"Bob Smith";
	"bob";
	"widely@used.name";
};

/*
 * ACTUEL : class {}
 * ANCIEN : Y:line (l'ancien était déroutant)
 * Définit les réglages pour les classes. Une classe est un groupe de réglages pour
 * des connexions. Par exemple, pour les connexions serveurs, au lieu de passer par une classe
 * client, vous utilisez directement une classe serveur. La syntaxe est la suivante :
 * class (nom de la classe)
 * {
 *     pingfreq (fréquence des pings utilisateurs/serveurs en secondes);
 *     maxclients (combien de connexions pour cette classe);
 *     sendq (file d'attente maximum pour l'envoie depuis une connexion);
 *     recvq (file d'attente maximum pour la réception depuis une connexion [contrôle du flood]);
 *  };
 */

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

class servers
{
	pingfreq 90;
	maxclients 10;  /* Nombre maximum de serveurs pouvant être reliés en même temps */
	sendq 1000000;
	connfreq 100;   /* Combien de secondes entre chaque tentatives de connexions */
};

/*
 * ACTUEL : allow {}
 * ANCIEN : I:Line
 * Définit les autorisations de connexions...
 * Principalement pour les clients, cela leur permet de se connecter, vous pouvez donc avoir un certain
 * contrôle et/ou mettre un mot de passe.
 * La syntaxe est la suivante :
 * allow {
 *    ip (ip mask à autoriser);
 *    hostname (host mask);
 *    class (classe à laquelle les renvoyer [voir class {}]);
 *    password "(mot de passe)"; (optionnel)
 *    maxperip (nombre de connexions par ip); (optionnel)
 * };
 */

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

/* connexion autorisée avec mot de passe */
allow {
	ip             *@255.255.255.255;
	hostname       *@*.passworded.ugly.people;
	class           clients;
	password "f00Ness";
	maxperip 1;
};

/*
 * ACTUEL : oper {}
 * ANCIEN : O:Line
 * Définit un IRC Operateur
 * Les IRC operateurs sont là pour préserver la qualité du serveur mais aussi d'en assurer
 * la maintenance et sa connexion au réseau.
 * La syntaxe est la suivante :
 * oper (login) {
 *     class (classe à laquelle les associer, si différent du bloc allow, les déplace vers une nouvelle classe);
 *     from {
 *        userhost (ident@host);
 *        userhost (ident@host);
 *     };
 *     flags
 *     {
 *       (flags ici*);
 *     };
 *     OU
 *     flags "ancien type de flags, comme OAaRD";
 * };
 */


/* Pour avoir la liste des flags oper, voir doc/unreal32docs.fr.html#operblock
 * [lecture HAUTEMENT recommendée]
 */

oper bobsmith {
	class           clients;
	from {
		userhost bob@smithco.com;
	};
	password "f00";
	flags
	{
		netadmin;
		can_zline;
		can_gzline;
		can_gkline;
	};
};

/*
 * ACTUEL : listen {}
 * ANCIEN : P:Line
 * Définit un port à rattacher à l'ircd, pour autoriser
 * des utilisateurs/serveurs à se connecter au serveur.
 * La syntaxe est la suivante :
 * listen (ip):(port)
 * {
 *   options {
 *     (options ici);
 *   };
 * };
 * ou pour une écoute
 * indifférente : listen (ip):(port);
 *
 * NOTICE : pour les ips ipv6 (3ffe:b80:2:51d::2 etc), utilisez listen [ip]:port;
 *
 * Cela fonctionne également.
 */

/* Options de listen:
     ANCIEN	| 	ACTUEL
	   S       serversonly
	   C       clientsonly
	   J       java
	   s       ssl
	   *       standard
       N/A     defer-accept
*/

/* NOTE SUR LES PORTS SSL: les ports SSL sont plutôt non standardisés,
 * A côté des nombreux ports high-SSL, certaines personnes disent que vous devez
 * l'utiliser sur le port 994 car c'est le port SSL officiel.. mais cela
 * requière d'être root! D'un autre coté, le port 194 est le port irc officiel et
 * avez vous déjà vu un ircd fonctionner sur celui-ci ?
 * Donc, notre suggestion est d'utiliser le port 6697 pour le SSL, ceci est utilisé par
 * beaucoup de réseaux et est reconnu par exemple par StunTour.
 * Vous êtes libre d'ouvrir autant de ports SSL que vous le désirez mais
 * en utilisant (au moins) 6697 vous aidez le monde à se standardiser un peu ;).
 */
listen         *:6697
{
	options
	{
		ssl;
		clientsonly;
        defer-accept;
	};
};

listen         *:8067;
listen         *:6667
{
	options
	{
		defer-accept;
	}
};
    

/* NOTE: Si vous êtes sur un shell avec de multiples IP vous êtes
 *       susceptibles d'avoir l'erreur 'Address already in use' (adresse déjà utilisée)
 *       dans vos logs et l'ircd refusera de démarer.
 *       Cela signifie que vous devrez utiliser une IP spécifique au lieu de '*',
 *       Donc par exemple :
 *       listen 1.2.3.4:6667;
 *       Evidemment, remplacez l'IP par celle qui vous a été assignée.
 *
 * De plus : l'option defer-accept ajoutée dans Unreal 3.4 utilise un filtre
 *       au niveau du kernel pour décharger le traitement des connexions 
 *       de l'IRCd, ce qui peut fournir plus de résilience contre les 
 *       TCP synfloods. Cependant, cette option fonctionne uniquement
 *       sous Linux et FreeBSD.
 */

/*
 * ACTUEL : link {}
 * ANCIEN : C/N:Lines
 * Définit un accord pour la connexion d'un serveur.
 * NOTE : CHACUN DES SERVEURS NECESSITE UN PARAMETRE LINK {} POUR SE CONNECTER CORRECTEMENT !
 * La syntaxe est la suivante :
 * link (nom du serveur)
 * {
 *	username	(username, * fonctionne aussi);
 * 	hostname	(ip/hostmask);
 *	bind-ip		(IP à laquelle se relier lors de la connexion, ou *);
 *	port		(port auquel se connecter, si il y en a un);
 *	hub (Si c'est un a hub, * fonctionne, ou les servermasks qu'il doit porter);
 *	[ou leaf *;]
 *	password-connect "(mot de passe à envoyer)";
 *	password-receive "(mot de passe que l'on doit recevoir)";
 *	class		(classe à affecter aux serveurs);
 *	options {
 *		(options ici*);
 *	};
 *      // Si vous utilisez le SSL, vous pouvez choisir quel algorithme de hash utiliser dans le mode SSL
 *      // Utilisez la commande "openssl ciphers" pour obtenir la liste des algorithmes disponibles, séparez les par des ":"
 *
 *      ciphers "DES-CBC3-MD5";
 *
 * };
*/

/*
	options:
	ANCIEN	|	ACTUEL
	S		    ssl
	Z		    zip
	N/A		    autoconnect
	N/A		    quarantine
	N/A		    nodnscache
*/


link            hub.mynet.com
{
	username	*;
	hostname 	1.2.3.4;
	bind-ip 	*;
	port 		7029;
	hub             *;
	password-connect "LiNk";
	password-receive "LiNk";
	class           servers;
		options {
			/* Note : Vous ne devriez pas utiliser autoconnect lorsque vous linkez des services */
			autoconnect;
			ssl;
			zip;
		};
};
/*
 *
 * ACTUEL : ulines {}
 * ANCIEN : U:Line
 * Les U-lines donnent aux serveurs plus de pouvoir/commandes, ceci doit UNIQUEMENT être appliqué
 * aux serveurs de services/stats et JAMAIS pour des serveurs UnrealIRCd normaux !
 * La syntaxe est la suivante :
 * ulines {
 *	(serveur auquel appliquer la uline);
 *	(serveur auquel appliquer la uline);
 *  [etc]
 * };
*/
ulines {
	services.roxnet.org;
	stats.roxnet.org;
};

/*
 * ACTUEL : drpass {}
 * ANCIEN : X:Line
 * Défini les mots de passe pour les commandes /die et /restart.
 * La syntaxe est la suivante :
 * drpass {
 *  restart		"(mot de passe pour relancer)";
 *  die		    "(mot de passe pour arrêter)";
 * };
 */
drpass {
	restart "I-love-to-restart";
	die "die-you-stupid";
};

/*
 * ACTUEL : log {}
 * ANCIEN : N/A
 * Dit à l'ircd où et quoi loguer. Vous pouvez en avoir
 * autant que vous le souhaitez.
 *
 * FLAGS : errors, kills, tkl, connects, server-connects, oper
 *
 * Syntaxe :
 * log "fichier de log"
 * {
 *    flags
 *    {
 *        flag;
 *        flag;
 *        etc..
 *    };
 * };
 */

log "ircd.log" {
	/* Efface le fichier de log et commence un nouveau lorsqu'il dépasse 2MB,
	   retirez ceci pour toujour utiliser le même fichier de log */
	maxsize 2097152;
	flags {
		oper;
		connects;
		server-connects;
		kills;
		errors;
		sadmin-commands;
		chg-commands;
		oper-override;
		spamfilter;
	};
};

/*
 * ACTUEL : alias {}
 * ANCIEN : N/A
 * Ceci vous permet de définir des alias pour les commandes telles que /nickserv, /chanserv etc
 * FLAGS: services, stats, normal
 *
 * Syntaxe :
 * alias "nom" {
 *	target "pointe vers";
 *	type typedalias;
 * };
 *
 * [NOTE : Vous pouvez également inclure un fichier d'alias prédéfinis ici, voir
 * doc/unreal32docs.fr.html section 2.9]
 */

// Ceci fait pointer la commande /nickserv vers l'utilisateur NickServ qui est connecté au serveur set::services-server
/*alias NickServ {
	target "NickServ";
	type services;
};*/

// Si vous voulez que la commande pointe vers le même nom que la commande, vous pouvez ignorez l'entré du nom
//alias ChanServ { type services; };

// Faire pointer la commande /statserv vers l'utilisateur StatServ sur le serveur set::stats-name
//alias StatServ { type stats; };

// Faire pointer la commande /superbot vers l'utilisateur SuperBot
//alias SuperBot { type normal; };


/* Alias Standards */
alias NickServ { type services; };
alias ChanServ { type services; };
alias OperServ { type services; };
alias HelpServ { type services; };
alias StatServ { type stats; };

/*
 * ACTUEL : alias {}
 * ANCIEN : N/A
 * Ceci vous permet de définir des alias pour les commandes telles que /identify, /services, etc
 *
 * Syntaxe :
 * alias "nom" {
 *	format "format string" {
 *		target "pointer vers";
 *              type typedalias;
 *		parameters "paramètres à envoyer";
 *	};
 *	type command;
 * };
 */
/* Ceci est expliqué séparément car même si elle a le même nom que la directive précédente, elle est très
 * différente dans sa syntaxe, bien qu'elle a une fonction similaire et dépend des alias standards pour
 * fonctionner.
 */
/*
alias "identify" {
	format "^#" {
		target "chanserv";
		type services;
		parameters "IDENTIFY %1-";
	};
	format "^[^#]" {
		target "nickserv";
		type services;
		parameters "IDENTIFY %1-";
	};
	type command;
};
*/
/* La directive alias::format est une expression régulière. Le premier format correspond à la commande
 * /identify command lorsque le premier caractère est un #. Cela renvoit donc à l'alias chanserv avec
 * les paramètres IDENTIFY %1-. Le second format correspond à la commande /identify lorsque le premier
 * caractère n'est pas un #. Cela envoie alors la commande à l'alias nickserv avec les paramètres
 * IDENTIFY %1-.
 */

/* L'alias::format::parameters est similaire aux languages de programmation. %N (où N est un nombre)
 * représente un paramètre envoyé à la commande (dans ce cas /identify). Si vous spécifiez %N- cela
 * signifie que tous les paramètres depuis N jusqu'au dernier paramètre dans la chaîne de caractères.
 * Vous pouvez également spécifier %n qui est remplacé par le pseudo de l'utilisateur.
*/

/* Alias Standards */
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;
};

/* Ceci est un exemple de véritable alias de commande*/
/* Ceci renvoye /GLINEBOT à /GLINE <parameter> 2d etc... */
alias "glinebot" {
         format ".+" {
                 command "gline";
                 type real;
                 parameters "%1 2d Les bots ne sont pas permis sur ce serveur, lisez s'il-vous-plait la faq sur http://www.example.com/faq/123";
         };
         type command;
 };

/*
 * ACTUEL : files {}
 * ANCIEN : include/config.h
 *
 * Ce bloc écrase les chemins utilisés par défaut par l'IRCd pour charger des choses
 * comme le MOTD, enregistrer son PID ou écrire ou lire son fichier de sauvegarde (tunefile).
 * L'existence de ce bloc permet à une installation de UnrealIRCd de supporter
 * plusieurs instances tournant simultanément lorsque combinée à l'option de ligne
 * de commande -c
 *
 * Comme d'habitude, les chemins relatifs sont interprétés à partir du répertoire
 * dans lequel UnrealIRCd trouverait unrealircd.conf si -c N'est PAS spécifiée
 * sur la ligne de commande.
 */
files
{
	/* Le message du jour (Message Of The Day) affiché aux utilisateurs se connectant : */
	/* motd ircd.motd; */

	/*
	 * Un MOTD court. Si ce fichier existe, il sera affiché aux
	 * utilisateurs à la place du MOTD. Ceux-ci peuvent toujours voir
	 * le MOTD complet en utilisant la commande /MOTD
	 */
	/* shortmotd ircd.smotd; */

	/* Affiché lorsqu'un opérateur utilise /OPER */
	/* opermotd oper.motd; */

	/* MOTD des services. */
	/* svsmotd ircd.svsmotd; */

	/* MOTD des bots */
	/* botmotd bot.motd; */

	/* Affiché par la commande /RULES */
	/* rules ircd.rules; */

	/*
	 * Fichier dans lequel l'IRCd sauvegarde et charge quelques valeurs qui devraient
	 * être conservées malgré les redémarrages du serveur. Doit pointer vers un fichier
	 * existant que l'IRCd peut modifier ou vers un fichier dans un dossier dans
	 * lequel l'IRCd peut créer des fichiers.
	 */
	/* tunefile ircd.tune; */

	/* Fichier dans lequel l'IRCd stocke son pid. L'IRCd doit pouvoir le modifier. */
	/* pidfile ircd.pid; */
};

/*
 * ACTUEL : tld {}
 * ANCIEN : T:Line
 * Ceci applique un MOTD et des fichiers de règles différents
 * en fonction de l'hostmask des clients.
 * La syntaxe est la suivante :
 * tld {
 *    mask (ident@host);
 *    motd "(motd file)";
 *    rules "(rules file)";
 * };
 */

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

/* Note : vous pouvez juste effacer le bloc d'exemple ci-dessus,
 * auquel cas les fichiers motd/règles par défaut (ircd.motd, ircd.rules)
 * seront utilisés pour tout le monde.
 */

/*
 * ACTUEL : ban nick {}
 * ANCIEN : Q:Line
 * Bannit un pseudo, il ne peut donc être utilisé.
 * La syntaxe est la suivante :
 * ban nick {
 *	mask "(pseudo à bannir)";
 *	reason "(raison)";
 * };
*/
ban nick {
	mask "*C*h*a*n*S*e*r*v*";
	reason "Reservé aux Services";
};
/*
 * ACTUEL : ban ip {}
 * ANCIEN : Z:Line
 * Empêche une ip de se connecter au réseau.
 * Syntaxe :
 * ban ip { mask (ip/hostmask); reason "(raison)"; };
*/
ban ip {
	mask 195.86.232.81;
	reason "Serveur délinké";
};
/*
 * ACTUEL : ban server {}
 * ANCIEN : Server Q:Line
 * Empêche un serveur de se connecter au réseau.
 * Si le serveur est linké à un serveur distant, le serveur local
 * sera déconnecté du réseau.
 * La syntaxe est la suivante :
 * ban server {
 *	mask "(nom du serveur)";
 *	reason "(raison à donner)";
 * };
*/

ban server {
	mask eris.berkeley.edu;
	reason "Va-t-en d'ici.";
};
/*
 * ACTUEL : ban user {}
 * ANCIEN : K:Line
 * Fait qu'un utilisateur avec un certain masque ne peut se connecter
 * à votre serveur.
 * Syntaxe :
 * ban user { mask (hostmask/ip); reason "(raison)"; };
*/

ban user {
	mask *tirc@*.saturn.bbn.com;
    reason "Idiot";
};

/*
 * ACTUEL : ban realname {}
 * ANCIEN : n:Line
 * Ceci empêche un certain realname d'être utilisé.
 * Syntaxe :
 * ban realname {
 *	mask "(realname)";
 * 	reason "(raison)";
 * };
*/

ban realname {
	mask "Swat Team";
	reason "mIRKFORCE";
};

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

/*
 * NOTE POUR TOUS LES BANS, ils peuvent être répetés pour ajouter des entrées !
 *
 * ACTUEL : except ban {}
 * ANCIEN : E:Line
 * Fait que vous ne pouvez être banni.
 * Syntaxe :
 * except ban { mask (ident@host); };
 * Répétez l'except ban {} autant de fois
 * que vous voulez pour différents hosts.
 */

except ban {
	/* ne bannit pas stskeeps */
	mask           *stskeeps@212.*;
};

/*
 * ACTUEL : deny dcc {}
 * ANCIEN : dccdeny.conf
 * Utilisez ceci pour bloquer l'envoi de dcc ...
 * Utile pour bloquer les virus.
 * Syntaxe :
 * deny dcc
 * {
 *   filename "fichier à bloquer (ex : *exe)";
 *   reason "raison";
 * };
 */
deny dcc {
	filename "*sub7*";
	reason "Possible Sub7 Virus";
};

/*
 * ACTUEL : deny channel {}
 * ANCIEN : N/A (NEW)
 * Ceci empêche des salons d'être joints.
 * Syntaxe :
 * deny channel {
 * 	channel "(salon)";
 * 	reason "raison";
 * 	class "clients"; (optionnel)
 * };
*/
deny channel {
	channel "*warez*";
	reason "Warez is illegal";
	class "clients";
};


/*
 * ACTUEL : allow channel {}
 * ANCIEN : chrestrict
 * Autorise un utilisateur à joindre un salon...
 * comme une exception au deny channel.
 * Syntaxe :
 * allow channel {
 *   channel "nom du salon";
 *   class "clients"; (optionnel)
 * };
 */
allow channel {
	channel "#WarezSucks";
	class "clients";
};

/*
 * ACTUEL : vhost {}
 * ANCIEN : Vhost.conf file
 * Applique une ip factice aux non-opers, ou aux
 * opers trop flemmards pour utiliser /sethost :P
 * Syntaxe :
 *   vhost {
 *       vhost (vhost.com);
 *       from {
 *            userhost (ident@host à autoriser à utiliser);
 *       };
 *       login (login);
 *       password (mot de passe);
 *   };
 *        ensuite pour utiliser ce vhost, tapez /vhost (login) (mot de passe) sur l'IRC
 */
vhost {
	vhost           i.hate.microsefrs.com;
	from {
		userhost       *@*.image.dk;
	};
	login           stskeeps;
	password        moocowsrulemyworld;
};

/* Vous pouvez utiliser d'autres fichiers de configuration */
/* include "klines.conf"; */

/* Configuration du réseau */
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"; */
	/* Les Cloak keys doivent être les mêmes sur tous les serveurs du réseau.
	 * Ils sont utilisés pour générer des hosts masqués et doivent être gardés secrets.
	 * Les clés doivent être 3 chaînes de 5-100 caractères melangés.
	 * (10-20 caractères est parfait) et elles doivent être constituées de minuscules (a-z),
	 * majuscules (A-Z) et chiffres (0-9) [voir le premier exemple de clé].
	 * Astuce : Sur *NIX, vous pouvez utiliser la commande './unreal gencloak' dans votre shell pour que
	 *       Unreal génère 3 chaînes aléatoires pour vous.
	 */
	cloak-keys {
		"aoAr1HnR6gl3sJ7hVz4Zb7x4YwpW";
		"et une autre";
		"et un autre";
	};
	/* host à l'identification oper */
	hosts {
		local		"locop.roxnet.org";
		global		"ircop.roxnet.org";
		coadmin		"coadmin.roxnet.org";
		admin		"admin.roxnet.org";
		servicesadmin 	"csops.roxnet.org";
		netadmin 	"netadmin.roxnet.org";
		host-on-oper-up "no";
	};
};

/* Configuration spécifique d'un serveur */

set {
	kline-address "définir.cet.email";
	modes-on-connect "+ixw";
	modes-on-oper	 "+xwgs";
	oper-auto-join "#opers";
	options {
		hide-ulines;
		/* Vous pouvez enclencher la vérification des idents si vous voulez */
		/* identd-check; */
		show-connect-info;
	};

	maxchannelsperuser 10;
	/* Durée maximum pendant laquelle un utilisateur doit rester connecté avant de pouvoir utiliser
	 * un message de QUIT.
	 * Ceci devrait aider à stoper le spam */
	anti-spam-quit-message-time 10s;
	/* Applique le message de static-quit à tous les quits - cela signifie qu'aucun
           message de quit personalisé ne sera autorisé sur le serveur local */
	/* static-quit "Client quit";	*/

	/* Vous pouvez également bloquer toutes les raisons de part en décommentant ceci et en disant
	 * 'yes', ou spécifiez un autre texte (ex: "Bye bye!") pour qu'il soit toujours utilisé.. */
	/* static-part yes; */

	/* Vous permet de restreindre certaines stats aux opers, utilisez * pour toutes les stats,
	 * enlevez le pour autoriser les utilisateurs à voir toutes les stats. Tapez '/stats' pour
	 * une liste complète.
	 * Certains admins pourront vouloir bloquer 'kGs' pour que les utilisateurs normaux ne puissent
	 * lister les klines, glines et shuns.
	 */
	oper-only-stats "okfGsMRUEelLCXzdD";

	/* Throttling: cet exemple applique une limite de 3 tentatives de connection en 60s (par host). */
	throttle {
		connections 3;
		period 60s;
	};

	/* Protection Anti flood */
	anti-flood {
		nick-flood 3:60;	/* 3 changements de pseudo en 60 secondes (la valeur par défaut) */
	};

	/* Filtre anti-spam */
	spamfilter {
		ban-time 1d; /* durée par défaut d'un ban *line appliqué par le spamfilter */
		ban-reason "Spam/Advertising"; /* raison par défaut */
		virus-help-channel "#help"; /* salon à utiliser pour l'action 'viruschan' */
		/* excepté "#help"; salon à exempter de filtrage */
	};
};

/*
 * Problèmes ou besoin de plus d'aide ?
 * 1) http://www.unrealircd.com/files/docs/unreal32docs.fr.html
 * 2) http://www.vulnscan.org/UnrealIRCd/faq/ <- contient 80% de vos questions !
 * 3) Si vous avez encore des problèmes vous pouvez aller sur irc.unrealircd.org #unreal-support,
 *    notez que vous devez avoir LU LA DOCUMENTATION ET LA FAQ d'abord !
 */
