]> jfr.im git - solanum.git/blobdiff - ircd/s_conf.c
newconf: add illustrative examples to comments
[solanum.git] / ircd / s_conf.c
index ebd6919bb8fc6a82da5c1d69de3b3c5f71e34b06..18db17365e0d7b1bfba66d9fa0a3b632c216c6fb 100644 (file)
@@ -20,8 +20,6 @@
  *  along with this program; if not, write to the Free Software
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
  *  USA
- *
- *  $Id: s_conf.c 3550 2007-08-09 06:47:26Z nenolod $
  */
 
 #include "stdinc.h"
@@ -34,7 +32,6 @@
 #include "channel.h"
 #include "class.h"
 #include "client.h"
-#include "common.h"
 #include "hash.h"
 #include "match.h"
 #include "ircd.h"
@@ -46,7 +43,6 @@
 #include "send.h"
 #include "reject.h"
 #include "cache.h"
-#include "blacklist.h"
 #include "privilege.h"
 #include "sslproc.h"
 #include "bandbi.h"
@@ -171,7 +167,7 @@ free_conf(struct ConfItem *aconf)
  * inputs      - pointer to client
  * output      - 0 = Success
  *               NOT_AUTHORISED (-1) = Access denied (no I line match)
- *               SOCKET_ERROR   (-2) = Bad socket.
+ *               I_SOCKET_ERROR (-2) = Bad socket.
  *               I_LINE_FULL    (-3) = I-line is full
  *               TOO_MANY       (-4) = Too many connections from hostname
  *               BANNED_CLIENT  (-5) = K-lined
