]> jfr.im git - irc/rqf/shadowircd.git/blobdiff - src/s_conf.c
ssl sync with http://hg.angelforce.ru/charybdis-old
[irc/rqf/shadowircd.git] / src / s_conf.c
index 28aabff64e396f496a72f704d5bb358ec6bd8383..d35eed45d71e436790ba7e998b4c737a258c9f00 100644 (file)
@@ -48,6 +48,7 @@
 #include "reject.h"
 #include "cache.h"
 #include "blacklist.h"
+#include "sslproc.h"
 
 struct config_server_hide ConfigServerHide;
 
@@ -245,7 +246,7 @@ check_client(struct Client *client_p, struct Client *source_p, const char *usern
        case NOT_AUTHORISED:
                {
                        int port = -1;
-#ifdef IPV6
+#ifdef RB_IPV6
                        if(source_p->localClient->ip.ss_family == AF_INET6)
                                port = ntohs(((struct sockaddr_in6 *)&source_p->localClient->listener->addr)->sin6_port);
                        else
@@ -721,7 +722,7 @@ set_default_conf(void)
 
        memset(&ServerInfo.ip, 0, sizeof(ServerInfo.ip));
        ServerInfo.specific_ipv4_vhost = 0;
-#ifdef IPV6
+#ifdef RB_IPV6
        memset(&ServerInfo.ip6, 0, sizeof(ServerInfo.ip6));
        ServerInfo.specific_ipv6_vhost = 0;
 #endif
@@ -838,7 +839,7 @@ set_default_conf(void)
        ConfigFileEntry.reject_duration = 120;
        ConfigFileEntry.max_unknown_ip = 2;
 
-       ServerInfo.max_clients = maxconnections - MAX_BUFFER;
+       ServerInfo.default_max_clients = MAXCONNECTIONS;
 }
 
 #undef YES
@@ -882,6 +883,26 @@ validate_conf(void)
        if(ServerInfo.network_desc == NULL)
                ServerInfo.network_desc = rb_strdup(NETWORK_DESC_DEFAULT);
 
+       if(ServerInfo.ssld_count < 1)\r
+               ServerInfo.ssld_count = 1;
+
+       if(!rb_setup_ssl_server(ServerInfo.ssl_cert, ServerInfo.ssl_private_key, ServerInfo.ssl_dh_params))\r
+       {\r
+               ilog(L_MAIN, "WARNING: Unable to setup SSL.");\r
+               ssl_ok = 0;\r
+       } else {\r
+               ssl_ok = 1;\r
+               send_new_ssl_certs(ServerInfo.ssl_cert, ServerInfo.ssl_private_key, ServerInfo.ssl_dh_params);\r
+       }\r
+\r
+       if(ServerInfo.ssld_count > get_ssld_count())\r
+       {\r
+               int start = ServerInfo.ssld_count - get_ssld_count();\r
+               /* start up additional ssld if needed */\r
+               start_ssldaemon(start, ServerInfo.ssl_cert, ServerInfo.ssl_private_key, ServerInfo.ssl_dh_params);\r
+                               \r
+       }
+
        if((ConfigFileEntry.client_flood < CLIENT_FLOOD_MIN) ||
           (ConfigFileEntry.client_flood > CLIENT_FLOOD_MAX))
                ConfigFileEntry.client_flood = CLIENT_FLOOD_MAX;
@@ -1240,6 +1261,8 @@ clear_out_old_conf(void)
        rb_free(ServerInfo.network_desc);
        ServerInfo.network_desc = NULL;
 
+       ServerInfo.ssld_count = 1;
+
        /* clean out AdminInfo */
        rb_free(AdminInfo.name);
        AdminInfo.name = NULL;