me {
      name "irc.opp.homeunix.net";
      info "OPP IRC Network - OPP Main Server";
      numeric 1;
};

admin {
         "OppTupacShakur";
         "admin@opp.homeunix.net";
         "join #main";
};

##### Laden ben�tigter Module und Konfigurationen #####

loadmodule "src/modules/commands.so";
loadmodule "src/modules/cloak.so";
#loadmodule "src/modules/m_antidccbug.so";


class clients {
          pingfreq 120;
          maxclients 100;
          sendq 100000;
          recvq 8000;
};

class servers {
          pingfreq 90;
          maxclients 40;
          sendq 1000000;
          connfreq 100;
};


###################### Allow Block ###########################
#        In Allow Bl�cken wird angegeben, wer zum            #
#                Server connecten darf.                      #
##############################################################

allow {
             ip               *;
             hostname  *;
             class           clients;
             maxperip 3;
};

allow {
             ip               127.0.0.1;
             hostname  *;
             class           clients;
             maxperip 100;
};



###################### Listen Block ##########################
#         Mit diesem Block k�nnen spezielle Ports            #
#       angegeben werden, auf die der IRCD reagiert          #
##############################################################

listen irc.opp.homeunix.net:6667-6669;
listen         *:6700
{
        options
        {
                ssl;
                clientsonly;
        };
};
listen         127.0.0.1:6665
{
        options
        {
                serversonly;
        };
};

link            services.opp.homeunix.net
{
	username	*;
	hostname 	127.0.0.1;
	bind-ip 	*;
	port 		6665;
        hub             *;
	password-connect "opp";
	password-receive "opp";
	class           servers;
	options {
		autoconnect;
                        zip;
	};
};

link            stats.opp.homeunix.net
{
	username	*;
	hostname 	127.0.0.1;
	bind-ip 	*;
	port 		6665;
        hub             *;
	password-connect "opp";
	password-receive "opp";
	class           servers;
	options {
		autoconnect;
                        zip;
	};
};


######################### U Lines ##########################
#    Mit dem ulines block k�nnen bestimmte Server mit      #
#    speziellen Zwecken definiert werden. Das sollte       #
#    ausschlie�lich f�r Server wie "services" oder "stats" #
#    benutzt werden und nicht f�r normale Server. Jeder    #
#    Eintrag steht f�r den Namen des Servers mit einem     #
#                   besonderen Zweck.                      #
############################################################

ulines {
          services.opp.homeunix.net;
          stats.opp.homeunix.net; 
       }; 


####################### Oper Block #########################
#        Mit dem Oper Block k�nnen f�r den Server          #
#             IRC Operatoren festgelegt werden             #
############################################################

oper OppTupacShakur {
	class clients;
	from {
		userhost *;

	};
	password "opp";
	flags {
		netadmin;
                services-admin;
                admin;
		can_gkline;
		can_gzline;
		can_zline;
		can_restart;
		can_die;
                get_host;
                can_kline;
                can_unkline;
                get_umodew;
                can_globalnotice;
                can_localnotice;
                can_globalkill;
                can_globalroute;
                can_localroute;
                can_globops;
                can_override;
                can_rehash;
                can_wallops;
	    };
   snomask frebWqFv;
};


###################### DRpass Block ########################
#      Mit den Bl�cken drpass::restart und drpass::die     #
#      werden die Passworte f�r die Befehle "/restart"     #
#                 und "/die" festgelegt.                   #
############################################################

drpass {
         restart "opp";
         die "opp";
};


###################### TLD Block ###########################
#  Mit dem TLD Block kann man eine motd (Messageoftheday), #
#  rules und channels f�r User basierend auf deren Host    #
#                      festlegen.                          #
############################################################

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


############## Including des Aliases Block #################
#     Mit Alias k�nnen serverseitig bestimmte Befehle      #
#   eingestellt und dadurch vereinfacht werden. So ist es  #
#    z.B. m�glich, dass der Befehl  "/ns identify blah"    #
#      direkt an Nickserv geleitet und �bersetzt wird      #
####################     Beispiele      ####################
# aliases/ircservices.conf (IRCServices, Daylight)         #
# aliases/epona.conf (Epona)                               #
# aliases/anope.conf (Anope)                               #
# aliases/auspice.conf (Auspice)                           #
# aliases/generic.conf (Magick, Sirius, Wrecked)           #
# aliases/cygnus.conf (Cygnus)                             #
# aliases/operstats.conf (OperStats)                       #
# aliases/genericstats.conf (GeoStats, NeoStats)           #
############################################################

#include "aliases/anope.conf";
#include "aliases/neo.conf";


##################### Ban Nick Block #######################
#  Mit dem Ban Nick Block k�nnen bestimmte Nicknamen auf   #
#              dem Server gesperrt werden.                 #
############################################################

ban nick {
	mask "*S*e*r*v*";
	reason "Gesperrt";
};


####################### Log Block ##########################
#    Mit dem Log Block kann man verschiedene Logfiles      #
#    zu den unterschiedlichsten Zwecken erstellen lassen.  #
############################################################

log "ircd.log" {
    maxsize 2097152;
    flags {
             oper;
             server-connects;
             errors;
             kline;
             kills;
             tkl;

              };
};


