X-Git-Url: https://jfr.im/git/irc/rqf/shadowircd.git/blobdiff_plain/d7cff1d11ba8b6a5eb393911b8edda125b2f9bbb..255130dde8eed921fea4b23786a5743fbd50cbda:/src/s_newconf.c diff --git a/src/s_newconf.c b/src/s_newconf.c index 93f5896..6114a51 100644 --- a/src/s_newconf.c +++ b/src/s_newconf.c @@ -29,7 +29,6 @@ * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * - * $Id: s_newconf.c 3508 2007-06-04 16:04:49Z jilles $ */ #include "stdinc.h" @@ -458,6 +457,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 +485,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 +506,7 @@ find_xline_mask(const char *gecos) { aconf = ptr->data; - if(!irccmp(aconf->name, gecos)) + if(!irccmp(aconf->host, gecos)) return aconf; } @@ -506,7 +523,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 +543,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 +650,7 @@ valid_temp_time(const char *p) return(result * 60); } +/* Propagated bans are expired elsewhere. */ static void expire_temp_rxlines(void *unused) { @@ -645,12 +663,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 +682,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 +699,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); }