diff options
-rw-r--r-- | Changes | 2 | ||||
-rw-r--r-- | include/extern.h | 3 | ||||
-rw-r--r-- | src/bahamut.c | 14 | ||||
-rw-r--r-- | src/dreamforge.c | 14 | ||||
-rw-r--r-- | src/hostserv.c | 22 | ||||
-rw-r--r-- | src/hybrid.c | 13 | ||||
-rw-r--r-- | src/operserv.c | 11 | ||||
-rw-r--r-- | src/ptlink.c | 12 | ||||
-rw-r--r-- | src/rageircd.c | 13 | ||||
-rw-r--r-- | src/servers.c | 14 | ||||
-rw-r--r-- | src/ultimate2.c | 14 | ||||
-rw-r--r-- | src/ultimate3.c | 13 | ||||
-rw-r--r-- | src/unreal31.c | 14 | ||||
-rw-r--r-- | src/unreal32.c | 14 | ||||
-rw-r--r-- | src/viagra.c | 14 | ||||
-rw-r--r-- | version.log | 6 |
16 files changed, 162 insertions, 31 deletions
@@ -30,6 +30,7 @@ Provided by Trystan <trystan@nomadirc.net> - 2004 09/07 A Ircd CHANMODE now trapped and stored. [ #00] 08/23 A New protocol independent design (aka anope-capab). [ #00] 08/28 A New IRCD document for adding new ircd support to new design. [ #00] +10/15 F Fixed OS JUPE [#147] 10/14 F Fixed NickServ Logout [#180] 10/14 F Fixed HelpChannel with Unreal [#180] 10/09 F Bug in MySQL debug, possibly causing segfaults. [#149] @@ -57,6 +58,7 @@ Provided by Trystan <trystan@nomadirc.net> - 2004 Provided by DrStein <gacevedo@anope.org> - 2004 10/05 A CS/NS INFO shows the expire time. [ #00] 10/05 A NS GLIST shows the expire time. [ #00] +10/15 F More Check and trap for forbidden nicks on HS. [#183] 10/07 F NEWS reordering issue [ #00] 10/05 F NS GLIST allows the owner of the nick to use the nickname param. [ #00] 09/17 F Fixed MySQL error, whereby checks are only done if mysql is on. [ #00] diff --git a/include/extern.h b/include/extern.h index baa70f110..7583019ed 100644 --- a/include/extern.h +++ b/include/extern.h @@ -1088,6 +1088,9 @@ extern void anope_cmd_svid_umode3(User *u, char *ts); extern void anope_cmd_nc_change(User *u); extern int anope_flood_mode_check(char *value); +extern void anope_cmd_jupe(char *jserver, char *who, char *reason); + + extern char *common_get_vident(User *u); extern char *common_get_vhost(User *u); extern char *send_token(char *token1, char *token2); diff --git a/src/bahamut.c b/src/bahamut.c index 5cc3bbab5..3e3be3844 100644 --- a/src/bahamut.c +++ b/src/bahamut.c @@ -813,7 +813,7 @@ void anope_cmd_svsmode(User * u, int ac, char **av) */ void anope_cmd_squit(char *servname, char *message) { - send_cmd(servname, "SQUIT %s :%s", servname, message); + send_cmd(NULL, "SQUIT %s :%s", servname, message); } /* PONG */ @@ -1590,5 +1590,17 @@ int anope_flood_mode_check(char *value) } } +void anope_cmd_jupe(char *jserver, char *who, char *reason) +{ + char rbuf[256]; + + snprintf(rbuf, sizeof(rbuf), "Juped by %s%s%s", who, + reason ? ": " : "", reason ? reason : ""); + + anope_cmd_squit(jserver, rbuf); + anope_cmd_server(jserver, 2, rbuf); + new_server(me_server, jserver, rbuf, SERVER_JUPED, NULL); +} + #endif diff --git a/src/dreamforge.c b/src/dreamforge.c index e755c9781..b8be2ca7b 100644 --- a/src/dreamforge.c +++ b/src/dreamforge.c @@ -601,7 +601,7 @@ void anope_cmd_svsmode(User * u, int ac, char **av) void anope_cmd_squit(char *servname, char *message) { - send_cmd(servname, "SQUIT %s :%s", servname, message); + send_cmd(NULL, "SQUIT %s :%s", servname, message); } void anope_pong(char *servname) @@ -1341,4 +1341,16 @@ void anope_cmd_eob() /* Not supported */ } +void anope_cmd_jupe(char *jserver, char *who, char *reason) +{ + char rbuf[256]; + + snprintf(rbuf, sizeof(rbuf), "Juped by %s%s%s", who, + reason ? ": " : "", reason ? reason : ""); + + anope_cmd_squit(jserver, rbuf); + anope_cmd_server(jserver, 2, rbuf); + new_server(me_server, jserver, rbuf, SERVER_JUPED, NULL); +} + #endif diff --git a/src/hostserv.c b/src/hostserv.c index 7ab7d8884..3a660fd0d 100644 --- a/src/hostserv.c +++ b/src/hostserv.c @@ -384,9 +384,8 @@ int listOut(User * u) && (display_counter < NSListMax)) { display_counter++; tm = localtime(¤t->time); - strftime(buf, sizeof(buf), - getstring(NULL, - STRFTIME_DATE_TIME_FORMAT), tm); + strftime_lang(buf, sizeof(buf), u, + STRFTIME_DATE_TIME_FORMAT, tm); if (current->vIdent) { notice_lang(s_HostServ, u, HOST_IDENT_ENTRY, counter, current->nick, @@ -408,9 +407,8 @@ int listOut(User * u) && (display_counter < NSListMax)) { display_counter++; tm = localtime(¤t->time); - strftime(buf, sizeof(buf), - getstring(NULL, STRFTIME_DATE_TIME_FORMAT), - tm); + strftime_lang(buf, sizeof(buf), u, + STRFTIME_DATE_TIME_FORMAT, tm); if (current->vIdent) { notice_lang(s_HostServ, u, HOST_IDENT_ENTRY, counter, current->nick, @@ -707,6 +705,10 @@ int do_setall(User * u) tmp_time = time(NULL); if ((na = findnick(nick))) { + if (na->status & NS_VERBOTEN) { + notice_lang(s_HostServ, u, NICK_X_FORBIDDEN, nick); + return MOD_CONT; + } alog("vHost for all nicks in group \002%s\002 set to \002%s\002 by oper \002%s\002", nick, hostmask, u->nick); do_hs_sync(na->nc, vIdent, hostmask, u->nick, tmp_time); if (vIdent) { @@ -734,6 +736,14 @@ int do_delall(User * u) return MOD_CONT; } if ((na = findnick(nick))) { + if (na->status & NS_VERBOTEN) { + notice_lang(s_HostServ, u, NICK_X_FORBIDDEN, nick); + return MOD_CONT; + } + if (na->status & NS_VERBOTEN) { + notice_lang(s_HostServ, u, NICK_X_FORBIDDEN, nick); + return MOD_CONT; + } nc = na->nc; for (i = 0; i < nc->aliases.count; i++) { na = nc->aliases.list[i]; diff --git a/src/hybrid.c b/src/hybrid.c index 7b99f785a..30966700f 100644 --- a/src/hybrid.c +++ b/src/hybrid.c @@ -1299,7 +1299,7 @@ void anope_cmd_squit(char *servname, char *message) return; } - send_cmd(servname, "SQUIT %s :%s", servname, message); + send_cmd(NULL, "SQUIT %s :%s", servname, message); } int anope_event_mode(char *source, int ac, char **av) @@ -1465,6 +1465,17 @@ int anope_event_error(char *source, int ac, char **av) return MOD_CONT; } +void anope_cmd_jupe(char *jserver, char *who, char *reason) +{ + char rbuf[256]; + + snprintf(rbuf, sizeof(rbuf), "Juped by %s%s%s", who, + reason ? ": " : "", reason ? reason : ""); + + anope_cmd_squit(jserver, rbuf); + anope_cmd_server(jserver, 2, rbuf); + new_server(me_server, jserver, rbuf, SERVER_JUPED, NULL); +} #endif diff --git a/src/operserv.c b/src/operserv.c index da91d4ea4..76ebf671a 100644 --- a/src/operserv.c +++ b/src/operserv.c @@ -2962,7 +2962,7 @@ int check_sqline(char *nick, int nick_change) { int i; SXLine *sx; - char *reason = NULL; + char reason[300]; if (sqlines.count == 0) return 0; @@ -2980,7 +2980,6 @@ int check_sqline(char *nick, int nick_change) if (match_wild_nocase(sx->mask, nick)) { sqline(sx->mask, sx->reason); /* We kill nick since s_sqline can't */ - reason = smalloc(strlen(sx->reason) + 10); snprintf(reason, sizeof(reason), "Q-Lined: %s", sx->reason); kill_user(s_OperServ, nick, reason); free(reason); @@ -4531,7 +4530,6 @@ static int do_jupe(User * u) { char *jserver = strtok(NULL, " "); char *reason = strtok(NULL, ""); - char rbuf[256]; if (!jserver) { syntax_error(s_OperServ, u, "JUPE", OPER_JUPE_SYNTAX); @@ -4539,12 +4537,7 @@ static int do_jupe(User * u) if (!isValidHost(jserver, 3)) { notice_lang(s_OperServ, u, OPER_JUPE_HOST_ERROR); } else { - snprintf(rbuf, sizeof(rbuf), "Juped by %s%s%s", u->nick, - reason ? ": " : "", reason ? reason : ""); - - anope_cmd_squit(jserver, rbuf); - anope_cmd_server(jserver, 1, rbuf); - new_server(me_server, jserver, rbuf, SERVER_JUPED, NULL); + anope_cmd_jupe(jserver, u->nick, reason); if (WallOSJupe) anope_cmd_global(s_OperServ, "\2%s\2 used JUPE on \2%s\2", diff --git a/src/ptlink.c b/src/ptlink.c index 7195abd39..ddb7a9d11 100644 --- a/src/ptlink.c +++ b/src/ptlink.c @@ -1646,4 +1646,16 @@ void anope_cmd_eob() /* not supported */ } +void anope_cmd_jupe(char *jserver, char *who, char *reason) +{ + char rbuf[256]; + + snprintf(rbuf, sizeof(rbuf), "Juped by %s%s%s", who, + reason ? ": " : "", reason ? reason : ""); + + anope_cmd_squit(jserver, rbuf); + anope_cmd_server(jserver, 1, rbuf); + new_server(me_server, jserver, rbuf, SERVER_JUPED, NULL); +} + #endif diff --git a/src/rageircd.c b/src/rageircd.c index 2d31e9cf1..6f1b03366 100644 --- a/src/rageircd.c +++ b/src/rageircd.c @@ -687,7 +687,7 @@ void anope_cmd_svsmode(User * u, int ac, char **av) void anope_cmd_squit(char *servname, char *message) { - send_cmd(servname, "SQUIT %s :%s", servname, message); + send_cmd(NULL, "SQUIT %s :%s", servname, message); } /* PONG */ @@ -1582,5 +1582,16 @@ void anope_cmd_eob() send_cmd(NULL, "BURST 0"); } +void anope_cmd_jupe(char *jserver, char *who, char *reason) +{ + char rbuf[256]; + + snprintf(rbuf, sizeof(rbuf), "Juped by %s%s%s", who, + reason ? ": " : "", reason ? reason : ""); + + anope_cmd_squit(jserver, rbuf); + anope_cmd_server(jserver, 2, rbuf); + new_server(me_server, jserver, rbuf, SERVER_JUPED, NULL); +} #endif diff --git a/src/servers.c b/src/servers.c index a3b8bf0d0..c32aadac0 100644 --- a/src/servers.c +++ b/src/servers.c @@ -116,12 +116,14 @@ static void delete_server(Server * serv, const char *quitreason) NickAlias *na; if (!serv) { - alog("delete_server() called with NULL arg!"); + if (debug) { + alog("debug: delete_server() called with NULL arg!"); + } return; } if (debug) - alog("delete_server() called for %s", serv->name); + alog("debug: delete_server() called for %s", serv->name); if (ircdcap->noquit) { if (uplink_capab & ircdcap->noquit) { @@ -146,7 +148,7 @@ static void delete_server(Server * serv, const char *quitreason) u = unext; } if (debug >= 2) - alog("delete_server() cleared all users"); + alog("debug: delete_server() cleared all users"); } } @@ -158,7 +160,7 @@ static void delete_server(Server * serv, const char *quitreason) } if (debug >= 2) - alog("delete_server() cleared all servers"); + alog("debug: delete_server() cleared all servers"); free(serv->name); free(serv->desc); @@ -170,7 +172,7 @@ static void delete_server(Server * serv, const char *quitreason) serv->uplink->links = serv->next; if (debug) - alog("delete_server() completed"); + alog("debug: delete_server() completed"); } /*************************************************************************/ @@ -266,7 +268,7 @@ void do_squit(const char *source, int ac, char **av) if ((s->uplink == me_server) && (uplink_capab & ircdcap->unconnect)) { if (debug) - alog("debuf: Sending UNCONNECT SQUIT for %s", s->name); + alog("debug: Sending UNCONNECT SQUIT for %s", s->name); /* need to fix */ anope_cmd_squit(s->name, buf); } diff --git a/src/ultimate2.c b/src/ultimate2.c index ca288ead6..31f6cf220 100644 --- a/src/ultimate2.c +++ b/src/ultimate2.c @@ -1150,7 +1150,7 @@ void anope_cmd_squit(char *servname, char *message) return; } - send_cmd(servname, "SQUIT %s :%s", servname, message); + send_cmd(NULL, "SQUIT %s :%s", servname, message); } /* SVSO */ @@ -1687,4 +1687,16 @@ int anope_event_error(char *source, int ac, char **av) return MOD_CONT; } +void anope_cmd_jupe(char *jserver, char *who, char *reason) +{ + char rbuf[256]; + + snprintf(rbuf, sizeof(rbuf), "Juped by %s%s%s", who, + reason ? ": " : "", reason ? reason : ""); + + anope_cmd_squit(jserver, rbuf); + anope_cmd_server(jserver, 2, rbuf); + new_server(me_server, jserver, rbuf, SERVER_JUPED, NULL); +} + #endif diff --git a/src/ultimate3.c b/src/ultimate3.c index bfe22d41f..d0f88d048 100644 --- a/src/ultimate3.c +++ b/src/ultimate3.c @@ -1508,7 +1508,7 @@ void anope_cmd_squit(char *servname, char *message) return; } - send_cmd(servname, "SQUIT %s :%s", servname, message); + send_cmd(NULL, "SQUIT %s :%s", servname, message); } /* SVSO */ @@ -1749,5 +1749,16 @@ int anope_flood_mode_check(char *value) return 0; } +void anope_cmd_jupe(char *jserver, char *who, char *reason) +{ + char rbuf[256]; + + snprintf(rbuf, sizeof(rbuf), "Juped by %s%s%s", who, + reason ? ": " : "", reason ? reason : ""); + + anope_cmd_squit(jserver, rbuf); + anope_cmd_server(jserver, 2, rbuf); + new_server(me_server, jserver, rbuf, SERVER_JUPED, NULL); +} #endif diff --git a/src/unreal31.c b/src/unreal31.c index 6d2a92867..c8a7b5c81 100644 --- a/src/unreal31.c +++ b/src/unreal31.c @@ -1069,7 +1069,7 @@ void anope_cmd_squit(char *servname, char *message) return; } - send_cmd(servname, "SQUIT %s :%s", servname, message); + send_cmd(NULL, "SQUIT %s :%s", servname, message); } /* SVSO */ @@ -1538,4 +1538,16 @@ int anope_flood_mode_check(char *value) } } +void anope_cmd_jupe(char *jserver, char *who, char *reason) +{ + char rbuf[256]; + + snprintf(rbuf, sizeof(rbuf), "Juped by %s%s%s", who, + reason ? ": " : "", reason ? reason : ""); + + anope_cmd_squit(jserver, rbuf); + anope_cmd_server(jserver, 2, rbuf); + new_server(me_server, jserver, rbuf, SERVER_JUPED, NULL); +} + #endif diff --git a/src/unreal32.c b/src/unreal32.c index 758ac8008..fd23edf0d 100644 --- a/src/unreal32.c +++ b/src/unreal32.c @@ -1385,7 +1385,7 @@ void anope_cmd_squit(char *servname, char *message) return; } - send_cmd(servname, "%s %s :%s", send_token("SQUIT", "-"), servname, + send_cmd(NULL, "%s %s :%s", send_token("SQUIT", "-"), servname, message); } @@ -2115,4 +2115,16 @@ int anope_flood_mode_check(char *value) } } +void anope_cmd_jupe(char *jserver, char *who, char *reason) +{ + char rbuf[256]; + + snprintf(rbuf, sizeof(rbuf), "Juped by %s%s%s", who, + reason ? ": " : "", reason ? reason : ""); + + anope_cmd_squit(jserver, rbuf); + anope_cmd_server(jserver, 2, rbuf); + new_server(me_server, jserver, rbuf, SERVER_JUPED, NULL); +} + #endif diff --git a/src/viagra.c b/src/viagra.c index 51879a350..ef5d239a5 100644 --- a/src/viagra.c +++ b/src/viagra.c @@ -921,7 +921,7 @@ void anope_cmd_svsmode(User * u, int ac, char **av) void anope_cmd_squit(char *servname, char *message) { - send_cmd(servname, "SQUIT %s :%s", servname, message); + send_cmd(NULL, "SQUIT %s :%s", servname, message); } /* PONG */ @@ -1657,4 +1657,16 @@ void anope_cmd_eob() send_cmd(NULL, "BURST 0"); } +void anope_cmd_jupe(char *jserver, char *who, char *reason) +{ + char rbuf[256]; + + snprintf(rbuf, sizeof(rbuf), "Juped by %s%s%s", who, + reason ? ": " : "", reason ? reason : ""); + + anope_cmd_squit(jserver, rbuf); + anope_cmd_server(jserver, 2, rbuf); + new_server(me_server, jserver, rbuf, SERVER_JUPED, NULL); +} + #endif diff --git a/version.log b/version.log index 345fd3932..9b163f49a 100644 --- a/version.log +++ b/version.log @@ -8,10 +8,14 @@ VERSION_MAJOR="1" VERSION_MINOR="7" VERSION_PATCH="5" -VERSION_BUILD="400" +VERSION_BUILD="401" # $Log$ # +# BUILD : 1.7.5 (401) +# BUGS : 147, 179, 181, 183, 184, 186 +# NOTES : Lots of little fixes, should fix OS JUPE issues +# # BUILD : 1.7.5 (400) # BUGS : N/A # NOTES : Removed debug left over from last commit |