X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=ircd%2Fm_uping.c;h=8854a247295f38222a3f8c9177faa6ac99439e02;hb=a36ad5e29241b0c89379947b13887cb6930ef3e0;hp=4fe73271822e28e53733c981be52ce9bac0d4c21;hpb=36ab1bb01f9a0f5f630f3098b1afdc5ccc937fa6;p=ircu2.10.12-pk.git diff --git a/ircd/m_uping.c b/ircd/m_uping.c index 4fe7327..8854a24 100644 --- a/ircd/m_uping.c +++ b/ircd/m_uping.c @@ -79,17 +79,12 @@ * 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 "match.h" @@ -102,7 +97,7 @@ #include "uping.h" -#include +/* #include -- Now using assert in ircd_log.h */ #include #include @@ -193,12 +188,12 @@ int mo_uping(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) if (parc == 2) { parv[parc++] = UDP_PORT; - parv[parc++] = me.name; + parv[parc++] = cli_name(&me); parv[parc++] = "5"; } else if (parc == 3) { if (IsDigit(*parv[2])) - parv[parc++] = me.name; + parv[parc++] = cli_name(&me); else { parv[parc++] = parv[2]; parv[2] = UDP_PORT; @@ -209,7 +204,7 @@ int mo_uping(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) if (IsDigit(*parv[2])) { if (IsDigit(*parv[3])) { parv[parc++] = parv[3]; - parv[3] = me.name; + parv[3] = cli_name(&me); } else parv[parc++] = "5"; @@ -246,173 +241,3 @@ int mo_uping(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) } return 0; } - - -#if 0 -/* - * m_uping -- by Run - * - * parv[0] = sender prefix - * parv[1] = pinged server - * parv[2] = port - * parv[3] = hunted server - * parv[4] = number of requested pings - */ -int m_uping(struct Client* cptr, struct Client *sptr, int parc, char *parv[]) -{ - struct ConfItem *aconf; - int port; - int fd; - struct UPing* pptr = 0; - - if (!IsPrivileged(sptr)) - { - sendto_one(sptr, err_str(ERR_NOPRIVILEGES), me.name, parv[0]); /* XXX DEAD */ - return -1; - } - - if (parc < 2) - { - sendto_one(sptr, err_str(ERR_NEEDMOREPARAMS), me.name, parv[0], "UPING"); /* XXX DEAD */ - return 0; - } - - if (MyUser(sptr)) - { - if (parc == 2) - { - parv[parc++] = UDP_PORT; - parv[parc++] = me.name; - parv[parc++] = "5"; - } - else if (parc == 3) - { - if (IsDigit(*parv[2])) - parv[parc++] = me.name; - else - { - parv[parc++] = parv[2]; - parv[2] = UDP_PORT; - } - parv[parc++] = "5"; - } - else if (parc == 4) - { - if (IsDigit(*parv[2])) - { - if (IsDigit(*parv[3])) - { - parv[parc++] = parv[3]; - parv[3] = me.name; - } - else - parv[parc++] = "5"; - } - else - { - parv[parc++] = parv[3]; - parv[3] = parv[2]; - parv[2] = UDP_PORT; - } - } - } - if (hunt_server(1, cptr, sptr, ":%s UPING %s %s %s %s", 3, parc, parv) != HUNTED_ISME) /* XXX DEAD */ - return 0; - - if (BadPtr(parv[4]) || atoi(parv[4]) <= 0) - { - if (MyUser(sptr) || Protocol(cptr) < 10) - sendto_one(sptr, ":%s NOTICE %s :UPING: Illegal number of packets: %s", /* XXX DEAD */ - me.name, parv[0], parv[4]); - else - sendto_one(sptr, "%s NOTICE %s%s :UPING: Illegal number of packets: %s", /* XXX DEAD */ - NumServ(&me), NumNick(sptr), parv[4]); - return 0; - } - - /* Check if a CONNECT would be possible at all (adapted from m_connect) */ - for (aconf = GlobalConfList; aconf; aconf = aconf->next) - { - if (aconf->status == CONF_SERVER && - match(parv[1], aconf->name) == 0) - break; - } - if (!aconf) - { - for (aconf = GlobalConfList; aconf; aconf = aconf->next) - { - if (aconf->status == CONF_SERVER && - (match(parv[1], aconf->host) == 0 || - match(parv[1], strchr(aconf->host, '@') + 1) == 0)) - break; - } - } - if (!aconf) - { - if (MyUser(sptr) || Protocol(cptr) < 10) - sendto_one(sptr, ":%s NOTICE %s :UPING: Host %s not listed in ircd.conf", /* XXX DEAD */ - me.name, parv[0], parv[1]); - else - sendto_one(sptr, /* XXX DEAD */ - "%s NOTICE %s%s :UPING: Host %s not listed in ircd.conf", - NumServ(&me), NumNick(sptr), parv[1]); - return 0; - } - - if (IsUPing(sptr)) - cancel_ping(sptr, sptr); /* Cancel previous ping request */ - - /* - * Determine port: First user supplied, then default : 7007 - */ - if (BadPtr(parv[2]) || (port = atoi(parv[2])) <= 0) - port = atoi(UDP_PORT); - - if ((fd = socket(AF_INET, SOCK_DGRAM, 0)) == -1) { - int err = errno; - sendto_ops("m_uping: socket: %s", (err != EMFILE) /* XXX DEAD */ - ? ((strerror(err)) ? strerror(err) : "Unknown error") : "No more sockets"); - if (MyUser(sptr) || Protocol(cptr) < 10) - sendto_one(sptr, /* XXX DEAD */ - ":%s NOTICE %s :UPING: Unable to create udp ping socket", - me.name, parv[0]); - else - sendto_one(sptr, /* XXX DEAD */ - "%s NOTICE %s%s :UPING: Unable to create udp ping socket", - NumServ(&me), NumNick(sptr)); - ircd_log(L_ERROR, "UPING: Unable to create UDP socket"); - return 0; - } - - if (!os_set_nonblocking(fd)) { - if (MyUser(sptr) || Protocol(cptr) < 10) - sendto_one(sptr, ":%s NOTICE %s :UPING: Can't set fd non-blocking", /* XXX DEAD */ - me.name, parv[0]); - else - sendto_one(sptr, "%s NOTICE %s%s :UPING: Can't set fd non-blocking", /* XXX DEAD */ - NumServ(&me), NumNick(sptr)); - close(fd); - return 0; - } - pptr = (struct UPing*) MyMalloc(sizeof(struct UPing)); - assert(0 != pptr); - memset(pptr, 0, sizeof(struct UPing)); - - pptr->fd = fd; - pptr->sin.sin_port = htons(port); - pptr->sin.sin_addr.s_addr = aconf->ipnum.s_addr; - pptr->sin.sin_family = AF_INET; - pptr->count = IRCD_MIN(20, atoi(parv[4])); - strcpy(pptr->name, aconf->host); - pptr->client = sptr; - pptr->index = -1; - - pptr->next = pingList; - pingList = pptr; - - SetUPing(sptr); - ping_server(pptr); - return 0; -} -#endif /* 0 */ -