* 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"
#include "uping.h"
-#include <assert.h>
+/* #include <assert.h> -- Now using assert in ircd_log.h */
#include <stdlib.h>
#include <string.h>
}
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"); /* XXX DEAD */
- 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 */
-