]> 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 c0033d192a73ad5d8fdd9e7a76e72dc1ef27a2f7..d35eed45d71e436790ba7e998b4c737a258c9f00 100644 (file)
@@ -48,6 +48,7 @@
 #include "reject.h"
 #include "cache.h"
 #include "blacklist.h"
+#include "sslproc.h"
 
 struct config_server_hide ConfigServerHide;
 
@@ -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;