X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=ircd%2Fm_rpong.c;h=4f32f79e1446b633b2311a363e1b7ed5f4e42688;hb=refs%2Fheads%2Fupstream-ssl;hp=ce0278aa34409e0864d219593df96c7c78c1576b;hpb=ae91ef6320f611af74e70a0db2620c338fbaa7d5;p=ircu2.10.12-pk.git diff --git a/ircd/m_rpong.c b/ircd/m_rpong.c index ce0278a..4f32f79 100644 --- a/ircd/m_rpong.c +++ b/ircd/m_rpong.c @@ -79,25 +79,21 @@ * note: it is guaranteed that parv[0]..parv[parc-1] are all * non-NULL pointers. */ -#if 0 -/* - * No need to include handlers.h here the signatures must match - * and we don't need to force a rebuild of all the handlers everytime - * we add a new one to the list. --Bleep - */ -#include "handlers.h" -#endif /* 0 */ +#include "config.h" + #include "client.h" #include "hash.h" #include "ircd.h" +#include "ircd_log.h" #include "ircd_reply.h" #include "ircd_string.h" +#include "msg.h" #include "numeric.h" #include "numnicks.h" #include "opercmds.h" #include "send.h" -#include +/* #include -- Now using assert in ircd_log.h */ /* * ms_rpong - server message handler @@ -116,84 +112,37 @@ int ms_rpong(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) if (!IsServer(sptr)) return 0; - if (parc < 5) - return need_more_params(sptr, "RPING"); - - if (!(acptr = FindClient(parv[1]))) - return 0; - - if (!IsMe(acptr)) - { - if (IsServer(acptr) && parc > 5) - { - sendto_one(acptr, ":%s RPONG %s %s %s %s :%s", - parv[0], parv[1], parv[2], parv[3], parv[4], parv[5]); - return 0; - } + if (parc < 5) { + /* + * PROTOCOL ERROR + */ + return need_more_params(sptr, "RPONG"); } - else - { - parv[1] = parv[2]; - parv[2] = sptr->name; - parv[0] = me.name; - parv[3] = militime(parv[3], parv[4]); - parv[4] = parv[5]; - if (!(acptr = FindUser(parv[1]))) - return 0; /* No bouncing between servers ! */ - } - - sendto_one(acptr, ":%s RPONG %s %s %s :%s", - parv[0], parv[1], parv[2], parv[3], parv[4]); - return 0; -} - - -#if 0 -/* - * m_rpong -- by Run too :) - * - * parv[0] = sender prefix - * parv[1] = from pinged server: start server; from start server: sender - * parv[2] = from pinged server: sender; from start server: pinged server - * parv[3] = pingtime in ms - * parv[4] = client info (for instance start time) - */ -int m_rpong(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) -{ - struct Client *acptr; - - if (!IsServer(sptr)) - return 0; - - if (parc < 5) - return need_more_params(sptr, "RPING"); - - if (!(acptr = FindClient(parv[1]))) - return 0; - - if (!IsMe(acptr)) - { - if (IsServer(acptr) && parc > 5) - { - sendto_one(acptr, ":%s RPONG %s %s %s %s :%s", - parv[0], parv[1], parv[2], parv[3], parv[4], parv[5]); + if (parc == 6) { + /* + * from pinged server to source server + */ + if (!(acptr = FindServer(parv[1])) && !(acptr = FindNServer(parv[1]))) + return 0; + + if (IsMe(acptr)) { + if (!(acptr = findNUser(parv[2]))) + return 0; + + sendcmdto_one(&me, CMD_RPONG, acptr, "%C %s %s :%s", acptr, cli_name(sptr), + militime(parv[3], parv[4]), parv[5]); + } else + sendcmdto_one(sptr, CMD_RPONG, acptr, "%s %s %s %s :%s", parv[1], + parv[2], parv[3], parv[4], parv[5]); + } else { + /* + * returned from source server to client + */ + if (!(acptr = findNUser(parv[1]))) return 0; - } - } - else - { - parv[1] = parv[2]; - parv[2] = sptr->name; - parv[0] = me.name; - parv[3] = militime(parv[3], parv[4]); - parv[4] = parv[5]; - if (!(acptr = FindUser(parv[1]))) - return 0; /* No bouncing between servers ! */ - } - sendto_one(acptr, ":%s RPONG %s %s %s :%s", - parv[0], parv[1], parv[2], parv[3], parv[4]); + sendcmdto_one(sptr, CMD_RPONG, acptr, "%C %s %s :%s", acptr, parv[2], + parv[3], parv[4]); + } return 0; } -#endif /* 0 */ -