fix possible crash on user deletion
[srvx.git] / srvx.conf.example
index 32e53612391f5c2837eb1d2a41a870bcdec04646..6019975e2d5b9c7d2f0c3715e47428b6f46d84d2 100644 (file)
 "services" {
     "nickserv" {
         "nick" "NickServ";
-        // If you want to by have *@* as the default hostmask, set
-        // default_hostmask.  This is discouraged for security reasons.
+        // What user modes do you want this service to have? Please keep in
+        // mind which ircd software you are using here, and that all of the
+        // services need to be at least +o.
+        // "modes" "+iok";
+        // If you want to by have *@* as the default hostmask for all
+        // new accounts, set default_hostmask.  This is discouraged
+        // for security reasons.
         // "default_hostmask" "1";
         // do we warn users when someone new auths to their account?
         "warn_clone_auth" "1";
@@ -52,6 +57,8 @@
         "default_maxlogins" "2";
         // what is the absolute maxlogins value?
         "hard_maxlogins" "10";
+        // Which mode should we use for account timestamps?
+        "account_timestamp_mode" "ignore";
         // This names a file that contains easily guessed passwords.
         // It always contains "password", "<password>" and the user's
         // account name.
             "lc_h" "800"; // specifically lower case h
             "uc_H" "800"; // .. and upper case H
             "S" "999";
-            "b" "1";
+            "b" "800";
+            "I" "800";
         };
         // and for who can change epithets for staff
         "set_epithet_level" "800";
         // what opserv access level do you need to set somebody else's level?
         "modoper_level" "850";
+        // what opserv access level do you need to set somebody's staff level?
+        "modstaff_level" "750";
 
         // how often should accounts be expired?
         "account_expire_freq" "1d";
         "account_expire_delay" "35d";
         // how long until an account with no access to any channels expires?
         "nochan_account_expire_delay" "14d";
+        // how long must an account be inactive so it can be ounregistered without force?
+        "ounregister_inactive" "1M";
+        // which flags on an account require the ounregister to be used with force?
+        "ounregister_flags" "ShgsfnHbuI";
         /* "require_qualified" has been removed. It is now
          * integrated into the modcmd command authorization
          * and dispatch mechanism.  "/msg OpServ help modcmd"
 
     "opserv" {
         "nick" "OpServ";
+        // What user modes do you want this service to have? Please keep in
+        // mind which ircd software you are using here, and that all of the
+        // services need to be at least +o.
+        // "modes" "+iok";
+        // should use of this service be limited to global opers?
         "privileged" "1";
+        // fullname for service
+        "description" "Oper Service Bot";
+        // hostname for service; only used if "description" is also set
+        "hostname" "dances-all-night-with.srvx.net";
         // what channel should opserv send debug output to?
         "debug_channel" "#opserv";
         "debug_channel_modes" "+tinms";
         // who to tell about staff auths?
         "staff_auth_channel" "#opserv";
         "staff_auth_channel_modes" "+tinms";
+        // Force Opers to be in staff_auth_channel
+        // 0 = don't force opers to be in the channel
+        // 1 = force opers to be in the channel
+        // 2 = force opers to be in the channel but kick them if they get mode -o set (deoper)
+        "staff_auth_force_opers" "2";
         // how many clones to allow from an untrusted host?
         "untrusted_max" "4";
         // how long of a g-line should be issued if the max hosts is exceeded?
             "size" "200";
             "drain-rate" "3";
         };
-        // character to make OpServ pay attention to you
-        "trigger" "?";
+        
     };
 
     "chanserv" {
         // (This is changed relative srvx-1.0.x, which would use default
         // unless you specified ".disabled".)
         "nick" "ChanServ";
+        // What user modes do you want this service to have? Please keep in
+        // mind which ircd software you are using here, and that all of the
+        // services need to be at least +o.
+        // "modes" "+iok";
+        // Does your ircd have off-channel services support? Does it have
+        // a registered channel mode? Does it support services opping themselves?
+        // Bahamut has these things; ircu2.10.11 does not.
+        // This setting takes three numerical values:
+        //   0 = off
+        //   1 = use a registered channel mode, have services op themselves
+        //   2 = all of the above, and a channel setting to have ChanServ not
+        //       idle in the channel
+        "off_channel" "0";
+        // revoke channel mode +a on unregister?
+        "revoke_mode_a" "1";
         // how long should a person be unseen before resending infoline?
         "info_delay" "120";
         // maximum greeting length
-        "max_greetlen" "120";
+        "max_greetlen" "200";
         // maximum users in a channel userlist
         "max_chan_users" "512";
         // maximum bans on a channel banlist
         "max_chan_bans" "512";
+        //min time of timebans
+        "min_time_bans" "5";
+        // maximum length of a user's infoline
+        "max_userinfo_length" "400";
         // If DynLimit is on and there are N users in the channel, ChanServ will
         // try to keep the limit at N+<adjust_threshold>.
         "adjust_threshold" "15";
         "chan_expire_freq" "3d";
         // How long is a channel unvisited (by masters or above) before it can be expired?
         "chan_expire_delay" "30d";
-        // character to make ChanServ pay attention to you
-        "trigger" "!";
+        // How often to look for dnrs that have expired?
+        "dnr_expire_freq" "1h";
         // what !set options should we show when user calls "!set" with no arguments?
-        "set_shows" ("DefaultTopic", "TopicMask", "Greeting", "UserGreeting", "Modes", "PubCmd", "InviteMe", "UserInfo", "GiveVoice", "GiveOps", "EnfOps", "EnfModes", "EnfTopic", "TopicSnarf", "Setters", "CtcpUser", "CtcpReaction", "Protect", "Toys", "DynLimit", "NoDelete");
+        "set_shows" ("DefaultTopic", "TopicMask", "AdvTopic", "Greeting", "UserGreeting", "Modes", "PubCmd", "InviteMe", "EnfModes", "EnfTopic", "TopicSnarf", "UserInfo", "GiveVoice", "GiveOps", "EnfOps", "Setters", "CtcpUsers", "CtcpReaction", "Protect", "Toys", "DynLimit", "NoDelete");
 
         // A list of !8ball responses
         "8ball" ("Not a chance.",
         "max_owned" "5";
         // how long between automatic topic refreshes with TopicRefresh 0
         "refresh_period" "3h";
+        // how long between two invites of an user
+        "invite_timeout" "10s";
         // what should !access say for various staff?
         "irc_operator_epithet" "a megalomaniacal power hungry tyrant";
         "network_helper_epithet" "a wannabe tyrant";
         "default_modes" "+nt";
         // minimum opserv access to set, clear or override nodelete setting?
         "nodelete_level" "1";
+        // how long before a new channel owner can give ownership away?
+        "giveownership_timeout" "1w";
+        // message sent to new channels
+        "new_channel_unauthed_join" ""; //only sent if the user is unauthed
+        "new_channel_authed_join" ""; //only sent if the user is authed
+        "new_channel_message" ""; //always after the message above
+        "oper_channel" "#opers";
+        
     };
 
     "global" {
         "nick" "Global";
+        // What user modes do you want this service to have? Please keep in
+        // mind which ircd software you are using here, and that all of the
+        // services need to be at least +o.
+        // "modes" "+iok";
         // should users get community announcements by default or not?
         "announcements_default" "on";
     };
+    
+    "spamserv" {
+        // You may disable a service by removing its "nick" config item.
+        // That means: SERVICES WILL ONLY WORK IF YOU DEFINE THEIR NICK.
+        // (This is changed relative srvx-1.0.x, which would use default
+        // unless you specified ".disabled".)
+        "nick" "SpamServ";
+        "debug_channel" "#spamserv";
+        "oper_channel" "#opers";
+        // url of the network rules. if you don't have network rules, remove this key.
+        "network_rules" "http://www.gamesurge.net/aup";
+        // trigger for spamserv; remove this key to disable the trigger
+        "trigger" "-";
+        // ban duration of a short timedban.
+        "short_ban_duration" "15m";
+        // ban duration of a long timedban.
+        "long_ban_duration" "1h";
+        // duration of a gline. SpamServ will issue it after several violations and a kill.
+        "gline_duration" "1h";
+        // users may add "exception_max" exceptions to the list. IRCOps can override "exception_max".
+        "exception_max" "10";
+        // minimum & maximum length of an exception.
+        "exception_min_len" "4";
+        "exception_max_len" "12";
+        // if someone advertises a channel, which doesn't exist (channel is empty, no users),
+        // SpamServ doesn't punish the user.
+        // enable this setting, if SpamServ has to ignore advertisements of channels, which do not exist.
+        // disable this setting, if SpamServ has to punish the users whenever they advertise.
+        "adv_chan_must_exist" "0";
+        // remove all mirc codes from messages before checking for advertisements.
+        // if this setting is disabled and someone spams a url which
+        // contains a bold char, SpamServ doesn't punish him.
+        "strip_mirc_codes" "1";
+        // enable this, if SpamServ has to "follow" ChanServ, when a channel moves or merges.
+        // disable it, if it shouldn't be possible to move or merge SpamServ with /msg chanserv move|merge.
+        "allow_move_merge" "1";
+    };
 };
 
 // The modules section gives configuration information to optional modules.
         "max_read" "1024"; // don't read more than 1024 bytes from any client
         "gline_duration" "1h"; // issue G-lines lasting one hour
         "max_cache_age" "60"; // only cache results for 60 seconds
-        // "address" "192.168.0.10"; // do proxy tests from this address
+        // "bind_address" "192.168.0.10"; // do proxy tests from this address
     };
     "snoop" {
         // Where to send snoop messages?
         "message_expiry" "30d"; // age when messages are deleted; set
                                 // to 0 to disable message expiration
     };
+    "qserver" {
+        "bind_address" "127.0.0.1";
+        "port" "7702";
+        "password" "hello";
+    };
+    "blacklist" {
+        // File containing blacklisted client addresses.
+        // "file" "blacklist.txt";
+        // Each line in the file should start with an IP or hostname.
+        // If there is whitespace and a message after that, the
+        // message will override this one:
+        "file_reason" "client is blacklisted";
+        // How long should a blacklist G-line last?
+        "gline_duration" "1h";
+        // Bot used to send debug notices
+        "debug_bot" "OpServ";
+        // To which channel should debug output be sent?
+        "debug_channel" "#opserv";
+        "debug_channel_modes" "+tinms";
+        // If you want to use DNS blacklists, add them here:
+        "dnsbl" {
+            // This DNSBL zone does not exist - you'll have to pick your own.
+            "dnsbl.example.org" {
+                // Send a notice instead of glining blacklisted ips
+                "debug" "1";
+                "description" "Example DNSBL entry";
+                "reason" "busted by a dns blacklist";
+                "duration" "1h";
+                // You can stick the client's IP in the G-line message.
+                "reason_2" "Example DNSBL reported %ip%'s address as 127.0.0.2";
+                // .. or the contents of a DNS TXT.
+                "reason_3" "%txt%";
+            };
+        };
+    };
+    "sar" {
+        // You generally will not want to override these defaults.
+        // "resolv_conf" "/etc/resolv.conf";
+        // "services" "/etc/services";
+        // "bind_address" "0.0.0.0";
+        // "bind_port" "0";
+        // The defaults for these are derived from the system config files (above).
+        // "domain" "example.org";
+        // "timeout" "3"; // base timeout for a DNS reply
+        // "retries" "3"; // number of times to retry on different servers or longer timeouts
+        // "ndots" "1";   // number of dots needed in a hostname to bypass search path
+        // "edns0" "0";   // if set, enable EDNS0 extended message sizes
+        // "search" ("example.org", "example.net");
+        // "nameservers" ("127.0.0.1");
+    };
+    "watchdog" {
+        "nick" "Watchdog";
+        "modes" "+iok";
+        "ban_duration" "2h"; //only if the channel is registered with chanserv
+        "gline_duration" "1h";
+        "punishment_reason" "Your message contained a forbidden word.";
+        "alert_chan" "#opers";
+        "oper_channel" "#opers";
+    };
+       
+       "hostserv" {
+           "nick" "HostServ";
+           "modes" "+iokSD";
+           "toplevel_access" "600";
+           "fallback_other_assignment" "1";
+           "manager_can_del_toplevel" "0";
+           "manager_can_del_secondlevel" "0";
+           "manager_can_rename_toplevel" "0";
+           "manager_can_rename_secondlevel" "0";
+           "manager_toplevel_can_oset" "0";
+           "manager_secondlevel_can_oset" "0";
+    };
 };
 
 "policers" {
     "max_cycles" "30"; // max uplink cycles before giving up
     // Admin information is traditionally: location, location, email
     "admin" ("IRC Network", "Gotham City, GO", "Mr Commissioner <james.gordon@police.gov>");
+    /* the following two settings are for ircu's HEAD_IN_SAND features, and are equivelent to
+     * the F: lines in ircu's ircd.conf. both can be disabled by commenting them out. */
+    "his_servername" "*.Generic.NET"; // hidden server name, shown in remote /whois requests
+    "his_servercomment" "The Generic, Boring IRC Network";
 };
 
 // controlling how services (mostly NickServ) send mail
     "body_prefix" ("This goes before the mail text.", "Each string here is treated as a separate \"paragraph\" for line wrapping.");
     "body_suffix_first" ("We care a lot about spam.  If you did not request this email, bitch and moan loudly at our opers, and tell our ISP to gank our connection.");
     "body_suffix" ("PLEASE DO NOT BE ALARMED.  CALMLY BOARD THE AIRCRAFT, STRAP YOUR ARMS ACROSS YOUR BODY, AND JUMP THE HELL OUT OF THE PLANE.", "Yaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatta!");
+    // If you are using the smtp mail back-end, you may need to set these:
+    "smtp_server" "localhost";
+    "smtp_service" "smtp";
+    // "smtp_myname" "localhost.domain";
 };
 
 // New section in srvx-1.2 to control database locations, etc.
     "NickServ" { "mondo_section" "NickServ"; };
     "OpServ" { "mondo_section" "OpServ"; };
     "sendmail" { "mondo_section" "sendmail"; };
+    "SpamServ" { "mondo_section" "SpamServ"; };
+    "Watchdog" { "mondo_section" "Watchdog"; };
+    "HostServ" { "mondo_section" "HostServ"; };
 
     // These are the options if you want a database to be in its own file.
     "mondo" {