####################### Set Block ##########################
#      Im Set Block werden die Optionen f�r bestimmte      #
#    Server Funktionen eingestellt. Jeder Eintrag bewirkt  # 
# etwas anderes und deshalb wird jeder einzeln beschrieben.#
############################################################
# network-name [name vom network];                         #
# Gibt den Namen des Netzwerks an, in dem der Server l�uft # 
# (also den Namen des irc Netzes!) Dieser Eintrag sollte   #
# auf allen Servern im Netzwerk absolut identisch sein.    #
############################################################
# default-server [server-name];                            #
# Legt den Namen des Servers fest, der den Usern mitteilt, #
# wo sie connecten sollen, wenn dieser Server voll ist.    #
############################################################
# services-server [server-name];                           #
# Legt den Namen des Servers fest, zu dem die Services     #
# Bots verbunden sind.                                     #
############################################################
# stats-server [server-name];                              #
# Stellt den Namen des Servers ein,                        #
# auf dem die Stats laufen.                                #
############################################################
# help-channel [network-help-channel>;                     #
# Legt den Namen des Hilfe Raums in diesem Netzwerk fest   # 
############################################################
# hiddenhost-prefix [prefix-value];                        #
# Legt die ersten Zeichen eines verdeckten Hosts (+x) fest.#
# �blicherweise nimmt man hier 3 oder 4 Buchstaben,        #
# die den Netzwerksnamen bezeichnen.                       #
############################################################
# cloak-keys { ["key1"]; ["key2"]; ["key3"]; };            #
# Stellt die Verschl�sselungs Keys ein, die f�r die        #
# Erstellung eines +x Host erforderlich sind. Diese        #
# Einstellung muss auf allen Servern identisch sein,       #
# ansonsten linken die Server nicht.                       #
############################################################
# hosts ...                                                #
# Legt die Hosts der verschiedenen Operatoren fest.        #
############################################################

set {
         ident {
                     connect-timeout 19s;
                      read-timeout 40s;
                   };
         network-name                 "OPP IRC Network";
         default-server               "irc.opp.homeunix.net";
         services-server              "services.opp.homeunix.net";
         help-channel                 "#help";
         hiddenhost-prefix            "OPP-IRC-Network";
         prefix-quit                  "OPP IRC Network forever";
         cloak-keys {
  	 // Die 3 Keys d�rfen nicht identisch sein
	 // Bei einem Server Link m�ssen die gleichen auf
	 // beiden Server sein
                "xxxxx";
                "xxxxx";
                "xxxxx";
         };

         hosts {
	        local "LocalOp.opp.homeunix.net";
	        global "GlobalOp.opp.homeunix.net";
                admin "Admin.opp.homeunix.net";
                servicesadmin "SVCAdmin.opp.homeunix.net";
                netadmin "NetAdmin.opp.homeunix.net";
                coadmin "CoAdmin.opp.homeunix.net";
                host-on-oper-up "yes";
         };


### Eine email Adresse, an die Fragen zur K-Line gesandt werden sollen.	
         kline-address             "dumm.gelaufen@pech-gehabt.lol";

### Die Modi, die f�r einen User nach einer Verbindung eingestellt werden.
         modes-on-connect    "+x";

### Die Modi, die eingestellt werden, wenn User (berechtigterweise) 
### den /oper Befehl verwenden.
         modes-on-oper          "+xwgsfF";

### Der oder die Channel(s), in den/die User bei /oper automatisch geforwardet
### werden.
         oper-auto-join            "#services";

### Die Modi, die f�r einen Channel eingestellt werden, wenn er das erste 
### mal (durch /join) erstellt wird.
         modes-on-join            "+nt";

         dns {
                      nameserver 127.0.0.1;
                      timeout 2s;
                      retries 2;
         };


         options {
                        identd-check;

### Falls eingestellt, werden dem User beim Connect Notices wie "ident request",
###  "hostname lookup", etc. angezeigt.
                        show-connect-info;
         };

### Einstellung, in wie vielen Channels ein User gleichzeitig sein darf.
         maxchannelsperuser 5;

### Eine Zeitangabe, in der festgelegt wird, wie lange ein User verbunden 
### gewesen sein muss, bevor eine /quit Meldung angezeigt wird. 
         anti-spam-quit-message-time 10s;

### Definiert eine Liste von Stats-Flags, die nur von Opers benutzt werden k�nnen.
         oper-only-stats                           "*okGvEOQCHYntTDd";

### Schutz vor Connectionflood
         throttle  {

### Wie oft muss ein User mit demselben Host verbinden, bevor er tempor�r
### gesperrt wird
                          connections 4;

### Wie lange muss ein User zum erneuten Connecten warten, wenn er h�ufiger, als 
### unter 'throttle::connections' eingestellt, verbunden war.
                          period 60s;
         };

         anti-flood {
                            nick-flood 3:60;
                            unknown-flood-bantime 7s;
                            unknown-flood-amount 4000;
         };
         spamfilter {
                ban-time 1d; 
                ban-reason "Spam/Advertising"; 
                virus-help-channel "#help"; 
         };
         default-bantime "0";
};
