X-Git-Url: https://jfr.im/git/irc/rqf/shadowircd.git/blobdiff_plain/4e0f14a0e8bf66bd3d1f974defc9d89d88cb5cd0..af81d5a0b09446188fd6f9c292b51519f2c1cedd:/src/hostmask.c diff --git a/src/hostmask.c b/src/hostmask.c index d45dc11..9340d7e 100644 --- a/src/hostmask.c +++ b/src/hostmask.c @@ -5,7 +5,7 @@ * Copyright (C) 1990 Jarkko Oikarinen and University of Oulu, Co Center * Copyright (C) 1996-2002 Hybrid Development Team * Copyright (C) 2002-2005 ircd-ratbox development team - * Copyright (C) 2005-2006 charybdis development team + * Copyright (C) 2005-2008 charybdis development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -432,8 +432,7 @@ find_dline(struct sockaddr *addr, int aftype) return find_conf_by_address(NULL, NULL, NULL, addr, CONF_DLINE | 1, aftype, NULL); } -/* void find_exact_conf_by_address(const char*, int, const char *, - * struct ConfItem *aconf) +/* void find_exact_conf_by_address(const char*, int, const char *) * Input: * Output: ConfItem if found * Side-effects: None @@ -471,7 +470,7 @@ find_exact_conf_by_address(const char *address, int type, const char *username) { if (arec->type == type && arec->masktype == masktype && - !irccmp(arec->username, username)) + (arec->username == NULL || username == NULL ? arec->username == username : !irccmp(arec->username, username))) { if (masktype == HM_HOST) { @@ -679,22 +678,20 @@ show_iline_prefix(struct Client *sptr, struct ConfItem *aconf, char *name) prefix_ptr = prefix_of_host; if(IsNoTilde(aconf)) *prefix_ptr++ = '-'; - if(IsLimitIp(aconf)) - *prefix_ptr++ = '!'; if(IsNeedIdentd(aconf)) *prefix_ptr++ = '+'; - if(IsPassIdentd(aconf)) - *prefix_ptr++ = '$'; - if(IsNoMatchIp(aconf)) - *prefix_ptr++ = '%'; if(IsConfDoSpoofIp(aconf)) *prefix_ptr++ = '='; - if(MyOper(sptr) && IsConfExemptKline(aconf)) + if(IsOper(sptr) && IsConfExemptFlood(aconf)) + *prefix_ptr++ = '|'; + if(IsOper(sptr) && IsConfExemptGline(aconf) && !IsConfExemptKline(aconf)) + *prefix_ptr++ = '_'; + if(IsOper(sptr) && IsConfExemptDNSBL(aconf) && !IsConfExemptKline(aconf)) + *prefix_ptr++ = '$'; + if(IsOper(sptr) && IsConfExemptKline(aconf)) *prefix_ptr++ = '^'; - if(MyOper(sptr) && IsConfExemptLimits(aconf)) + if(IsOper(sptr) && IsConfExemptLimits(aconf)) *prefix_ptr++ = '>'; - if(MyOper(sptr) && IsConfIdlelined(aconf)) - *prefix_ptr++ = '<'; *prefix_ptr = '\0'; strncpy(prefix_ptr, name, USERLEN); return (prefix_of_host); @@ -720,7 +717,7 @@ report_auth(struct Client *client_p) { aconf = arec->aconf; - if(!MyOper(client_p) && IsConfDoSpoofIp(aconf)) + if(!IsOper(client_p) && IsConfDoSpoofIp(aconf)) continue; get_printable_conf(aconf, &name, &host, &pass, &user, &port,