]> jfr.im git - irc/rqf/shadowircd.git/blobdiff - src/newconf.c
'rb_dlink_list global_channel_list' declaration moved to channel.c
[irc/rqf/shadowircd.git] / src / newconf.c
index b436b54aa13e49e7cd6571b1eb174bbb3b8de2fe..92671f393b1a4ee37db4e7011bd6e58e1ecbe857 100644 (file)
@@ -11,7 +11,6 @@
 
 #include "newconf.h"
 #include "ircd_defs.h"
-#include "sprintf_irc.h"
 #include "common.h"
 #include "logger.h"
 #include "s_conf.h"
@@ -230,7 +229,7 @@ conf_set_serverinfo_network_name(void *data)
 static void
 conf_set_serverinfo_vhost(void *data)
 {
-       if(inetpton(AF_INET, (char *) data, &ServerInfo.ip.sin_addr) <= 0)
+       if(rb_inet_pton(AF_INET, (char *) data, &ServerInfo.ip.sin_addr) <= 0)
        {
                conf_report_error("Invalid netmask for server IPv4 vhost (%s)", (char *) data);
                return;
@@ -243,7 +242,7 @@ static void
 conf_set_serverinfo_vhost6(void *data)
 {
 #ifdef RB_IPV6
-       if(inetpton(AF_INET6, (char *) data, &ServerInfo.ip6.sin6_addr) <= 0)
+       if(rb_inet_pton(AF_INET6, (char *) data, &ServerInfo.ip6.sin6_addr) <= 0)
        {
                conf_report_error("Invalid netmask for server IPv6 vhost (%s)", (char *) data);
                return;
@@ -312,7 +311,6 @@ static struct mode_table oper_table[] = {
        {"remote",              OPER_REMOTE             },
        {"kline",               OPER_KLINE              },
        {"unkline",             OPER_UNKLINE            },
-       {"gline",               OPER_GLINE              },
        {"nick_changes",        OPER_NICKS              },
        {"rehash",              OPER_REHASH             },
        {"die",                 OPER_DIE                },
@@ -334,7 +332,6 @@ static struct mode_table auth_table[] = {
        {"exceed_limit",        CONF_FLAGS_NOLIMIT      },
        {"dnsbl_exempt",        CONF_FLAGS_EXEMPTDNSBL  },
        {"kline_exempt",        CONF_FLAGS_EXEMPTKLINE  },
-       {"gline_exempt",        CONF_FLAGS_EXEMPTGLINE  },
        {"flood_exempt",        CONF_FLAGS_EXEMPTFLOOD  },
        {"spambot_exempt",      CONF_FLAGS_EXEMPTSPAMBOT },
        {"shide_exempt",        CONF_FLAGS_EXEMPTSHIDE  },
@@ -376,6 +373,10 @@ static struct mode_table shared_table[] =
        { "kline",      SHARED_PKLINE|SHARED_TKLINE     },
        { "xline",      SHARED_PXLINE|SHARED_TXLINE     },
        { "resv",       SHARED_PRESV|SHARED_TRESV       },
+       { "dline",  SHARED_PDLINE|SHARED_TDLINE },
+       { "tdline", SHARED_TDLINE       },
+       { "pdline", SHARED_PDLINE   },
+       { "undline",    SHARED_UNDLINE  },
        { "tkline",     SHARED_TKLINE   },
        { "unkline",    SHARED_UNKLINE  },
        { "txline",     SHARED_TXLINE   },
@@ -784,16 +785,16 @@ conf_set_listen_port_both(void *data, int ssl)
        }
 }
 
-static void\r
-conf_set_listen_port(void *data)\r
-{\r
-       conf_set_listen_port_both(data, 0);\r
-}\r
-\r
-static void\r
-conf_set_listen_sslport(void *data)\r
-{\r
-       conf_set_listen_port_both(data, 1);\r
+static void
+conf_set_listen_port(void *data)
+{
+       conf_set_listen_port_both(data, 0);
+}
+
+static void
+conf_set_listen_sslport(void *data)
+{
+       conf_set_listen_port_both(data, 1);
 }
 
 static void
@@ -845,7 +846,7 @@ conf_end_auth(struct TopConf *tc)
        collapse(yy_aconf->user);
        collapse(yy_aconf->host);
        conf_add_class_to_conf(yy_aconf);
-       add_conf_by_address(yy_aconf->host, CONF_CLIENT, yy_aconf->user, yy_aconf);
+       add_conf_by_address(yy_aconf->host, CONF_CLIENT, yy_aconf->user, yy_aconf->spasswd, yy_aconf);
 
        RB_DLINK_FOREACH_SAFE(ptr, next_ptr, yy_aconf_list.head)
        {
@@ -854,6 +855,9 @@ conf_end_auth(struct TopConf *tc)
                if(yy_aconf->passwd)
                        yy_tmp->passwd = rb_strdup(yy_aconf->passwd);
 
+               if(yy_aconf->spasswd)
+                       yy_tmp->spasswd = rb_strdup(yy_aconf->spasswd);
+               
                /* this will always exist.. */
                yy_tmp->name = rb_strdup(yy_aconf->name);
 
@@ -868,7 +872,7 @@ conf_end_auth(struct TopConf *tc)
 
                conf_add_class_to_conf(yy_tmp);
 
-               add_conf_by_address(yy_tmp->host, CONF_CLIENT, yy_tmp->user, yy_tmp);
+               add_conf_by_address(yy_tmp->host, CONF_CLIENT, yy_tmp->user, yy_tmp->spasswd, yy_tmp);
                rb_dlinkDestroy(ptr, &yy_aconf_list);
        }
 
@@ -908,6 +912,15 @@ conf_set_auth_user(void *data)
                rb_dlinkAddAlloc(yy_tmp, &yy_aconf_list);
 }
 
+static void
+conf_set_auth_auth_user(void *data)
+{
+       if(yy_aconf->spasswd)
+               memset(yy_aconf->spasswd, 0, strlen(yy_aconf->spasswd));
+       rb_free(yy_aconf->spasswd);
+       yy_aconf->spasswd = rb_strdup(data);
+}
+
 static void
 conf_set_auth_passwd(void *data)
 {
@@ -1166,12 +1179,12 @@ conf_end_connect(struct TopConf *tc)
                yy_server->flags &= ~SERVER_COMPRESSED;
        }
 #endif
-       if(ServerConfCompressed(yy_server) && ServerConfSSL(yy_server))\r
-       {\r
-               conf_report_error("Ignoring compressed for connect block %s -- "\r
-                                      "ssl and compressed are mutually exclusive (OpenSSL does its own compression)", \r
-                                      yy_server->name);\r
-               yy_server->flags &= ~SERVER_COMPRESSED;\r
+       if(ServerConfCompressed(yy_server) && ServerConfSSL(yy_server))
+       {
+               conf_report_error("Ignoring compressed for connect block %s -- "
+                                      "ssl and compressed are mutually exclusive (OpenSSL does its own compression)", 
+                                      yy_server->name);
+               yy_server->flags &= ~SERVER_COMPRESSED;
        }
 
        add_server_conf(yy_server);
@@ -1193,7 +1206,7 @@ conf_set_connect_host(void *data)
 static void
 conf_set_connect_vhost(void *data)
 {
-       if(inetpton_sock(data, (struct sockaddr *)&yy_server->my_ipnum) <= 0)
+       if(rb_inet_pton_sock(data, (struct sockaddr *)&yy_server->my_ipnum) <= 0)
        {
                conf_report_error("Invalid netmask for server vhost (%s)",
                                  (char *) data);
@@ -1317,7 +1330,7 @@ conf_set_exempt_ip(void *data)
        yy_tmp->passwd = rb_strdup("*");
        yy_tmp->host = rb_strdup(data);
        yy_tmp->status = CONF_EXEMPTDLINE;
-       add_conf_by_address(yy_tmp->host, CONF_EXEMPTDLINE, NULL, yy_tmp);
+       add_conf_by_address(yy_tmp->host, CONF_EXEMPTDLINE, NULL, NULL, yy_tmp);
 }
 
 static int
@@ -1753,7 +1766,7 @@ conf_set_generic_string(void *data, int len, void *location)
        char **loc = location;
        char *input = data;
 
-       if(len && strlen(input) > len)
+       if(len && strlen(input) > (unsigned int)len)
                input[len] = '\0';
 
        rb_free(*loc);
@@ -1916,10 +1929,10 @@ static struct ConfEntry conf_serverinfo_table[] =
        { "vhost",              CF_QSTRING, conf_set_serverinfo_vhost,  0, NULL },
        { "vhost6",             CF_QSTRING, conf_set_serverinfo_vhost6, 0, NULL },
 
-       { "ssl_private_key",    CF_QSTRING, NULL, 0, &ServerInfo.ssl_private_key },\r
-       { "ssl_ca_cert",        CF_QSTRING, NULL, 0, &ServerInfo.ssl_ca_cert },\r
-       { "ssl_cert",           CF_QSTRING, NULL, 0, &ServerInfo.ssl_cert },   \r
-       { "ssl_dh_params",      CF_QSTRING, NULL, 0, &ServerInfo.ssl_dh_params },\r
+       { "ssl_private_key",    CF_QSTRING, NULL, 0, &ServerInfo.ssl_private_key },
+       { "ssl_ca_cert",        CF_QSTRING, NULL, 0, &ServerInfo.ssl_ca_cert },
+       { "ssl_cert",           CF_QSTRING, NULL, 0, &ServerInfo.ssl_cert },   
+       { "ssl_dh_params",      CF_QSTRING, NULL, 0, &ServerInfo.ssl_dh_params },
        { "ssld_count",         CF_INT,     NULL, 0, &ServerInfo.ssld_count },
 
        { "default_max_clients",CF_INT,     NULL, 0, &ServerInfo.default_max_clients },
@@ -1943,7 +1956,6 @@ static struct ConfEntry conf_log_table[] =
        { "fname_foperlog",     CF_QSTRING, NULL, MAXPATHLEN, &ConfigFileEntry.fname_foperlog   },
        { "fname_serverlog",    CF_QSTRING, NULL, MAXPATHLEN, &ConfigFileEntry.fname_serverlog  },
        { "fname_killlog",      CF_QSTRING, NULL, MAXPATHLEN, &ConfigFileEntry.fname_killlog    },
-       { "fname_glinelog",     CF_QSTRING, NULL, MAXPATHLEN, &ConfigFileEntry.fname_glinelog   },
        { "fname_klinelog",     CF_QSTRING, NULL, MAXPATHLEN, &ConfigFileEntry.fname_klinelog   },
        { "fname_operspylog",   CF_QSTRING, NULL, MAXPATHLEN, &ConfigFileEntry.fname_operspylog },
        { "fname_ioerrorlog",   CF_QSTRING, NULL, MAXPATHLEN, &ConfigFileEntry.fname_ioerrorlog },
@@ -1978,6 +1990,7 @@ static struct ConfEntry conf_class_table[] =
 static struct ConfEntry conf_auth_table[] =
 {
        { "user",       CF_QSTRING, conf_set_auth_user,         0, NULL },
+       { "auth_user",  CF_QSTRING, conf_set_auth_auth_user,    0, NULL },
        { "password",   CF_QSTRING, conf_set_auth_passwd,       0, NULL },
        { "class",      CF_QSTRING, conf_set_auth_class,        0, NULL },
        { "spoof",      CF_QSTRING, conf_set_auth_spoof,        0, NULL },
@@ -2041,10 +2054,6 @@ static struct ConfEntry conf_general_table[] =
        { "disable_auth",       CF_YESNO, NULL, 0, &ConfigFileEntry.disable_auth        },
        { "dots_in_ident",      CF_INT,   NULL, 0, &ConfigFileEntry.dots_in_ident       },
        { "failed_oper_notice", CF_YESNO, NULL, 0, &ConfigFileEntry.failed_oper_notice  },
-       { "glines",             CF_YESNO, NULL, 0, &ConfigFileEntry.glines              },
-       { "gline_min_cidr",     CF_INT,   NULL, 0, &ConfigFileEntry.gline_min_cidr      },
-       { "gline_min_cidr6",    CF_INT,   NULL, 0, &ConfigFileEntry.gline_min_cidr6     },
-       { "gline_time",         CF_TIME,  NULL, 0, &ConfigFileEntry.gline_time          },
        { "global_snotices",    CF_YESNO, NULL, 0, &ConfigFileEntry.global_snotices     },
        { "hide_spoof_ips",     CF_YESNO, NULL, 0, &ConfigFileEntry.hide_spoof_ips      },
        { "dline_with_reason",  CF_YESNO, NULL, 0, &ConfigFileEntry.dline_with_reason   },