]> jfr.im git - irc/rqf/shadowircd.git/blobdiff - src/s_newconf.c
Automated merge with ssh://shadowircd/uranium/shadowircd/
[irc/rqf/shadowircd.git] / src / s_newconf.c
index 93f5896849a6dee8f27ecc303c8b01f81f2275b6..36e94a59e502b85032aeb1f18a06e815567dc7f8 100644 (file)
@@ -458,6 +458,24 @@ set_server_conf_autoconn(struct Client *source_p, const char *name, int newval)
                sendto_one_notice(source_p, ":Can't find %s", name);
 }
 
+void
+disable_server_conf_autoconn(const char *name)
+{
+       struct server_conf *server_p;
+
+       server_p = find_server_conf(name);
+       if(server_p != NULL && server_p->flags & SERVER_AUTOCONN)
+       {
+               server_p->flags &= ~SERVER_AUTOCONN;
+
+               sendto_realops_snomask(SNO_GENERAL, L_ALL,
+                               "Disabling AUTOCONN for %s because of error",
+                               name);
+               ilog(L_SERVER, "Disabling AUTOCONN for %s because of error",
+                               name);
+       }
+}
+
 struct ConfItem *
 find_xline(const char *gecos, int counter)
 {
@@ -468,7 +486,7 @@ find_xline(const char *gecos, int counter)
        {
                aconf = ptr->data;
 
-               if(match_esc(aconf->name, gecos))
+               if(match_esc(aconf->host, gecos))
                {
                        if(counter)
                                aconf->port++;
@@ -489,7 +507,7 @@ find_xline_mask(const char *gecos)
        {
                aconf = ptr->data;
 
-               if(!irccmp(aconf->name, gecos))
+               if(!irccmp(aconf->host, gecos))
                        return aconf;
        }
 
@@ -506,7 +524,7 @@ find_nick_resv(const char *name)
        {
                aconf = ptr->data;
 
-               if(match_esc(aconf->name, name))
+               if(match_esc(aconf->host, name))
                {
                        aconf->port++;
                        return aconf;
@@ -526,7 +544,7 @@ find_nick_resv_mask(const char *name)
        {
                aconf = ptr->data;
 
-               if(!irccmp(aconf->name, name))
+               if(!irccmp(aconf->host, name))
                        return aconf;
        }
 
@@ -633,6 +651,7 @@ valid_temp_time(const char *p)
        return(result * 60);
 }
 
+/* Propagated bans are expired elsewhere. */
 static void
 expire_temp_rxlines(void *unused)
 {
@@ -645,12 +664,14 @@ expire_temp_rxlines(void *unused)
        {
                aconf = ptr->data;
 
+               if(aconf->lifetime != 0)
+                       continue;
                if(aconf->hold && aconf->hold <= rb_current_time())
                {
                        if(ConfigFileEntry.tkline_expire_notices)
                                sendto_realops_snomask(SNO_GENERAL, L_ALL,
                                                "Temporary RESV for [%s] expired",
-                                               aconf->name);
+                                               aconf->host);
 
                        free_conf(aconf);
                        rb_dlinkDestroy(ptr, &resvTable[i]);
@@ -662,12 +683,14 @@ expire_temp_rxlines(void *unused)
        {
                aconf = ptr->data;
 
+               if(aconf->lifetime != 0)
+                       continue;
                if(aconf->hold && aconf->hold <= rb_current_time())
                {
                        if(ConfigFileEntry.tkline_expire_notices)
                                sendto_realops_snomask(SNO_GENERAL, L_ALL,
                                                "Temporary RESV for [%s] expired",
-                                               aconf->name);
+                                               aconf->host);
                        free_conf(aconf);
                        rb_dlinkDestroy(ptr, &resv_conf_list);
                }
@@ -677,12 +700,14 @@ expire_temp_rxlines(void *unused)
        {
                aconf = ptr->data;
 
+               if(aconf->lifetime != 0)
+                       continue;
                if(aconf->hold && aconf->hold <= rb_current_time())
                {
                        if(ConfigFileEntry.tkline_expire_notices)
                                sendto_realops_snomask(SNO_GENERAL, L_ALL,
                                                "Temporary X-line for [%s] expired",
-                                               aconf->name);
+                                               aconf->host);
                        free_conf(aconf);
                        rb_dlinkDestroy(ptr, &xline_conf_list);
                }