]> jfr.im git - solanum.git/blobdiff - ircd/s_serv.c
ircd: client: substantially rework the connid registry system
[solanum.git] / ircd / s_serv.c
index 448965a88a1afd1c9e663d958f6df2810844cf0b..79a0a487c5eded6c815f544584080cf8369183fa 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_serv.c 3550 2007-08-09 06:47:26Z nenolod $
  */
 
 #include "stdinc.h"
@@ -33,7 +31,6 @@
 #include "s_serv.h"
 #include "class.h"
 #include "client.h"
-#include "common.h"
 #include "hash.h"
 #include "match.h"
 #include "ircd.h"
@@ -96,7 +93,6 @@ unsigned int CAP_BAN;
 unsigned int CAP_MLOCK;
 
 unsigned int CLICAP_MULTI_PREFIX;
-unsigned int CLICAP_SASL;
 unsigned int CLICAP_ACCOUNT_NOTIFY;
 unsigned int CLICAP_EXTENDED_JOIN;
 unsigned int CLICAP_AWAY_NOTIFY;
@@ -144,7 +140,6 @@ init_builtin_capabs(void)
        cli_capindex = capability_index_create("client capabilities");
 
        CLICAP_MULTI_PREFIX = capability_put(cli_capindex, "multi-prefix", NULL);
-       CLICAP_SASL = capability_put(cli_capindex, "sasl", NULL);
        CLICAP_ACCOUNT_NOTIFY = capability_put(cli_capindex, "account-notify", NULL);
        CLICAP_EXTENDED_JOIN = capability_put(cli_capindex, "extended-join", NULL);
        CLICAP_AWAY_NOTIFY = capability_put(cli_capindex, "away-notify", NULL);
@@ -265,7 +260,7 @@ try_connections(void *unused)
        struct server_conf *tmp_p;
        struct Class *cltmp;
        rb_dlink_node *ptr;
-       int connecting = FALSE;
+       bool connecting = false;
        int confrq = 0;
        time_t next = 0;
 
@@ -277,7 +272,7 @@ try_connections(void *unused)
                        continue;
 
                /* don't allow ssl connections if ssl isn't setup */
-               if(ServerConfSSL(tmp_p) && (!ssl_ok || !get_ssld_count()))
+               if(ServerConfSSL(tmp_p) && (!ircd_ssl_ok || !get_ssld_count()))
                        continue;
 
                cltmp = tmp_p->class;
@@ -310,7 +305,7 @@ try_connections(void *unused)
                        server_p = tmp_p;
 
                        /* We connect only one at time... */
-                       connecting = TRUE;
+                       connecting = true;
                }
 
                if((next > tmp_p->hold) || (next == 0))
@@ -440,7 +435,6 @@ check_server(const char *name, struct Client *client_p)
  *             - int flag of capabilities that this server has
  * output      - NONE
  * side effects        - send the CAPAB line to a server  -orabidoo
- *
  */
 void
 send_capabilities(struct Client *client_p, unsigned int cap_can_send)
@@ -802,19 +796,6 @@ server_estab(struct Client *client_p)
        /* Its got identd , since its a server */
        SetGotId(client_p);
 
-       /* If there is something in the serv_list, it might be this
-        * connecting server..
-        */
-       if(!ServerInfo.hub && serv_list.head)
-       {
-               if(client_p != serv_list.head->data || serv_list.head->next)
-               {
-                       ServerStats.is_ref++;
-                       sendto_one(client_p, "ERROR :I'm a leaf not a hub");
-                       return exit_client(client_p, client_p, client_p, "I'm a leaf");
-               }
-       }
-
        if(IsUnknown(client_p))
        {
                /* the server may be linking based on certificate fingerprint now. --nenolod */
@@ -1059,7 +1040,6 @@ serv_connect(struct server_conf *server_p, struct Client *by)
        rb_strlcpy(client_p->host, server_p->host, sizeof(client_p->host));
        rb_strlcpy(client_p->sockhost, buf, sizeof(client_p->sockhost));
        client_p->localClient->F = F;
-       add_to_cli_connid_hash(client_p);
        /* shove the port number into the sockaddr */
 #ifdef RB_IPV6
        if(GET_SS_FAMILY(&server_p->my_ipnum) == AF_INET6)
@@ -1175,11 +1155,9 @@ serv_connect_ssl_callback(rb_fde_t *F, int status, void *data)
                return;
 
        }
-       del_from_cli_connid_hash(client_p);
        client_p->localClient->F = xF[0];
-       add_to_cli_connid_hash(client_p);
 
-       client_p->localClient->ssl_ctl = start_ssld_connect(F, xF[1], rb_get_fd(xF[0]));
+       client_p->localClient->ssl_ctl = start_ssld_connect(F, xF[1], connid_get(client_p));
        if(!client_p->localClient->ssl_ctl)
        {
                serv_connect_callback(client_p->localClient->F, RB_ERROR, data);