X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=ircd%2Fm_squit.c;h=5913cf2eae253cddce07fa9b0a00abd8005e3a18;hb=a36ad5e29241b0c89379947b13887cb6930ef3e0;hp=67d541bff1d15fc31b3ed57bbd4200434f068c54;hpb=a63ed96a58c1317dba4e3d6ca5bccddcc4ab379f;p=ircu2.10.12-pk.git diff --git a/ircd/m_squit.c b/ircd/m_squit.c index 67d541b..5913cf2 100644 --- a/ircd/m_squit.c +++ b/ircd/m_squit.c @@ -28,6 +28,7 @@ #include "hash.h" #include "ircd.h" #include "ircd_chattr.h" +#include "ircd_log.h" #include "ircd_reply.h" #include "ircd_string.h" #include "numeric.h" @@ -38,7 +39,7 @@ #include "s_user.h" #include "send.h" -#include +/* #include -- Now using assert in ircd_log.h */ #include #include #include @@ -60,7 +61,7 @@ int ms_squit(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) { const char* server = parv[1]; struct Client *acptr; - time_t timestamp; + time_t timestamp = 0; char *comment = 0; if (parc < 2) @@ -71,33 +72,30 @@ int ms_squit(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) if (BadPtr(parv[parc - 1])) comment = cli_name(sptr); - acptr = FindNServer(server); + acptr = FindServer(server); if (!acptr) - acptr = FindServer(server); + acptr = FindNServer(server); if (!acptr) { - protocol_violation(sptr, "Issued SQUIT for unknown server %s (ignored)", - server); Debug((DEBUG_NOTICE, "Ignoring SQUIT to an unknown server")); return 0; } /* If they are squitting me, we reverse it */ - if (IsMe(acptr)) { - cptr = acptr; - acptr = &me; - } - - timestamp = atoi(parv[2]); + if (IsMe(acptr)) + acptr = cptr; /* Bugfix by Prefect */ + + if (parc > 2) + timestamp = atoi(parv[2]); + else + protocol_violation(cptr, "SQUIT with no timestamp/reason"); /* If atoi(parv[2]) == 0 we must indeed squit ! * It will be our neighbour. */ - if ( timestamp != 0 && timestamp != cli_serv(acptr)->timestamp) { - protocol_violation(sptr, "Issued SQUIT for %C with wrong timestamp %Tu " - "(%Tu) (ignored)", acptr, timestamp, - cli_serv(acptr)->timestamp); + if ( timestamp != 0 && timestamp != cli_serv(acptr)->timestamp) + { Debug((DEBUG_NOTICE, "Ignoring SQUIT with the wrong timestamp")); return 0; } @@ -130,7 +128,7 @@ int mo_squit(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) server = parv[1]; /* - * The following allows wild cards in SQUIT. Only usefull + * The following allows wild cards in SQUIT. Only useful * when the command is issued by an oper. */ for (acptr = GlobalClientList; (acptr = next_client(acptr, server)); @@ -145,7 +143,7 @@ int mo_squit(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) /* * Look for a matching server that is closer, - * that way we won't accidently squit two close + * that way we won't accidentally squit two close * servers like davis.* and davis-r.* when typing * /SQUIT davis* */