#include "stdinc.h"
#include "client.h"
-#include "common.h"
#include "ircd.h"
#include "match.h"
#include "numeric.h"
#include "hash.h"
#include "modules.h"
#include "messages.h"
-#include "irc_radixtree.h"
+#include "rb_radixtree.h"
-static int mo_sendbans(struct Client *client_p, struct Client *source_p, int parc, const char *parv[]);
+static const char sendbands_desc[] =
+ "Adds the ability to send all permanent RESVs and XLINEs to given server";
+
+static void mo_sendbans(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[]);
struct Message sendbans_msgtab = {
- "SENDBANS", 0, 0, 0, MFLG_SLOW,
+ "SENDBANS", 0, 0, 0, 0,
{mg_unreg, mg_not_oper, mg_ignore, mg_ignore, mg_ignore, {mo_sendbans, 2}}
};
NULL
};
-DECLARE_MODULE_AV1(sendbans, NULL, NULL, sendbans_clist, NULL, NULL, "$Revision$");
+DECLARE_MODULE_AV2(sendbans, NULL, NULL, sendbans_clist, NULL, NULL, NULL, NULL, sendbands_desc);
static const char *expand_xline(const char *mask)
{
return buf;
}
-static int mo_sendbans(struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
+static void
+mo_sendbans(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
{
struct ConfItem *aconf;
rb_dlink_node *ptr;
- int i, count;
+ int count;
const char *target, *mask2;
struct Client *server_p;
- struct irc_radixtree_iteration_state state;
+ struct rb_radixtree_iteration_state state;
if (!IsOperRemoteBan(source_p))
{
sendto_one(source_p, form_str(ERR_NOPRIVS),
me.name, source_p->name, "remoteban");
- return 0;
+ return;
}
if (!IsOperXline(source_p))
{
sendto_one(source_p, form_str(ERR_NOPRIVS),
me.name, source_p->name, "xline");
- return 0;
+ return;
}
if (!IsOperResv(source_p))
{
sendto_one(source_p, form_str(ERR_NOPRIVS),
me.name, source_p->name, "resv");
- return 0;
+ return;
}
target = parv[1];
{
sendto_one_numeric(source_p, ERR_NOSUCHSERVER,
form_str(ERR_NOSUCHSERVER), target);
- return 0;
+ return;
}
sendto_realops_snomask(SNO_GENERAL, L_NETWIDE,
target, aconf->host, aconf->passwd);
}
- IRC_RADIXTREE_FOREACH(aconf, &state, resv_tree)
+ RB_RADIXTREE_FOREACH(aconf, &state, resv_tree)
{
if (aconf->hold)
continue;
"ENCAP %s XLINE 0 %s 2 :%s",
target, mask2, aconf->passwd);
}
-
- return 0;
}