X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=ircd%2Fm_links.c;h=68bf87fd92fc1edc781f9b1c37b0f4847ac2a681;hb=refs%2Fheads%2Fupstream;hp=7f1f98e3ec5606866051a6686b12d0e4955693f8;hpb=1b4e637606464f9af948a6e87879565f9fc1b726;p=ircu2.10.12-pk.git diff --git a/ircd/m_links.c b/ircd/m_links.c index 7f1f98e..68bf87f 100644 --- a/ircd/m_links.c +++ b/ircd/m_links.c @@ -81,17 +81,11 @@ */ #include "config.h" -#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 "client.h" #include "ircd.h" -#include "ircd_policy.h" +#include "ircd_defs.h" +#include "ircd_features.h" +#include "ircd_log.h" #include "ircd_reply.h" #include "ircd_string.h" #include "match.h" @@ -102,7 +96,7 @@ #include "send.h" #include "struct.h" -#include +/* #include -- Now using assert in ircd_log.h */ /* * m_links - generic message handler @@ -121,58 +115,14 @@ int m_links(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) char *mask; struct Client *acptr; - if (parc > 2) + if (feature_bool(FEAT_HIS_LINKS) && !IsAnOper(sptr)) { - if (hunt_server_cmd(sptr, CMD_LINKS, cptr, 1, "%C :%s", 1, parc, parv) != - HUNTED_ISME) - return 0; - mask = parv[2]; + send_reply(sptr, RPL_ENDOFLINKS, parc < 2 ? "*" : parv[1]); + sendcmdto_one(&me, CMD_NOTICE, sptr, "%C :%s %s", sptr, + "/LINKS has been disabled, from CFV-165. Visit ", + feature_str(FEAT_HIS_URLSERVERS)); + return 0; } - else - mask = parc < 2 ? 0 : parv[1]; - - for (acptr = GlobalClientList, collapse(mask); acptr; acptr = cli_next(acptr)) - { - if (!IsServer(acptr) && !IsMe(acptr)) - continue; - if (!BadPtr(mask) && match(mask, cli_name(acptr))) - continue; - send_reply(sptr, RPL_LINKS, cli_name(acptr), cli_name(cli_serv(acptr)->up), - cli_hopcount(acptr), cli_serv(acptr)->prot, - ((cli_info(acptr))[0] ? cli_info(acptr) : "(Unknown Location)")); - } - - send_reply(sptr, RPL_ENDOFLINKS, BadPtr(mask) ? "*" : mask); - return 0; -} - -#ifdef HEAD_IN_SAND_LINKS -int m_links_redirect(struct Client* cptr, struct Client* sptr, int parc, - char* parv[]) -{ - sendcmdto_one(&me, CMD_NOTICE, sptr, "%C :%s", sptr, - "/LINKS has been disabled, from CFV-165. " - "Visit http://www.undernet.org/servers.php"); - return 0; -} -#endif - -/* - * ms_links - server message handler - * - * parv[0] = sender prefix - * parv[1] = servername mask - * - * or - * - * parv[0] = sender prefix - * parv[1] = server to query - * parv[2] = servername mask - */ -int ms_links(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) -{ - char *mask; - struct Client *acptr; if (parc > 2) { @@ -196,13 +146,12 @@ int ms_links(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) } send_reply(sptr, RPL_ENDOFLINKS, BadPtr(mask) ? "*" : mask); + return 0; } - -#if 0 /* - * m_links + * ms_links - server message handler * * parv[0] = sender prefix * parv[1] = servername mask @@ -213,41 +162,33 @@ int ms_links(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) * parv[1] = server to query * parv[2] = servername mask */ -int m_links(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) -{ - char *mask; - struct Client *acptr; - - if (parc > 2) - { - if (hunt_server(1, cptr, sptr, "%s%s LINKS %s :%s", 1, parc, parv) != /* XXX DEAD */ - HUNTED_ISME) - return 0; - mask = parv[2]; - } - else - mask = parc < 2 ? 0 : parv[1]; - - for (acptr = GlobalClientList, collapse(mask); acptr; acptr = acptr->next) - { - if (!IsServer(acptr) && !IsMe(acptr)) - continue; - if (!BadPtr(mask) && match(mask, acptr->name)) - continue; - sendto_one(sptr, rpl_str(RPL_LINKS), /* XXX DEAD */ - me.name, parv[0], acptr->name, acptr->serv->up->name, -#ifndef GODMODE - acptr->hopcount, acptr->serv->prot, -#else /* GODMODE */ - acptr->hopcount, acptr->serv->prot, acptr->serv->timestamp, - NumServ(acptr), -#endif /* GODMODE */ - (acptr->info[0] ? acptr->info : "(Unknown Location)")); - } - - sendto_one(sptr, rpl_str(RPL_ENDOFLINKS), me.name, parv[0], /* XXX DEAD */ - BadPtr(mask) ? "*" : mask); - return 0; -} -#endif /* 0 */ - +int +ms_links(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) + { + char *mask; + struct Client *acptr; + + if (parc > 2) + { + if (hunt_server_cmd(sptr, CMD_LINKS, cptr, 1, "%C :%s", 1, parc, parv) != + HUNTED_ISME) + return 0; + mask = parv[2]; + } + else + mask = parc < 2 ? 0 : parv[1]; + + for (acptr = GlobalClientList, collapse(mask); acptr; acptr = cli_next(acptr)) + { + if (!IsServer(acptr) && !IsMe(acptr)) + continue; + if (!BadPtr(mask) && match(mask, cli_name(acptr))) + continue; + send_reply(sptr, RPL_LINKS, cli_name(acptr), cli_name(cli_serv(acptr)->up), + cli_hopcount(acptr), cli_serv(acptr)->prot, + ((cli_info(acptr))[0] ? cli_info(acptr) : "(Unknown Location)")); + } + + send_reply(sptr, RPL_ENDOFLINKS, BadPtr(mask) ? "*" : mask); + return 0; + }