diff options
-rw-r--r-- | include/services.h | 1 | ||||
-rw-r--r-- | src/ircd.c | 15 | ||||
-rw-r--r-- | src/process.c | 150 |
3 files changed, 88 insertions, 78 deletions
diff --git a/include/services.h b/include/services.h index 790fadafc..5da4b777a 100644 --- a/include/services.h +++ b/include/services.h @@ -1066,7 +1066,6 @@ struct session_ { * functions, we then call the correct function for the anope_ commands. **/ typedef struct ircd_proto_ { - void (*ircd_set_mod_current_buffer)(int ac, char **av); void (*ircd_cmd_372)(const char *source, const char *msg); void (*ircd_cmd_372_error)(const char *source); void (*ircd_cmd_375)(const char *source); diff --git a/src/ircd.c b/src/ircd.c index de77e5be4..e74af5422 100644 --- a/src/ircd.c +++ b/src/ircd.c @@ -44,8 +44,6 @@ void pmodule_ircd_proto(IRCDProtoNew *proto) **/ void initIrcdProto() { - ircdproto.ircd_set_mod_current_buffer = NULL; - ircdproto.ircd_set_umode = NULL; ircdproto.ircd_cmd_372 = NULL; ircdproto.ircd_cmd_372_error = NULL; ircdproto.ircd_cmd_375 = NULL; @@ -68,18 +66,7 @@ void initIrcdProto() ircdproto.ircd_valid_chan = NULL; } -/* Special function, returns 1 if executed, 0 if not */ -int anope_set_mod_current_buffer(int ac, char **av) -{ - if (ircdproto.ircd_set_mod_current_buffer) { - ircdproto.ircd_set_mod_current_buffer(ac, av); - return 1; - } - - return 0; -} - -void anope_set_umode(User * user, int ac, const char **av) +void anope_set_umode(User *user, int ac, const char **av) { ircdproto.ircd_set_umode(user, ac, av); } diff --git a/src/process.c b/src/process.c index 520f83949..8e4201c58 100644 --- a/src/process.c +++ b/src/process.c @@ -27,9 +27,9 @@ IgnoreData *ignore; /*************************************************************************/ /** - * Add a mask/nick to the ignorelits for delta seconds.
- * @param nick Nick or (nick!)user@host to add to the ignorelist.
- * @param delta Seconds untill new entry is set to expire. 0 for permanent.
+ * Add a mask/nick to the ignorelits for delta seconds. + * @param nick Nick or (nick!)user@host to add to the ignorelist. + * @param delta Seconds untill new entry is set to expire. 0 for permanent. */ void add_ignore(const char *nick, time_t delta) { @@ -38,35 +38,38 @@ void add_ignore(const char *nick, time_t delta) char *mask, *user, *host; User *u; time_t now; -
if (!nick) + +if (!nick) return; now = time(NULL); -
- /* If it s an existing user, we ignore the hostmask. */
+ + + /* If it s an existing user, we ignore the hostmask. */ if ((u = finduser(nick))) { snprintf(tmp, sizeof(tmp), "*!*@%s", u->host); mask = sstrdup(tmp); -
- /* Determine whether we get a nick or a mask. */
+ + /* Determine whether we get a nick or a mask. */ } else if ((host = strchr(nick, '@'))) { - /* Check whether we have a nick too.. */
+ /* Check whether we have a nick too.. */ if ((user = strchr(nick, '!'))) { - /* this should never happen */
+ /* this should never happen */ if (user > host) return; mask = sstrdup(nick); } else { - /* We have user@host. Add nick wildcard. */
+ /* We have user@host. Add nick wildcard. */ snprintf(tmp, sizeof(tmp), "*!%s", nick); mask = sstrdup(tmp); } -
- /* We only got a nick.. */
+ + /* We only got a nick.. */ } else { -
snprintf(tmp, sizeof(tmp), "%s!*@*", nick); + +snprintf(tmp, sizeof(tmp), "%s!*@*", nick); mask = sstrdup(tmp); } -
+ /* Check if we already got an identical entry. */ for (ign = ignore; ign; ign = ign->next) if (stricmp(ign->mask, mask) == 0) @@ -99,7 +102,7 @@ void add_ignore(const char *nick, time_t delta) * Retrieve an ignorance record for a nick or mask. * If the nick isn't being ignored, we return NULL and if necesary * flush the record from the ignore list (i.e. ignore timed out). - * @param nick Nick or (nick!)user@host to look for on the ignorelist.
+ * @param nick Nick or (nick!)user@host to look for on the ignorelist. * @return Pointer to the ignore record, NULL if none was found. */ IgnoreData *get_ignore(const char *nick) @@ -109,15 +112,20 @@ IgnoreData *get_ignore(const char *nick) char *user, *host; time_t now; User *u; -
if (!nick) + +if (!nick) return NULL; -
+ + /* User has disabled the IGNORE system */ if (!allow_ignore) return NULL; -
now = time(NULL); -
u = finduser(nick); -
+ +now = time(NULL); + +u = finduser(nick); + + /* If we find a real user, match his mask against the ignorelist. */ if (u) { /* Opers are not ignored, even if a matching entry may be present. */ @@ -126,8 +134,9 @@ IgnoreData *get_ignore(const char *nick) for (ign = ignore; ign; ign = ign->next) if (match_usermask(ign->mask, u)) break; -
} else { - /* We didn't get a user.. generate a valid mask. */
+ +} else { + /* We didn't get a user.. generate a valid mask. */ if ((host = strchr(nick, '@'))) { if ((user = strchr(nick, '!'))) { /* this should never happen */ @@ -135,19 +144,21 @@ IgnoreData *get_ignore(const char *nick) return NULL; snprintf(tmp, sizeof(tmp), "%s", nick); } else { - /* We have user@host. Add nick wildcard. */
+ /* We have user@host. Add nick wildcard. */ snprintf(tmp, sizeof(tmp), "*!%s", nick); } -
- /* We only got a nick.. */
+ + /* We only got a nick.. */ } else -
snprintf(tmp, sizeof(tmp), "%s!*@*", nick); -
for (ign = ignore; ign; ign = ign->next) + +snprintf(tmp, sizeof(tmp), "%s!*@*", nick); + +for (ign = ignore; ign; ign = ign->next) if (match_wild_nocase(ign->mask, tmp)) break; } -
- /* Check whether the entry has timed out */
+ + /* Check whether the entry has timed out */ if (ign && ign->time != 0 && ign->time <= now) { if (debug) alog("debug: Expiring ignore entry %s", ign->mask); @@ -161,7 +172,8 @@ IgnoreData *get_ignore(const char *nick) free(ign); ign = NULL; } -
if (ign && debug) + +if (ign && debug) alog("debug: Found ignore entry (%s) for %s", ign->mask, nick); return ign; } @@ -180,67 +192,77 @@ int delete_ignore(const char *nick) char tmp[BUFSIZE]; char *user, *host; User *u; -
if (!nick) + +if (!nick) return 0; -
- /* If it s an existing user, we ignore the hostmask. */
+ + /* If it s an existing user, we ignore the hostmask. */ if ((u = finduser(nick))) { snprintf(tmp, sizeof(tmp), "*!*@%s", u->host); -
- /* Determine whether we get a nick or a mask. */
+ + /* Determine whether we get a nick or a mask. */ } else if ((host = strchr(nick, '@'))) { - /* Check whether we have a nick too.. */
+ /* Check whether we have a nick too.. */ if ((user = strchr(nick, '!'))) { - /* this should never happen */
+ /* this should never happen */ if (user > host) return 0; snprintf(tmp, sizeof(tmp), "%s", nick); } else { - /* We have user@host. Add nick wildcard. */
+ /* We have user@host. Add nick wildcard. */ snprintf(tmp, sizeof(tmp), "*!%s", nick); } -
- /* We only got a nick.. */
+ + /* We only got a nick.. */ } else -
snprintf(tmp, sizeof(tmp), "%s!*@*", nick); + +snprintf(tmp, sizeof(tmp), "%s!*@*", nick); for (ign = ignore; ign; ign = ign->next) if (stricmp(ign->mask, tmp) == 0) break; -
- /* No matching ignore found. */
+ + /* No matching ignore found. */ if (!ign) return 0; -
if (debug) + +if (debug) alog("Deleting ignore entry %s", ign->mask); -
- /* Delete the entry and all references to it. */
+ + /* Delete the entry and all references to it. */ if (ign->prev) ign->prev->next = ign->next; else if (ignore == ign) ignore = ign->next; if (ign->next) ign->next->prev = ign->prev; -
free(ign->mask); + + +free(ign->mask); free(ign); ign = NULL; -
return 1; -
} - -
-/*************************************************************************/
-
-/**
- * Clear the ignorelist.
- * @return The number of entries deleted.
- */
-int clear_ignores()
+ +return 1; + +} + + + +/*************************************************************************/ + +/** + * Clear the ignorelist. + * @return The number of entries deleted. + */ +int clear_ignores() { IgnoreData *ign, *next; int i = 0; -
if (!ignore) + +if (!ignore) return 0; -
for (ign = ignore; ign; ign = next) { + +for (ign = ignore; ign; ign = next) { next = ign->next; if (debug) alog("Deleting ignore entry %s", ign->mask); @@ -248,9 +270,11 @@ int clear_ignores() free(ign); i++; } -
ignore = NULL; + +ignore = NULL; return i; -
} + +} /*************************************************************************/ |