@@ -192,7 +188,7 @@ check_client(struct Client *client_p, struct Client *source_p, const char *usern
 
        switch (i)
        {
-       case SOCKET_ERROR:
+       case I_SOCKET_ERROR:
                exit_client(client_p, source_p, &me, "Socket Error");
                break;
 
@@ -263,7 +259,7 @@ check_client(struct Client *client_p, struct Client *source_p, const char *usern
                {
                        int port = -1;
 #ifdef RB_IPV6
-                       if(source_p->localClient->ip.ss_family == AF_INET6)
+                       if(GET_SS_FAMILY(&source_p->localClient->ip) == AF_INET6)
                                port = ntohs(((struct sockaddr_in6 *)&source_p->localClient->listener->addr)->sin6_port);
                        else
 #endif
@@ -396,7 +392,7 @@ find_address_conf_by_client(struct Client *client_p, const char *username)
                aconf = find_address_conf(client_p->host, client_p->sockhost,
                                        client_p->username, client_p->username,
                                        (struct sockaddr *) &client_p->localClient->ip,
-                                       client_p->localClient->ip.ss_family,
+                                       GET_SS_FAMILY(&client_p->localClient->ip),
                                        client_p->localClient->auth_user);
        }
        else
@@ -406,7 +402,7 @@ find_address_conf_by_client(struct Client *client_p, const char *username)
                aconf = find_address_conf(client_p->host, client_p->sockhost,
                                        non_ident, client_p->username,
                                        (struct sockaddr *) &client_p->localClient->ip,
-                                       client_p->localClient->ip.ss_family,
+                                       GET_SS_FAMILY(&client_p->localClient->ip),
                                        client_p->localClient->auth_user);
        }
        return aconf;
@@ -638,18 +634,18 @@ attach_conf(struct Client *client_p, struct ConfItem *aconf)
  * as a result of an operator issuing this command, else assume it has been
  * called as a result of the server receiving a HUP signal.
  */
-int
-rehash(int sig)
+bool
+rehash(bool sig)
 {
-       if(sig != 0)
+       if(sig)
        {
                sendto_realops_snomask(SNO_GENERAL, L_ALL,
                                     "Got signal SIGHUP, reloading ircd conf. file");
        }
 
-       restart_authd();
+       rehash_authd();
        /* don't close listeners until we know we can go ahead with the rehash */
-       read_conf_files(NO);
+       read_conf_files(false);
 
        if(ServerInfo.description != NULL)
                rb_strlcpy(me.info, ServerInfo.description, sizeof(me.info));
@@ -657,11 +653,11 @@ rehash(int sig)
                rb_strlcpy(me.info, "unknown", sizeof(me.info));
 
        open_logfiles();
-       return (0);
+       return false;
 }
 
 void
-rehash_bans(int sig)
+rehash_bans(void)
 {
        bandb_rehash_bans();
 }
@@ -677,10 +673,6 @@ rehash_bans(int sig)
  *               of values later, put them in validate_conf().
  */
 
-#define YES     1
-#define NO      0
-#define UNSET  -1
-
 static void
 set_default_conf(void)
 {
@@ -696,8 +688,6 @@ set_default_conf(void)
        ServerInfo.specific_ipv6_vhost = 0;
 #endif
 
-       /* Don't reset hub, as that will break lazylinks */
-       /* ServerInfo.hub = NO; */
        AdminInfo.name = NULL;
        AdminInfo.email = NULL;
        AdminInfo.description = NULL;
@@ -708,39 +698,39 @@ set_default_conf(void)
        ConfigFileEntry.sasl_service = NULL;
 
        ConfigFileEntry.default_umodes = UMODE_INVISIBLE;
-       ConfigFileEntry.failed_oper_notice = YES;
-       ConfigFileEntry.anti_nick_flood = NO;
-       ConfigFileEntry.disable_fake_channels = NO;
+       ConfigFileEntry.failed_oper_notice = true;
+       ConfigFileEntry.anti_nick_flood = false;
+       ConfigFileEntry.disable_fake_channels = false;
        ConfigFileEntry.max_nick_time = 20;
        ConfigFileEntry.max_nick_changes = 5;
        ConfigFileEntry.max_accept = 20;
        ConfigFileEntry.max_monitor = 60;
        ConfigFileEntry.nick_delay = 900;       /* 15 minutes */
-       ConfigFileEntry.target_change = YES;
+       ConfigFileEntry.target_change = true;
        ConfigFileEntry.anti_spam_exit_message_time = 0;
        ConfigFileEntry.ts_warn_delta = TS_WARN_DELTA_DEFAULT;
        ConfigFileEntry.ts_max_delta = TS_MAX_DELTA_DEFAULT;
-       ConfigFileEntry.client_exit = YES;
-       ConfigFileEntry.dline_with_reason = YES;
-       ConfigFileEntry.kline_with_reason = YES;
+       ConfigFileEntry.client_exit = true;
+       ConfigFileEntry.dline_with_reason = true;
+       ConfigFileEntry.kline_with_reason = true;
        ConfigFileEntry.kline_delay = 0;
-       ConfigFileEntry.warn_no_nline = YES;
-       ConfigFileEntry.non_redundant_klines = YES;
-       ConfigFileEntry.stats_e_disabled = NO;
-       ConfigFileEntry.stats_o_oper_only = NO;
+       ConfigFileEntry.warn_no_nline = true;
+       ConfigFileEntry.non_redundant_klines = true;
+       ConfigFileEntry.stats_e_disabled = false;
+       ConfigFileEntry.stats_o_oper_only = false;
        ConfigFileEntry.stats_k_oper_only = 1;  /* masked */
        ConfigFileEntry.stats_i_oper_only = 1;  /* masked */
-       ConfigFileEntry.stats_P_oper_only = NO;
-       ConfigFileEntry.stats_c_oper_only = NO;
-       ConfigFileEntry.stats_y_oper_only = NO;
-       ConfigFileEntry.stats_h_oper_only = NO;
-       ConfigFileEntry.map_oper_only = YES;
-       ConfigFileEntry.operspy_admin_only = NO;
+       ConfigFileEntry.stats_P_oper_only = false;
+       ConfigFileEntry.stats_c_oper_only = false;
+       ConfigFileEntry.stats_y_oper_only = false;
+       ConfigFileEntry.stats_h_oper_only = false;
+       ConfigFileEntry.map_oper_only = true;
+       ConfigFileEntry.operspy_admin_only = false;
        ConfigFileEntry.pace_wait = 10;
        ConfigFileEntry.caller_id_wait = 60;
        ConfigFileEntry.pace_wait_simple = 1;
-       ConfigFileEntry.short_motd = NO;
-       ConfigFileEntry.no_oper_flood = NO;
+       ConfigFileEntry.short_motd = false;
+       ConfigFileEntry.no_oper_flood = false;
        ConfigFileEntry.fname_userlog = NULL;
        ConfigFileEntry.fname_fuserlog = NULL;
        ConfigFileEntry.fname_operlog = NULL;
@@ -750,17 +740,17 @@ set_default_conf(void)
        ConfigFileEntry.fname_klinelog = NULL;
        ConfigFileEntry.fname_operspylog = NULL;
        ConfigFileEntry.fname_ioerrorlog = NULL;
-       ConfigFileEntry.hide_spoof_ips = YES;
+       ConfigFileEntry.hide_spoof_ips = true;
        ConfigFileEntry.hide_error_messages = 1;
        ConfigFileEntry.dots_in_ident = 0;
        ConfigFileEntry.max_targets = MAX_TARGETS_DEFAULT;
-       ConfigFileEntry.use_whois_actually = YES;
-       ConfigFileEntry.burst_away = NO;
-       ConfigFileEntry.collision_fnc = YES;
-       ConfigFileEntry.resv_fnc = YES;
-       ConfigFileEntry.global_snotices = YES;
-       ConfigFileEntry.operspy_dont_care_user_info = NO;
-       ConfigFileEntry.use_propagated_bans = YES;
+       ConfigFileEntry.use_whois_actually = true;
+       ConfigFileEntry.burst_away = false;
+       ConfigFileEntry.collision_fnc = true;
+       ConfigFileEntry.resv_fnc = true;
+       ConfigFileEntry.global_snotices = true;
+       ConfigFileEntry.operspy_dont_care_user_info = false;
+       ConfigFileEntry.use_propagated_bans = true;
        ConfigFileEntry.max_ratelimit_tokens = 30;
        ConfigFileEntry.away_interval = 30;
 
@@ -773,26 +763,27 @@ set_default_conf(void)
        ConfigFileEntry.oper_only_umodes = UMODE_SERVNOTICE;
        ConfigFileEntry.oper_snomask = SNO_GENERAL;
 
-       ConfigChannel.use_except = YES;
-       ConfigChannel.use_invex = YES;
-       ConfigChannel.use_forward = YES;
-       ConfigChannel.use_knock = YES;
+       ConfigChannel.use_except = true;
+       ConfigChannel.use_invex = true;
+       ConfigChannel.use_forward = true;
+       ConfigChannel.use_knock = true;
        ConfigChannel.knock_delay = 300;
        ConfigChannel.knock_delay_channel = 60;
        ConfigChannel.max_chans_per_user = 15;
+       ConfigChannel.max_chans_per_user_large = 60;
        ConfigChannel.max_bans = 25;
        ConfigChannel.max_bans_large = 500;
-       ConfigChannel.only_ascii_channels = NO;
-       ConfigChannel.burst_topicwho = NO;
-       ConfigChannel.kick_on_split_riding = NO;
+       ConfigChannel.only_ascii_channels = false;
+       ConfigChannel.burst_topicwho = false;
+       ConfigChannel.kick_on_split_riding = false;
 
        ConfigChannel.default_split_user_count = 15000;
        ConfigChannel.default_split_server_count = 10;
-       ConfigChannel.no_join_on_split = NO;
-       ConfigChannel.no_create_on_split = YES;
-       ConfigChannel.resv_forcepart = YES;
-       ConfigChannel.channel_target_change = YES;
-       ConfigChannel.disable_local_channels = NO;
+       ConfigChannel.no_join_on_split = false;
+       ConfigChannel.no_create_on_split = true;
+       ConfigChannel.resv_forcepart = true;
+       ConfigChannel.channel_target_change = true;
+       ConfigChannel.disable_local_channels = false;
        ConfigChannel.displayed_usercount = 3;
 
        ConfigChannel.autochanmodes = MODE_TOPICLIMIT | MODE_NOPRIVMSGS;
@@ -824,14 +815,12 @@ set_default_conf(void)
 
        ConfigFileEntry.nicklen = NICKLEN;
        ConfigFileEntry.certfp_method = RB_SSL_CERTFP_METH_SHA1;
+       ConfigFileEntry.hide_opers_in_whois = 0;
 
        if (!alias_dict)
-               alias_dict = irc_dictionary_create("alias", strcasecmp);
+               alias_dict = rb_dictionary_create("alias", strcasecmp);
 }
 
-#undef YES
-#undef NO
-
 /*
  * read_conf()
  *
@@ -875,9 +864,9 @@ validate_conf(void)
        if(!rb_setup_ssl_server(ServerInfo.ssl_cert, ServerInfo.ssl_private_key, ServerInfo.ssl_dh_params, ServerInfo.ssl_cipher_list))
        {
                ilog(L_MAIN, "WARNING: Unable to setup SSL.");
-               ssl_ok = 0;
+               ircd_ssl_ok = false;
        } else {
-               ssl_ok = 1;
+               ircd_ssl_ok = true;
                send_new_ssl_certs(ServerInfo.ssl_cert, ServerInfo.ssl_private_key, ServerInfo.ssl_dh_params, ServerInfo.ssl_cipher_list);
        }
 
@@ -1267,13 +1256,13 @@ get_oper_name(struct Client *client_p)
 
        if(MyOper(client_p))
        {
-               rb_snprintf(buffer, sizeof(buffer), "%s!%s@%s{%s}",
+               snprintf(buffer, sizeof(buffer), "%s!%s@%s{%s}",
                                client_p->name, client_p->username,
                                client_p->host, client_p->localClient->opername);
                return buffer;
        }
 
-       rb_snprintf(buffer, sizeof(buffer), "%s!%s@%s{%s}",
+       snprintf(buffer, sizeof(buffer), "%s!%s@%s{%s}",
                   client_p->name, client_p->username,
                   client_p->host, client_p->servptr->name);
        return buffer;
@@ -1317,7 +1306,7 @@ get_user_ban_reason(struct ConfItem *aconf)
 
        if (aconf->flags & CONF_FLAGS_TEMPORARY &&
                        (aconf->status == CONF_KILL || aconf->status == CONF_DLINE))
-               rb_snprintf(reasonbuf, sizeof reasonbuf,
+               snprintf(reasonbuf, sizeof reasonbuf,
                                "Temporary %c-line %d min. - ",
                                aconf->status == CONF_DLINE ? 'D' : 'K',
                                (int)((aconf->hold - aconf->created) / 60));
@@ -1353,7 +1342,7 @@ get_printable_kline(struct Client *source_p, struct ConfItem *aconf,
                *oper_reason = NULL;
        else
        {
-               rb_snprintf(operreasonbuf, sizeof operreasonbuf, "%s%s(%s)",
+               snprintf(operreasonbuf, sizeof operreasonbuf, "%s%s(%s)",
                                EmptyString(aconf->spasswd) ? "" : aconf->spasswd,
                                EmptyString(aconf->spasswd) ? "" : " ",
                                aconf->info.oper);
@@ -1364,12 +1353,12 @@ get_printable_kline(struct Client *source_p, struct ConfItem *aconf,
 /*
  * read_conf_files
  *
- * inputs       - cold start YES or NO
+ * inputs       - cold start
  * output       - none
  * side effects - read all conf files needed, ircd.conf kline.conf etc.
  */
 void
-read_conf_files(int cold)
+read_conf_files(bool cold)
 {
        const char *filename;
 
@@ -1426,7 +1415,7 @@ read_conf_files(int cold)
  * free an alias{} entry.
  */
 static void
-free_alias_cb(struct DictionaryElement *ptr, void *unused)
+free_alias_cb(rb_dictionary_element *ptr, void *unused)
 {
        struct alias_entry *aptr = ptr->data;
 
@@ -1532,11 +1521,11 @@ clear_out_old_conf(void)
        /* remove any aliases... -- nenolod */
        if (alias_dict != NULL)
        {
-               irc_dictionary_destroy(alias_dict, free_alias_cb, NULL);
+               rb_dictionary_destroy(alias_dict, free_alias_cb, NULL);
                alias_dict = NULL;
        }
 
-       destroy_blacklists();
+       del_blacklist_all();
 
        privilegeset_mark_all_illegal();