/* static int remove_tkline_match(const char *host, const char *user) * Input: A hostname, a username to unkline. * Output: returns YES on success, NO if no tkline removed. * Side effects: Any matching tklines are removed. */ static int remove_kline_match(const char *host, const char *user) { struct irc_ssaddr iphost, *piphost; struct MaskItem *conf; int t = 0; int aftype = 0; if ((t = parse_netmask(host, &iphost, NULL)) != HM_HOST) { if (t == HM_IPV6) aftype = AF_INET6; else aftype = AF_INET; piphost = &iphost; } else piphost = NULL; if ((conf = find_conf_by_address(host, piphost, CONF_KLINE, aftype, user, NULL, 0))) { if (IsConfDatabase(conf)) { delete_one_address_conf(host, conf); return 1; } } return 0; }
/* static int remove_tdline_match(const char *host, const char *user) * Input: An ip to undline. * Output: returns YES on success, NO if no tdline removed. * Side effects: Any matching tdlines are removed. */ static int remove_tdline_match(const char *host) { struct sockaddr_storage iphost, *piphost; struct AccessItem *aconf; int t; if ((t = parse_netmask(host, &iphost, NULL)) != HM_HOST) { if (t == HM_IPV6) t = AF_INET6; else t = AF_INET; piphost = &iphost; } else { t = 0; piphost = NULL; } if ((aconf = find_conf_by_address(host, piphost, CONF_DLINE | 1, t, NULL, NULL, 0, NULL))) { if (IsConfTemporary(aconf)) { delete_one_address_conf(host, aconf); return 1; } } return 0; }