diff options
author | Adam <Adam@anope.org> | 2010-12-23 16:59:56 -0500 |
---|---|---|
committer | Adam <Adam@anope.org> | 2010-12-23 16:59:56 -0500 |
commit | 12b0ff0593cc5f2c0f61ca575f9e0af8b0084994 (patch) | |
tree | 3edf1b1b9045e389ba0e957589c1017a22deeba5 /include | |
parent | 13688c595bd11c3a4a093bc82a7d5f2733640abb (diff) |
Bug #1079 - Prevent /cs ban, akick, unban, etc, from matching against users real hostname and IPs in an attempt to prevent unauthorized users from gaining other users IPs via brute force attacks.
Diffstat (limited to 'include')
-rw-r--r-- | include/extern.h | 3 | ||||
-rw-r--r-- | include/services.h | 7 |
2 files changed, 9 insertions, 1 deletions
diff --git a/include/extern.h b/include/extern.h index b46b4abc9..d39faa076 100644 --- a/include/extern.h +++ b/include/extern.h @@ -56,6 +56,7 @@ E void kill_user(char *source, char *user, char *reason); E void bad_password(User * u); E void sqline(char *mask, char *reason); E void common_unban(ChannelInfo * ci, char *nick); +E void common_unban_full(ChannelInfo * ci, char *nick, boolean full); E void common_svsmode(User * u, char *modes, char *arg); /**** botserv.c ****/ @@ -154,6 +155,7 @@ E int entry_match_mask(Entry *e, char *mask, uint32 ip); E Entry *elist_match(EList *list, char *nick, char *user, char *host, uint32 ip); E Entry *elist_match_mask(EList *list, char *mask, uint32 ip); E Entry *elist_match_user(EList *list, User *u); +E Entry *elist_match_user_full(EList *list, User *u, boolean full); E Entry *elist_find_mask(EList *list, char *mask); E long get_memuse(EList *list); @@ -1175,6 +1177,7 @@ E int is_excepted(ChannelInfo * ci, User * user); E int is_excepted_mask(ChannelInfo * ci, char *mask); E int match_usermask(const char *mask, User * user); +E int match_usermask_full(const char *mask, User * user, boolean full); E int match_userip(const char *mask, User * user, char *host); E void split_usermask(const char *mask, char **nick, char **user, char **host); diff --git a/include/services.h b/include/services.h index 53b6ea6d2..814aff0c5 100644 --- a/include/services.h +++ b/include/services.h @@ -324,7 +324,12 @@ struct ircdvars_ { int admin; /* Has Admin */ int chansqline; /* Supports Channel Sqlines */ int quitonkill; /* IRCD sends QUIT when kill */ - int svsmode_unban; /* svsmode can be used to unban */ + int svsmode_unban; /* svsmode can be used to unban + * Note the core no longer uses + * this because it can lead to + * users gaining other users IPs. + * It is kept for API compatability. + */ int protect; /* Has protect modes */ int reversekickcheck; /* Can reverse ban check */ int chanreg; /* channel mode +r for register */ |