Message handlers should return void.
Also fix up some return values and stuff to use bool (or void if nothing). I just did it whilst I was here. According to jilles, the return value used to signify whether or not the client had exited. This was error-prone and was fixed a long, long time ago, but the return value was left int for historical reasons. Since the return type is not used (and has no clear use case anyway), it's safe to just get rid of it.
This commit is contained in:
parent
eeabf33a7c
commit
3c7d6fcce7
99 changed files with 1339 additions and 1691 deletions
|
@ -42,11 +42,11 @@ static const char example_desc[] = "This is an example Charybdis module.";
|
|||
* parv == an array of the parameters
|
||||
*/
|
||||
|
||||
static int munreg_test(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[]);
|
||||
static int mclient_test(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[]);
|
||||
static int mserver_test(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[]);
|
||||
static int mrclient_test(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[]);
|
||||
static int moper_test(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[]);
|
||||
static void munreg_test(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[]);
|
||||
static void mclient_test(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[]);
|
||||
static void mserver_test(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[]);
|
||||
static void mrclient_test(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[]);
|
||||
static void moper_test(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[]);
|
||||
|
||||
/* Show the commands this module can handle in a msgtab
|
||||
* and give the msgtab a name, here its test_msgtab
|
||||
|
@ -179,7 +179,7 @@ DECLARE_MODULE_AV2(
|
|||
/* Here we have the functions themselves that we declared above,
|
||||
* and the fairly normal C coding
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
munreg_test(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
if(parc < 2)
|
||||
|
@ -193,15 +193,13 @@ munreg_test(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sou
|
|||
|
||||
/* illustration of how to call a hook function */
|
||||
call_hook(doing_example_hook, NULL);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* mclient_test
|
||||
* parv[1] = parameter
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
mclient_test(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
if(parc < 2)
|
||||
|
@ -215,15 +213,13 @@ mclient_test(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *so
|
|||
|
||||
/* illustration of how to call a hook function */
|
||||
call_hook(doing_example_hook, NULL);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* mrclient_test
|
||||
* parv[1] = parameter
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
mrclient_test(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
if(parc < 2)
|
||||
|
@ -234,14 +230,13 @@ mrclient_test(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *s
|
|||
{
|
||||
sendto_one_notice(source_p, ":You are a remote client, and sent parameters: %s", parv[1]);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* mserver_test
|
||||
* parv[1] = parameter
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
mserver_test(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
if(parc < 2)
|
||||
|
@ -252,14 +247,13 @@ mserver_test(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *so
|
|||
{
|
||||
sendto_one_notice(source_p, ":You are a server, and sent parameters: %s", parv[1]);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* moper_test
|
||||
* parv[1] = parameter
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
moper_test(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
if(parc < 2)
|
||||
|
@ -270,7 +264,6 @@ moper_test(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sour
|
|||
{
|
||||
sendto_one_notice(source_p, ":You are an operator, and sent parameters: %s", parv[1]);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
|
@ -22,9 +22,9 @@ static void h_hdl_new_remote_user(struct Client *client_p);
|
|||
static void h_hdl_client_exit(hook_data_client_exit *hdata);
|
||||
static void h_hdl_umode_changed(hook_data_umode_changed *hdata);
|
||||
static void h_hdl_whois(hook_data_client *hdata);
|
||||
static int mo_dehelper(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static int me_dehelper(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static int do_dehelper(struct Client *source_p, struct Client *target_p);
|
||||
static void mo_dehelper(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void me_dehelper(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void do_dehelper(struct Client *source_p, struct Client *target_p);
|
||||
|
||||
mapi_hfn_list_av1 helpops_hfnlist[] = {
|
||||
{ "doing_stats", (hookfn) h_hdl_stats_request },
|
||||
|
@ -45,20 +45,21 @@ struct Message dehelper_msgtab = {
|
|||
|
||||
mapi_clist_av1 helpops_clist[] = { &dehelper_msgtab, NULL };
|
||||
|
||||
static int mo_dehelper(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char **parv)
|
||||
static void
|
||||
mo_dehelper(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char **parv)
|
||||
{
|
||||
struct Client *target_p;
|
||||
|
||||
if (!IsOperAdmin(source_p))
|
||||
{
|
||||
sendto_one(source_p, form_str(ERR_NOPRIVS), me.name, source_p->name, "admin");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if(!(target_p = find_named_person(parv[1])))
|
||||
{
|
||||
sendto_one_numeric(source_p, ERR_NOSUCHNICK, form_str(ERR_NOSUCHNICK), parv[1]);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if(MyClient(target_p))
|
||||
|
@ -66,31 +67,30 @@ static int mo_dehelper(struct MsgBuf *msgbuf_p, struct Client *client_p, struct
|
|||
else
|
||||
sendto_one(target_p, ":%s ENCAP %s DEHELPER %s",
|
||||
use_id(source_p), target_p->servptr->name, use_id(target_p));
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int me_dehelper(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char **parv)
|
||||
static void
|
||||
me_dehelper(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char **parv)
|
||||
{
|
||||
struct Client *target_p = find_person(parv[1]);
|
||||
if(!target_p)
|
||||
{
|
||||
sendto_one_numeric(source_p, ERR_NOSUCHNICK, form_str(ERR_NOSUCHNICK), parv[1]);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
if(!MyClient(target_p))
|
||||
return 0;
|
||||
return;
|
||||
|
||||
do_dehelper(source_p, target_p);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int do_dehelper(struct Client *source_p, struct Client *target_p)
|
||||
static void
|
||||
do_dehelper(struct Client *source_p, struct Client *target_p)
|
||||
{
|
||||
const char *fakeparv[4];
|
||||
|
||||
if(!(target_p->umodes & UMODE_HELPOPS))
|
||||
return 0;
|
||||
return;
|
||||
|
||||
sendto_realops_snomask(SNO_GENERAL, L_NETWIDE, "%s is using DEHELPER on %s",
|
||||
source_p->name, target_p->name);
|
||||
|
@ -100,7 +100,6 @@ static int do_dehelper(struct Client *source_p, struct Client *target_p)
|
|||
fakeparv[2] = "-H";
|
||||
fakeparv[3] = NULL;
|
||||
user_mode(target_p, target_p, 3, fakeparv);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
|
|
|
@ -47,10 +47,10 @@ typedef struct _hurt {
|
|||
/* }}} */
|
||||
|
||||
/* {{{ Prototypes */
|
||||
static int mo_hurt(struct MsgBuf *msgbuf_p, struct Client *, struct Client *, int, const char **);
|
||||
static int me_hurt(struct MsgBuf *msgbuf_p, struct Client *, struct Client *, int, const char **);
|
||||
static int mo_heal(struct MsgBuf *msgbuf_p, struct Client *, struct Client *, int, const char **);
|
||||
static int me_heal(struct MsgBuf *msgbuf_p, struct Client *, struct Client *, int, const char **);
|
||||
static void mo_hurt(struct MsgBuf *msgbuf_p, struct Client *, struct Client *, int, const char **);
|
||||
static void me_hurt(struct MsgBuf *msgbuf_p, struct Client *, struct Client *, int, const char **);
|
||||
static void mo_heal(struct MsgBuf *msgbuf_p, struct Client *, struct Client *, int, const char **);
|
||||
static void me_heal(struct MsgBuf *msgbuf_p, struct Client *, struct Client *, int, const char **);
|
||||
|
||||
static int modinit(void);
|
||||
static void modfini(void);
|
||||
|
@ -70,7 +70,7 @@ static hurt_t *hurt_find_exact(const char *ip);
|
|||
static void hurt_remove(const char *ip);
|
||||
static void hurt_destroy(void *hurt);
|
||||
|
||||
static int heal_nick(struct Client *, struct Client *);
|
||||
static void heal_nick(struct Client *, struct Client *);
|
||||
|
||||
/* }}} */
|
||||
|
||||
|
@ -173,7 +173,7 @@ modfini(void)
|
|||
* Message handlers.
|
||||
*/
|
||||
|
||||
/* {{{ static int mo_hurt()
|
||||
/* {{{ static void mo_hurt()
|
||||
*
|
||||
* HURT [<expire>] <ip> <reason>
|
||||
*
|
||||
|
@ -181,7 +181,7 @@ modfini(void)
|
|||
* parv[2] - ip or reason
|
||||
* parv[3] - reason or NULL
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
mo_hurt(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p,
|
||||
int parc, const char **parv)
|
||||
{
|
||||
|
@ -193,7 +193,7 @@ mo_hurt(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
if (!IsOperK(source_p)) {
|
||||
sendto_one(source_p, form_str(ERR_NOPRIVS), me.name,
|
||||
source_p->name, "kline");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if (parc == 3)
|
||||
|
@ -205,11 +205,11 @@ mo_hurt(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
expire_time = HURT_DEFAULT_EXPIRE;
|
||||
if (expire && (expire_time = valid_temp_time(expire)) < 1) {
|
||||
sendto_one_notice(source_p, ":Permanent HURTs are not supported");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
if (EmptyString(reason)) {
|
||||
sendto_one_notice(source_p, ":Empty HURT reasons are bad for business");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
/* Is this a client? */
|
||||
|
@ -220,7 +220,7 @@ mo_hurt(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
{
|
||||
sendto_one_numeric(source_p, ERR_NOSUCHNICK,
|
||||
form_str(ERR_NOSUCHNICK), ip);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
ip = target_p->orighost;
|
||||
}
|
||||
|
@ -232,13 +232,13 @@ mo_hurt(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
{
|
||||
sendto_one_notice(source_p, ":Invalid HURT mask [%s]",
|
||||
ip);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (hurt_find(ip) != NULL) {
|
||||
sendto_one(source_p, ":[%s] already HURT", ip);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -252,12 +252,10 @@ mo_hurt(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
hurt = hurt_new(expire_time, ip, reason);
|
||||
hurt_add(hurt);
|
||||
hurt_propagate(NULL, source_p, hurt);
|
||||
|
||||
return 0;
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
/* {{{ static int me_hurt()
|
||||
/* {{{ static void me_hurt()
|
||||
*
|
||||
* [ENCAP mask] HURT <target> <expire> <ip> <reason>
|
||||
*
|
||||
|
@ -265,7 +263,7 @@ mo_hurt(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
* parv[2] - ip
|
||||
* parv[3] - reason
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
me_hurt(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p,
|
||||
int parc, const char **parv)
|
||||
{
|
||||
|
@ -278,31 +276,29 @@ me_hurt(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
* dropping a server over.
|
||||
*/
|
||||
if (parc < 4 || !IsPerson(source_p))
|
||||
return 0;
|
||||
return;
|
||||
if ((expire_time = atoi(parv[1])) < 1)
|
||||
return 0;
|
||||
return;
|
||||
if (hurt_find(parv[2]) != NULL)
|
||||
return 0;
|
||||
return;
|
||||
if (EmptyString(parv[3]))
|
||||
return 0;
|
||||
return;
|
||||
|
||||
sendto_realops_snomask(SNO_GENERAL, L_ALL,
|
||||
"%s added HURT on [%s] for %ld minutes with reason [%s]",
|
||||
get_oper_name(source_p), parv[2], (long) expire_time / 60, parv[3]);
|
||||
hurt = hurt_new(expire_time, parv[2], parv[3]);
|
||||
hurt_add(hurt);
|
||||
|
||||
return 0;
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
/* {{{ static int mo_heal()
|
||||
/* {{{ static void mo_heal()
|
||||
*
|
||||
* HURT <nick>|<ip>
|
||||
*
|
||||
* parv[1] - nick or ip
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
mo_heal(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p,
|
||||
int parc, const char **parv)
|
||||
{
|
||||
|
@ -312,7 +308,7 @@ mo_heal(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
{
|
||||
sendto_one(source_p, form_str(ERR_NOPRIVS),
|
||||
me.name, source_p->name, "unkline");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if (clean_nick(parv[1], 0))
|
||||
|
@ -322,7 +318,7 @@ mo_heal(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
{
|
||||
sendto_one_numeric(source_p, ERR_NOSUCHNICK,
|
||||
form_str(ERR_NOSUCHNICK), parv[1]);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
if (MyConnect(target_p))
|
||||
heal_nick(source_p, target_p);
|
||||
|
@ -337,7 +333,7 @@ mo_heal(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
if (hurt_find_exact(parv[1]) == NULL)
|
||||
{
|
||||
sendto_one_notice(source_p, ":Mask [%s] is not HURT", parv[1]);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
hurt_remove(parv[1]);
|
||||
sendto_realops_snomask(SNO_GENERAL, L_ALL, "%s removed HURT on %s",
|
||||
|
@ -348,14 +344,12 @@ mo_heal(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
else
|
||||
{
|
||||
sendto_one(source_p, ":[%s] is not a valid IP address/nick", parv[1]);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
static int
|
||||
static void
|
||||
me_heal(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p,
|
||||
int parc, const char **parv)
|
||||
{
|
||||
|
@ -365,7 +359,7 @@ me_heal(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
* *poof*, it's dropped...
|
||||
*/
|
||||
if (parc < 2)
|
||||
return 0;
|
||||
return;
|
||||
|
||||
if (clean_nick(parv[1], 0))
|
||||
{
|
||||
|
@ -376,16 +370,12 @@ me_heal(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
else if (strchr(parv[1], '.')) /* host or mask to remove ban for */
|
||||
{
|
||||
if (hurt_find_exact(parv[1]) == NULL)
|
||||
return 0;
|
||||
return;
|
||||
|
||||
hurt_remove(parv[1]);
|
||||
sendto_realops_snomask(SNO_GENERAL, L_ALL, "%s removed HURT on %s",
|
||||
get_oper_name(source_p), parv[1]);
|
||||
}
|
||||
else
|
||||
return 0;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -499,7 +489,6 @@ doing_stats_hook(hook_data_int *hdata)
|
|||
sendto_one_numeric(source_p, RPL_STATSKLINE,
|
||||
form_str(RPL_STATSKLINE), 's',
|
||||
"*", hurt->ip, hurt->reason, "", "");
|
||||
return;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
@ -620,8 +609,8 @@ hurt_remove(const char *ip)
|
|||
hurt_destroy(hurt);
|
||||
}
|
||||
|
||||
/* {{{ static int heal_nick() */
|
||||
static int
|
||||
/* {{{ static void heal_nick() */
|
||||
static void
|
||||
heal_nick(struct Client *source_p, struct Client *target_p)
|
||||
{
|
||||
if (rb_dlinkFindDestroy(target_p, &hurt_state.hurt_clients))
|
||||
|
@ -631,12 +620,10 @@ heal_nick(struct Client *source_p, struct Client *target_p)
|
|||
sendto_one_notice(target_p, ":HURT restriction temporarily removed by operator");
|
||||
sendto_one_notice(source_p, ":HURT restriction on %s temporarily removed", target_p->name);
|
||||
target_p->localClient->target_last = rb_current_time(); /* don't ask --nenolod */
|
||||
return 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
sendto_one_notice(source_p, ":%s was not hurt", target_p->name);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
/* }}} */
|
||||
|
|
|
@ -40,8 +40,8 @@
|
|||
static const char adminwall_desc[] =
|
||||
"Provides the ADMINWALL command to send a message to all administrators";
|
||||
|
||||
static int mo_adminwall(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static int me_adminwall(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void mo_adminwall(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void me_adminwall(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
|
||||
struct Message adminwall_msgtab = {
|
||||
"ADMINWALL", 0, 0, 0, 0,
|
||||
|
@ -57,23 +57,21 @@ DECLARE_MODULE_AV2(adminwall, NULL, NULL, adminwall_clist, NULL, NULL, NULL, NUL
|
|||
* parv[1] = message text
|
||||
*/
|
||||
|
||||
static int
|
||||
static void
|
||||
mo_adminwall(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
if(!IsAdmin(source_p))
|
||||
{
|
||||
sendto_one(source_p, form_str(ERR_NOPRIVS),
|
||||
me.name, source_p->name, "adminwall");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
sendto_wallops_flags(UMODE_ADMIN, source_p, "ADMINWALL - %s", parv[1]);
|
||||
sendto_match_servs(source_p, "*", CAP_ENCAP, NOCAPS, "ENCAP * ADMINWALL :%s", parv[1]);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
static void
|
||||
me_adminwall(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
sendto_wallops_flags(UMODE_ADMIN, source_p, "ADMINWALL - %s", parv[1]);
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
#include "ircd.h"
|
||||
#include "send.h"
|
||||
|
||||
static int m_echotags(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[]);
|
||||
static void m_echotags(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[]);
|
||||
|
||||
struct Message echotags_msgtab = {
|
||||
"ECHOTAGS", 0, 0, 0, 0,
|
||||
|
@ -17,7 +17,7 @@ static const char echotags_desc[] = "A test module for tags";
|
|||
|
||||
DECLARE_MODULE_AV2(echotags, NULL, NULL, echotags_clist, NULL, NULL, NULL, NULL, echotags_desc);
|
||||
|
||||
static int
|
||||
static void
|
||||
m_echotags(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
int i;
|
||||
|
@ -33,8 +33,6 @@ m_echotags(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sour
|
|||
else
|
||||
sendto_one_notice(source_p, ":*** %d: %s", i, tag->key);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -34,8 +34,8 @@
|
|||
static const char extendchans_desc[] =
|
||||
"Allow an oper or service to let a given user join more channels";
|
||||
|
||||
static int mo_extendchans(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static int me_extendchans(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void mo_extendchans(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void me_extendchans(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
|
||||
struct Message extendchans_msgtab = {
|
||||
"EXTENDCHANS", 0, 0, 0, 0,
|
||||
|
@ -46,7 +46,7 @@ mapi_clist_av1 extendchans_clist[] = { &extendchans_msgtab, NULL };
|
|||
|
||||
DECLARE_MODULE_AV2(extendchans, NULL, NULL, extendchans_clist, NULL, NULL, NULL, NULL, extendchans_desc);
|
||||
|
||||
static int
|
||||
static void
|
||||
mo_extendchans(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
struct Client *target_p;
|
||||
|
@ -54,17 +54,17 @@ mo_extendchans(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *
|
|||
if(!HasPrivilege(source_p, "oper:extendchans"))
|
||||
{
|
||||
sendto_one(source_p, form_str(ERR_NOPRIVS), me.name, source_p->name, "extendchans");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if(EmptyString(parv[1]))
|
||||
{
|
||||
sendto_one(source_p, form_str(ERR_NEEDMOREPARAMS), me.name, source_p->name, "EXTENDCHANS");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if((target_p = find_chasing(source_p, parv[1], NULL)) == NULL)
|
||||
return 0;
|
||||
return;
|
||||
|
||||
/* Is the target user local? */
|
||||
if(MyClient(target_p))
|
||||
|
@ -82,11 +82,9 @@ mo_extendchans(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *
|
|||
|
||||
sendto_one_notice(source_p, ":You have extended the channel limit on: %s (%s@%s)",
|
||||
target_p->name, target_p->username, target_p->orighost);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
static void
|
||||
me_extendchans(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
struct Client *target_p;
|
||||
|
@ -95,7 +93,7 @@ me_extendchans(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *
|
|||
if(target_p == NULL)
|
||||
{
|
||||
sendto_one_numeric(source_p, ERR_NOSUCHNICK, form_str(ERR_NOSUCHNICK), parv[1]);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
/* Is the target user local? If not, pass it on. */
|
||||
|
@ -104,12 +102,10 @@ me_extendchans(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *
|
|||
struct Client *cptr = target_p->servptr;
|
||||
sendto_one(cptr, ":%s ENCAP %s EXTENDCHANS %s",
|
||||
get_id(source_p, cptr), cptr->name, get_id(target_p, cptr));
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
sendto_one_notice(target_p, ":*** %s (%s@%s) is extending your channel limit",
|
||||
source_p->name, source_p->username, source_p->host);
|
||||
SetExtendChans(target_p);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -36,7 +36,7 @@
|
|||
|
||||
static const char findfowards_desc[] = "Allows operators to find forwards to a given channel";
|
||||
|
||||
static int m_findforwards(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p,
|
||||
static void m_findforwards(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p,
|
||||
int parc, const char *parv[]);
|
||||
|
||||
struct Message findforwards_msgtab = {
|
||||
|
@ -52,7 +52,7 @@ DECLARE_MODULE_AV2(findforwards, NULL, NULL, findforwards_clist, NULL, NULL, NUL
|
|||
** mo_findforwards
|
||||
** parv[1] = channel
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
m_findforwards(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
static time_t last_used = 0;
|
||||
|
@ -70,21 +70,21 @@ m_findforwards(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *
|
|||
{
|
||||
sendto_one_numeric(source_p, ERR_NOTONCHANNEL,
|
||||
form_str(ERR_NOTONCHANNEL), parv[1]);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if(!is_chanop(msptr))
|
||||
{
|
||||
sendto_one(source_p, form_str(ERR_CHANOPRIVSNEEDED),
|
||||
me.name, source_p->name, parv[1]);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if((last_used + ConfigFileEntry.pace_wait) > rb_current_time())
|
||||
{
|
||||
sendto_one(source_p, form_str(RPL_LOAD2HI),
|
||||
me.name, source_p->name, "FINDFORWARDS");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
else
|
||||
last_used = rb_current_time();
|
||||
|
@ -111,6 +111,4 @@ m_findforwards(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *
|
|||
*(--p) = '\0';
|
||||
|
||||
sendto_one_notice(source_p, ":Forwards for %s: %s", parv[1], buf);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -49,7 +49,7 @@
|
|||
|
||||
static const char identify_desc[] = "Adds the IDENTIFY alias that forwards to NickServ or ChanServ";
|
||||
|
||||
static int m_identify(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[]);
|
||||
static void m_identify(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[]);
|
||||
|
||||
struct Message identify_msgtab = {
|
||||
"IDENTIFY", 0, 0, 0, 0,
|
||||
|
@ -61,11 +61,10 @@ mapi_clist_av1 identify_clist[] = {
|
|||
NULL
|
||||
};
|
||||
|
||||
static const char identify_desc[] = "Adds the IDENTIFY alias that forwards to NickServ or ChanServ";
|
||||
|
||||
DECLARE_MODULE_AV2(identify, NULL, NULL, identify_clist, NULL, NULL, NULL, NULL, identify_desc);
|
||||
|
||||
static int m_identify(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
static void
|
||||
m_identify(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
const char *nick;
|
||||
struct Client *target_p;
|
||||
|
@ -73,7 +72,7 @@ static int m_identify(struct MsgBuf *msgbuf_p, struct Client *client_p, struct C
|
|||
if (parc < 2 || EmptyString(parv[1]))
|
||||
{
|
||||
sendto_one(source_p, form_str(ERR_NOTEXTTOSEND), me.name, source_p->name);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
nick = parv[1][0] == '#' ? SVS_chanserv_NICK : SVS_nickserv_NICK;
|
||||
|
@ -85,5 +84,4 @@ static int m_identify(struct MsgBuf *msgbuf_p, struct Client *client_p, struct C
|
|||
{
|
||||
sendto_one_numeric(source_p, ERR_SERVICESDOWN, form_str(ERR_SERVICESDOWN), nick);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -17,9 +17,9 @@
|
|||
|
||||
const char mkpasswd_desc[] = "Hash a password for use in ircd.conf";
|
||||
|
||||
static int m_mkpasswd(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p,
|
||||
static void m_mkpasswd(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p,
|
||||
int parc, const char *parv[]);
|
||||
static int mo_mkpasswd(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p,
|
||||
static void mo_mkpasswd(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p,
|
||||
int parc, const char *parv[]);
|
||||
|
||||
static char *make_md5_salt(int);
|
||||
|
@ -45,7 +45,7 @@ DECLARE_MODULE_AV2(mkpasswd, NULL, NULL, mkpasswd_clist, NULL, NULL, NULL, NULL,
|
|||
* parv[1] = password
|
||||
* parv[2] = type
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
m_mkpasswd(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
static time_t last_used = 0;
|
||||
|
@ -57,7 +57,7 @@ m_mkpasswd(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sour
|
|||
if(EmptyString(parv[1]))
|
||||
{
|
||||
sendto_one(source_p, form_str(ERR_NEEDMOREPARAMS), me.name, source_p->name, "MKPASSWD");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if(parc < 3)
|
||||
|
@ -69,7 +69,7 @@ m_mkpasswd(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sour
|
|||
{
|
||||
/* safe enough to give this on a local connect only */
|
||||
sendto_one(source_p, form_str(RPL_LOAD2HI), me.name, source_p->name, "MKPASSWD");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
else
|
||||
last_used = rb_current_time();
|
||||
|
@ -84,19 +84,18 @@ m_mkpasswd(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sour
|
|||
{
|
||||
sendto_one_notice(source_p,
|
||||
":MKPASSWD syntax error: MKPASSWD pass [SHA256|SHA512|MD5]");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
crypted = rb_crypt(parv[1], salt);
|
||||
sendto_one_notice(source_p, ":Hash [%s] for %s: %s", hashtype, parv[1], crypted ? crypted : "???");
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* mo_mkpasswd - mkpasswd message handler
|
||||
* parv[1] = password
|
||||
* parv[2] = type
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
mo_mkpasswd(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
char *salt;
|
||||
|
@ -107,7 +106,7 @@ mo_mkpasswd(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sou
|
|||
if(EmptyString(parv[1]))
|
||||
{
|
||||
sendto_one(source_p, form_str(ERR_NEEDMOREPARAMS), me.name, source_p->name, "MKPASSWD");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if(parc < 3)
|
||||
|
@ -125,12 +124,11 @@ mo_mkpasswd(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sou
|
|||
{
|
||||
sendto_one_notice(source_p,
|
||||
":MKPASSWD syntax error: MKPASSWD pass [SHA256|SHA512|MD5]");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
crypted = rb_crypt(parv[1], salt);
|
||||
sendto_one_notice(source_p, ":Hash [%s] for %s: %s", hashtype, parv[1], crypted ? crypted : "???");
|
||||
return 0;
|
||||
}
|
||||
|
||||
char *
|
||||
|
|
|
@ -37,7 +37,7 @@
|
|||
|
||||
static const char ojoin_desc[] = "Allow admins to forcibly join channels with the OJOIN command";
|
||||
|
||||
static int mo_ojoin(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[]);
|
||||
static void mo_ojoin(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[]);
|
||||
|
||||
struct Message ojoin_msgtab = {
|
||||
"OJOIN", 0, 0, 0, 0,
|
||||
|
@ -52,7 +52,7 @@ DECLARE_MODULE_AV2(ojoin, NULL, NULL, ojoin_clist, NULL, NULL, NULL, NULL, ojoin
|
|||
** mo_ojoin
|
||||
** parv[1] = channel
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
mo_ojoin(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
struct Channel *chptr;
|
||||
|
@ -62,7 +62,7 @@ mo_ojoin(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
if(!IsOperAdmin(source_p))
|
||||
{
|
||||
sendto_one(source_p, form_str(ERR_NOPRIVS), me.name, source_p->name, "admin");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if(*parv[1] == '@' || *parv[1] == '+')
|
||||
|
@ -75,13 +75,13 @@ mo_ojoin(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
{
|
||||
sendto_one_numeric(source_p, ERR_NOSUCHCHANNEL,
|
||||
form_str(ERR_NOSUCHCHANNEL), parv[1]);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if(IsMember(source_p, chptr))
|
||||
{
|
||||
sendto_one_notice(source_p, ":Please part %s before using OJOIN", parv[1]);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if(move_me == 1)
|
||||
|
@ -139,6 +139,4 @@ mo_ojoin(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
|
||||
source_p->localClient->last_join_time = rb_current_time();
|
||||
channel_member_names(chptr, source_p, 1);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -40,7 +40,7 @@
|
|||
|
||||
static const char okick_desc[] = "Allow admins to forcibly kick users from channels with the OKICK command";
|
||||
|
||||
static int mo_okick(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[]);
|
||||
static void mo_okick(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[]);
|
||||
|
||||
struct Message okick_msgtab = {
|
||||
"OKICK", 0, 0, 0, 0,
|
||||
|
@ -57,7 +57,7 @@ DECLARE_MODULE_AV2(okick, NULL, NULL, okick_clist, NULL, NULL, NULL, NULL, okick
|
|||
** parv[2] = client to kick
|
||||
** parv[3] = kick comment
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
mo_okick(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
struct Client *who;
|
||||
|
@ -74,7 +74,7 @@ mo_okick(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
if(*parv[2] == '\0')
|
||||
{
|
||||
sendto_one(source_p, form_str(ERR_NEEDMOREPARAMS), me.name, source_p->name, "KICK");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if(MyClient(source_p) && !IsFloodDone(source_p))
|
||||
|
@ -94,7 +94,7 @@ mo_okick(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
if(!chptr)
|
||||
{
|
||||
sendto_one_numeric(source_p, ERR_NOSUCHCHANNEL, form_str(ERR_NOSUCHCHANNEL), name);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
|
@ -103,19 +103,19 @@ mo_okick(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
user = LOCAL_COPY(parv[2]); // strtoken(&p2, parv[2], ",");
|
||||
if(!(who = find_chasing(source_p, user, &chasing)))
|
||||
{
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if((target_p = find_client(user)) == NULL)
|
||||
{
|
||||
sendto_one(source_p, form_str(ERR_NOSUCHNICK), user);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if((msptr = find_channel_membership(chptr, target_p)) == NULL)
|
||||
{
|
||||
sendto_one(source_p, form_str(ERR_USERNOTINCHANNEL), parv[1], parv[2]);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
sendto_wallops_flags(UMODE_WALLOP, &me,
|
||||
|
@ -136,5 +136,4 @@ mo_okick(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
sendto_server(&me, chptr, CAP_TS6, NOCAPS,
|
||||
":%s KICK %s %s :%s", me.id, chptr->chname, who->id, comment);
|
||||
remove_user_from_channel(msptr);
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -44,7 +44,7 @@
|
|||
|
||||
static const char omode_desc[] = "Allow admins to forcibly change modes on channels with the OMODE command";
|
||||
|
||||
static int mo_omode(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void mo_omode(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
|
||||
struct Message omode_msgtab = {
|
||||
"OMODE", 0, 0, 0, 0,
|
||||
|
@ -59,7 +59,7 @@ DECLARE_MODULE_AV2(omode, NULL, NULL, omode_clist, NULL, NULL, NULL, NULL, omode
|
|||
* mo_omode - MODE command handler
|
||||
* parv[1] - channel
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
mo_omode(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
struct Channel *chptr = NULL;
|
||||
|
@ -72,7 +72,7 @@ mo_omode(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
if(!IsOperAdmin(source_p))
|
||||
{
|
||||
sendto_one(source_p, form_str(ERR_NOPRIVS), me.name, source_p->name, "admin");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
/* Now, try to find the channel in question */
|
||||
|
@ -80,7 +80,7 @@ mo_omode(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
{
|
||||
sendto_one_numeric(source_p, ERR_BADCHANNAME,
|
||||
form_str(ERR_BADCHANNAME), parv[1]);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
chptr = find_channel(parv[1]);
|
||||
|
@ -89,7 +89,7 @@ mo_omode(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
{
|
||||
sendto_one_numeric(source_p, ERR_NOSUCHCHANNEL,
|
||||
form_str(ERR_NOSUCHCHANNEL), parv[1]);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
/* Now know the channel exists */
|
||||
|
@ -99,7 +99,7 @@ mo_omode(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
if (is_chanop(msptr))
|
||||
{
|
||||
sendto_one_notice(source_p, ":Use a normal MODE you idiot");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
params[0] = '\0';
|
||||
|
@ -133,7 +133,7 @@ mo_omode(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
{
|
||||
sendto_one_numeric(source_p, ERR_USERNOTINCHANNEL,
|
||||
form_str(ERR_USERNOTINCHANNEL), parv[3], chptr->chname);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
sendto_channel_local(ALL_MEMBERS, chptr, ":%s MODE %s +o %s",
|
||||
me.name, parv[1], source_p->name);
|
||||
|
@ -164,5 +164,4 @@ mo_omode(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
remove_user_from_channel(msptr);
|
||||
}
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -36,7 +36,7 @@
|
|||
|
||||
static const char opme_desc[] = "Allow admins to op themselves on opless channels";
|
||||
|
||||
static int mo_opme(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[]);
|
||||
static void mo_opme(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[]);
|
||||
|
||||
struct Message opme_msgtab = {
|
||||
"OPME", 0, 0, 0, 0,
|
||||
|
@ -51,7 +51,7 @@ DECLARE_MODULE_AV2(opme, NULL, NULL, opme_clist, NULL, NULL, NULL, NULL, opme_de
|
|||
** mo_opme
|
||||
** parv[1] = channel
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
mo_opme(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
struct Channel *chptr;
|
||||
|
@ -62,14 +62,14 @@ mo_opme(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
if(!IsOperAdmin(source_p))
|
||||
{
|
||||
sendto_one(source_p, form_str(ERR_NOPRIVS), me.name, source_p->name, "admin");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if((chptr = find_channel(parv[1])) == NULL)
|
||||
{
|
||||
sendto_one_numeric(source_p, ERR_NOSUCHCHANNEL,
|
||||
form_str(ERR_NOSUCHCHANNEL), parv[1]);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
RB_DLINK_FOREACH(ptr, chptr->members.head)
|
||||
|
@ -79,14 +79,14 @@ mo_opme(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
if(is_chanop(msptr))
|
||||
{
|
||||
sendto_one_notice(source_p, ":%s Channel is not opless", parv[1]);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
msptr = find_channel_membership(chptr, source_p);
|
||||
|
||||
if(msptr == NULL)
|
||||
return 0;
|
||||
return;
|
||||
|
||||
msptr->flags |= CHFL_CHANOP;
|
||||
|
||||
|
@ -110,6 +110,4 @@ mo_opme(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
|
||||
sendto_channel_local(ALL_MEMBERS, chptr,
|
||||
":%s MODE %s +o %s", me.name, parv[1], source_p->name);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -41,7 +41,7 @@
|
|||
|
||||
static const char description[] = "Provides the REMOVE command, an alternative to KICK";
|
||||
|
||||
static int m_remove(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void m_remove(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void remove_quote_part(hook_data_privmsg_channel *);
|
||||
|
||||
unsigned int CAP_REMOVE;
|
||||
|
@ -64,7 +64,7 @@ mapi_cap_list_av2 remove_cap_list[] = {
|
|||
|
||||
DECLARE_MODULE_AV2(remove, NULL, NULL, remove_clist, NULL, remove_hfnlist, remove_cap_list, NULL, description);
|
||||
|
||||
static int
|
||||
static void
|
||||
m_remove(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
struct membership *msptr;
|
||||
|
@ -90,7 +90,7 @@ m_remove(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
if(chptr == NULL)
|
||||
{
|
||||
sendto_one_numeric(source_p, ERR_NOSUCHCHANNEL, form_str(ERR_NOSUCHCHANNEL), name);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if(!IsServer(source_p))
|
||||
|
@ -101,7 +101,7 @@ m_remove(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
{
|
||||
sendto_one_numeric(source_p, ERR_NOTONCHANNEL,
|
||||
form_str(ERR_NOTONCHANNEL), name);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if(get_channel_access(source_p, chptr, msptr, MODE_ADD, NULL) < CHFL_CHANOP)
|
||||
|
@ -110,7 +110,7 @@ m_remove(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
{
|
||||
sendto_one(source_p, form_str(ERR_CHANOPRIVSNEEDED),
|
||||
me.name, source_p->name, name);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
/* If its a TS 0 channel, do it the old way */
|
||||
|
@ -118,7 +118,7 @@ m_remove(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
{
|
||||
sendto_one(source_p, form_str(ERR_CHANOPRIVSNEEDED),
|
||||
get_id(&me, source_p), get_id(source_p, source_p), name);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -151,7 +151,7 @@ m_remove(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
|
||||
if(!(who = find_chasing(source_p, user, &chasing)))
|
||||
{
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
msptr = find_channel_membership(chptr, who);
|
||||
|
@ -162,7 +162,7 @@ m_remove(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
{
|
||||
sendto_one(source_p, form_str(ERR_ISCHANSERVICE),
|
||||
me.name, source_p->name, who->name, chptr->chname);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if(MyClient(source_p))
|
||||
|
@ -179,7 +179,7 @@ m_remove(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
call_hook(h_can_kick, &hookdata);
|
||||
|
||||
if (!hookdata.approved)
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
comment = LOCAL_COPY((EmptyString(parv[3])) ? who->name : parv[3]);
|
||||
|
@ -210,8 +210,6 @@ m_remove(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
else if (MyClient(source_p))
|
||||
sendto_one_numeric(source_p, ERR_USERNOTINCHANNEL,
|
||||
form_str(ERR_USERNOTINCHANNEL), user, name);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
|
@ -32,13 +32,13 @@
|
|||
static const char roleplay_desc[] =
|
||||
"Adds a roleplaying system that allows faked nicknames to talk in a channel set +N";
|
||||
|
||||
static int m_scene(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[]);
|
||||
static int m_fsay(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[]);
|
||||
static int m_faction(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[]);
|
||||
static int m_npc(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[]);
|
||||
static int m_npca(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[]);
|
||||
static int m_displaymsg(struct MsgBuf *msgbuf_p, struct Client *source_p, const char *channel, int underline, int action, const char *nick, const char *text);
|
||||
static int me_roleplay(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[]);
|
||||
static void m_scene(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[]);
|
||||
static void m_fsay(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[]);
|
||||
static void m_faction(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[]);
|
||||
static void m_npc(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[]);
|
||||
static void m_npca(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[]);
|
||||
static void m_displaymsg(struct MsgBuf *msgbuf_p, struct Client *source_p, const char *channel, int underline, int action, const char *nick, const char *text);
|
||||
static void me_roleplay(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[]);
|
||||
static unsigned int mymode;
|
||||
|
||||
static int
|
||||
|
@ -100,42 +100,37 @@ mapi_clist_av1 roleplay_clist[] = { &scene_msgtab, &ambiance_msgtab, &fsay_msgta
|
|||
|
||||
DECLARE_MODULE_AV2(roleplay, _modinit, _moddeinit, roleplay_clist, NULL, NULL, NULL, NULL, roleplay_desc);
|
||||
|
||||
static int
|
||||
static void
|
||||
m_scene(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
m_displaymsg(msgbuf_p, source_p, parv[1], 0, 0, "=Scene=", parv[2]);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
static void
|
||||
m_fsay(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
m_displaymsg(msgbuf_p, source_p, parv[1], 0, 0, parv[2], parv[3]);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
static void
|
||||
m_faction(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
m_displaymsg(msgbuf_p, source_p, parv[1], 0, 1, parv[2], parv[3]);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
static void
|
||||
m_npc(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
m_displaymsg(msgbuf_p, source_p, parv[1], 1, 0, parv[2], parv[3]);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
static void
|
||||
m_npca(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
m_displaymsg(msgbuf_p, source_p, parv[1], 1, 1, parv[2], parv[3]);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
static void
|
||||
m_displaymsg(struct MsgBuf *msgbuf_p, struct Client *source_p, const char *channel, int underline, int action, const char *nick, const char *text)
|
||||
{
|
||||
struct Channel *chptr;
|
||||
|
@ -154,38 +149,38 @@ m_displaymsg(struct MsgBuf *msgbuf_p, struct Client *source_p, const char *chann
|
|||
{
|
||||
sendto_one_numeric(source_p, ERR_NOSUCHCHANNEL,
|
||||
form_str(ERR_NOSUCHCHANNEL), channel);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if(!(msptr = find_channel_membership(chptr, source_p)))
|
||||
{
|
||||
sendto_one_numeric(source_p, ERR_NOTONCHANNEL,
|
||||
form_str(ERR_NOTONCHANNEL), chptr->chname);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if(!(chptr->mode.mode & chmode_flags['N']))
|
||||
{
|
||||
sendto_one_numeric(source_p, 573, "%s :Roleplay commands are not enabled on this channel.", chptr->chname);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if(!can_send(chptr, source_p, msptr))
|
||||
{
|
||||
sendto_one_numeric(source_p, 573, "%s :Cannot send to channel.", chptr->chname);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
/* enforce flood stuff on roleplay commands */
|
||||
if(flood_attack_channel(0, source_p, chptr, chptr->chname))
|
||||
return 0;
|
||||
return;
|
||||
|
||||
/* enforce target change on roleplay commands */
|
||||
if(!is_chanop_voiced(msptr) && !IsOper(source_p) && !add_channel_target(source_p, chptr))
|
||||
{
|
||||
sendto_one(source_p, form_str(ERR_TARGCHANGE),
|
||||
me.name, source_p->name, chptr->chname);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if(underline)
|
||||
|
@ -198,7 +193,7 @@ m_displaymsg(struct MsgBuf *msgbuf_p, struct Client *source_p, const char *chann
|
|||
if(EmptyString(nick3))
|
||||
{
|
||||
sendto_one_numeric(source_p, 573, "%s :No visible non-stripped characters in nick.", chptr->chname);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
snprintf(text3, sizeof(text3), "%s (%s)", text, source_p->name);
|
||||
|
@ -211,10 +206,9 @@ m_displaymsg(struct MsgBuf *msgbuf_p, struct Client *source_p, const char *chann
|
|||
sendto_channel_local(ALL_MEMBERS, chptr, ":%s!%s@npc.fakeuser.invalid PRIVMSG %s :%s", nick2, source_p->name, channel, text2);
|
||||
sendto_match_servs(source_p, "*", CAP_ENCAP, NOCAPS, "ENCAP * ROLEPLAY %s %s :%s",
|
||||
channel, nick2, text2);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
static void
|
||||
me_roleplay(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
struct Channel *chptr;
|
||||
|
@ -222,8 +216,7 @@ me_roleplay(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sou
|
|||
/* Don't segfault if we get ROLEPLAY with an invalid channel.
|
||||
* This shouldn't happen but it's best to be on the safe side. */
|
||||
if((chptr = find_channel(parv[1])) == NULL)
|
||||
return 0;
|
||||
return;
|
||||
|
||||
sendto_channel_local(ALL_MEMBERS, chptr, ":%s!%s@npc.fakeuser.invalid PRIVMSG %s :%s", parv[2], source_p->name, parv[1], parv[3]);
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -48,7 +48,7 @@
|
|||
static const char sendbands_desc[] =
|
||||
"Adds the ability to send all permanent RESVs and XLINEs to given server";
|
||||
|
||||
static int mo_sendbans(struct MsgBuf *msgbuf_p, 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 Message sendbans_msgtab = {
|
||||
"SENDBANS", 0, 0, 0, 0,
|
||||
|
@ -86,7 +86,8 @@ static const char *expand_xline(const char *mask)
|
|||
return buf;
|
||||
}
|
||||
|
||||
static int mo_sendbans(struct MsgBuf *msgbuf_p, 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;
|
||||
|
@ -99,19 +100,19 @@ static int mo_sendbans(struct MsgBuf *msgbuf_p, struct Client *client_p, struct
|
|||
{
|
||||
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];
|
||||
|
@ -128,7 +129,7 @@ static int mo_sendbans(struct MsgBuf *msgbuf_p, struct Client *client_p, struct
|
|||
{
|
||||
sendto_one_numeric(source_p, ERR_NOSUCHSERVER,
|
||||
form_str(ERR_NOSUCHSERVER), target);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
sendto_realops_snomask(SNO_GENERAL, L_NETWIDE,
|
||||
|
@ -174,6 +175,4 @@ static int mo_sendbans(struct MsgBuf *msgbuf_p, struct Client *client_p, struct
|
|||
"ENCAP %s XLINE 0 %s 2 :%s",
|
||||
target, mask2, aconf->passwd);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -55,7 +55,7 @@
|
|||
|
||||
static const char webirc_desc[] = "Adds support for the WebIRC system";
|
||||
|
||||
static int mr_webirc(struct MsgBuf *msgbuf_p, struct Client *, struct Client *, int, const char **);
|
||||
static void mr_webirc(struct MsgBuf *msgbuf_p, struct Client *, struct Client *, int, const char **);
|
||||
|
||||
struct Message webirc_msgtab = {
|
||||
"WEBIRC", 0, 0, 0, 0,
|
||||
|
@ -73,7 +73,7 @@ DECLARE_MODULE_AV2(webirc, NULL, NULL, webirc_clist, NULL, NULL, NULL, NULL, web
|
|||
* parv[3] = fake hostname
|
||||
* parv[4] = fake ip
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
mr_webirc(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
struct ConfItem *aconf;
|
||||
|
@ -85,7 +85,7 @@ mr_webirc(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sourc
|
|||
sizeof(source_p->sockhost))
|
||||
{
|
||||
sendto_one(source_p, "NOTICE * :Invalid IP");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
aconf = find_address_conf(client_p->host, client_p->sockhost,
|
||||
|
@ -94,17 +94,17 @@ mr_webirc(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sourc
|
|||
(struct sockaddr *) &client_p->localClient->ip,
|
||||
client_p->localClient->ip.ss_family, NULL);
|
||||
if (aconf == NULL || !(aconf->status & CONF_CLIENT))
|
||||
return 0;
|
||||
return;
|
||||
if (!IsConfDoSpoofIp(aconf) || irccmp(aconf->info.name, "webirc."))
|
||||
{
|
||||
/* XXX */
|
||||
sendto_one(source_p, "NOTICE * :Not a CGI:IRC auth block");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
if (EmptyString(aconf->passwd))
|
||||
{
|
||||
sendto_one(source_p, "NOTICE * :CGI:IRC auth blocks must have a password");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if (EmptyString(parv[1]))
|
||||
|
@ -117,13 +117,13 @@ mr_webirc(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sourc
|
|||
if (encr == NULL || strcmp(encr, aconf->passwd))
|
||||
{
|
||||
sendto_one(source_p, "NOTICE * :CGI:IRC password incorrect");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if (rb_inet_pton_sock(parv[4], (struct sockaddr *)&addr) <= 0)
|
||||
{
|
||||
sendto_one(source_p, "NOTICE * :Invalid IP");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if (*parv[4] == ':')
|
||||
|
@ -150,10 +150,9 @@ mr_webirc(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sourc
|
|||
if(!(aconf->status & CONF_EXEMPTDLINE))
|
||||
{
|
||||
exit_client(client_p, source_p, &me, "D-lined");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
sendto_one(source_p, "NOTICE * :CGI:IRC host/IP set to %s %s", parv[3], parv[4]);
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -49,7 +49,7 @@ HandlerType;
|
|||
* int parc - parameter count (from msgbuf_p)
|
||||
* char* parv[] - parameter vector (from msgbuf_p)
|
||||
*/
|
||||
typedef int (*MessageHandler) (struct MsgBuf *, struct Client *, struct Client *, int, const char *[]);
|
||||
typedef void (*MessageHandler) (struct MsgBuf *, struct Client *, struct Client *, int, const char *[]);
|
||||
|
||||
struct MessageEntry
|
||||
{
|
||||
|
@ -73,10 +73,10 @@ struct Message
|
|||
};
|
||||
|
||||
/* generic handlers */
|
||||
extern int m_ignore(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
extern int m_not_oper(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
extern int m_registered(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
extern int m_unregistered(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
extern void m_ignore(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
extern void m_not_oper(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
extern void m_registered(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
extern void m_unregistered(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
|
||||
#define mg_ignore { m_ignore, 0 }
|
||||
#define mg_not_oper { m_not_oper, 0 }
|
||||
|
@ -85,7 +85,7 @@ extern int m_unregistered(struct MsgBuf *, struct Client *, struct Client *, int
|
|||
|
||||
/*
|
||||
* m_functions execute protocol messages on this server:
|
||||
* int m_func(struct Client* client_p, struct Client* source_p, int parc, char* parv[]);
|
||||
* void m_func(struct Client* client_p, struct Client* source_p, int parc, char* parv[]);
|
||||
*
|
||||
* client_p is always NON-NULL, pointing to a *LOCAL* client
|
||||
* structure (with an open socket connected!). This
|
||||
|
|
|
@ -54,8 +54,8 @@ extern struct CapabilityIndex *cli_capindex;
|
|||
#define CLICAP_FLAGS_REQACK 0x002
|
||||
|
||||
struct ClientCapability {
|
||||
int (*visible)(struct Client *); /* whether or not to display the capability. set to NULL or true return value = displayed */
|
||||
const char *(*data)(struct Client *); /* any custom data for the capability. set to NULL or return NULL = no data */
|
||||
bool (*visible)(struct Client *); /* whether or not to display the capability. set to NULL or true return value = displayed */
|
||||
const char *(*data)(struct Client *); /* any custom data for the capability. set to NULL or return NULL = no data */
|
||||
unsigned int flags;
|
||||
};
|
||||
|
||||
|
|
383
ircd/modules.c
383
ircd/modules.c
|
@ -66,23 +66,23 @@ int max_mods = MODS_INCREMENT;
|
|||
|
||||
static rb_dlink_list mod_paths;
|
||||
|
||||
static int mo_modload(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static int mo_modlist(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static int mo_modreload(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static int mo_modunload(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static int mo_modrestart(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void mo_modload(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void mo_modlist(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void mo_modreload(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void mo_modunload(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void mo_modrestart(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
|
||||
static int me_modload(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static int me_modlist(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static int me_modreload(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static int me_modunload(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static int me_modrestart(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void me_modload(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void me_modlist(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void me_modreload(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void me_modunload(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void me_modrestart(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
|
||||
static int do_modload(struct Client *, const char *);
|
||||
static int do_modunload(struct Client *, const char *);
|
||||
static int do_modreload(struct Client *, const char *);
|
||||
static int do_modlist(struct Client *, const char *);
|
||||
static int do_modrestart(struct Client *);
|
||||
static void do_modload(struct Client *, const char *);
|
||||
static void do_modunload(struct Client *, const char *);
|
||||
static void do_modreload(struct Client *, const char *);
|
||||
static void do_modlist(struct Client *, const char *);
|
||||
static void do_modrestart(struct Client *);
|
||||
|
||||
struct Message modload_msgtab = {
|
||||
"MODLOAD", 0, 0, 0, 0,
|
||||
|
@ -329,14 +329,14 @@ load_one_module(const char *path, int origin, int coremodule)
|
|||
|
||||
|
||||
/* load a module .. */
|
||||
static int
|
||||
static void
|
||||
mo_modload(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char **parv)
|
||||
{
|
||||
if(!IsOperAdmin(source_p))
|
||||
{
|
||||
sendto_one(source_p, form_str(ERR_NOPRIVS),
|
||||
me.name, source_p->name, "admin");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if(parc > 2)
|
||||
|
@ -344,26 +344,167 @@ mo_modload(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sour
|
|||
sendto_match_servs(source_p, parv[2], CAP_ENCAP, NOCAPS,
|
||||
"ENCAP %s MODLOAD %s", parv[2], parv[1]);
|
||||
if (match(parv[2], me.name) == 0)
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
return do_modload(source_p, parv[1]);
|
||||
do_modload(source_p, parv[1]);
|
||||
}
|
||||
|
||||
static int
|
||||
static void
|
||||
me_modload(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char **parv)
|
||||
{
|
||||
if(!find_shared_conf(source_p->username, source_p->host, source_p->servptr->name, SHARED_MODULE))
|
||||
{
|
||||
sendto_one_notice(source_p, ":*** You do not have an appropriate shared block "
|
||||
"to load modules on this server.");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
return do_modload(source_p, parv[1]);
|
||||
do_modload(source_p, parv[1]);
|
||||
}
|
||||
|
||||
static int
|
||||
|
||||
/* unload a module .. */
|
||||
static void
|
||||
mo_modunload(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char **parv)
|
||||
{
|
||||
if(!IsOperAdmin(source_p))
|
||||
{
|
||||
sendto_one(source_p, form_str(ERR_NOPRIVS),
|
||||
me.name, source_p->name, "admin");
|
||||
return;
|
||||
}
|
||||
|
||||
if(parc > 2)
|
||||
{
|
||||
sendto_match_servs(source_p, parv[2], CAP_ENCAP, NOCAPS,
|
||||
"ENCAP %s MODUNLOAD %s", parv[2], parv[1]);
|
||||
if (match(parv[2], me.name) == 0)
|
||||
return;
|
||||
}
|
||||
|
||||
do_modunload(source_p, parv[1]);
|
||||
}
|
||||
|
||||
static void
|
||||
me_modunload(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char **parv)
|
||||
{
|
||||
if(!find_shared_conf(source_p->username, source_p->host, source_p->servptr->name, SHARED_MODULE))
|
||||
{
|
||||
sendto_one_notice(source_p, ":*** You do not have an appropriate shared block "
|
||||
"to load modules on this server.");
|
||||
return;
|
||||
}
|
||||
|
||||
do_modunload(source_p, parv[1]);
|
||||
}
|
||||
|
||||
/* unload and load in one! */
|
||||
static void
|
||||
mo_modreload(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char **parv)
|
||||
{
|
||||
if(!IsOperAdmin(source_p))
|
||||
{
|
||||
sendto_one(source_p, form_str(ERR_NOPRIVS),
|
||||
me.name, source_p->name, "admin");
|
||||
return;
|
||||
}
|
||||
|
||||
if(parc > 2)
|
||||
{
|
||||
sendto_match_servs(source_p, parv[2], CAP_ENCAP, NOCAPS,
|
||||
"ENCAP %s MODRELOAD %s", parv[2], parv[1]);
|
||||
if (match(parv[2], me.name) == 0)
|
||||
return;
|
||||
}
|
||||
|
||||
do_modreload(source_p, parv[1]);
|
||||
}
|
||||
|
||||
static void
|
||||
me_modreload(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char **parv)
|
||||
{
|
||||
if(!find_shared_conf(source_p->username, source_p->host, source_p->servptr->name, SHARED_MODULE))
|
||||
{
|
||||
sendto_one_notice(source_p, ":*** You do not have an appropriate shared block "
|
||||
"to load modules on this server.");
|
||||
return;
|
||||
}
|
||||
|
||||
do_modreload(source_p, parv[1]);
|
||||
}
|
||||
|
||||
/* list modules .. */
|
||||
static void
|
||||
mo_modlist(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char **parv)
|
||||
{
|
||||
if(!IsOperAdmin(source_p))
|
||||
{
|
||||
sendto_one(source_p, form_str(ERR_NOPRIVS),
|
||||
me.name, source_p->name, "admin");
|
||||
return;
|
||||
}
|
||||
|
||||
if(parc > 2)
|
||||
{
|
||||
sendto_match_servs(source_p, parv[2], CAP_ENCAP, NOCAPS,
|
||||
"ENCAP %s MODLIST %s", parv[2], parv[1]);
|
||||
if (match(parv[2], me.name) == 0)
|
||||
return;
|
||||
}
|
||||
|
||||
do_modlist(source_p, parc > 1 ? parv[1] : 0);
|
||||
}
|
||||
|
||||
static void
|
||||
me_modlist(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char **parv)
|
||||
{
|
||||
if(!find_shared_conf(source_p->username, source_p->host, source_p->servptr->name, SHARED_MODULE))
|
||||
{
|
||||
sendto_one_notice(source_p, ":*** You do not have an appropriate shared block "
|
||||
"to load modules on this server.");
|
||||
return;
|
||||
}
|
||||
|
||||
do_modlist(source_p, parv[1]);
|
||||
}
|
||||
|
||||
/* unload and reload all modules */
|
||||
static void
|
||||
mo_modrestart(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char **parv)
|
||||
{
|
||||
if(!IsOperAdmin(source_p))
|
||||
{
|
||||
sendto_one(source_p, form_str(ERR_NOPRIVS),
|
||||
me.name, source_p->name, "admin");
|
||||
return;
|
||||
}
|
||||
|
||||
if(parc > 1)
|
||||
{
|
||||
sendto_match_servs(source_p, parv[1], CAP_ENCAP, NOCAPS,
|
||||
"ENCAP %s MODRESTART", parv[1]);
|
||||
if (match(parv[1], me.name) == 0)
|
||||
return;
|
||||
}
|
||||
|
||||
do_modrestart(source_p);
|
||||
}
|
||||
|
||||
static void
|
||||
me_modrestart(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char **parv)
|
||||
{
|
||||
if(!find_shared_conf(source_p->username, source_p->host, source_p->servptr->name, SHARED_MODULE))
|
||||
{
|
||||
sendto_one_notice(source_p, ":*** You do not have an appropriate shared block "
|
||||
"to load modules on this server.");
|
||||
return;
|
||||
}
|
||||
|
||||
do_modrestart(source_p);
|
||||
}
|
||||
|
||||
static void
|
||||
do_modload(struct Client *source_p, const char *module)
|
||||
{
|
||||
char *m_bn = rb_basename(module);
|
||||
|
@ -373,54 +514,16 @@ do_modload(struct Client *source_p, const char *module)
|
|||
{
|
||||
sendto_one_notice(source_p, ":Module %s is already loaded", m_bn);
|
||||
rb_free(m_bn);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
origin = strcmp(module, m_bn) == 0 ? MAPI_ORIGIN_CORE : MAPI_ORIGIN_EXTENSION;
|
||||
load_one_module(module, origin, 0);
|
||||
|
||||
rb_free(m_bn);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/* unload a module .. */
|
||||
static int
|
||||
mo_modunload(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char **parv)
|
||||
{
|
||||
if(!IsOperAdmin(source_p))
|
||||
{
|
||||
sendto_one(source_p, form_str(ERR_NOPRIVS),
|
||||
me.name, source_p->name, "admin");
|
||||
return 0;
|
||||
}
|
||||
|
||||
if(parc > 2)
|
||||
{
|
||||
sendto_match_servs(source_p, parv[2], CAP_ENCAP, NOCAPS,
|
||||
"ENCAP %s MODUNLOAD %s", parv[2], parv[1]);
|
||||
if (match(parv[2], me.name) == 0)
|
||||
return 0;
|
||||
}
|
||||
|
||||
return do_modunload(source_p, parv[1]);
|
||||
}
|
||||
|
||||
static int
|
||||
me_modunload(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char **parv)
|
||||
{
|
||||
if(!find_shared_conf(source_p->username, source_p->host, source_p->servptr->name, SHARED_MODULE))
|
||||
{
|
||||
sendto_one_notice(source_p, ":*** You do not have an appropriate shared block "
|
||||
"to load modules on this server.");
|
||||
return 0;
|
||||
}
|
||||
|
||||
return do_modunload(source_p, parv[1]);
|
||||
}
|
||||
|
||||
static int
|
||||
static void
|
||||
do_modunload(struct Client *source_p, const char *module)
|
||||
{
|
||||
int modindex;
|
||||
|
@ -430,14 +533,14 @@ do_modunload(struct Client *source_p, const char *module)
|
|||
{
|
||||
sendto_one_notice(source_p, ":Module %s is not loaded", m_bn);
|
||||
rb_free(m_bn);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if(modlist[modindex]->core == 1)
|
||||
{
|
||||
sendto_one_notice(source_p, ":Module %s is a core module and may not be unloaded", m_bn);
|
||||
rb_free(m_bn);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if(unload_one_module(m_bn, 1) == -1)
|
||||
|
@ -446,45 +549,9 @@ do_modunload(struct Client *source_p, const char *module)
|
|||
}
|
||||
|
||||
rb_free(m_bn);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* unload and load in one! */
|
||||
static int
|
||||
mo_modreload(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char **parv)
|
||||
{
|
||||
if(!IsOperAdmin(source_p))
|
||||
{
|
||||
sendto_one(source_p, form_str(ERR_NOPRIVS),
|
||||
me.name, source_p->name, "admin");
|
||||
return 0;
|
||||
}
|
||||
|
||||
if(parc > 2)
|
||||
{
|
||||
sendto_match_servs(source_p, parv[2], CAP_ENCAP, NOCAPS,
|
||||
"ENCAP %s MODRELOAD %s", parv[2], parv[1]);
|
||||
if (match(parv[2], me.name) == 0)
|
||||
return 0;
|
||||
}
|
||||
|
||||
return do_modreload(source_p, parv[1]);
|
||||
}
|
||||
|
||||
static int
|
||||
me_modreload(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char **parv)
|
||||
{
|
||||
if(!find_shared_conf(source_p->username, source_p->host, source_p->servptr->name, SHARED_MODULE))
|
||||
{
|
||||
sendto_one_notice(source_p, ":*** You do not have an appropriate shared block "
|
||||
"to load modules on this server.");
|
||||
return 0;
|
||||
}
|
||||
|
||||
return do_modreload(source_p, parv[1]);
|
||||
}
|
||||
|
||||
static int
|
||||
static void
|
||||
do_modreload(struct Client *source_p, const char *module)
|
||||
{
|
||||
int modindex;
|
||||
|
@ -495,7 +562,7 @@ do_modreload(struct Client *source_p, const char *module)
|
|||
{
|
||||
sendto_one_notice(source_p, ":Module %s is not loaded", m_bn);
|
||||
rb_free(m_bn);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
check_core = modlist[modindex]->core;
|
||||
|
@ -504,7 +571,7 @@ do_modreload(struct Client *source_p, const char *module)
|
|||
{
|
||||
sendto_one_notice(source_p, ":Module %s is not loaded", m_bn);
|
||||
rb_free(m_bn);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if((load_one_module(m_bn, modlist[modindex]->origin, check_core) == -1) && check_core)
|
||||
|
@ -516,45 +583,30 @@ do_modreload(struct Client *source_p, const char *module)
|
|||
}
|
||||
|
||||
rb_free(m_bn);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* list modules .. */
|
||||
static int
|
||||
mo_modlist(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char **parv)
|
||||
static void
|
||||
do_modrestart(struct Client *source_p)
|
||||
{
|
||||
if(!IsOperAdmin(source_p))
|
||||
{
|
||||
sendto_one(source_p, form_str(ERR_NOPRIVS),
|
||||
me.name, source_p->name, "admin");
|
||||
return 0;
|
||||
}
|
||||
int modnum;
|
||||
|
||||
if(parc > 2)
|
||||
{
|
||||
sendto_match_servs(source_p, parv[2], CAP_ENCAP, NOCAPS,
|
||||
"ENCAP %s MODLIST %s", parv[2], parv[1]);
|
||||
if (match(parv[2], me.name) == 0)
|
||||
return 0;
|
||||
}
|
||||
sendto_one_notice(source_p, ":Reloading all modules");
|
||||
|
||||
return do_modlist(source_p, parc > 1 ? parv[1] : 0);
|
||||
modnum = num_mods;
|
||||
while (num_mods)
|
||||
unload_one_module(modlist[0]->name, 0);
|
||||
|
||||
load_all_modules(0);
|
||||
load_core_modules(0);
|
||||
rehash(0);
|
||||
|
||||
sendto_realops_snomask(SNO_GENERAL, L_NETWIDE,
|
||||
"Module Restart: %d modules unloaded, %d modules loaded",
|
||||
modnum, num_mods);
|
||||
ilog(L_MAIN, "Module Restart: %d modules unloaded, %d modules loaded", modnum, num_mods);
|
||||
}
|
||||
|
||||
static int
|
||||
me_modlist(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char **parv)
|
||||
{
|
||||
if(!find_shared_conf(source_p->username, source_p->host, source_p->servptr->name, SHARED_MODULE))
|
||||
{
|
||||
sendto_one_notice(source_p, ":*** You do not have an appropriate shared block "
|
||||
"to load modules on this server.");
|
||||
return 0;
|
||||
}
|
||||
|
||||
return do_modlist(source_p, parv[1]);
|
||||
}
|
||||
|
||||
static int
|
||||
static void
|
||||
do_modlist(struct Client *source_p, const char *pattern)
|
||||
{
|
||||
int i;
|
||||
|
@ -596,67 +648,8 @@ do_modlist(struct Client *source_p, const char *pattern)
|
|||
}
|
||||
|
||||
sendto_one(source_p, form_str(RPL_ENDOFMODLIST), me.name, source_p->name);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* unload and reload all modules */
|
||||
static int
|
||||
mo_modrestart(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char **parv)
|
||||
{
|
||||
if(!IsOperAdmin(source_p))
|
||||
{
|
||||
sendto_one(source_p, form_str(ERR_NOPRIVS),
|
||||
me.name, source_p->name, "admin");
|
||||
return 0;
|
||||
}
|
||||
|
||||
if(parc > 1)
|
||||
{
|
||||
sendto_match_servs(source_p, parv[1], CAP_ENCAP, NOCAPS,
|
||||
"ENCAP %s MODRESTART", parv[1]);
|
||||
if (match(parv[1], me.name) == 0)
|
||||
return 0;
|
||||
}
|
||||
|
||||
return do_modrestart(source_p);
|
||||
}
|
||||
|
||||
static int
|
||||
me_modrestart(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char **parv)
|
||||
{
|
||||
if(!find_shared_conf(source_p->username, source_p->host, source_p->servptr->name, SHARED_MODULE))
|
||||
{
|
||||
sendto_one_notice(source_p, ":*** You do not have an appropriate shared block "
|
||||
"to load modules on this server.");
|
||||
return 0;
|
||||
}
|
||||
|
||||
return do_modrestart(source_p);
|
||||
}
|
||||
|
||||
static int
|
||||
do_modrestart(struct Client *source_p)
|
||||
{
|
||||
int modnum;
|
||||
|
||||
sendto_one_notice(source_p, ":Reloading all modules");
|
||||
|
||||
modnum = num_mods;
|
||||
while (num_mods)
|
||||
unload_one_module(modlist[0]->name, 0);
|
||||
|
||||
load_all_modules(0);
|
||||
load_core_modules(0);
|
||||
rehash(0);
|
||||
|
||||
sendto_realops_snomask(SNO_GENERAL, L_NETWIDE,
|
||||
"Module Restart: %d modules unloaded, %d modules loaded",
|
||||
modnum, num_mods);
|
||||
ilog(L_MAIN, "Module Restart: %d modules unloaded, %d modules loaded", modnum, num_mods);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
static void increase_modlist(void);
|
||||
|
||||
#define MODS_INCREMENT 10
|
||||
|
|
14
ircd/parse.c
14
ircd/parse.c
|
@ -567,14 +567,13 @@ static void do_alias(struct alias_entry *aptr, struct Client *source_p, char *te
|
|||
text);
|
||||
}
|
||||
|
||||
int
|
||||
void
|
||||
m_not_oper(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
sendto_one_numeric(source_p, ERR_NOPRIVILEGES, form_str(ERR_NOPRIVILEGES));
|
||||
return 0;
|
||||
}
|
||||
|
||||
int
|
||||
void
|
||||
m_unregistered(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
/* bit of a hack.
|
||||
|
@ -587,19 +586,16 @@ m_unregistered(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *
|
|||
sendto_one(client_p, form_str(ERR_NOTREGISTERED), me.name);
|
||||
client_p->localClient->number_of_nick_changes++;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int
|
||||
void
|
||||
m_registered(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
sendto_one(client_p, form_str(ERR_ALREADYREGISTRED), me.name, source_p->name);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int
|
||||
void
|
||||
m_ignore(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
return 0;
|
||||
/* Does nothing */
|
||||
}
|
||||
|
|
|
@ -48,8 +48,8 @@
|
|||
|
||||
static const char ban_desc[] = "Provides the TS6 BAN command for propagating network-wide bans";
|
||||
|
||||
static int m_ban(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[]);
|
||||
static int ms_ban(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[]);
|
||||
static void m_ban(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[]);
|
||||
static void ms_ban(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[]);
|
||||
|
||||
struct Message ban_msgtab = {
|
||||
"BAN", 0, 0, 0, 0,
|
||||
|
@ -60,14 +60,13 @@ mapi_clist_av1 ban_clist[] = { &ban_msgtab, NULL };
|
|||
|
||||
DECLARE_MODULE_AV2(ban, NULL, NULL, ban_clist, NULL, NULL, NULL, NULL, ban_desc);
|
||||
|
||||
static int
|
||||
static void
|
||||
m_ban(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
sendto_one_notice(source_p, ":The BAN command is not user-accessible.");
|
||||
sendto_one_notice(source_p, ":To ban a user from a channel, see /QUOTE HELP CMODE");
|
||||
if (IsOper(source_p))
|
||||
sendto_one_notice(source_p, ":To ban a user from a server or from the network, see /QUOTE HELP KLINE");
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* ms_ban()
|
||||
|
@ -81,7 +80,7 @@ m_ban(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p,
|
|||
* parv[7] - oper or *
|
||||
* parv[8] - reason (possibly with |operreason)
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
ms_ban(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
rb_dlink_node *ptr;
|
||||
|
@ -99,7 +98,7 @@ ms_ban(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p
|
|||
sendto_realops_snomask(SNO_GENERAL, L_NETWIDE,
|
||||
"Unknown BAN type %s from %s",
|
||||
parv[1], source_p->name);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
switch (parv[1][0])
|
||||
{
|
||||
|
@ -120,7 +119,7 @@ ms_ban(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p
|
|||
sendto_realops_snomask(SNO_GENERAL, L_NETWIDE,
|
||||
"Unknown BAN type %s from %s",
|
||||
parv[1], source_p->name);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
created = atol(parv[4]);
|
||||
hold = created + atoi(parv[5]);
|
||||
|
@ -145,7 +144,7 @@ ms_ban(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p
|
|||
aconf->user ? aconf->user : "",
|
||||
aconf->user ? "@" : "",
|
||||
aconf->host);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
/* act indicates if something happened (from the oper's
|
||||
* point of view). This is the case if the ban was
|
||||
|
@ -158,7 +157,7 @@ ms_ban(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p
|
|||
aconf->lifetime = lifetime;
|
||||
/* already expired, hmm */
|
||||
if (aconf->lifetime <= now)
|
||||
return 0;
|
||||
return;
|
||||
/* Deactivate, it will be reactivated later if appropriate. */
|
||||
deactivate_conf(aconf, ptr, now);
|
||||
rb_free(aconf->user);
|
||||
|
@ -336,5 +335,4 @@ ms_ban(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p
|
|||
parv[6],
|
||||
parv[7],
|
||||
parv[parc - 1]);
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -38,9 +38,9 @@
|
|||
|
||||
static const char die_desc[] = "Provides the DIE command to allow an operator to shutdown a server";
|
||||
|
||||
static int mo_die(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static int me_die(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static int do_die(struct Client *, const char *);
|
||||
static void mo_die(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void me_die(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void do_die(struct Client *, const char *);
|
||||
|
||||
static struct Message die_msgtab = {
|
||||
"DIE", 0, 0, 0, 0,
|
||||
|
@ -54,19 +54,19 @@ DECLARE_MODULE_AV2(die, NULL, NULL, die_clist, NULL, NULL, NULL, NULL, die_desc)
|
|||
/*
|
||||
* mo_die - DIE command handler
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
mo_die(struct MsgBuf *msgbuf_p __unused, struct Client *client_p __unused, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
if(!IsOperDie(source_p))
|
||||
{
|
||||
sendto_one(source_p, form_str(ERR_NOPRIVS), me.name, source_p->name, "die");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if(parc < 2 || EmptyString(parv[1]))
|
||||
{
|
||||
sendto_one_notice(source_p, ":Need server name /die %s", me.name);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if(parc > 2)
|
||||
|
@ -76,42 +76,40 @@ mo_die(struct MsgBuf *msgbuf_p __unused, struct Client *client_p __unused, struc
|
|||
if (!server_p)
|
||||
{
|
||||
sendto_one_numeric(source_p, ERR_NOSUCHSERVER, form_str(ERR_NOSUCHSERVER), parv[2]);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if (!IsMe(server_p))
|
||||
{
|
||||
sendto_one(server_p, ":%s ENCAP %s DIE %s", source_p->name, parv[2], parv[1]);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
return do_die(source_p, parv[1]);
|
||||
do_die(source_p, parv[1]);
|
||||
}
|
||||
|
||||
static int
|
||||
static void
|
||||
me_die(struct MsgBuf *msgbuf_p __unused, struct Client *client_p __unused, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
if(!find_shared_conf(source_p->username, source_p->host, source_p->servptr->name, SHARED_DIE))
|
||||
{
|
||||
sendto_one_notice(source_p, ":*** You do not have an appropriate shared block to "
|
||||
"remotely shut down this server.");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
return do_die(source_p, parv[1]);
|
||||
do_die(source_p, parv[1]);
|
||||
}
|
||||
|
||||
static int
|
||||
static void
|
||||
do_die(struct Client *source_p, const char *servername)
|
||||
{
|
||||
if(irccmp(servername, me.name))
|
||||
{
|
||||
sendto_one_notice(source_p, ":Mismatch on /die %s", me.name);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
ircd_shutdown(get_client_name(source_p, HIDE_IP));
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -36,8 +36,8 @@
|
|||
static const char error_desc[] =
|
||||
"Provides the ERROR command for clients and servers";
|
||||
|
||||
static int m_error(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static int ms_error(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void m_error(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void ms_error(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
|
||||
struct Message error_msgtab = {
|
||||
"ERROR", 0, 0, 0, 0,
|
||||
|
@ -51,34 +51,34 @@ mapi_clist_av1 error_clist[] = {
|
|||
DECLARE_MODULE_AV2(error, NULL, NULL, error_clist, NULL, NULL, NULL, NULL, error_desc);
|
||||
|
||||
/* Determine whether an ERROR message is safe to show (no IP address in it) */
|
||||
static int
|
||||
static bool
|
||||
is_safe_error(const char *message)
|
||||
{
|
||||
char prefix2[100];
|
||||
const char *p;
|
||||
|
||||
if (!strncmp(message, "Closing Link: 127.0.0.1 (", 25))
|
||||
return 1;
|
||||
return true;
|
||||
snprintf(prefix2, sizeof prefix2,
|
||||
"Closing Link: 127.0.0.1 %s (", me.name);
|
||||
if (!strncmp(message, prefix2, strlen(prefix2)))
|
||||
return 1;
|
||||
return true;
|
||||
if (!strncmp(message, "Restart by ", 11))
|
||||
return 1;
|
||||
return true;
|
||||
if (!strncmp(message, "Terminated by ", 14))
|
||||
return 1;
|
||||
return true;
|
||||
|
||||
if (!ircncmp(message, "Closing Link", 12))
|
||||
return 0;
|
||||
return false;
|
||||
if (strchr(message, '['))
|
||||
return 0;
|
||||
return false;
|
||||
p = strchr(message, '.');
|
||||
if (p != NULL && p[1] != '\0')
|
||||
return 0;
|
||||
return false;
|
||||
if (strchr(message, ':'))
|
||||
return 0;
|
||||
return false;
|
||||
|
||||
return 1;
|
||||
return true;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -88,7 +88,7 @@ is_safe_error(const char *message)
|
|||
*
|
||||
* parv[*] = parameters
|
||||
*/
|
||||
int
|
||||
static void
|
||||
m_error(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
const char *para;
|
||||
|
@ -117,11 +117,9 @@ m_error(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
}
|
||||
|
||||
exit_client(client_p, source_p, source_p, "ERROR");
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
static void
|
||||
ms_error(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
const char *para;
|
||||
|
@ -135,7 +133,7 @@ ms_error(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
if(is_safe_error(para))
|
||||
hideit = 0;
|
||||
if(hideit == 2)
|
||||
return 0;
|
||||
return;
|
||||
|
||||
if(client_p == source_p)
|
||||
{
|
||||
|
@ -147,6 +145,4 @@ ms_error(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
sendto_realops_snomask(SNO_GENERAL, hideit ? L_ADMIN : L_ALL, "ERROR :from %s via %s -- %s",
|
||||
source_p->name, client_p->name, para);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -44,9 +44,9 @@
|
|||
|
||||
static const char join_desc[] = "Provides the JOIN and TS6 SJOIN commands to facilitate joining and creating channels";
|
||||
|
||||
static int m_join(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static int ms_join(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static int ms_sjoin(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void m_join(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void ms_join(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void ms_sjoin(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
|
||||
static int h_can_create_channel;
|
||||
static int h_channel_join;
|
||||
|
@ -72,7 +72,7 @@ mapi_hlist_av1 join_hlist[] = {
|
|||
DECLARE_MODULE_AV2(join, NULL, NULL, join_clist, join_hlist, NULL, NULL, NULL, join_desc);
|
||||
|
||||
static void do_join_0(struct Client *client_p, struct Client *source_p);
|
||||
static int check_channel_name_loc(struct Client *source_p, const char *name);
|
||||
static bool check_channel_name_loc(struct Client *source_p, const char *name);
|
||||
static void send_join_error(struct Client *source_p, int numeric, const char *name);
|
||||
|
||||
static void set_final_mode(struct Mode *mode, struct Mode *oldmode);
|
||||
|
@ -138,7 +138,7 @@ check_forward(struct Client *source_p, struct Channel *chptr,
|
|||
* parv[1] = channel
|
||||
* parv[2] = channel password (key)
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
m_join(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
static char jbuf[BUFSIZE];
|
||||
|
@ -380,8 +380,6 @@ m_join(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p
|
|||
hook_info.key = key;
|
||||
call_hook(h_channel_join, &hook_info);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -391,7 +389,7 @@ m_join(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p
|
|||
* parv[3] = "+", formerly channel modes but now unused
|
||||
* alternatively, a single "0" parameter parts all channels
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
ms_join(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
struct Channel *chptr;
|
||||
|
@ -399,32 +397,32 @@ ms_join(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
time_t oldts;
|
||||
time_t newts;
|
||||
int isnew;
|
||||
int keep_our_modes = YES;
|
||||
bool keep_our_modes = true;
|
||||
rb_dlink_node *ptr, *next_ptr;
|
||||
|
||||
/* special case for join 0 */
|
||||
if((parv[1][0] == '0') && (parv[1][1] == '\0') && parc == 2)
|
||||
{
|
||||
do_join_0(client_p, source_p);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if(parc < 4)
|
||||
return 0;
|
||||
return;
|
||||
|
||||
if(!IsChannelName(parv[2]) || !check_channel_name(parv[2]))
|
||||
return 0;
|
||||
return;
|
||||
|
||||
/* joins for local channels cant happen. */
|
||||
if(parv[2][0] == '&')
|
||||
return 0;
|
||||
return;
|
||||
|
||||
mbuf = modebuf;
|
||||
mode.key[0] = mode.forward[0] = '\0';
|
||||
mode.mode = mode.limit = mode.join_num = mode.join_time = 0;
|
||||
|
||||
if((chptr = get_or_create_channel(source_p, parv[2], &isnew)) == NULL)
|
||||
return 0;
|
||||
return;
|
||||
|
||||
newts = atol(parv[1]);
|
||||
oldts = chptr->channelts;
|
||||
|
@ -458,7 +456,7 @@ ms_join(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
;
|
||||
else if(newts < oldts)
|
||||
{
|
||||
keep_our_modes = NO;
|
||||
keep_our_modes = false;
|
||||
chptr->channelts = newts;
|
||||
}
|
||||
|
||||
|
@ -508,10 +506,9 @@ ms_join(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
sendto_server(client_p, chptr, CAP_TS6, NOCAPS,
|
||||
":%s JOIN %ld %s +",
|
||||
source_p->id, (long) chptr->channelts, chptr->chname);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
static void
|
||||
ms_sjoin(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
static char buf_uid[BUFSIZE];
|
||||
|
@ -523,8 +520,8 @@ ms_sjoin(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
static struct Mode mode, *oldmode;
|
||||
const char *modes;
|
||||
int args = 0;
|
||||
int keep_our_modes = 1;
|
||||
int keep_new_modes = 1;
|
||||
bool keep_our_modes = true;
|
||||
bool keep_new_modes = true;
|
||||
int fl;
|
||||
int isnew;
|
||||
int mlen_uid;
|
||||
|
@ -539,14 +536,14 @@ ms_sjoin(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
rb_dlink_node *ptr, *next_ptr;
|
||||
|
||||
if(parc < 5)
|
||||
return 0;
|
||||
return;
|
||||
|
||||
if(!IsChannelName(parv[2]) || !check_channel_name(parv[2]))
|
||||
return 0;
|
||||
return;
|
||||
|
||||
/* SJOIN's for local channels can't happen. */
|
||||
if(*parv[2] == '&')
|
||||
return 0;
|
||||
return;
|
||||
|
||||
modebuf[0] = parabuf[0] = mode.key[0] = mode.forward[0] = '\0';
|
||||
pargs = mode.mode = mode.limit = mode.join_num = mode.join_time = 0;
|
||||
|
@ -569,7 +566,7 @@ ms_sjoin(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
rb_strlcpy(mode.forward, parv[4 + args], sizeof(mode.forward));
|
||||
args++;
|
||||
if(parc < 5 + args)
|
||||
return 0;
|
||||
return;
|
||||
break;
|
||||
case 'j':
|
||||
sscanf(parv[4 + args], "%d:%d", &joinc, ×lice);
|
||||
|
@ -577,19 +574,19 @@ ms_sjoin(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
mode.join_num = joinc;
|
||||
mode.join_time = timeslice;
|
||||
if(parc < 5 + args)
|
||||
return 0;
|
||||
return;
|
||||
break;
|
||||
case 'k':
|
||||
rb_strlcpy(mode.key, parv[4 + args], sizeof(mode.key));
|
||||
args++;
|
||||
if(parc < 5 + args)
|
||||
return 0;
|
||||
return;
|
||||
break;
|
||||
case 'l':
|
||||
mode.limit = atoi(parv[4 + args]);
|
||||
args++;
|
||||
if(parc < 5 + args)
|
||||
return 0;
|
||||
return;
|
||||
break;
|
||||
default:
|
||||
if(chmode_flags[(int) *s] != 0)
|
||||
|
@ -611,7 +608,7 @@ ms_sjoin(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
s = "";
|
||||
|
||||
if((chptr = get_or_create_channel(source_p, parv[2], &isnew)) == NULL)
|
||||
return 0; /* channel name too long? */
|
||||
return; /* channel name too long? */
|
||||
|
||||
|
||||
oldts = chptr->channelts;
|
||||
|
@ -684,16 +681,16 @@ ms_sjoin(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
{
|
||||
/* Channel was emptied, create a new one */
|
||||
if((chptr = get_or_create_channel(source_p, parv[2], &isnew)) == NULL)
|
||||
return 0; /* oops! */
|
||||
return; /* oops! */
|
||||
|
||||
oldmode = &chptr->mode;
|
||||
}
|
||||
}
|
||||
keep_our_modes = NO;
|
||||
keep_our_modes = false;
|
||||
chptr->channelts = newts;
|
||||
}
|
||||
else
|
||||
keep_new_modes = NO;
|
||||
keep_new_modes = false;
|
||||
|
||||
if(!keep_new_modes)
|
||||
mode = *oldmode;
|
||||
|
@ -936,7 +933,7 @@ ms_sjoin(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
{
|
||||
destroy_channel(chptr);
|
||||
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
/* Keep the colon if we're sending an SJOIN without nicks -- jilles */
|
||||
|
@ -946,8 +943,6 @@ ms_sjoin(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
}
|
||||
|
||||
sendto_server(client_p->from, NULL, CAP_TS6, NOCAPS, "%s", buf_uid);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -986,21 +981,21 @@ do_join_0(struct Client *client_p, struct Client *source_p)
|
|||
}
|
||||
}
|
||||
|
||||
static int
|
||||
static bool
|
||||
check_channel_name_loc(struct Client *source_p, const char *name)
|
||||
{
|
||||
const char *p;
|
||||
|
||||
s_assert(name != NULL);
|
||||
if(EmptyString(name))
|
||||
return 0;
|
||||
return false;
|
||||
|
||||
if(ConfigFileEntry.disable_fake_channels && !IsOper(source_p))
|
||||
{
|
||||
for(p = name; *p; ++p)
|
||||
{
|
||||
if(!IsChanChar(*p) || IsFakeChanChar(*p))
|
||||
return 0;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
|
@ -1008,7 +1003,7 @@ check_channel_name_loc(struct Client *source_p, const char *name)
|
|||
for(p = name; *p; ++p)
|
||||
{
|
||||
if(!IsChanChar(*p))
|
||||
return 0;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1016,10 +1011,10 @@ check_channel_name_loc(struct Client *source_p, const char *name)
|
|||
{
|
||||
for(p = name; *p; ++p)
|
||||
if(*p < 33 || *p > 126)
|
||||
return 0;
|
||||
return false;
|
||||
}
|
||||
|
||||
return 1;
|
||||
return true;
|
||||
}
|
||||
|
||||
/* send_join_error()
|
||||
|
|
|
@ -39,7 +39,7 @@
|
|||
|
||||
static const char kick_desc[] = "Provides the KICK command to remove a user from a channel";
|
||||
|
||||
static int m_kick(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void m_kick(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
#define mg_kick { m_kick, 3 }
|
||||
|
||||
struct Message kick_msgtab = {
|
||||
|
@ -57,7 +57,7 @@ DECLARE_MODULE_AV2(kick, NULL, NULL, kick_clist, NULL, NULL, NULL, NULL, kick_de
|
|||
** parv[2] = client to kick
|
||||
** parv[3] = kick comment
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
m_kick(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
struct membership *msptr;
|
||||
|
@ -83,7 +83,7 @@ m_kick(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p
|
|||
if(chptr == NULL)
|
||||
{
|
||||
sendto_one_numeric(source_p, ERR_NOSUCHCHANNEL, form_str(ERR_NOSUCHCHANNEL), name);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if(!IsServer(source_p))
|
||||
|
@ -94,7 +94,7 @@ m_kick(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p
|
|||
{
|
||||
sendto_one_numeric(source_p, ERR_NOTONCHANNEL,
|
||||
form_str(ERR_NOTONCHANNEL), name);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if(get_channel_access(source_p, chptr, msptr, MODE_ADD, NULL) < CHFL_CHANOP)
|
||||
|
@ -103,7 +103,7 @@ m_kick(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p
|
|||
{
|
||||
sendto_one(source_p, form_str(ERR_CHANOPRIVSNEEDED),
|
||||
me.name, source_p->name, name);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
/* If its a TS 0 channel, do it the old way */
|
||||
|
@ -124,7 +124,7 @@ m_kick(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p
|
|||
|
||||
if(!(who = find_chasing(source_p, user, &chasing)))
|
||||
{
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
msptr = find_channel_membership(chptr, who);
|
||||
|
@ -135,7 +135,7 @@ m_kick(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p
|
|||
{
|
||||
sendto_one(source_p, form_str(ERR_ISCHANSERVICE),
|
||||
me.name, source_p->name, who->name, chptr->chname);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if(MyClient(source_p))
|
||||
|
@ -152,7 +152,7 @@ m_kick(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p
|
|||
call_hook(h_can_kick, &hookdata);
|
||||
|
||||
if (!hookdata.approved)
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
comment = LOCAL_COPY((EmptyString(parv[3])) ? who->name : parv[3]);
|
||||
|
@ -183,6 +183,4 @@ m_kick(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p
|
|||
else if (MyClient(source_p))
|
||||
sendto_one_numeric(source_p, ERR_USERNOTINCHANNEL,
|
||||
form_str(ERR_USERNOTINCHANNEL), user, name);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -43,8 +43,8 @@ static const char kill_desc[] = "Provides the KILL command to remove a user from
|
|||
static int h_can_kill;
|
||||
static char buf[BUFSIZE];
|
||||
|
||||
static int ms_kill(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static int mo_kill(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void ms_kill(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void mo_kill(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void relay_kill(struct Client *, struct Client *, struct Client *,
|
||||
const char *, const char *);
|
||||
|
||||
|
@ -67,7 +67,7 @@ DECLARE_MODULE_AV2(kill, NULL, NULL, kill_clist, kill_hlist, NULL, NULL, NULL, k
|
|||
** parv[1] = kill victim
|
||||
** parv[2] = kill path
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
mo_kill(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
struct Client *target_p;
|
||||
|
@ -81,7 +81,7 @@ mo_kill(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
if(!IsOperLocalKill(source_p))
|
||||
{
|
||||
sendto_one(source_p, form_str(ERR_NOPRIVS), me.name, source_p->name, "local_kill");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if(!EmptyString(parv[2]))
|
||||
|
@ -109,7 +109,7 @@ mo_kill(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
else
|
||||
sendto_one_numeric(source_p, ERR_NOSUCHNICK,
|
||||
form_str(ERR_NOSUCHNICK), user);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
sendto_one_notice(source_p, ":KILL changed from %s to %s", user, target_p->name);
|
||||
}
|
||||
|
@ -119,7 +119,7 @@ mo_kill(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
sendto_one_notice(source_p, ":Nick %s is not on your server "
|
||||
"and you do not have the global_kill flag",
|
||||
target_p->name);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
/* Last chance to stop the kill */
|
||||
|
@ -130,7 +130,7 @@ mo_kill(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
|
||||
if (moduledata.approved == 0)
|
||||
/* The callee should have sent a message. */
|
||||
return 0;
|
||||
return;
|
||||
|
||||
if(MyConnect(target_p))
|
||||
sendto_one(target_p, ":%s!%s@%s KILL %s :%s",
|
||||
|
@ -168,8 +168,6 @@ mo_kill(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
sprintf(buf, "Killed (%s (%s))", source_p->name, reason);
|
||||
|
||||
exit_client(client_p, target_p, source_p, buf);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -177,7 +175,7 @@ mo_kill(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
* parv[1] = kill victim
|
||||
* parv[2] = kill path and reason
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
ms_kill(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
struct Client *target_p;
|
||||
|
@ -225,7 +223,7 @@ ms_kill(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
{
|
||||
sendto_one_numeric(source_p, ERR_NOSUCHNICK,
|
||||
form_str(ERR_NOSUCHNICK), IsDigit(*user) ? "*" : user);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
sendto_one_notice(source_p, ":KILL changed from %s to %s", user, target_p->name);
|
||||
}
|
||||
|
@ -233,7 +231,7 @@ ms_kill(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
if(IsServer(target_p) || IsMe(target_p))
|
||||
{
|
||||
sendto_one_numeric(source_p, ERR_CANTKILLSERVER, form_str(ERR_CANTKILLSERVER));
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if(MyConnect(target_p))
|
||||
|
@ -287,8 +285,6 @@ ms_kill(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
sprintf(buf, "Killed (%s %s)", source_p->name, reason);
|
||||
|
||||
exit_client(client_p, target_p, source_p, buf);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
|
@ -47,9 +47,9 @@
|
|||
static const char message_desc[] =
|
||||
"Provides the PRIVMSG and NOTICE commands to send messages to users and channels";
|
||||
|
||||
static int m_message(enum message_type, struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static int m_privmsg(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static int m_notice(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void m_message(enum message_type, struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void m_privmsg(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void m_notice(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
|
||||
static void expire_tgchange(void *unused);
|
||||
static struct ev_entry *expire_tgchange_event;
|
||||
|
@ -92,7 +92,7 @@ static int build_target_list(enum message_type msgtype,
|
|||
struct Client *client_p,
|
||||
struct Client *source_p, const char *nicks_channels, const char *text);
|
||||
|
||||
static int flood_attack_client(enum message_type msgtype, struct Client *source_p, struct Client *target_p);
|
||||
static bool flood_attack_client(enum message_type msgtype, struct Client *source_p, struct Client *target_p);
|
||||
|
||||
/* Fifteen seconds should be plenty for a client to reply a ctcp */
|
||||
#define LARGE_CTCP_TIME 15
|
||||
|
@ -106,7 +106,7 @@ static int flood_attack_client(enum message_type msgtype, struct Client *source_
|
|||
static struct entity targets[512];
|
||||
static int ntargets = 0;
|
||||
|
||||
static int duplicate_ptr(void *);
|
||||
static bool duplicate_ptr(void *);
|
||||
|
||||
static void msg_channel(enum message_type msgtype,
|
||||
struct Client *client_p,
|
||||
|
@ -152,16 +152,16 @@ const char *cmdname[MESSAGE_TYPE_COUNT] = {
|
|||
[MESSAGE_TYPE_NOTICE] = "NOTICE",
|
||||
};
|
||||
|
||||
static int
|
||||
static void
|
||||
m_privmsg(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
return m_message(MESSAGE_TYPE_PRIVMSG, msgbuf_p, client_p, source_p, parc, parv);
|
||||
m_message(MESSAGE_TYPE_PRIVMSG, msgbuf_p, client_p, source_p, parc, parv);
|
||||
}
|
||||
|
||||
static int
|
||||
static void
|
||||
m_notice(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
return m_message(MESSAGE_TYPE_NOTICE, msgbuf_p, client_p, source_p, parc, parv);
|
||||
m_message(MESSAGE_TYPE_NOTICE, msgbuf_p, client_p, source_p, parc, parv);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -170,7 +170,7 @@ m_notice(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
* - pointer to source_p
|
||||
* - pointer to channel
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
m_message(enum message_type msgtype, struct MsgBuf *msgbuf_p,
|
||||
struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
|
@ -181,14 +181,14 @@ m_message(enum message_type msgtype, struct MsgBuf *msgbuf_p,
|
|||
if(msgtype != MESSAGE_TYPE_NOTICE)
|
||||
sendto_one(source_p, form_str(ERR_NORECIPIENT), me.name,
|
||||
source_p->name, cmdname[msgtype]);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if(parc < 3 || EmptyString(parv[2]))
|
||||
{
|
||||
if(msgtype != MESSAGE_TYPE_NOTICE)
|
||||
sendto_one(source_p, form_str(ERR_NOTEXTTOSEND), me.name, source_p->name);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
/* Finish the flood grace period if theyre not messaging themselves
|
||||
|
@ -199,7 +199,7 @@ m_message(enum message_type msgtype, struct MsgBuf *msgbuf_p,
|
|||
|
||||
if(build_target_list(msgtype, client_p, source_p, parv[1], parv[2]) < 0)
|
||||
{
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
for(i = 0; i < ntargets; i++)
|
||||
|
@ -228,8 +228,6 @@ m_message(enum message_type msgtype, struct MsgBuf *msgbuf_p,
|
|||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -447,18 +445,18 @@ build_target_list(enum message_type msgtype, struct Client *client_p,
|
|||
* inputs - pointer to check
|
||||
* - pointer to table of entities
|
||||
* - number of valid entities so far
|
||||
* output - YES if duplicate pointer in table, NO if not.
|
||||
* output - true if duplicate pointer in table, false if not.
|
||||
* note, this does the canonize using pointers
|
||||
* side effects - NONE
|
||||
*/
|
||||
static int
|
||||
static bool
|
||||
duplicate_ptr(void *ptr)
|
||||
{
|
||||
int i;
|
||||
for(i = 0; i < ntargets; i++)
|
||||
if(targets[i].ptr == ptr)
|
||||
return YES;
|
||||
return NO;
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -879,13 +877,13 @@ msg_client(enum message_type msgtype,
|
|||
/*
|
||||
* flood_attack_client
|
||||
* inputs - flag 0 if PRIVMSG 1 if NOTICE. RFC
|
||||
* say NOTICE must not auto reply
|
||||
* says NOTICE must not auto reply
|
||||
* - pointer to source Client
|
||||
* - pointer to target Client
|
||||
* output - 1 if target is under flood attack
|
||||
* output - true if target is under flood attack
|
||||
* side effects - check for flood attack on target target_p
|
||||
*/
|
||||
static int
|
||||
static bool
|
||||
flood_attack_client(enum message_type msgtype, struct Client *source_p, struct Client *target_p)
|
||||
{
|
||||
int delta;
|
||||
|
@ -927,13 +925,13 @@ flood_attack_client(enum message_type msgtype, struct Client *source_p, struct C
|
|||
sendto_one(source_p,
|
||||
":%s NOTICE %s :*** Message to %s throttled due to flooding",
|
||||
me.name, source_p->name, target_p->name);
|
||||
return 1;
|
||||
return true;
|
||||
}
|
||||
else
|
||||
target_p->received_number_of_privmsgs++;
|
||||
}
|
||||
|
||||
return 0;
|
||||
return false;
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -43,11 +43,11 @@
|
|||
static const char mode_desc[] =
|
||||
"Provides the MODE and MLOCK client and server commands, and TS6 server-to-server TMODE and BMASK commands";
|
||||
|
||||
static int m_mode(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static int ms_mode(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static int ms_tmode(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static int ms_mlock(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static int ms_bmask(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void m_mode(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void ms_mode(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void ms_tmode(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void ms_mlock(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void ms_bmask(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
|
||||
struct Message mode_msgtab = {
|
||||
"MODE", 0, 0, 0, 0,
|
||||
|
@ -74,7 +74,7 @@ DECLARE_MODULE_AV2(mode, NULL, NULL, mode_clist, NULL, NULL, NULL, NULL, mode_de
|
|||
* m_mode - MODE command handler
|
||||
* parv[1] - channel
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
m_mode(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
struct Channel *chptr = NULL;
|
||||
|
@ -94,7 +94,7 @@ m_mode(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p
|
|||
{
|
||||
sendto_one(source_p, form_str(ERR_NEEDMOREPARAMS),
|
||||
me.name, source_p->name, "MODE");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -103,13 +103,13 @@ m_mode(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p
|
|||
{
|
||||
/* if here, it has to be a non-channel name */
|
||||
user_mode(client_p, source_p, parc, parv);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if(!check_channel_name(dest))
|
||||
{
|
||||
sendto_one_numeric(source_p, ERR_BADCHANNAME, form_str(ERR_BADCHANNAME), parv[1]);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
chptr = find_channel(dest);
|
||||
|
@ -118,7 +118,7 @@ m_mode(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p
|
|||
{
|
||||
sendto_one_numeric(source_p, ERR_NOSUCHCHANNEL,
|
||||
form_str(ERR_NOSUCHCHANNEL), parv[1]);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
/* Now know the channel exists */
|
||||
|
@ -147,11 +147,9 @@ m_mode(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p
|
|||
|
||||
set_channel_mode(client_p, source_p, chptr, msptr, parc - n, parv + n);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
static void
|
||||
ms_mode(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
struct Channel *chptr;
|
||||
|
@ -162,15 +160,13 @@ ms_mode(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
{
|
||||
sendto_one_numeric(source_p, ERR_NOSUCHCHANNEL,
|
||||
form_str(ERR_NOSUCHCHANNEL), parv[1]);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
set_channel_mode(client_p, source_p, chptr, NULL, parc - 2, parv + 2);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
static void
|
||||
ms_tmode(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
struct Channel *chptr = NULL;
|
||||
|
@ -180,7 +176,7 @@ ms_tmode(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
if(!IsChanPrefix(parv[2][0]) || !check_channel_name(parv[2]))
|
||||
{
|
||||
sendto_one_numeric(source_p, ERR_BADCHANNAME, form_str(ERR_BADCHANNAME), parv[2]);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
chptr = find_channel(parv[2]);
|
||||
|
@ -189,12 +185,12 @@ ms_tmode(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
{
|
||||
sendto_one_numeric(source_p, ERR_NOSUCHCHANNEL,
|
||||
form_str(ERR_NOSUCHCHANNEL), parv[2]);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
/* TS is higher, drop it. */
|
||||
if(atol(parv[1]) > chptr->channelts)
|
||||
return 0;
|
||||
return;
|
||||
|
||||
if(IsServer(source_p))
|
||||
{
|
||||
|
@ -206,11 +202,9 @@ ms_tmode(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
|
||||
set_channel_mode(client_p, source_p, chptr, msptr, parc - 3, parv + 3);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
static void
|
||||
ms_mlock(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
struct Channel *chptr = NULL;
|
||||
|
@ -219,7 +213,7 @@ ms_mlock(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
if(!IsChanPrefix(parv[2][0]) || !check_channel_name(parv[2]))
|
||||
{
|
||||
sendto_one_numeric(source_p, ERR_BADCHANNAME, form_str(ERR_BADCHANNAME), parv[2]);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
chptr = find_channel(parv[2]);
|
||||
|
@ -228,17 +222,15 @@ ms_mlock(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
{
|
||||
sendto_one_numeric(source_p, ERR_NOSUCHCHANNEL,
|
||||
form_str(ERR_NOSUCHCHANNEL), parv[2]);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
/* TS is higher, drop it. */
|
||||
if(atol(parv[1]) > chptr->channelts)
|
||||
return 0;
|
||||
return;
|
||||
|
||||
if(IsServer(source_p))
|
||||
set_channel_mlock(client_p, source_p, chptr, parv[3], true);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -270,7 +262,7 @@ possibly_remove_lower_forward(struct Client *fakesource_p, int mems,
|
|||
}
|
||||
}
|
||||
|
||||
static int
|
||||
static void
|
||||
ms_bmask(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
static char modebuf[BUFSIZE];
|
||||
|
@ -292,14 +284,14 @@ ms_bmask(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
struct Client *fakesource_p;
|
||||
|
||||
if(!IsChanPrefix(parv[2][0]) || !check_channel_name(parv[2]))
|
||||
return 0;
|
||||
return;
|
||||
|
||||
if((chptr = find_channel(parv[2])) == NULL)
|
||||
return 0;
|
||||
return;
|
||||
|
||||
/* TS is higher, drop it. */
|
||||
if(atol(parv[1]) > chptr->channelts)
|
||||
return 0;
|
||||
return;
|
||||
|
||||
switch (parv[3][0])
|
||||
{
|
||||
|
@ -331,7 +323,7 @@ ms_bmask(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
|
||||
/* maybe we should just blindly propagate this? */
|
||||
default:
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
parabuf[0] = '\0';
|
||||
|
@ -432,5 +424,4 @@ ms_bmask(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
|
||||
sendto_server(client_p, chptr, CAP_TS6 | needcap, NOCAPS, ":%s BMASK %ld %s %s :%s",
|
||||
source_p->id, (long) chptr->channelts, chptr->chname, parv[3], parv[4]);
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -54,16 +54,31 @@
|
|||
*/
|
||||
#define SAVE_NICKTS 100
|
||||
|
||||
static int mr_nick(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static int m_nick(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static int mc_nick(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static int ms_nick(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static int ms_uid(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static int ms_euid(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static int ms_save(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static int can_save(struct Client *);
|
||||
static void mr_nick(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void m_nick(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void mc_nick(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void ms_nick(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void ms_uid(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void ms_euid(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void ms_save(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static bool can_save(struct Client *);
|
||||
static void save_user(struct Client *, struct Client *, struct Client *);
|
||||
static void bad_nickname(struct Client *, const char *);
|
||||
static void change_remote_nick(struct Client *, struct Client *, time_t,
|
||||
const char *, int);
|
||||
static bool clean_username(const char *);
|
||||
static bool clean_host(const char *);
|
||||
static bool clean_uid(const char *uid, const char *sid);
|
||||
|
||||
static void set_initial_nick(struct Client *client_p, struct Client *source_p, char *nick);
|
||||
static void change_local_nick(struct Client *client_p, struct Client *source_p, char *nick, int);
|
||||
static void register_client(struct Client *client_p, struct Client *server,
|
||||
const char *nick, time_t newts, int parc, const char *parv[]);
|
||||
static void perform_nick_collides(struct Client *, struct Client *,
|
||||
struct Client *, int, const char **,
|
||||
time_t, const char *, const char *);
|
||||
static void perform_nickchange_collides(struct Client *, struct Client *,
|
||||
struct Client *, int, const char **, time_t, const char *);
|
||||
|
||||
struct Message nick_msgtab = {
|
||||
"NICK", 0, 0, 0, 0,
|
||||
|
@ -90,28 +105,10 @@ static const char nick_desc[] =
|
|||
|
||||
DECLARE_MODULE_AV2(nick, NULL, NULL, nick_clist, NULL, NULL, NULL, NULL, nick_desc);
|
||||
|
||||
static int change_remote_nick(struct Client *, struct Client *, time_t,
|
||||
const char *, int);
|
||||
|
||||
static int clean_username(const char *);
|
||||
static int clean_host(const char *);
|
||||
static int clean_uid(const char *uid, const char *sid);
|
||||
|
||||
static void set_initial_nick(struct Client *client_p, struct Client *source_p, char *nick);
|
||||
static void change_local_nick(struct Client *client_p, struct Client *source_p, char *nick, int);
|
||||
static int register_client(struct Client *client_p, struct Client *server,
|
||||
const char *nick, time_t newts, int parc, const char *parv[]);
|
||||
|
||||
static int perform_nick_collides(struct Client *, struct Client *,
|
||||
struct Client *, int, const char **,
|
||||
time_t, const char *, const char *);
|
||||
static int perform_nickchange_collides(struct Client *, struct Client *,
|
||||
struct Client *, int, const char **, time_t, const char *);
|
||||
|
||||
/* mr_nick()
|
||||
* parv[1] = nickname
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
mr_nick(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
struct Client *target_p;
|
||||
|
@ -120,14 +117,14 @@ mr_nick(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
if (strlen(client_p->id) == 3)
|
||||
{
|
||||
exit_client(client_p, client_p, client_p, "Mixing client and server protocol");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if(parc < 2 || EmptyString(parv[1]))
|
||||
{
|
||||
sendto_one(source_p, form_str(ERR_NONICKNAMEGIVEN),
|
||||
me.name, EmptyString(source_p->name) ? "*" : source_p->name);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
/* copy the nick and terminate it */
|
||||
|
@ -138,7 +135,7 @@ mr_nick(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
{
|
||||
sendto_one(source_p, form_str(ERR_ERRONEUSNICKNAME),
|
||||
me.name, EmptyString(source_p->name) ? "*" : source_p->name, parv[1]);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
/* check if the nick is resv'd */
|
||||
|
@ -146,14 +143,14 @@ mr_nick(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
{
|
||||
sendto_one(source_p, form_str(ERR_ERRONEUSNICKNAME),
|
||||
me.name, EmptyString(source_p->name) ? "*" : source_p->name, nick);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if(rb_dictionary_find(nd_dict, nick))
|
||||
{
|
||||
sendto_one(source_p, form_str(ERR_UNAVAILRESOURCE),
|
||||
me.name, EmptyString(source_p->name) ? "*" : source_p->name, nick);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if((target_p = find_named_client(nick)) == NULL)
|
||||
|
@ -162,14 +159,12 @@ mr_nick(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
strcpy(source_p->name, nick);
|
||||
else
|
||||
sendto_one(source_p, form_str(ERR_NICKNAMEINUSE), me.name, "*", nick);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* m_nick()
|
||||
* parv[1] = nickname
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
m_nick(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
struct Client *target_p;
|
||||
|
@ -178,7 +173,7 @@ m_nick(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p
|
|||
if(parc < 2 || EmptyString(parv[1]))
|
||||
{
|
||||
sendto_one(source_p, form_str(ERR_NONICKNAMEGIVEN), me.name, source_p->name);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
/* mark end of grace period, to prevent nickflooding */
|
||||
|
@ -192,20 +187,20 @@ m_nick(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p
|
|||
if(!clean_nick(nick, 1))
|
||||
{
|
||||
sendto_one(source_p, form_str(ERR_ERRONEUSNICKNAME), me.name, source_p->name, nick);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if(!IsExemptResv(source_p) && find_nick_resv(nick))
|
||||
{
|
||||
sendto_one(source_p, form_str(ERR_ERRONEUSNICKNAME), me.name, source_p->name, nick);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if(rb_dictionary_find(nd_dict, nick))
|
||||
{
|
||||
sendto_one(source_p, form_str(ERR_UNAVAILRESOURCE),
|
||||
me.name, EmptyString(source_p->name) ? "*" : source_p->name, nick);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if((target_p = find_named_client(nick)))
|
||||
|
@ -230,12 +225,10 @@ m_nick(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p
|
|||
else
|
||||
sendto_one(source_p, form_str(ERR_NICKNAMEINUSE), me.name, source_p->name, nick);
|
||||
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
else
|
||||
change_local_nick(client_p, source_p, nick, 1);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* mc_nick()
|
||||
|
@ -244,7 +237,7 @@ m_nick(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p
|
|||
* parv[1] = nickname
|
||||
* parv[2] = TS when nick change
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
mc_nick(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
struct Client *target_p;
|
||||
|
@ -254,7 +247,7 @@ mc_nick(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
if(!clean_nick(parv[1], 0))
|
||||
{
|
||||
bad_nickname(client_p, parv[1]);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
newts = atol(parv[2]);
|
||||
|
@ -280,11 +273,9 @@ mc_nick(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
else
|
||||
perform_nickchange_collides(source_p, client_p, target_p,
|
||||
parc, parv, newts, parv[1]);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
static void
|
||||
ms_nick(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
const char *nick, *server;
|
||||
|
@ -302,8 +293,6 @@ ms_nick(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
client_p->name, nick, server);
|
||||
|
||||
exit_client(client_p, client_p, &me, "TS5 nickname introduced");
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* ms_uid()
|
||||
|
@ -317,7 +306,7 @@ ms_nick(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
* parv[8] - UID
|
||||
* parv[9] - gecos
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
ms_uid(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
struct Client *target_p;
|
||||
|
@ -337,14 +326,14 @@ ms_uid(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p
|
|||
"Excess parameters (%d) to %s command, expecting %d",
|
||||
parc, "UID", 10);
|
||||
exit_client(client_p, client_p, client_p, squitreason);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
/* if nicks erroneous, or too long, kill */
|
||||
if(!clean_nick(parv[1], 0))
|
||||
{
|
||||
bad_nickname(client_p, parv[1]);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if(!clean_uid(parv[8], source_p->id))
|
||||
|
@ -353,7 +342,7 @@ ms_uid(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p
|
|||
"Invalid UID %s for nick %s on %s/%s",
|
||||
parv[8], parv[1], source_p->name, source_p->id);
|
||||
exit_client(client_p, client_p, client_p, squitreason);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if(!clean_username(parv[5]) || !clean_host(parv[6]))
|
||||
|
@ -363,7 +352,7 @@ ms_uid(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p
|
|||
"Bad user@host: %s@%s From: %s(via %s)",
|
||||
parv[5], parv[6], source_p->name, client_p->name);
|
||||
sendto_one(client_p, ":%s KILL %s :%s (Bad user@host)", me.id, parv[8], me.name);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
/* check length of clients gecos */
|
||||
|
@ -391,8 +380,6 @@ ms_uid(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p
|
|||
else
|
||||
perform_nick_collides(source_p, client_p, target_p, parc, parv,
|
||||
newts, parv[1], parv[8]);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* ms_euid()
|
||||
|
@ -408,7 +395,7 @@ ms_uid(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p
|
|||
* parv[10] - account
|
||||
* parv[11] - gecos
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
ms_euid(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
struct Client *target_p;
|
||||
|
@ -428,14 +415,14 @@ ms_euid(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
"Excess parameters (%d) to %s command, expecting %d",
|
||||
parc, "EUID", 12);
|
||||
exit_client(client_p, client_p, client_p, squitreason);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
/* if nicks erroneous, or too long, kill */
|
||||
if(!clean_nick(parv[1], 0))
|
||||
{
|
||||
bad_nickname(client_p, parv[1]);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if(!clean_uid(parv[8], source_p->id))
|
||||
|
@ -444,7 +431,7 @@ ms_euid(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
"Invalid UID %s for nick %s on %s/%s",
|
||||
parv[8], parv[1], source_p->name, source_p->id);
|
||||
exit_client(client_p, client_p, client_p, squitreason);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if(!clean_username(parv[5]) || !clean_host(parv[6]))
|
||||
|
@ -454,7 +441,7 @@ ms_euid(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
"Bad user@host: %s@%s From: %s(via %s)",
|
||||
parv[5], parv[6], source_p->name, client_p->name);
|
||||
sendto_one(client_p, ":%s KILL %s :%s (Bad user@host)", me.id, parv[8], me.name);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if(strcmp(parv[9], "*") && !clean_host(parv[9]))
|
||||
|
@ -464,7 +451,7 @@ ms_euid(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
"Bad realhost: %s From: %s(via %s)",
|
||||
parv[9], source_p->name, client_p->name);
|
||||
sendto_one(client_p, ":%s KILL %s :%s (Bad user@host)", me.id, parv[8], me.name);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
/* check length of clients gecos */
|
||||
|
@ -492,22 +479,20 @@ ms_euid(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
else
|
||||
perform_nick_collides(source_p, client_p, target_p, parc, parv,
|
||||
newts, parv[1], parv[8]);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* ms_save()
|
||||
* parv[1] - UID
|
||||
* parv[2] - TS
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
ms_save(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
struct Client *target_p;
|
||||
|
||||
target_p = find_id(parv[1]);
|
||||
if (target_p == NULL)
|
||||
return 0;
|
||||
return;
|
||||
if (!IsPerson(target_p))
|
||||
sendto_realops_snomask(SNO_GENERAL, L_ALL,
|
||||
"Ignored SAVE message for non-person %s from %s",
|
||||
|
@ -522,16 +507,15 @@ ms_save(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
sendto_realops_snomask(SNO_SKILL, L_ALL,
|
||||
"Ignored SAVE message for %s from %s",
|
||||
target_p->name, source_p->name);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* clean_username()
|
||||
*
|
||||
* input - username to check
|
||||
* output - 0 if erroneous, else 0
|
||||
* output - false if erroneous, else true
|
||||
* side effects -
|
||||
*/
|
||||
static int
|
||||
static bool
|
||||
clean_username(const char *username)
|
||||
{
|
||||
int len = 0;
|
||||
|
@ -541,22 +525,22 @@ clean_username(const char *username)
|
|||
len++;
|
||||
|
||||
if(!IsUserChar(*username))
|
||||
return 0;
|
||||
return false;
|
||||
}
|
||||
|
||||
if(len > USERLEN)
|
||||
return 0;
|
||||
return false;
|
||||
|
||||
return 1;
|
||||
return true;
|
||||
}
|
||||
|
||||
/* clean_host()
|
||||
*
|
||||
* input - host to check
|
||||
* output - 0 if erroneous, else 0
|
||||
* output - false if erroneous, else true
|
||||
* side effects -
|
||||
*/
|
||||
static int
|
||||
static bool
|
||||
clean_host(const char *host)
|
||||
{
|
||||
int len = 0;
|
||||
|
@ -566,38 +550,38 @@ clean_host(const char *host)
|
|||
len++;
|
||||
|
||||
if(!IsHostChar(*host))
|
||||
return 0;
|
||||
return false;
|
||||
}
|
||||
|
||||
if(len > HOSTLEN)
|
||||
return 0;
|
||||
return false;
|
||||
|
||||
return 1;
|
||||
return true;
|
||||
}
|
||||
|
||||
static int
|
||||
static bool
|
||||
clean_uid(const char *uid, const char *sid)
|
||||
{
|
||||
int len = 1;
|
||||
|
||||
if(strncmp(uid, sid, strlen(sid)))
|
||||
return 0;
|
||||
return false;
|
||||
|
||||
if(!IsDigit(*uid++))
|
||||
return 0;
|
||||
return false;
|
||||
|
||||
for(; *uid; uid++)
|
||||
{
|
||||
len++;
|
||||
|
||||
if(!IsIdChar(*uid))
|
||||
return 0;
|
||||
return false;
|
||||
}
|
||||
|
||||
if(len != IDLEN - 1)
|
||||
return 0;
|
||||
return false;
|
||||
|
||||
return 1;
|
||||
return true;
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -727,7 +711,7 @@ change_local_nick(struct Client *client_p, struct Client *source_p,
|
|||
/*
|
||||
* change_remote_nick()
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
change_remote_nick(struct Client *client_p, struct Client *source_p,
|
||||
time_t newts, const char *nick, int dosend)
|
||||
{
|
||||
|
@ -768,11 +752,9 @@ change_remote_nick(struct Client *client_p, struct Client *source_p,
|
|||
|
||||
/* remove all accepts pointing to the client */
|
||||
del_all_accepts(source_p);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
static void
|
||||
perform_nick_collides(struct Client *source_p, struct Client *client_p,
|
||||
struct Client *target_p, int parc, const char *parv[],
|
||||
time_t newts, const char *nick, const char *uid)
|
||||
|
@ -820,7 +802,7 @@ perform_nick_collides(struct Client *source_p, struct Client *client_p,
|
|||
target_p->flags |= FLAGS_KILLED;
|
||||
exit_client(client_p, target_p, &me, "Nick collision (new)");
|
||||
}
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
/* the timestamps are different */
|
||||
else
|
||||
|
@ -846,7 +828,7 @@ perform_nick_collides(struct Client *source_p, struct Client *client_p,
|
|||
sendto_one(client_p,
|
||||
":%s KILL %s :%s (Nick collision (new))",
|
||||
me.id, uid, me.name);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -882,14 +864,12 @@ perform_nick_collides(struct Client *source_p, struct Client *client_p,
|
|||
|
||||
register_client(client_p, source_p,
|
||||
nick, newts, parc, parv);
|
||||
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static int
|
||||
static void
|
||||
perform_nickchange_collides(struct Client *source_p, struct Client *client_p,
|
||||
struct Client *target_p, int parc,
|
||||
const char *parv[], time_t newts, const char *nick)
|
||||
|
@ -937,7 +917,7 @@ perform_nickchange_collides(struct Client *source_p, struct Client *client_p,
|
|||
source_p->flags |= FLAGS_KILLED;
|
||||
exit_client(client_p, source_p, &me, "Nick collision(old)");
|
||||
}
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -988,7 +968,7 @@ perform_nickchange_collides(struct Client *source_p, struct Client *client_p,
|
|||
else
|
||||
exit_client(client_p, source_p, &me, "Nick collision(new)");
|
||||
}
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -1025,11 +1005,9 @@ perform_nickchange_collides(struct Client *source_p, struct Client *client_p,
|
|||
}
|
||||
|
||||
change_remote_nick(client_p, source_p, newts, nick, 1);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
static void
|
||||
register_client(struct Client *client_p, struct Client *server,
|
||||
const char *nick, time_t newts, int parc, const char *parv[])
|
||||
{
|
||||
|
@ -1139,25 +1117,24 @@ register_client(struct Client *client_p, struct Client *server,
|
|||
call_hook(h_new_remote_user, source_p);
|
||||
|
||||
introduce_client(client_p, source_p, user, nick, parc == 12);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Check if we can do SAVE. target_p can be a client to save or a
|
||||
* server introducing a client -- jilles */
|
||||
static int
|
||||
static bool
|
||||
can_save(struct Client *target_p)
|
||||
{
|
||||
struct Client *serv_p;
|
||||
|
||||
if (MyClient(target_p))
|
||||
return 1;
|
||||
return true;
|
||||
if (!has_id(target_p))
|
||||
return 0;
|
||||
return false;
|
||||
serv_p = IsServer(target_p) ? target_p : target_p->servptr;
|
||||
while (serv_p != NULL && serv_p != &me)
|
||||
{
|
||||
if (!(serv_p->serv->caps & CAP_SAVE))
|
||||
return 0;
|
||||
return false;
|
||||
serv_p = serv_p->servptr;
|
||||
}
|
||||
return serv_p == &me;
|
||||
|
|
|
@ -42,7 +42,7 @@
|
|||
|
||||
static const char part_desc[] = "Provides the PART command to leave a channel";
|
||||
|
||||
static int m_part(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void m_part(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
|
||||
struct Message part_msgtab = {
|
||||
"PART", 0, 0, 0, 0,
|
||||
|
@ -56,8 +56,8 @@ DECLARE_MODULE_AV2(part, NULL, NULL, part_clist, NULL, NULL, NULL, NULL, part_de
|
|||
static void part_one_client(struct Client *client_p,
|
||||
struct Client *source_p, char *name,
|
||||
const char *reason);
|
||||
static int can_send_part(struct Client *source_p, struct Channel *chptr, struct membership *msptr);
|
||||
static int do_message_hook(struct Client *source_p, struct Channel *chptr, const char **reason);
|
||||
static bool can_send_part(struct Client *source_p, struct Channel *chptr, struct membership *msptr);
|
||||
static bool do_message_hook(struct Client *source_p, struct Channel *chptr, const char **reason);
|
||||
|
||||
|
||||
/*
|
||||
|
@ -65,7 +65,7 @@ static int do_message_hook(struct Client *source_p, struct Channel *chptr, const
|
|||
** parv[1] = channel
|
||||
** parv[2] = reason
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
m_part(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
char *p, *name;
|
||||
|
@ -88,7 +88,6 @@ m_part(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p
|
|||
part_one_client(client_p, source_p, name, reason);
|
||||
name = rb_strtok_r(NULL, ",", &p);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -158,19 +157,19 @@ part_one_client(struct Client *client_p, struct Client *source_p, char *name, co
|
|||
* - channel being parted
|
||||
* - membership pointer
|
||||
* outputs:
|
||||
* - 1 if message allowed
|
||||
* - 0 if message denied
|
||||
* - true if message allowed
|
||||
* - false if message denied
|
||||
* side effects:
|
||||
* - none.
|
||||
*/
|
||||
static int
|
||||
static bool
|
||||
can_send_part(struct Client *source_p, struct Channel *chptr, struct membership *msptr)
|
||||
{
|
||||
if (!can_send(chptr, source_p, msptr))
|
||||
return 0;
|
||||
return false;
|
||||
/* Allow chanops to bypass anti_spam_exit_message_time for part messages. */
|
||||
if (is_chanop(msptr))
|
||||
return 1;
|
||||
return true;
|
||||
return (source_p->localClient->firsttime + ConfigFileEntry.anti_spam_exit_message_time) < rb_current_time();
|
||||
}
|
||||
|
||||
|
@ -182,12 +181,12 @@ can_send_part(struct Client *source_p, struct Channel *chptr, struct membership
|
|||
* - channel being parted
|
||||
* - pointer to reason
|
||||
* outputs:
|
||||
* - 1 if message is allowed
|
||||
* - 0 if message is denied or message is now empty
|
||||
* - true if message is allowed
|
||||
* - false if message is denied or message is now empty
|
||||
* side effects:
|
||||
* - reason may be modified.
|
||||
*/
|
||||
static int
|
||||
static bool
|
||||
do_message_hook(struct Client *source_p, struct Channel *chptr, const char **reason)
|
||||
{
|
||||
hook_data_privmsg_channel hdata;
|
||||
|
|
|
@ -36,8 +36,8 @@
|
|||
|
||||
static const char quit_desc[] = "Provides the QUIT command to allow a user to leave the network";
|
||||
|
||||
static int m_quit(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static int ms_quit(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void m_quit(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void ms_quit(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
|
||||
struct Message quit_msgtab = {
|
||||
"QUIT", 0, 0, 0, 0,
|
||||
|
@ -52,7 +52,7 @@ DECLARE_MODULE_AV2(quit, NULL, NULL, quit_clist, NULL, NULL, NULL, NULL, quit_de
|
|||
** m_quit
|
||||
** parv[1] = comment
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
m_quit(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
char *comment = LOCAL_COPY((parc > 1 && parv[1]) ? parv[1] : client_p->name);
|
||||
|
@ -76,19 +76,17 @@ m_quit(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p
|
|||
rb_current_time())
|
||||
{
|
||||
exit_client(client_p, source_p, source_p, "Client Quit");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
exit_client(client_p, source_p, source_p, comment);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
** ms_quit
|
||||
** parv[1] = comment
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
ms_quit(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
char *comment = LOCAL_COPY((parc > 1 && parv[1]) ? parv[1] : client_p->name);
|
||||
|
@ -98,6 +96,4 @@ ms_quit(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
comment[REASONLEN] = '\0';
|
||||
|
||||
exit_client(client_p, source_p, source_p, comment);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -43,9 +43,13 @@
|
|||
static const char server_desc[] =
|
||||
"Provides the TS6 commands to introduce a new server to the network";
|
||||
|
||||
static int mr_server(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static int ms_server(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static int ms_sid(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void mr_server(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void ms_server(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void ms_sid(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
|
||||
static bool bogus_host(const char *host);
|
||||
static void set_server_gecos(struct Client *, const char *);
|
||||
|
||||
struct Message server_msgtab = {
|
||||
"SERVER", 0, 0, 0, 0,
|
||||
{{mr_server, 4}, mg_reg, mg_ignore, {ms_server, 4}, mg_ignore, mg_reg}
|
||||
|
@ -59,16 +63,13 @@ mapi_clist_av1 server_clist[] = { &server_msgtab, &sid_msgtab, NULL };
|
|||
|
||||
DECLARE_MODULE_AV2(server, NULL, NULL, server_clist, NULL, NULL, NULL, NULL, server_desc);
|
||||
|
||||
int bogus_host(const char *host);
|
||||
static int set_server_gecos(struct Client *, const char *);
|
||||
|
||||
/*
|
||||
* mr_server - SERVER message handler
|
||||
* parv[1] = servername
|
||||
* parv[2] = serverinfo/hopcount
|
||||
* parv[3] = serverinfo
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
mr_server(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
char info[REALLEN + 1];
|
||||
|
@ -90,7 +91,7 @@ mr_server(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sourc
|
|||
ilog(L_SERVER, "Server %s has unexpected name %s",
|
||||
log_client_name(client_p, SHOW_IP), name);
|
||||
exit_client(client_p, client_p, client_p, "Server name mismatch");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -101,13 +102,13 @@ mr_server(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sourc
|
|||
sendto_realops_snomask(SNO_GENERAL, L_ALL, "Link %s dropped, non-TS server",
|
||||
client_p->name);
|
||||
exit_client(client_p, client_p, client_p, "Non-TS server");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if(bogus_host(name))
|
||||
{
|
||||
exit_client(client_p, client_p, client_p, "Bogus server name");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
/* Now we just have to call check_server and everything should be
|
||||
|
@ -128,7 +129,7 @@ mr_server(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sourc
|
|||
}
|
||||
|
||||
exit_client(client_p, client_p, client_p, "Invalid servername.");
|
||||
return 0;
|
||||
return;
|
||||
/* NOT REACHED */
|
||||
break;
|
||||
|
||||
|
@ -143,7 +144,7 @@ mr_server(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sourc
|
|||
log_client_name(client_p, SHOW_IP));
|
||||
|
||||
exit_client(client_p, client_p, client_p, "Invalid credentials.");
|
||||
return 0;
|
||||
return;
|
||||
/* NOT REACHED */
|
||||
break;
|
||||
|
||||
|
@ -158,7 +159,7 @@ mr_server(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sourc
|
|||
log_client_name(client_p, SHOW_IP));
|
||||
|
||||
exit_client(client_p, client_p, client_p, "Invalid host.");
|
||||
return 0;
|
||||
return;
|
||||
/* NOT REACHED */
|
||||
break;
|
||||
|
||||
|
@ -171,7 +172,7 @@ mr_server(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sourc
|
|||
log_client_name(client_p, SHOW_IP));
|
||||
|
||||
exit_client(client_p, client_p, client_p, "Invalid servername.");
|
||||
return 0;
|
||||
return;
|
||||
/* NOT REACHED */
|
||||
break;
|
||||
case -5:
|
||||
|
@ -182,7 +183,7 @@ mr_server(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sourc
|
|||
log_client_name(client_p, SHOW_IP));
|
||||
|
||||
exit_client(client_p, client_p, client_p, "Access denied, requires SSL/TLS but is plaintext");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
/* require TS6 for direct links */
|
||||
|
@ -191,7 +192,7 @@ mr_server(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sourc
|
|||
sendto_realops_snomask(SNO_GENERAL, is_remote_connect(client_p) ? L_NETWIDE : L_ALL,
|
||||
"Link %s dropped, TS6 protocol is required", name);
|
||||
exit_client(client_p, client_p, client_p, "Incompatible TS version");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
/* check to ensure any "required" caps are set. --nenolod */
|
||||
|
@ -213,7 +214,7 @@ mr_server(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sourc
|
|||
sendto_one(client_p, "ERROR :Missing required CAPABs (%s)", missing);
|
||||
exit_client(client_p, client_p, client_p, "Missing required CAPABs");
|
||||
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if((target_p = find_server(NULL, name)))
|
||||
|
@ -248,7 +249,7 @@ mr_server(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sourc
|
|||
sendto_one(client_p, "ERROR :Server already exists.");
|
||||
}
|
||||
exit_client(client_p, client_p, client_p, "Server Exists");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if(has_id(client_p) && (target_p = find_id(client_p->id)) != NULL)
|
||||
|
@ -266,7 +267,7 @@ mr_server(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sourc
|
|||
|
||||
sendto_one(client_p, "ERROR :SID already exists.");
|
||||
exit_client(client_p, client_p, client_p, "SID Exists");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -278,8 +279,6 @@ mr_server(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sourc
|
|||
set_server_gecos(client_p, info);
|
||||
client_p->hopcount = hop;
|
||||
server_estab(client_p);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -288,7 +287,7 @@ mr_server(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sourc
|
|||
* parv[2] = serverinfo/hopcount
|
||||
* parv[3] = serverinfo
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
ms_server(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
char info[REALLEN + 1];
|
||||
|
@ -334,7 +333,7 @@ ms_server(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sourc
|
|||
"Server %s already exists",
|
||||
name);
|
||||
exit_client(client_p, client_p, &me, squitreason);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -356,7 +355,7 @@ ms_server(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sourc
|
|||
client_p->name, name);
|
||||
|
||||
exit_client(client_p, client_p, client_p, "Nick as Server");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -420,7 +419,7 @@ ms_server(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sourc
|
|||
"No matching hub_mask for %s",
|
||||
name);
|
||||
exit_client(NULL, client_p, &me, squitreason);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
/* Check for the new server being leafed behind this HUB */
|
||||
|
@ -437,7 +436,7 @@ ms_server(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sourc
|
|||
"Matching leaf_mask for %s",
|
||||
name);
|
||||
exit_client(NULL, client_p, &me, squitreason);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
|
@ -451,7 +450,7 @@ ms_server(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sourc
|
|||
client_p->name, name);
|
||||
|
||||
exit_client(NULL, client_p, &me, "Invalid servername introduced.");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
target_p = make_client(client_p);
|
||||
|
@ -487,11 +486,9 @@ ms_server(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sourc
|
|||
hdata.client = source_p;
|
||||
hdata.target = target_p;
|
||||
call_hook(h_server_introduced, &hdata);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
static void
|
||||
ms_sid(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
struct Client *target_p;
|
||||
|
@ -512,7 +509,7 @@ ms_sid(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p
|
|||
"Server %s already exists",
|
||||
parv[1]);
|
||||
exit_client(NULL, client_p, &me, squitreason);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
/* collision on the SID? */
|
||||
|
@ -531,7 +528,7 @@ ms_sid(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p
|
|||
"SID %s for %s already in use by %s",
|
||||
parv[3], parv[1], target_p->name);
|
||||
exit_client(NULL, client_p, &me, squitreason);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if(bogus_host(parv[1]) || strlen(parv[1]) > HOSTLEN)
|
||||
|
@ -544,7 +541,7 @@ ms_sid(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p
|
|||
client_p->name, parv[1]);
|
||||
|
||||
exit_client(NULL, client_p, &me, "Bogus server name");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if(!IsDigit(parv[3][0]) || !IsIdChar(parv[3][1]) ||
|
||||
|
@ -558,7 +555,7 @@ ms_sid(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p
|
|||
client_p->name, parv[3]);
|
||||
|
||||
exit_client(NULL, client_p, &me, "Bogus SID");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
/* for the directly connected server:
|
||||
|
@ -591,7 +588,7 @@ ms_sid(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p
|
|||
"No matching hub_mask for %s",
|
||||
parv[1]);
|
||||
exit_client(NULL, client_p, &me, squitreason);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
/* matching leaf_mask */
|
||||
|
@ -607,7 +604,7 @@ ms_sid(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p
|
|||
"Matching leaf_mask for %s",
|
||||
parv[1]);
|
||||
exit_client(NULL, client_p, &me, squitreason);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
/* ok, alls good */
|
||||
|
@ -645,8 +642,6 @@ ms_sid(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p
|
|||
hdata.client = source_p;
|
||||
hdata.target = target_p;
|
||||
call_hook(h_server_introduced, &hdata);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* set_server_gecos()
|
||||
|
@ -655,7 +650,7 @@ ms_sid(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p
|
|||
* output - none
|
||||
* side effects - servers gecos field is set
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
set_server_gecos(struct Client *client_p, const char *info)
|
||||
{
|
||||
/* check the info for [IP] */
|
||||
|
@ -709,27 +704,25 @@ set_server_gecos(struct Client *client_p, const char *info)
|
|||
if(s && (*s != '\0'))
|
||||
{
|
||||
rb_strlcpy(client_p->info, s, sizeof(client_p->info));
|
||||
return 1;
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
rb_strlcpy(client_p->info, "(Unknown Location)", sizeof(client_p->info));
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/*
|
||||
* bogus_host
|
||||
*
|
||||
* inputs - hostname
|
||||
* output - 1 if a bogus hostname input, 0 if its valid
|
||||
* output - true if a bogus hostname input, false if its valid
|
||||
* side effects - none
|
||||
*/
|
||||
int
|
||||
static bool
|
||||
bogus_host(const char *host)
|
||||
{
|
||||
int bogus_server = 0;
|
||||
bool bogus_server = false;
|
||||
const char *s;
|
||||
int dots = 0;
|
||||
|
||||
|
@ -737,7 +730,7 @@ bogus_host(const char *host)
|
|||
{
|
||||
if(!IsServChar(*s))
|
||||
{
|
||||
bogus_server = 1;
|
||||
bogus_server = true;
|
||||
break;
|
||||
}
|
||||
if('.' == *s)
|
||||
|
@ -745,7 +738,7 @@ bogus_host(const char *host)
|
|||
}
|
||||
|
||||
if(!dots || bogus_server)
|
||||
return 1;
|
||||
return true;
|
||||
|
||||
return 0;
|
||||
return false;
|
||||
}
|
||||
|
|
|
@ -40,8 +40,8 @@
|
|||
|
||||
static const char squit_desc[] = "Provides the SQUIT command to cause a server to quit";
|
||||
|
||||
static int ms_squit(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static int mo_squit(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void ms_squit(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void mo_squit(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
|
||||
struct Message squit_msgtab = {
|
||||
"SQUIT", 0, 0, 0, 0,
|
||||
|
@ -67,7 +67,7 @@ static struct squit_parms *find_squit(struct Client *client_p,
|
|||
* parv[1] = server name
|
||||
* parv[2] = comment
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
mo_squit(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
struct squit_parms *found_squit;
|
||||
|
@ -89,18 +89,16 @@ mo_squit(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
{
|
||||
sendto_one(source_p, form_str(ERR_NOPRIVS),
|
||||
me.name, source_p->name, "remote");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
exit_client(client_p, found_squit->target_p, source_p, comment);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
sendto_one_numeric(source_p, ERR_NOSUCHSERVER, form_str(ERR_NOSUCHSERVER), parv[1]);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -108,7 +106,7 @@ mo_squit(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
* parv[1] = server name
|
||||
* parv[2] = comment
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
ms_squit(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
struct Client *target_p;
|
||||
|
@ -119,12 +117,12 @@ ms_squit(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
else
|
||||
{
|
||||
if((target_p = find_server(NULL, parv[1])) == NULL)
|
||||
return 0;
|
||||
return;
|
||||
|
||||
if(IsMe(target_p))
|
||||
target_p = client_p;
|
||||
if(!IsServer(target_p))
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
/* Server is closing its link */
|
||||
|
@ -149,7 +147,6 @@ ms_squit(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
ilog(L_SERVER, "SQUIT From %s : %s (%s)", source_p->name, target_p->name, comment);
|
||||
}
|
||||
exit_client(client_p, target_p, source_p, comment);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -37,7 +37,7 @@
|
|||
static const char accept_desc[] =
|
||||
"Provides the ACCEPT command for use with Caller ID/user mode +g";
|
||||
|
||||
static int m_accept(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void m_accept(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void build_nicklist(struct Client *, char *, char *, const char *);
|
||||
|
||||
static void add_accept(struct Client *, struct Client *);
|
||||
|
@ -58,7 +58,7 @@ DECLARE_MODULE_AV2(accept, NULL, NULL, accept_clist, NULL, NULL, NULL, NULL, acc
|
|||
* m_accept - ACCEPT command handler
|
||||
* parv[1] = servername
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
m_accept(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
char *nick;
|
||||
|
@ -71,7 +71,7 @@ m_accept(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
if(*parv[1] == '*')
|
||||
{
|
||||
list_accepts(source_p);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
build_nicklist(source_p, addbuf, delbuf, parv[1]);
|
||||
|
@ -124,15 +124,13 @@ m_accept(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
if(accept_num >= ConfigFileEntry.max_accept)
|
||||
{
|
||||
sendto_one(source_p, form_str(ERR_ACCEPTFULL), me.name, source_p->name);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
/* why is this here? */
|
||||
/* del_from accept(target_p, source_p); */
|
||||
add_accept(source_p, target_p);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -37,9 +37,9 @@
|
|||
const char admin_desc[] =
|
||||
"Provides the ADMIN command to show server administrator information";
|
||||
|
||||
static int m_admin(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static int mr_admin(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static int ms_admin(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void m_admin(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void mr_admin(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void ms_admin(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void do_admin(struct Client *source_p);
|
||||
|
||||
static void admin_spy(struct Client *);
|
||||
|
@ -63,7 +63,7 @@ DECLARE_MODULE_AV2(admin, NULL, NULL, admin_clist, admin_hlist, NULL, NULL, NULL
|
|||
* mr_admin - ADMIN command handler
|
||||
* parv[1] = servername
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
mr_admin(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
static time_t last_used = 0L;
|
||||
|
@ -74,21 +74,19 @@ mr_admin(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
me.name,
|
||||
EmptyString(source_p->name) ? "*" : source_p->name,
|
||||
"ADMIN");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
else
|
||||
last_used = rb_current_time();
|
||||
|
||||
do_admin(source_p);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* m_admin - ADMIN command handler
|
||||
* parv[1] = servername
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
m_admin(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
static time_t last_used = 0L;
|
||||
|
@ -99,18 +97,16 @@ m_admin(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
{
|
||||
sendto_one(source_p, form_str(RPL_LOAD2HI),
|
||||
me.name, source_p->name, "ADMIN");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
else
|
||||
last_used = rb_current_time();
|
||||
|
||||
if(hunt_server(client_p, source_p, ":%s ADMIN :%s", 1, parc, parv) != HUNTED_ISME)
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
do_admin(source_p);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
@ -118,15 +114,13 @@ m_admin(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
* ms_admin - ADMIN command handler, used for OPERS as well
|
||||
* parv[1] = servername
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
ms_admin(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
if(hunt_server(client_p, source_p, ":%s ADMIN :%s", 1, parc, parv) != HUNTED_ISME)
|
||||
return 0;
|
||||
return;
|
||||
|
||||
do_admin(source_p);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -37,7 +37,7 @@
|
|||
|
||||
static const char away_desc[] = "Provides the AWAY command to set yourself away";
|
||||
|
||||
static int m_away(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void m_away(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
|
||||
struct Message away_msgtab = {
|
||||
"AWAY", 0, 0, 0, 0,
|
||||
|
@ -66,7 +66,7 @@ DECLARE_MODULE_AV2(away, NULL, NULL, away_clist, NULL, NULL, NULL, NULL, away_de
|
|||
** m_away
|
||||
** parv[1] = away message
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
m_away(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
if(MyClient(source_p) && source_p->localClient->next_away &&
|
||||
|
@ -74,7 +74,7 @@ m_away(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p
|
|||
flood_endgrace(source_p);
|
||||
|
||||
if(!IsClient(source_p))
|
||||
return 0;
|
||||
return;
|
||||
|
||||
if(parc < 2 || EmptyString(parv[1]))
|
||||
{
|
||||
|
@ -91,7 +91,7 @@ m_away(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p
|
|||
}
|
||||
if(MyConnect(source_p))
|
||||
sendto_one_numeric(source_p, RPL_UNAWAY, form_str(RPL_UNAWAY));
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
/* Rate limit this because it is sent to common channels. */
|
||||
|
@ -102,7 +102,7 @@ m_away(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p
|
|||
{
|
||||
sendto_one(source_p, form_str(RPL_LOAD2HI),
|
||||
me.name, source_p->name, "AWAY");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
if(source_p->localClient->next_away < rb_current_time() -
|
||||
ConfigFileEntry.away_interval)
|
||||
|
@ -130,6 +130,4 @@ m_away(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p
|
|||
|
||||
if(MyConnect(source_p))
|
||||
sendto_one_numeric(source_p, RPL_NOWAWAY, form_str(RPL_NOWAWAY));
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -48,7 +48,7 @@ static const char cap_desc[] = "Provides the commands used for client capability
|
|||
|
||||
typedef int (*bqcmp)(const void *, const void *);
|
||||
|
||||
static int m_cap(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void m_cap(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
|
||||
struct Message cap_msgtab = {
|
||||
"CAP", 0, 0, 0, 0,
|
||||
|
@ -417,7 +417,7 @@ clicap_cmd_search(const char *command, struct clicap_cmd *entry)
|
|||
return irccmp(command, entry->cmd);
|
||||
}
|
||||
|
||||
static int
|
||||
static void
|
||||
m_cap(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
struct clicap_cmd *cmd;
|
||||
|
@ -429,9 +429,8 @@ m_cap(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p,
|
|||
sendto_one(source_p, form_str(ERR_INVALIDCAPCMD),
|
||||
me.name, EmptyString(source_p->name) ? "*" : source_p->name,
|
||||
parv[1]);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
(cmd->func)(source_p, parv[2]);
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -33,8 +33,8 @@
|
|||
|
||||
static const char capab_desc[] = "Provides the commands used for server-to-server capability negotiation";
|
||||
|
||||
static int mr_capab(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static int me_gcap(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void mr_capab(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void me_gcap(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
|
||||
struct Message capab_msgtab = {
|
||||
"CAPAB", 0, 0, 0, 0,
|
||||
|
@ -53,7 +53,7 @@ DECLARE_MODULE_AV2(capab, NULL, NULL, capab_clist, NULL, NULL, NULL, NULL, capab
|
|||
* mr_capab - CAPAB message handler
|
||||
* parv[1] = space-separated list of capabilities
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
mr_capab(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
int i;
|
||||
|
@ -62,16 +62,16 @@ mr_capab(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
|
||||
/* ummm, this shouldn't happen. Could argue this should be logged etc. */
|
||||
if(client_p->localClient == NULL)
|
||||
return 0;
|
||||
return;
|
||||
|
||||
if(client_p->user)
|
||||
return 0;
|
||||
return;
|
||||
|
||||
/* CAP_TS6 is set in PASS, so is valid.. */
|
||||
if((client_p->localClient->caps & ~CAP_TS6) != 0)
|
||||
{
|
||||
exit_client(client_p, client_p, client_p, "CAPAB received twice");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
else
|
||||
client_p->localClient->caps |= CAP_CAP;
|
||||
|
@ -85,11 +85,9 @@ mr_capab(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
for (s = rb_strtok_r(t, " ", &p); s; s = rb_strtok_r(NULL, " ", &p))
|
||||
client_p->localClient->caps |= capability_get(serv_capindex, s, NULL);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
static void
|
||||
me_gcap(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p,
|
||||
int parc, const char *parv[])
|
||||
{
|
||||
|
@ -98,7 +96,7 @@ me_gcap(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
char *p;
|
||||
|
||||
if(!IsServer(source_p))
|
||||
return 0;
|
||||
return;
|
||||
|
||||
/* already had GCAPAB?! */
|
||||
if(!EmptyString(source_p->serv->fullcaps))
|
||||
|
@ -111,6 +109,4 @@ me_gcap(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
|
||||
for (s = rb_strtok_r(t, " ", &p); s; s = rb_strtok_r(NULL, " ", &p))
|
||||
source_p->serv->caps |= capability_get(serv_capindex, s, NULL);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -41,7 +41,7 @@
|
|||
static const char certfp_desc[] =
|
||||
"Provides the CERTFP facility used by servers to set certificate fingerprints";
|
||||
|
||||
static int me_certfp(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void me_certfp(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
|
||||
struct Message certfp_msgtab = {
|
||||
"CERTFP", 0, 0, 0, 0,
|
||||
|
@ -56,15 +56,14 @@ DECLARE_MODULE_AV2(certfp, NULL, NULL, certfp_clist, NULL, NULL, NULL, NULL, cer
|
|||
** me_certfp
|
||||
** parv[1] = certfp string
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
me_certfp(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
if (!IsPerson(source_p))
|
||||
return 0;
|
||||
return;
|
||||
|
||||
rb_free(source_p->certfp);
|
||||
source_p->certfp = NULL;
|
||||
if (!EmptyString(parv[1]))
|
||||
source_p->certfp = rb_strdup(parv[1]);
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -72,7 +72,7 @@ DECLARE_MODULE_AV2(challenge, challenge_load, NULL, NULL, NULL, NULL, NULL, NULL
|
|||
static const char challenge_desc[] =
|
||||
"Provides the challenge-response facility used for becoming an IRC operator";
|
||||
|
||||
static int m_challenge(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void m_challenge(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
|
||||
/* We have openssl support, so include /CHALLENGE */
|
||||
struct Message challenge_msgtab = {
|
||||
|
@ -84,7 +84,7 @@ mapi_clist_av1 challenge_clist[] = { &challenge_msgtab, NULL };
|
|||
|
||||
DECLARE_MODULE_AV2(challenge, NULL, NULL, challenge_clist, NULL, NULL, NULL, NULL, challenge_desc);
|
||||
|
||||
static int generate_challenge(char **r_challenge, char **r_response, RSA * key);
|
||||
static bool generate_challenge(char **r_challenge, char **r_response, RSA * key);
|
||||
|
||||
static void
|
||||
cleanup_challenge(struct Client *target_p)
|
||||
|
@ -103,7 +103,7 @@ cleanup_challenge(struct Client *target_p)
|
|||
* m_challenge - generate RSA challenge for wouldbe oper
|
||||
* parv[1] = operator to challenge for, or +response
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
m_challenge(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
struct oper_conf *oper_p;
|
||||
|
@ -118,14 +118,14 @@ m_challenge(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sou
|
|||
{
|
||||
sendto_one(source_p, form_str(RPL_YOUREOPER), me.name, source_p->name);
|
||||
send_oper_motd(source_p);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if(*parv[1] == '+')
|
||||
{
|
||||
/* Ignore it if we aren't expecting this... -A1kmm */
|
||||
if(!source_p->localClient->challenge)
|
||||
return 0;
|
||||
return;
|
||||
|
||||
if((rb_current_time() - source_p->localClient->chal_time) > CHALLENGE_EXPIRES)
|
||||
{
|
||||
|
@ -140,7 +140,7 @@ m_challenge(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sou
|
|||
source_p->name, source_p->username,
|
||||
source_p->host);
|
||||
cleanup_challenge(source_p);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
parv[1]++;
|
||||
|
@ -162,7 +162,7 @@ m_challenge(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sou
|
|||
|
||||
rb_free(b_response);
|
||||
cleanup_challenge(source_p);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
rb_free(b_response);
|
||||
|
@ -184,7 +184,7 @@ m_challenge(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sou
|
|||
"Failed CHALLENGE attempt - host mismatch by %s (%s@%s)",
|
||||
source_p->name, source_p->username,
|
||||
source_p->host);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
cleanup_challenge(source_p);
|
||||
|
@ -194,7 +194,7 @@ m_challenge(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sou
|
|||
ilog(L_OPERED, "OPER %s by %s!%s@%s (%s)",
|
||||
source_p->localClient->opername, source_p->name,
|
||||
source_p->username, source_p->host, source_p->sockhost);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
cleanup_challenge(source_p);
|
||||
|
@ -213,13 +213,13 @@ m_challenge(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sou
|
|||
sendto_realops_snomask(SNO_GENERAL, L_NETWIDE,
|
||||
"Failed CHALLENGE attempt - host mismatch by %s (%s@%s)",
|
||||
source_p->name, source_p->username, source_p->host);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if(!oper_p->rsa_pubkey)
|
||||
{
|
||||
sendto_one_notice(source_p, ":I'm sorry, PK authentication is not enabled for your oper{} block.");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if(IsOperConfNeedSSL(oper_p) && !IsSSLClient(source_p))
|
||||
|
@ -235,7 +235,7 @@ m_challenge(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sou
|
|||
"Failed CHALLENGE attempt - missing SSL/TLS by %s (%s@%s)",
|
||||
source_p->name, source_p->username, source_p->host);
|
||||
}
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if (oper_p->certfp != NULL)
|
||||
|
@ -253,11 +253,11 @@ m_challenge(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sou
|
|||
"Failed OPER attempt - client certificate fingerprint mismatch by %s (%s@%s)",
|
||||
source_p->name, source_p->username, source_p->host);
|
||||
}
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if(!generate_challenge(&challenge, &(source_p->localClient->challenge), oper_p->rsa_pubkey))
|
||||
if(generate_challenge(&challenge, &(source_p->localClient->challenge), oper_p->rsa_pubkey))
|
||||
{
|
||||
char *chal = challenge;
|
||||
source_p->localClient->chal_time = rb_current_time();
|
||||
|
@ -278,11 +278,9 @@ m_challenge(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sou
|
|||
}
|
||||
else
|
||||
sendto_one_notice(source_p, ":Failed to generate challenge.");
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
static bool
|
||||
generate_challenge(char **r_challenge, char **r_response, RSA * rsa)
|
||||
{
|
||||
SHA_CTX ctx;
|
||||
|
@ -293,7 +291,7 @@ generate_challenge(char **r_challenge, char **r_response, RSA * rsa)
|
|||
int ret;
|
||||
|
||||
if(!rsa)
|
||||
return -1;
|
||||
return false;
|
||||
if(rb_get_random(secret, CHALLENGE_SECRET_LENGTH))
|
||||
{
|
||||
SHA1_Init(&ctx);
|
||||
|
@ -309,7 +307,7 @@ generate_challenge(char **r_challenge, char **r_response, RSA * rsa)
|
|||
{
|
||||
*r_challenge = (char *)rb_base64_encode(tmp, ret);
|
||||
rb_free(tmp);
|
||||
return 0;
|
||||
return true;
|
||||
}
|
||||
|
||||
rb_free(tmp);
|
||||
|
@ -324,7 +322,7 @@ generate_challenge(char **r_challenge, char **r_response, RSA * rsa)
|
|||
cnt++;
|
||||
}
|
||||
|
||||
return (-1);
|
||||
return false;
|
||||
}
|
||||
|
||||
#endif /* HAVE_LIBCRYPTO */
|
||||
|
|
|
@ -30,10 +30,10 @@
|
|||
|
||||
static const char chghost_desc[] = "Provides commands used to change and retrieve client hostnames";
|
||||
|
||||
static int me_realhost(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static int ms_chghost(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static int me_chghost(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static int mo_chghost(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void me_realhost(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void ms_chghost(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void me_chghost(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void mo_chghost(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
|
||||
struct Message realhost_msgtab = {
|
||||
"REALHOST", 0, 0, 0, 0,
|
||||
|
@ -92,12 +92,12 @@ clean_host(const char *host)
|
|||
* I don't think that's a big problem as the whole thing is a
|
||||
* race condition.
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
me_realhost(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p,
|
||||
int parc, const char *parv[])
|
||||
{
|
||||
if (!IsPerson(source_p))
|
||||
return 0;
|
||||
return;
|
||||
|
||||
del_from_hostname_hash(source_p->orighost, source_p);
|
||||
rb_strlcpy(source_p->orighost, parv[1], sizeof source_p->orighost);
|
||||
|
@ -106,7 +106,7 @@ me_realhost(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sou
|
|||
else
|
||||
ClearDynSpoof(source_p);
|
||||
add_to_hostname_hash(source_p->orighost, source_p);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
static int
|
||||
|
@ -150,14 +150,14 @@ do_chghost(struct Client *source_p, struct Client *target_p,
|
|||
* parv[1] = target
|
||||
* parv[2] = host
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
ms_chghost(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p,
|
||||
int parc, const char *parv[])
|
||||
{
|
||||
struct Client *target_p;
|
||||
|
||||
if (!(target_p = find_person(parv[1])))
|
||||
return -1;
|
||||
return;
|
||||
|
||||
if (do_chghost(source_p, target_p, parv[2], 0))
|
||||
{
|
||||
|
@ -169,7 +169,7 @@ ms_chghost(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sour
|
|||
use_id(source_p), use_id(target_p), parv[2]);
|
||||
}
|
||||
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -177,18 +177,18 @@ ms_chghost(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sour
|
|||
* parv[1] = target
|
||||
* parv[2] = host
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
me_chghost(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p,
|
||||
int parc, const char *parv[])
|
||||
{
|
||||
struct Client *target_p;
|
||||
|
||||
if (!(target_p = find_person(parv[1])))
|
||||
return -1;
|
||||
return;
|
||||
|
||||
do_chghost(source_p, target_p, parv[2], 1);
|
||||
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -199,7 +199,7 @@ me_chghost(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sour
|
|||
/* Disable this because of the abuse potential -- jilles
|
||||
* No, make it toggleable via ./configure. --nenolod
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
mo_chghost(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p,
|
||||
int parc, const char *parv[])
|
||||
{
|
||||
|
@ -210,20 +210,20 @@ mo_chghost(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sour
|
|||
{
|
||||
sendto_one(source_p, form_str(ERR_NOPRIVS),
|
||||
me.name, source_p->name, "admin");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if (!(target_p = find_named_person(parv[1])))
|
||||
{
|
||||
sendto_one_numeric(source_p, ERR_NOSUCHNICK,
|
||||
form_str(ERR_NOSUCHNICK), parv[1]);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if (!clean_host(parv[2]))
|
||||
{
|
||||
sendto_one_notice(source_p, ":Hostname %s is invalid", parv[2]);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
do_chghost(source_p, target_p, parv[2], 0);
|
||||
|
@ -239,6 +239,6 @@ mo_chghost(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sour
|
|||
"CHGHOST");
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -33,7 +33,7 @@
|
|||
|
||||
static const char close_desc[] = "Provides the CLOSE command to clear all unfinished connections";
|
||||
|
||||
static int mo_close(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void mo_close(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
|
||||
struct Message close_msgtab = {
|
||||
"CLOSE", 0, 0, 0, 0,
|
||||
|
@ -48,7 +48,7 @@ DECLARE_MODULE_AV2(close, NULL, NULL, close_clist, NULL, NULL, NULL, NULL, close
|
|||
* mo_close - CLOSE message handler
|
||||
* - added by Darren Reed Jul 13 1992.
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
mo_close(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
struct Client *target_p;
|
||||
|
@ -68,5 +68,5 @@ mo_close(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
}
|
||||
|
||||
sendto_one(source_p, form_str(RPL_CLOSEEND), me.name, source_p->name, closed);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -45,9 +45,9 @@
|
|||
static const char cmessage_desc[] =
|
||||
"Provides the CPRIVMSG and CNOTICE facilities for bypassing anti-spam measures";
|
||||
|
||||
static int m_cmessage(int, const char *, struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static int m_cprivmsg(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static int m_cnotice(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void m_cmessage(int, const char *, struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void m_cprivmsg(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void m_cnotice(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
|
||||
static int
|
||||
_modinit(void)
|
||||
|
@ -81,19 +81,19 @@ DECLARE_MODULE_AV2(cmessage, _modinit, _moddeinit, cmessage_clist, NULL, NULL, N
|
|||
#define PRIVMSG 0
|
||||
#define NOTICE 1
|
||||
|
||||
static int
|
||||
static void
|
||||
m_cprivmsg(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
return m_cmessage(PRIVMSG, "PRIVMSG", msgbuf_p, client_p, source_p, parc, parv);
|
||||
m_cmessage(PRIVMSG, "PRIVMSG", msgbuf_p, client_p, source_p, parc, parv);
|
||||
}
|
||||
|
||||
static int
|
||||
static void
|
||||
m_cnotice(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
return m_cmessage(NOTICE, "NOTICE", msgbuf_p, client_p, source_p, parc, parv);
|
||||
m_cmessage(NOTICE, "NOTICE", msgbuf_p, client_p, source_p, parc, parv);
|
||||
}
|
||||
|
||||
static int
|
||||
static void
|
||||
m_cmessage(int p_or_n, const char *command, struct MsgBuf *msgbuf_p,
|
||||
struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
|
@ -109,7 +109,7 @@ m_cmessage(int p_or_n, const char *command, struct MsgBuf *msgbuf_p,
|
|||
if(p_or_n != NOTICE)
|
||||
sendto_one_numeric(source_p, ERR_NOSUCHNICK,
|
||||
form_str(ERR_NOSUCHNICK), parv[1]);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if((chptr = find_channel(parv[2])) == NULL)
|
||||
|
@ -117,7 +117,7 @@ m_cmessage(int p_or_n, const char *command, struct MsgBuf *msgbuf_p,
|
|||
if(p_or_n != NOTICE)
|
||||
sendto_one_numeric(source_p, ERR_NOSUCHCHANNEL,
|
||||
form_str(ERR_NOSUCHCHANNEL), parv[2]);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if((msptr = find_channel_membership(chptr, source_p)) == NULL)
|
||||
|
@ -126,7 +126,7 @@ m_cmessage(int p_or_n, const char *command, struct MsgBuf *msgbuf_p,
|
|||
sendto_one_numeric(source_p, ERR_NOTONCHANNEL,
|
||||
form_str(ERR_NOTONCHANNEL),
|
||||
chptr->chname);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if(!is_chanop_voiced(msptr))
|
||||
|
@ -134,7 +134,7 @@ m_cmessage(int p_or_n, const char *command, struct MsgBuf *msgbuf_p,
|
|||
if(p_or_n != NOTICE)
|
||||
sendto_one(source_p, form_str(ERR_VOICENEEDED),
|
||||
me.name, source_p->name, chptr->chname);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if(!IsMember(target_p, chptr))
|
||||
|
@ -143,7 +143,7 @@ m_cmessage(int p_or_n, const char *command, struct MsgBuf *msgbuf_p,
|
|||
sendto_one_numeric(source_p, ERR_USERNOTINCHANNEL,
|
||||
form_str(ERR_USERNOTINCHANNEL),
|
||||
target_p->name, chptr->chname);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if(MyClient(target_p) && (IsSetCallerId(target_p) || (IsSetRegOnlyMsg(target_p) && !source_p->user->suser[0])) &&
|
||||
|
@ -155,7 +155,7 @@ m_cmessage(int p_or_n, const char *command, struct MsgBuf *msgbuf_p,
|
|||
sendto_one_numeric(source_p, ERR_NONONREG,
|
||||
form_str(ERR_NONONREG),
|
||||
target_p->name);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
if(p_or_n != NOTICE)
|
||||
sendto_one_numeric(source_p, ERR_TARGUMODEG,
|
||||
|
@ -176,12 +176,11 @@ m_cmessage(int p_or_n, const char *command, struct MsgBuf *msgbuf_p,
|
|||
target_p->localClient->last_caller_id_time = rb_current_time();
|
||||
}
|
||||
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if(p_or_n != NOTICE)
|
||||
source_p->localClient->last = rb_current_time();
|
||||
|
||||
sendto_anywhere(target_p, source_p, command, ":%s", parv[3]);
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -41,8 +41,8 @@
|
|||
static const char connect_desc[] =
|
||||
"Provides the CONNECT command to introduce servers to the network";
|
||||
|
||||
static int mo_connect(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static int ms_connect(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void mo_connect(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void ms_connect(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
|
||||
struct Message connect_msgtab = {
|
||||
"CONNECT", 0, 0, 0, 0,
|
||||
|
@ -63,7 +63,7 @@ DECLARE_MODULE_AV2(connect, NULL, NULL, connect_clist, NULL, NULL, NULL, NULL, c
|
|||
* parv[2] = port number
|
||||
* parv[3] = remote server
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
mo_connect(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
int port;
|
||||
|
@ -77,17 +77,17 @@ mo_connect(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sour
|
|||
{
|
||||
sendto_one(source_p, form_str(ERR_NOPRIVS),
|
||||
me.name, source_p->name, "remote");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if(hunt_server(client_p, source_p, ":%s CONNECT %s %s :%s", 3, parc, parv) != HUNTED_ISME)
|
||||
return 0;
|
||||
return;
|
||||
|
||||
if((target_p = find_server(source_p, parv[1])))
|
||||
{
|
||||
sendto_one_notice(source_p, ":Connect: Server %s already exists from %s.", parv[1],
|
||||
target_p->from->name);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -96,7 +96,7 @@ mo_connect(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sour
|
|||
if((server_p = find_server_conf(parv[1])) == NULL)
|
||||
{
|
||||
sendto_one_notice(source_p, ":Connect: Host %s not listed in ircd.conf", parv[1]);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if(ServerConfSSL(server_p) && (!ssl_ok || !get_ssld_count()))
|
||||
|
@ -104,7 +104,7 @@ mo_connect(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sour
|
|||
sendto_one_notice(source_p,
|
||||
":Connect: Server %s is set to use SSL/TLS but SSL/TLS is not configured.",
|
||||
parv[1]);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -120,7 +120,7 @@ mo_connect(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sour
|
|||
else if(port <= 0)
|
||||
{
|
||||
sendto_one_notice(source_p, ":Connect: illegal port number");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -152,8 +152,6 @@ mo_connect(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sour
|
|||
* destroyed, so reset it back to the configured settings
|
||||
*/
|
||||
server_p->port = tmpport;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -166,7 +164,7 @@ mo_connect(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sour
|
|||
* parv[2] = port number
|
||||
* parv[3] = remote server
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
ms_connect(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
int port;
|
||||
|
@ -175,13 +173,13 @@ ms_connect(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sour
|
|||
struct Client *target_p;
|
||||
|
||||
if(hunt_server(client_p, source_p, ":%s CONNECT %s %s :%s", 3, parc, parv) != HUNTED_ISME)
|
||||
return 0;
|
||||
return;
|
||||
|
||||
if((target_p = find_server(NULL, parv[1])))
|
||||
{
|
||||
sendto_one_notice(source_p, ":Connect: Server %s already exists from %s.",
|
||||
parv[1], target_p->from->name);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -191,7 +189,7 @@ ms_connect(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sour
|
|||
{
|
||||
sendto_one_notice(source_p, ":Connect: Host %s not listed in ircd.conf",
|
||||
parv[1]);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if(ServerConfSSL(server_p) && (!ssl_ok || !get_ssld_count()))
|
||||
|
@ -199,7 +197,7 @@ ms_connect(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sour
|
|||
sendto_one_notice(source_p,
|
||||
":Connect: Server %s is set to use SSL/TLS but SSL/TLS is not configured.",
|
||||
parv[1]);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -217,7 +215,7 @@ ms_connect(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sour
|
|||
else if(port <= 0)
|
||||
{
|
||||
sendto_one_notice(source_p, ":Connect: Illegal port number");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -248,5 +246,4 @@ ms_connect(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sour
|
|||
* destroyed
|
||||
*/
|
||||
server_p->port = tmpport;
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -45,10 +45,10 @@
|
|||
|
||||
static const char dline_desc[] = "Provides the DLINE facility to ban users via IP address";
|
||||
|
||||
static int mo_dline(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static int me_dline(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static int mo_undline(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static int me_undline(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void mo_dline(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void me_dline(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void mo_undline(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void me_undline(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
|
||||
struct Message dline_msgtab = {
|
||||
"DLINE", 0, 0, 0, 0,
|
||||
|
@ -62,20 +62,18 @@ struct Message undline_msgtab = {
|
|||
|
||||
mapi_clist_av1 dline_clist[] = { &dline_msgtab, &undline_msgtab, NULL };
|
||||
|
||||
static const char dline_desc[] = "Provides the DLINE facility to ban users via IP address";
|
||||
|
||||
DECLARE_MODULE_AV2(dline, NULL, NULL, dline_clist, NULL, NULL, NULL, NULL, dline_desc);
|
||||
|
||||
static int remove_temp_dline(struct ConfItem *);
|
||||
static int apply_dline(struct Client *, const char *, int, char *);
|
||||
static int apply_undline(struct Client *, const char *);
|
||||
static bool remove_temp_dline(struct ConfItem *);
|
||||
static void apply_dline(struct Client *, const char *, int, char *);
|
||||
static void apply_undline(struct Client *, const char *);
|
||||
|
||||
/* mo_dline()
|
||||
*
|
||||
* parv[1] - dline to add
|
||||
* parv[2] - reason
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
mo_dline(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
char def[] = "No Reason";
|
||||
|
@ -89,7 +87,7 @@ mo_dline(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
if(!IsOperK(source_p))
|
||||
{
|
||||
sendto_one(source_p, form_str(ERR_NOPRIVS), me.name, source_p->name, "kline");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if((tdline_time = valid_temp_time(parv[loc])) >= 0)
|
||||
|
@ -103,7 +101,7 @@ mo_dline(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
if (*dlhost == ':')
|
||||
{
|
||||
sendto_one_notice(source_p, ":Invalid D-Line");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if(parc >= loc + 2 && !irccmp(parv[loc], "ON"))
|
||||
|
@ -112,7 +110,7 @@ mo_dline(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
{
|
||||
sendto_one(source_p, form_str(ERR_NOPRIVS),
|
||||
me.name, source_p->name, "remoteban");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
target_server = parv[loc + 1];
|
||||
|
@ -130,20 +128,19 @@ mo_dline(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
target_server, tdline_time, dlhost, reason);
|
||||
|
||||
if(!match(target_server, me.name))
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
apply_dline(source_p, dlhost, tdline_time, reason);
|
||||
|
||||
check_dlines();
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* mo_undline()
|
||||
*
|
||||
* parv[1] = dline to remove
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
mo_undline(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
const char *cidr;
|
||||
|
@ -152,7 +149,7 @@ mo_undline(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sour
|
|||
if(!IsOperK(source_p))
|
||||
{
|
||||
sendto_one(source_p, form_str(ERR_NOPRIVS), me.name, source_p->name, "unkline");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
cidr = parv[1];
|
||||
|
@ -163,7 +160,7 @@ mo_undline(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sour
|
|||
{
|
||||
sendto_one(source_p, form_str(ERR_NOPRIVS),
|
||||
me.name, source_p->name, "remoteban");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
target_server = parv[3];
|
||||
|
@ -171,15 +168,13 @@ mo_undline(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sour
|
|||
CAP_ENCAP, NOCAPS, "ENCAP %s UNDLINE %s", target_server, cidr);
|
||||
|
||||
if(!match(target_server, me.name))
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
apply_undline(source_p, cidr);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
static void
|
||||
me_dline(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char **parv)
|
||||
{
|
||||
int tdline_time = atoi(parv[1]);
|
||||
|
@ -188,35 +183,32 @@ me_dline(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
*/
|
||||
|
||||
if(!IsPerson(source_p))
|
||||
return 0;
|
||||
return;
|
||||
|
||||
if(!find_shared_conf(source_p->username, source_p->host,
|
||||
source_p->servptr->name,
|
||||
tdline_time > 0 ? SHARED_TDLINE : SHARED_PDLINE))
|
||||
return 0;
|
||||
return;
|
||||
|
||||
apply_dline(source_p, parv[2], tdline_time, LOCAL_COPY(parv[3]));
|
||||
|
||||
check_dlines();
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
static void
|
||||
me_undline(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char **parv)
|
||||
{
|
||||
if(!IsPerson(source_p))
|
||||
return 0;
|
||||
return;
|
||||
|
||||
if(!find_shared_conf(source_p->username, source_p->host,
|
||||
source_p->servptr->name, SHARED_UNDLINE))
|
||||
return 0;
|
||||
return;
|
||||
|
||||
apply_undline(source_p, parv[1]);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
static void
|
||||
apply_dline(struct Client *source_p, const char *dlhost, int tdline_time, char *reason)
|
||||
{
|
||||
struct ConfItem *aconf;
|
||||
|
@ -229,7 +221,7 @@ apply_dline(struct Client *source_p, const char *dlhost, int tdline_time, char *
|
|||
if(ty == HM_HOST)
|
||||
{
|
||||
sendto_one(source_p, ":%s NOTICE %s :Invalid D-Line", me.name, source_p->name);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
#ifdef RB_IPV6
|
||||
if(ty == HM_IPV6)
|
||||
|
@ -245,7 +237,7 @@ apply_dline(struct Client *source_p, const char *dlhost, int tdline_time, char *
|
|||
{
|
||||
sendto_one_notice(source_p,
|
||||
":For safety, bitmasks less than 8 require conf access.");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
}
|
||||
else
|
||||
|
@ -254,7 +246,7 @@ apply_dline(struct Client *source_p, const char *dlhost, int tdline_time, char *
|
|||
{
|
||||
sendto_one_notice(source_p,
|
||||
":Dline bitmasks less than 16 are for admins only.");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -277,7 +269,7 @@ apply_dline(struct Client *source_p, const char *dlhost, int tdline_time, char *
|
|||
":%s NOTICE %s :[%s] already D-lined by [%s] - %s",
|
||||
me.name, source_p->name, dlhost, aconf->host,
|
||||
creason);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -357,11 +349,9 @@ apply_dline(struct Client *source_p, const char *dlhost, int tdline_time, char *
|
|||
aconf->host, reason, oper_reason);
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
static void
|
||||
apply_undline(struct Client *source_p, const char *cidr)
|
||||
{
|
||||
char buf[BUFSIZE];
|
||||
|
@ -370,14 +360,14 @@ apply_undline(struct Client *source_p, const char *cidr)
|
|||
if(parse_netmask(cidr, NULL, NULL) == HM_HOST)
|
||||
{
|
||||
sendto_one_notice(source_p, ":Invalid D-Line");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
aconf = find_exact_conf_by_address(cidr, CONF_DLINE, NULL);
|
||||
if(aconf == NULL)
|
||||
{
|
||||
sendto_one_notice(source_p, ":No D-Line for %s", cidr);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
rb_strlcpy(buf, aconf->host, sizeof buf);
|
||||
|
@ -390,7 +380,7 @@ apply_undline(struct Client *source_p, const char *cidr)
|
|||
"%s has removed the temporary D-Line for: [%s]",
|
||||
get_oper_name(source_p), buf);
|
||||
ilog(L_KLINE, "UD %s %s", get_oper_name(source_p), buf);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
bandb_del(BANDB_DLINE, aconf->host, NULL);
|
||||
|
@ -401,17 +391,15 @@ apply_undline(struct Client *source_p, const char *cidr)
|
|||
get_oper_name(source_p), aconf->host);
|
||||
ilog(L_KLINE, "UD %s %s", get_oper_name(source_p), aconf->host);
|
||||
delete_one_address_conf(aconf->host, aconf);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* remove_temp_dline()
|
||||
*
|
||||
* inputs - confitem to undline
|
||||
* outputs -
|
||||
* outputs - true if removed, false otherwise.
|
||||
* side effects - tries to undline anything that matches
|
||||
*/
|
||||
static int
|
||||
static bool
|
||||
remove_temp_dline(struct ConfItem *aconf)
|
||||
{
|
||||
rb_dlink_node *ptr;
|
||||
|
@ -425,10 +413,10 @@ remove_temp_dline(struct ConfItem *aconf)
|
|||
{
|
||||
rb_dlinkDestroy(ptr, &temp_dlines[i]);
|
||||
delete_one_address_conf(aconf->host, aconf);
|
||||
return YES;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return NO;
|
||||
return false;
|
||||
}
|
||||
|
|
|
@ -43,7 +43,7 @@
|
|||
|
||||
static const char encap_desc[] = "Provides the TS6 ENCAP facility";
|
||||
|
||||
static int ms_encap(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p,
|
||||
static void ms_encap(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p,
|
||||
int parc, const char *parv[]);
|
||||
|
||||
struct Message encap_msgtab = {
|
||||
|
@ -61,7 +61,7 @@ DECLARE_MODULE_AV2(encap, NULL, NULL, encap_clist, NULL, NULL, NULL, NULL, encap
|
|||
* parv[2] - subcommand
|
||||
* parv[3] - parameters
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
ms_encap(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
char buffer[BUFSIZE];
|
||||
|
@ -78,7 +78,7 @@ ms_encap(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
|
||||
/* ugh, not even at the last parameter, just bail --fl */
|
||||
if((size_t)(cur_len + len) >= sizeof(buffer))
|
||||
return 0;
|
||||
return;
|
||||
|
||||
snprintf(ptr, sizeof(buffer) - cur_len, "%s ", parv[i]);
|
||||
cur_len += len;
|
||||
|
@ -103,6 +103,4 @@ ms_encap(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
/* if it matches us, find a matching handler and call it */
|
||||
if(match(parv[1], me.name))
|
||||
handle_encap(msgbuf_p, client_p, source_p, parv[2], parc - 2, parv + 2);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -53,10 +53,10 @@
|
|||
static const char etrace_desc[] =
|
||||
"Provides enhanced tracing facilities to opers (ETRACE, CHANTRACE, and MASKTRACE)";
|
||||
|
||||
static int mo_etrace(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static int me_etrace(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static int m_chantrace(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static int mo_masktrace(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void mo_etrace(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void me_etrace(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void m_chantrace(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void mo_masktrace(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
|
||||
struct Message etrace_msgtab = {
|
||||
"ETRACE", 0, 0, 0, 0,
|
||||
|
@ -101,7 +101,7 @@ static const char *spoofed_sockhost = "0";
|
|||
* parv[1] = options [or target]
|
||||
* parv[2] = [target]
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
mo_etrace(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
if(parc > 1 && !EmptyString(parv[1]))
|
||||
|
@ -135,17 +135,15 @@ mo_etrace(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sourc
|
|||
}
|
||||
else
|
||||
do_etrace(source_p, 1, 1);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
static void
|
||||
me_etrace(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
struct Client *target_p;
|
||||
|
||||
if(!IsOper(source_p) || parc < 2 || EmptyString(parv[1]))
|
||||
return 0;
|
||||
return;
|
||||
|
||||
/* we cant etrace remote clients.. we shouldnt even get sent them */
|
||||
if((target_p = find_person(parv[1])) && MyClient(target_p))
|
||||
|
@ -153,8 +151,6 @@ me_etrace(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sourc
|
|||
|
||||
sendto_one_numeric(source_p, RPL_ENDOFTRACE, form_str(RPL_ENDOFTRACE),
|
||||
target_p ? target_p->name : parv[1]);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -229,7 +225,7 @@ do_single_etrace(struct Client *source_p, struct Client *target_p)
|
|||
target_p->localClient->fullcaps, target_p->info);
|
||||
}
|
||||
|
||||
static int
|
||||
static void
|
||||
m_chantrace(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
struct Client *target_p;
|
||||
|
@ -251,7 +247,7 @@ m_chantrace(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sou
|
|||
{
|
||||
sendto_one(source_p, form_str(ERR_NEEDMOREPARAMS),
|
||||
me.name, source_p->name, "CHANTRACE");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -259,7 +255,7 @@ m_chantrace(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sou
|
|||
{
|
||||
sendto_one_numeric(source_p, ERR_NOSUCHCHANNEL, form_str(ERR_NOSUCHCHANNEL),
|
||||
name);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
/* dont report operspys for nonexistant channels. */
|
||||
|
@ -270,7 +266,7 @@ m_chantrace(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sou
|
|||
{
|
||||
sendto_one_numeric(source_p, ERR_NOTONCHANNEL, form_str(ERR_NOTONCHANNEL),
|
||||
chptr->chname);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
RB_DLINK_FOREACH(ptr, chptr->members.head)
|
||||
|
@ -295,7 +291,6 @@ m_chantrace(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sou
|
|||
}
|
||||
|
||||
sendto_one_numeric(source_p, RPL_ENDOFTRACE, form_str(RPL_ENDOFTRACE), me.name);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -342,7 +337,7 @@ match_masktrace(struct Client *source_p, rb_dlink_list *list,
|
|||
}
|
||||
}
|
||||
|
||||
static int
|
||||
static void
|
||||
mo_masktrace(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc,
|
||||
const char *parv[])
|
||||
{
|
||||
|
@ -372,7 +367,7 @@ mo_masktrace(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *so
|
|||
if((hostname = strchr(name, '@')) == NULL)
|
||||
{
|
||||
sendto_one_notice(source_p, ":Invalid parameters");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
*hostname++ = '\0';
|
||||
|
@ -387,7 +382,7 @@ mo_masktrace(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *so
|
|||
if(EmptyString(username) || EmptyString(hostname))
|
||||
{
|
||||
sendto_one_notice(source_p, ":Invalid parameters");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if(operspy) {
|
||||
|
@ -407,5 +402,4 @@ mo_masktrace(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *so
|
|||
match_masktrace(source_p, &lclient_list, username, hostname, name, gecos);
|
||||
|
||||
sendto_one_numeric(source_p, RPL_ENDOFTRACE, form_str(RPL_ENDOFTRACE), me.name);
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -17,10 +17,10 @@
|
|||
static const char grant_desc[] =
|
||||
"Provides the grant facility for giving other users specific privilege sets";
|
||||
|
||||
static int mo_grant(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[]);
|
||||
static int me_grant(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[]);
|
||||
static void mo_grant(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[]);
|
||||
static void me_grant(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[]);
|
||||
|
||||
static int do_grant(struct Client *source_p, struct Client *target_p, const char *new_privset);
|
||||
static void do_grant(struct Client *source_p, struct Client *target_p, const char *new_privset);
|
||||
|
||||
struct Message grant_msgtab = {
|
||||
"GRANT", 0, 0, 0, 0,
|
||||
|
@ -31,7 +31,7 @@ mapi_clist_av1 grant_clist[] = { &grant_msgtab, NULL };
|
|||
|
||||
DECLARE_MODULE_AV2(grant, NULL, NULL, grant_clist, NULL, NULL, NULL, NULL, grant_desc);
|
||||
|
||||
static int
|
||||
static void
|
||||
mo_grant(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
struct Client *target_p;
|
||||
|
@ -39,7 +39,7 @@ mo_grant(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
if(!HasPrivilege(source_p, "oper:grant"))
|
||||
{
|
||||
sendto_one(source_p, form_str(ERR_NOPRIVS), me.name, source_p->name, "grant");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
target_p = find_named_person(parv[1]);
|
||||
|
@ -47,7 +47,7 @@ mo_grant(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
{
|
||||
sendto_one_numeric(source_p, ERR_NOSUCHNICK,
|
||||
form_str(ERR_NOSUCHNICK), parv[1]);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if (MyClient(target_p))
|
||||
|
@ -60,11 +60,10 @@ mo_grant(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
get_id(source_p, target_p), target_p->servptr->name,
|
||||
get_id(target_p, target_p), parv[2]);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int me_grant(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
static void
|
||||
me_grant(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
struct Client *target_p;
|
||||
|
||||
|
@ -73,7 +72,7 @@ static int me_grant(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Cli
|
|||
{
|
||||
sendto_one_numeric(source_p, ERR_NOSUCHNICK,
|
||||
form_str(ERR_NOSUCHNICK), parv[1]);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if(!find_shared_conf(source_p->username, source_p->host,
|
||||
|
@ -81,26 +80,26 @@ static int me_grant(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Cli
|
|||
{
|
||||
sendto_one(source_p, ":%s NOTICE %s :You don't have an appropriate shared"
|
||||
"block to grant privilege on this server.", me.name, source_p->name);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
do_grant(source_p, target_p, parv[2]);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
static int do_grant(struct Client *source_p, struct Client *target_p, const char *new_privset)
|
||||
static void
|
||||
do_grant(struct Client *source_p, struct Client *target_p, const char *new_privset)
|
||||
{
|
||||
int dooper = 0, dodeoper = 0;
|
||||
struct PrivilegeSet *privset = 0;
|
||||
const char *modeparv[4];
|
||||
|
||||
if (!strcmp(new_privset, "deoper"))
|
||||
{
|
||||
if (!IsOper(target_p))
|
||||
{
|
||||
sendto_one_notice(source_p, ":You can't deoper someone who isn't an oper.");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
new_privset = "default";
|
||||
dodeoper = 1;
|
||||
|
@ -113,13 +112,13 @@ static int do_grant(struct Client *source_p, struct Client *target_p, const char
|
|||
if (!(privset = privilegeset_get(new_privset)))
|
||||
{
|
||||
sendto_one_notice(source_p, ":There is no privilege set named '%s'.", new_privset);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if (privset == target_p->localClient->privset)
|
||||
{
|
||||
sendto_one_notice(source_p, ":%s already has privilege set %s.", target_p->name, target_p->localClient->privset->name);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -159,11 +158,8 @@ static int do_grant(struct Client *source_p, struct Client *target_p, const char
|
|||
}
|
||||
|
||||
target_p->localClient->privset = privset;
|
||||
const char *modeparv[4];
|
||||
modeparv[0] = modeparv[1] = target_p->name;
|
||||
modeparv[2] = "+";
|
||||
modeparv[3] = NULL;
|
||||
user_mode(target_p, target_p, 3, modeparv);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -39,9 +39,9 @@
|
|||
static const char help_desc[] =
|
||||
"Provides the help facility for commands, modes, and server concepts";
|
||||
|
||||
static int m_help(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static int mo_help(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static int mo_uhelp(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void m_help(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void mo_help(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void mo_uhelp(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void dohelp(struct Client *, int, const char *);
|
||||
|
||||
struct Message help_msgtab = {
|
||||
|
@ -60,33 +60,29 @@ DECLARE_MODULE_AV2(help, NULL, NULL, help_clist, NULL, NULL, NULL, NULL, help_de
|
|||
/*
|
||||
* m_help - HELP message handler
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
m_help(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
dohelp(source_p, HELP_USER, parc > 1 ? parv[1] : NULL);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* mo_help - HELP message handler
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
mo_help(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
dohelp(source_p, HELP_OPER, parc > 1 ? parv[1] : NULL);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* mo_uhelp - HELP message handler
|
||||
* This is used so that opers can view the user help file without deopering
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
mo_uhelp(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
dohelp(source_p, HELP_USER, parc > 1 ? parv[1] : NULL);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -127,5 +123,4 @@ dohelp(struct Client *source_p, int flags, const char *topic)
|
|||
|
||||
sendto_one(source_p, form_str(RPL_ENDOFHELP),
|
||||
me.name, source_p->name, topic);
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -47,8 +47,8 @@ static void send_birthdate_online_time(struct Client *source_p);
|
|||
static void send_info_text(struct Client *source_p);
|
||||
static void info_spy(struct Client *);
|
||||
|
||||
static int m_info(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static int mo_info(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void m_info(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void mo_info(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
|
||||
struct Message info_msgtab = {
|
||||
"INFO", 0, 0, 0, 0,
|
||||
|
@ -672,7 +672,7 @@ static struct InfoStruct info_table[] = {
|
|||
** m_info
|
||||
** parv[1] = servername
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
m_info(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
static time_t last_used = 0L;
|
||||
|
@ -683,13 +683,13 @@ m_info(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p
|
|||
sendto_one(source_p, form_str(RPL_LOAD2HI),
|
||||
me.name, source_p->name, "INFO");
|
||||
sendto_one_numeric(source_p, RPL_ENDOFINFO, form_str(RPL_ENDOFINFO));
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
else
|
||||
last_used = rb_current_time();
|
||||
|
||||
if(hunt_server(client_p, source_p, ":%s INFO :%s", 1, parc, parv) != HUNTED_ISME)
|
||||
return 0;
|
||||
return;
|
||||
|
||||
info_spy(source_p);
|
||||
|
||||
|
@ -697,14 +697,13 @@ m_info(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p
|
|||
send_birthdate_online_time(source_p);
|
||||
|
||||
sendto_one_numeric(source_p, RPL_ENDOFINFO, form_str(RPL_ENDOFINFO));
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
** mo_info
|
||||
** parv[1] = servername
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
mo_info(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
if(hunt_server(client_p, source_p, ":%s INFO :%s", 1, parc, parv) == HUNTED_ISME)
|
||||
|
@ -723,8 +722,6 @@ mo_info(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
|
||||
sendto_one_numeric(source_p, RPL_ENDOFINFO, form_str(RPL_ENDOFINFO));
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -41,7 +41,7 @@
|
|||
|
||||
static const char invite_desc[] = "Provides facilities for invite and related notifications";
|
||||
|
||||
static int m_invite(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void m_invite(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static unsigned int CAP_INVITE_NOTIFY = 0;
|
||||
|
||||
struct Message invite_msgtab = {
|
||||
|
@ -64,7 +64,7 @@ static void add_invite(struct Channel *, struct Client *);
|
|||
* parv[1] - user to invite
|
||||
* parv[2] - channel name
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
m_invite(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
struct Client *target_p;
|
||||
|
@ -89,7 +89,7 @@ m_invite(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
sendto_one_numeric(source_p, ERR_NOSUCHNICK,
|
||||
form_str(ERR_NOSUCHNICK),
|
||||
parv[1]);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if(check_channel_name(parv[2]) == 0)
|
||||
|
@ -97,7 +97,7 @@ m_invite(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
sendto_one_numeric(source_p, ERR_BADCHANNAME,
|
||||
form_str(ERR_BADCHANNAME),
|
||||
parv[2]);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
/* Do not send local channel invites to users if they are not on the
|
||||
|
@ -107,7 +107,7 @@ m_invite(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
{
|
||||
sendto_one(source_p, form_str(ERR_USERNOTONSERV),
|
||||
me.name, source_p->name, target_p->name);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if(((MyConnect(source_p) && !IsExemptResv(source_p)) ||
|
||||
|
@ -117,14 +117,14 @@ m_invite(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
sendto_one_numeric(source_p, ERR_BADCHANNAME,
|
||||
form_str(ERR_BADCHANNAME),
|
||||
parv[2]);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if((chptr = find_channel(parv[2])) == NULL)
|
||||
{
|
||||
sendto_one_numeric(source_p, ERR_NOSUCHCHANNEL,
|
||||
form_str(ERR_NOSUCHCHANNEL), parv[2]);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
msptr = find_channel_membership(chptr, source_p);
|
||||
|
@ -132,7 +132,7 @@ m_invite(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
{
|
||||
sendto_one_numeric(source_p, ERR_NOTONCHANNEL,
|
||||
form_str(ERR_NOTONCHANNEL), parv[2]);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if(IsMember(target_p, chptr))
|
||||
|
@ -140,7 +140,7 @@ m_invite(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
sendto_one_numeric(source_p, ERR_USERONCHANNEL,
|
||||
form_str(ERR_USERONCHANNEL),
|
||||
target_p->name, parv[2]);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
/* unconditionally require ops, unless the channel is +g */
|
||||
|
@ -150,7 +150,7 @@ m_invite(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
{
|
||||
sendto_one(source_p, form_str(ERR_CHANOPRIVSNEEDED),
|
||||
me.name, source_p->name, parv[2]);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
/* store invites when they could affect the ability to join
|
||||
|
@ -169,7 +169,7 @@ m_invite(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
{
|
||||
sendto_one(source_p, form_str(ERR_TARGCHANGE),
|
||||
me.name, source_p->name, target_p->name);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
sendto_one(source_p, form_str(RPL_INVITING),
|
||||
me.name, source_p->name,
|
||||
|
@ -183,7 +183,7 @@ m_invite(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
{
|
||||
/* this should never be less than */
|
||||
if(atol(parv[3]) > chptr->channelts)
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if(MyConnect(target_p))
|
||||
|
@ -197,7 +197,7 @@ m_invite(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
sendto_one_numeric(source_p, ERR_NONONREG,
|
||||
form_str(ERR_NONONREG),
|
||||
target_p->name);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -210,7 +210,7 @@ m_invite(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
sendto_one_numeric(source_p, ERR_TARGUMODEG,
|
||||
form_str(ERR_TARGUMODEG),
|
||||
target_p->name);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
target_p->localClient->last_caller_id_time = rb_current_time();
|
||||
}
|
||||
|
@ -236,8 +236,6 @@ m_invite(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
sendto_server(source_p, chptr, CAP_TS6, 0, ":%s INVITE %s %s %lu",
|
||||
use_id(source_p), use_id(target_p),
|
||||
chptr->chname, (unsigned long) chptr->channelts);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* add_invite()
|
||||
|
|
|
@ -39,7 +39,7 @@
|
|||
|
||||
static const char ison_desc[] = "Provides the ISON command to check if a set of users is online";
|
||||
|
||||
static int m_ison(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void m_ison(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
|
||||
struct Message ison_msgtab = {
|
||||
"ISON", 0, 0, 0, 0,
|
||||
|
@ -63,7 +63,7 @@ static char buf2[BUFSIZE];
|
|||
* format:
|
||||
* ISON :nicklist
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
m_ison(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
struct Client *target_p;
|
||||
|
@ -81,7 +81,7 @@ m_ison(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p
|
|||
len = strlen(buf);
|
||||
current_insert_point = buf + len;
|
||||
|
||||
/* rfc1489 is ambigious about how to handle ISON
|
||||
/* rfc1459 is ambigious about how to handle ISON
|
||||
* this should handle both interpretations.
|
||||
*/
|
||||
for (i = 1; i < parc; i++)
|
||||
|
@ -120,6 +120,4 @@ m_ison(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p
|
|||
*current_insert_point2 = '\0';
|
||||
|
||||
sendto_one(source_p, "%s", buf);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -46,12 +46,12 @@
|
|||
|
||||
static const char kline_desc[] = "Provides the KLINE facility to ban users via hostmask";
|
||||
|
||||
static int mo_kline(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static int ms_kline(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static int me_kline(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static int mo_unkline(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static int ms_unkline(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static int me_unkline(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void mo_kline(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void ms_kline(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void me_kline(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void mo_unkline(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void ms_unkline(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void me_unkline(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
|
||||
struct Message kline_msgtab = {
|
||||
"KLINE", 0, 0, 0, 0,
|
||||
|
@ -68,8 +68,8 @@ mapi_clist_av1 kline_clist[] = { &kline_msgtab, &unkline_msgtab, NULL };
|
|||
DECLARE_MODULE_AV2(kline, NULL, NULL, kline_clist, NULL, NULL, NULL, NULL, kline_desc);
|
||||
|
||||
/* Local function prototypes */
|
||||
static int find_user_host(struct Client *source_p, const char *userhost, char *user, char *host);
|
||||
static int valid_user_host(struct Client *source_p, const char *user, const char *host);
|
||||
static bool find_user_host(struct Client *source_p, const char *userhost, char *user, char *host);
|
||||
static bool valid_user_host(struct Client *source_p, const char *user, const char *host);
|
||||
|
||||
static void handle_remote_kline(struct Client *source_p, int tkline_time,
|
||||
const char *user, const char *host, const char *reason);
|
||||
|
@ -79,11 +79,11 @@ static void apply_tkline(struct Client *source_p, struct ConfItem *aconf,
|
|||
const char *, const char *, int);
|
||||
static void apply_prop_kline(struct Client *source_p, struct ConfItem *aconf,
|
||||
const char *, const char *, int);
|
||||
static int already_placed_kline(struct Client *, const char *, const char *, int);
|
||||
static bool already_placed_kline(struct Client *, const char *, const char *, int);
|
||||
|
||||
static void handle_remote_unkline(struct Client *source_p, const char *user, const char *host);
|
||||
static void remove_permkline_match(struct Client *, struct ConfItem *);
|
||||
static int remove_temp_kline(struct Client *, struct ConfItem *);
|
||||
static bool remove_temp_kline(struct Client *, struct ConfItem *);
|
||||
static void remove_prop_kline(struct Client *, struct ConfItem *);
|
||||
|
||||
/* mo_kline()
|
||||
|
@ -94,7 +94,7 @@ static void remove_prop_kline(struct Client *, struct ConfItem *);
|
|||
* parv[4] - server to target, or reason
|
||||
* parv[5] - reason
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
mo_kline(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char **parv)
|
||||
{
|
||||
char def[] = "No Reason";
|
||||
|
@ -111,7 +111,7 @@ mo_kline(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
if(!IsOperK(source_p))
|
||||
{
|
||||
sendto_one(source_p, form_str(ERR_NOPRIVS), me.name, source_p->name, "kline");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if((tkline_time = valid_temp_time(parv[loc])) >= 0)
|
||||
|
@ -121,7 +121,7 @@ mo_kline(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
tkline_time = 0;
|
||||
|
||||
if(find_user_host(source_p, parv[loc], user, host) == 0)
|
||||
return 0;
|
||||
return;
|
||||
|
||||
loc++;
|
||||
|
||||
|
@ -131,7 +131,7 @@ mo_kline(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
{
|
||||
sendto_one(source_p, form_str(ERR_NOPRIVS),
|
||||
me.name, source_p->name, "remoteban");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
target_server = parv[loc + 1];
|
||||
|
@ -142,7 +142,7 @@ mo_kline(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
{
|
||||
sendto_one(source_p, form_str(ERR_NEEDMOREPARAMS),
|
||||
me.name, source_p->name, "KLINE");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
reason = LOCAL_COPY(parv[loc]);
|
||||
|
@ -154,7 +154,7 @@ mo_kline(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
|
||||
/* If we are sending it somewhere that doesnt include us, stop */
|
||||
if(!match(target_server, me.name))
|
||||
return 0;
|
||||
return;
|
||||
|
||||
/* Set as local-only. */
|
||||
propagated = 0;
|
||||
|
@ -166,7 +166,7 @@ mo_kline(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
"%lu %s %s :%s", tkline_time, user, host, reason);
|
||||
|
||||
if(!valid_user_host(source_p, user, host))
|
||||
return 0;
|
||||
return;
|
||||
|
||||
if(!valid_wild_card(user, host))
|
||||
{
|
||||
|
@ -174,17 +174,17 @@ mo_kline(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
":Please include at least %d non-wildcard "
|
||||
"characters with the user@host",
|
||||
ConfigFileEntry.min_nonwildcard);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if(propagated && tkline_time == 0)
|
||||
{
|
||||
sendto_one_notice(source_p, ":Cannot set a permanent global ban");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if(already_placed_kline(source_p, user, host, tkline_time))
|
||||
return 0;
|
||||
return;
|
||||
|
||||
rb_set_time();
|
||||
aconf = make_conf();
|
||||
|
@ -227,8 +227,6 @@ mo_kline(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
}
|
||||
else
|
||||
check_klines();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* ms_kline()
|
||||
|
@ -239,7 +237,7 @@ mo_kline(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
* parv[4] - host
|
||||
* parv[5] - reason
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
ms_kline(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
int tkline_time = atoi(parv[2]);
|
||||
|
@ -249,30 +247,28 @@ ms_kline(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
* but its not worth dropping the link over.. --anfl
|
||||
*/
|
||||
if(parc < 6 || EmptyString(parv[5]))
|
||||
return 0;
|
||||
return;
|
||||
|
||||
propagate_generic(source_p, "KLINE", parv[1], CAP_KLN,
|
||||
"%d %s %s :%s", tkline_time, parv[3], parv[4], parv[5]);
|
||||
|
||||
if(!match(parv[1], me.name))
|
||||
return 0;
|
||||
return;
|
||||
|
||||
if(!IsPerson(source_p))
|
||||
return 0;
|
||||
return;
|
||||
|
||||
handle_remote_kline(source_p, tkline_time, parv[3], parv[4], parv[5]);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
static void
|
||||
me_kline(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
/* <tkline_time> <user> <host> :<reason> */
|
||||
if(!IsPerson(source_p))
|
||||
return 0;
|
||||
return;
|
||||
|
||||
handle_remote_kline(source_p, atoi(parv[1]), parv[2], parv[3], parv[4]);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -341,8 +337,6 @@ handle_remote_kline(struct Client *source_p, int tkline_time,
|
|||
}
|
||||
else
|
||||
check_klines();
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
/* mo_unkline()
|
||||
|
@ -351,7 +345,7 @@ handle_remote_kline(struct Client *source_p, int tkline_time,
|
|||
* parv[2] - optional "ON"
|
||||
* parv[3] - optional target server
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
mo_unkline(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
const char *user;
|
||||
|
@ -364,7 +358,7 @@ mo_unkline(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sour
|
|||
if(!IsOperUnkline(source_p))
|
||||
{
|
||||
sendto_one(source_p, form_str(ERR_NOPRIVS), me.name, source_p->name, "unkline");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if((host = strchr(h, '@')) || *h == '*' || strchr(h, '.') || strchr(h, ':'))
|
||||
|
@ -394,7 +388,7 @@ mo_unkline(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sour
|
|||
else
|
||||
{
|
||||
sendto_one_notice(source_p, ":Invalid parameters");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
/* possible remote kline.. */
|
||||
|
@ -404,13 +398,13 @@ mo_unkline(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sour
|
|||
{
|
||||
sendto_one(source_p, form_str(ERR_NOPRIVS),
|
||||
me.name, source_p->name, "remoteban");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
propagate_generic(source_p, "UNKLINE", parv[3], CAP_UNKLN, "%s %s", user, host);
|
||||
|
||||
if(match(parv[3], me.name) == 0)
|
||||
return 0;
|
||||
return;
|
||||
|
||||
propagated = 0;
|
||||
}
|
||||
|
@ -426,7 +420,7 @@ mo_unkline(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sour
|
|||
if(aconf == NULL)
|
||||
{
|
||||
sendto_one_notice(source_p, ":No K-Line for %s@%s", user, host);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if(aconf->lifetime)
|
||||
|
@ -435,15 +429,13 @@ mo_unkline(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sour
|
|||
remove_prop_kline(source_p, aconf);
|
||||
else
|
||||
sendto_one_notice(source_p, ":Cannot remove global K-Line %s@%s on specific servers", user, host);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if(remove_temp_kline(source_p, aconf))
|
||||
return 0;
|
||||
return;
|
||||
|
||||
remove_permkline_match(source_p, aconf);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* ms_unkline()
|
||||
|
@ -452,7 +444,7 @@ mo_unkline(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sour
|
|||
* parv[2] - user to unkline
|
||||
* parv[3] - host to unkline
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
ms_unkline(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
/* parv[0] parv[1] parv[2] parv[3]
|
||||
|
@ -460,24 +452,22 @@ ms_unkline(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sour
|
|||
propagate_generic(source_p, "UNKLINE", parv[1], CAP_UNKLN, "%s %s", parv[2], parv[3]);
|
||||
|
||||
if(!match(parv[1], me.name))
|
||||
return 0;
|
||||
return;
|
||||
|
||||
if(!IsPerson(source_p))
|
||||
return 0;
|
||||
return;
|
||||
|
||||
handle_remote_unkline(source_p, parv[2], parv[3]);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
static void
|
||||
me_unkline(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
/* user host */
|
||||
if(!IsPerson(source_p))
|
||||
return 0;
|
||||
return;
|
||||
|
||||
handle_remote_unkline(source_p, parv[1], parv[2]);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -634,10 +624,10 @@ apply_prop_kline(struct Client *source_p, struct ConfItem *aconf,
|
|||
/* find_user_host()
|
||||
*
|
||||
* inputs - client placing kline, user@host, user buffer, host buffer
|
||||
* output - 0 if not ok to kline, 1 to kline i.e. if valid user host
|
||||
* output - false if not ok to kline, true to kline i.e. if valid user host
|
||||
* side effects -
|
||||
*/
|
||||
static int
|
||||
static bool
|
||||
find_user_host(struct Client *source_p, const char *userhost, char *luser, char *lhost)
|
||||
{
|
||||
char *hostp;
|
||||
|
@ -664,7 +654,7 @@ find_user_host(struct Client *source_p, const char *userhost, char *luser, char
|
|||
if(strchr(userhost, '.') == NULL && strchr(userhost, ':') == NULL)
|
||||
{
|
||||
sendto_one_notice(source_p, ":K-Line must be a user@host or host");
|
||||
return 0;
|
||||
return false;
|
||||
}
|
||||
|
||||
luser[0] = '*'; /* no @ found, assume its *@somehost */
|
||||
|
@ -676,43 +666,43 @@ find_user_host(struct Client *source_p, const char *userhost, char *luser, char
|
|||
if (*luser == ':' || *lhost == ':')
|
||||
{
|
||||
sendto_one_notice(source_p, ":Invalid K-Line");
|
||||
return 0;
|
||||
return false;
|
||||
}
|
||||
|
||||
return 1;
|
||||
return true;
|
||||
}
|
||||
|
||||
/* valid_user_host()
|
||||
*
|
||||
* inputs - user buffer, host buffer
|
||||
* output - 0 if invalid, 1 if valid
|
||||
* output - false if invalid, true if valid
|
||||
* side effects -
|
||||
*/
|
||||
static int
|
||||
static bool
|
||||
valid_user_host(struct Client *source_p, const char *luser, const char *lhost)
|
||||
{
|
||||
/* # is invalid, as are '!' (n!u@h kline) and '@' (u@@h kline) */
|
||||
if(strchr(lhost, '#') || strchr(luser, '#') || strchr(luser, '!') || strchr(lhost, '@'))
|
||||
{
|
||||
sendto_one_notice(source_p, ":Invalid K-Line");
|
||||
return 0;
|
||||
return false;
|
||||
}
|
||||
|
||||
return 1;
|
||||
return true;
|
||||
}
|
||||
|
||||
/* already_placed_kline()
|
||||
*
|
||||
* inputs - source to notify, user@host to check, tkline time
|
||||
* outputs - 1 if a perm kline or a tkline when a tkline is being
|
||||
* set exists, else 0
|
||||
* outputs - true if a perm kline or a tkline when a tkline is being
|
||||
* set exists, else false
|
||||
* side effects - notifies source_p kline exists
|
||||
*/
|
||||
/* Note: This currently works if the new K-line is a special case of an
|
||||
* existing K-line, but not the other way round. To do that we would
|
||||
* have to walk the hash and check every existing K-line. -A1kmm.
|
||||
*/
|
||||
static int
|
||||
static bool
|
||||
already_placed_kline(struct Client *source_p, const char *luser, const char *lhost, int tkline)
|
||||
{
|
||||
const char *reason, *p;
|
||||
|
@ -762,11 +752,11 @@ already_placed_kline(struct Client *source_p, const char *luser, const char *lho
|
|||
sendto_one_notice(source_p,
|
||||
":[%s@%s] already K-Lined by [%s@%s] - %s",
|
||||
luser, lhost, aconf->user, aconf->host, reason);
|
||||
return 1;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
return false;
|
||||
}
|
||||
|
||||
/* remove_permkline_match()
|
||||
|
@ -787,8 +777,6 @@ remove_permkline_match(struct Client *source_p, struct ConfItem *aconf)
|
|||
remove_reject_mask(aconf->user, aconf->host);
|
||||
bandb_del(BANDB_KLINE, aconf->user, aconf->host);
|
||||
delete_one_address_conf(aconf->host, aconf);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
/* remove_temp_kline()
|
||||
|
@ -797,7 +785,7 @@ remove_permkline_match(struct Client *source_p, struct ConfItem *aconf)
|
|||
* outputs -
|
||||
* side effects - tries to unkline anything that matches
|
||||
*/
|
||||
static int
|
||||
static bool
|
||||
remove_temp_kline(struct Client *source_p, struct ConfItem *aconf)
|
||||
{
|
||||
rb_dlink_node *ptr;
|
||||
|
@ -822,12 +810,12 @@ remove_temp_kline(struct Client *source_p, struct ConfItem *aconf)
|
|||
rb_dlinkDestroy(ptr, &temp_klines[i]);
|
||||
remove_reject_mask(aconf->user, aconf->host);
|
||||
delete_one_address_conf(aconf->host, aconf);
|
||||
return YES;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return NO;
|
||||
return false;
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
|
@ -38,7 +38,7 @@
|
|||
|
||||
static const char knock_desc[] = "Provides the KNOCK command to ask for an invite to an invite-only channel";
|
||||
|
||||
static int m_knock(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void m_knock(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
|
||||
struct Message knock_msgtab = {
|
||||
"KNOCK", 0, 0, 0, 0,
|
||||
|
@ -75,7 +75,7 @@ DECLARE_MODULE_AV2(knock, _modinit, _moddeinit, knock_clist, NULL, NULL, NULL, N
|
|||
* of these conditions. Concept by Dianora <db@db.net> and written by
|
||||
* <anonymous>
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
m_knock(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
struct Channel *chptr;
|
||||
|
@ -85,7 +85,7 @@ m_knock(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
{
|
||||
sendto_one(source_p, form_str(ERR_KNOCKDISABLED),
|
||||
me.name, source_p->name);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
name = LOCAL_COPY(parv[1]);
|
||||
|
@ -98,7 +98,7 @@ m_knock(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
{
|
||||
sendto_one_numeric(source_p, ERR_NOSUCHCHANNEL,
|
||||
form_str(ERR_NOSUCHCHANNEL), name);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if(IsMember(source_p, chptr))
|
||||
|
@ -106,7 +106,7 @@ m_knock(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
if(MyClient(source_p))
|
||||
sendto_one(source_p, form_str(ERR_KNOCKONCHAN),
|
||||
me.name, source_p->name, name);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if(!((chptr->mode.mode & MODE_INVITEONLY) || (*chptr->mode.key) ||
|
||||
|
@ -115,7 +115,7 @@ m_knock(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
{
|
||||
sendto_one_numeric(source_p, ERR_CHANOPEN,
|
||||
form_str(ERR_CHANOPEN), name);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
/* cant knock to a +p channel */
|
||||
|
@ -123,7 +123,7 @@ m_knock(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
{
|
||||
sendto_one_numeric(source_p, ERR_CANNOTSENDTOCHAN,
|
||||
form_str(ERR_CANNOTSENDTOCHAN), name);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
|
@ -135,7 +135,7 @@ m_knock(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
{
|
||||
sendto_one_numeric(source_p, ERR_CANNOTSENDTOCHAN,
|
||||
form_str(ERR_CANNOTSENDTOCHAN), name);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
/* local flood protection:
|
||||
|
@ -147,13 +147,13 @@ m_knock(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
{
|
||||
sendto_one(source_p, form_str(ERR_TOOMANYKNOCK),
|
||||
me.name, source_p->name, name, "user");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
else if((chptr->last_knock + ConfigChannel.knock_delay_channel) > rb_current_time())
|
||||
{
|
||||
sendto_one(source_p, form_str(ERR_TOOMANYKNOCK),
|
||||
me.name, source_p->name, name, "channel");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
/* ok, we actually can send the knock, tell client */
|
||||
|
@ -175,6 +175,5 @@ m_knock(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
":%s KNOCK %s", use_id(source_p), name);
|
||||
sendto_server(client_p, chptr, CAP_KNOCK, CAP_TS6,
|
||||
":%s KNOCK %s", source_p->name, name);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -40,8 +40,8 @@
|
|||
static const char links_desc[] =
|
||||
"Provides the LINKS command to view servers linked to the host server";
|
||||
|
||||
static int m_links(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static int mo_links(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void m_links(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void mo_links(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static char * clean_string(char *dest, const unsigned char *src, size_t len);
|
||||
|
||||
struct Message links_msgtab = {
|
||||
|
@ -66,18 +66,16 @@ DECLARE_MODULE_AV2(links, NULL, NULL, links_clist, links_hlist, NULL, NULL, NULL
|
|||
* parv[1] = server to query
|
||||
* parv[2] = servername mask
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
m_links(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
if(ConfigServerHide.flatten_links && !IsExemptShide(source_p))
|
||||
scache_send_flattened_links(source_p);
|
||||
else
|
||||
mo_links(msgbuf_p, client_p, source_p, parc, parv);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
static void
|
||||
mo_links(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
const char *mask = "";
|
||||
|
@ -90,10 +88,10 @@ mo_links(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
if(parc > 2)
|
||||
{
|
||||
if(strlen(parv[2]) > HOSTLEN)
|
||||
return 0;
|
||||
return;
|
||||
if(hunt_server(client_p, source_p, ":%s LINKS %s :%s", 1, parc, parv)
|
||||
!= HUNTED_ISME)
|
||||
return 0;
|
||||
return;
|
||||
|
||||
mask = parv[2];
|
||||
}
|
||||
|
@ -128,8 +126,6 @@ mo_links(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
|
||||
sendto_one_numeric(source_p, RPL_ENDOFLINKS, form_str(RPL_ENDOFLINKS),
|
||||
EmptyString(mask) ? "*" : mask);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static char *
|
||||
|
|
|
@ -55,11 +55,13 @@ static const char list_desc[] = "Provides the LIST command to clients to view no
|
|||
|
||||
static rb_dlink_list safelisting_clients = { NULL, NULL, 0 };
|
||||
|
||||
static struct ev_entry *iterate_clients_ev = NULL;
|
||||
|
||||
static int _modinit(void);
|
||||
static void _moddeinit(void);
|
||||
|
||||
static int m_list(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static int mo_list(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void m_list(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void mo_list(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
|
||||
static void list_one_channel(struct Client *source_p, struct Channel *chptr, int visible);
|
||||
|
||||
|
@ -85,8 +87,6 @@ mapi_hfn_list_av1 list_hfnlist[] = {
|
|||
|
||||
DECLARE_MODULE_AV2(list, _modinit, _moddeinit, list_clist, NULL, list_hfnlist, NULL, NULL, list_desc);
|
||||
|
||||
static struct ev_entry *iterate_clients_ev = NULL;
|
||||
|
||||
static int _modinit(void)
|
||||
{
|
||||
iterate_clients_ev = rb_event_add("safelist_iterate_clients", safelist_iterate_clients, NULL, 3);
|
||||
|
@ -130,7 +130,8 @@ static void safelist_check_cliexit(hook_data_client_exit * hdata)
|
|||
* XXX - With SAFELIST, do we really need to continue pacing?
|
||||
* In theory, the server cannot be lagged by this. --nenolod
|
||||
*/
|
||||
static int m_list(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
static void
|
||||
m_list(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
static time_t last_used = 0L;
|
||||
|
||||
|
@ -138,7 +139,7 @@ static int m_list(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Clien
|
|||
{
|
||||
sendto_one_notice(source_p, ":/LIST aborted");
|
||||
safelist_client_release(source_p);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if (parc < 2 || !IsChannelName(parv[1]))
|
||||
|
@ -148,19 +149,20 @@ static int m_list(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Clien
|
|||
{
|
||||
sendto_one(source_p, form_str(RPL_LOAD2HI), me.name, source_p->name, "LIST");
|
||||
sendto_one(source_p, form_str(RPL_LISTEND), me.name, source_p->name);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
else
|
||||
last_used = rb_current_time();
|
||||
}
|
||||
|
||||
return mo_list(msgbuf_p, client_p, source_p, parc, parv);
|
||||
mo_list(msgbuf_p, client_p, source_p, parc, parv);
|
||||
}
|
||||
|
||||
/* mo_list()
|
||||
* parv[1] = channel
|
||||
*/
|
||||
static int mo_list(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
static void
|
||||
mo_list(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
struct ListClient *params;
|
||||
char *p;
|
||||
|
@ -172,7 +174,7 @@ static int mo_list(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Clie
|
|||
{
|
||||
sendto_one_notice(source_p, ":/LIST aborted");
|
||||
safelist_client_release(source_p);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if (parc > 1)
|
||||
|
@ -191,7 +193,7 @@ static int mo_list(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Clie
|
|||
if (args && IsChannelName(args))
|
||||
{
|
||||
safelist_channel_named(source_p, args, operspy);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
/* Multiple channels, possibly with parameters. */
|
||||
|
@ -286,8 +288,6 @@ static int mo_list(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Clie
|
|||
}
|
||||
|
||||
safelist_client_instantiate(source_p, params);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -317,19 +317,16 @@ static void list_one_channel(struct Client *source_p, struct Channel *chptr,
|
|||
* safelist_sendq_exceeded()
|
||||
*
|
||||
* inputs - pointer to client that needs checking
|
||||
* outputs - 1 if a client has exceeded the reserved
|
||||
* sendq limit, 0 if not
|
||||
* outputs - true if a client has exceeded the reserved
|
||||
* sendq limit, false if not
|
||||
* side effects - none
|
||||
*
|
||||
* When safelisting, we only use half of the SendQ at any
|
||||
* given time.
|
||||
*/
|
||||
static int safelist_sendq_exceeded(struct Client *client_p)
|
||||
static bool safelist_sendq_exceeded(struct Client *client_p)
|
||||
{
|
||||
if (rb_linebuf_len(&client_p->localClient->buf_sendq) > (get_sendq(client_p) / 2))
|
||||
return YES;
|
||||
else
|
||||
return NO;
|
||||
return rb_linebuf_len(&client_p->localClient->buf_sendq) > (get_sendq(client_p) / 2);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -367,12 +364,12 @@ static void safelist_client_instantiate(struct Client *client_p, struct ListClie
|
|||
* outputs - none
|
||||
* side effects - the client is no longer being
|
||||
* listed
|
||||
*
|
||||
* Please do not ever call this on a non-local client.
|
||||
* If you do, you will get SIGSEGV.
|
||||
*/
|
||||
static void safelist_client_release(struct Client *client_p)
|
||||
{
|
||||
if(!MyClient(client_p))
|
||||
return;
|
||||
|
||||
s_assert(MyClient(client_p));
|
||||
|
||||
rb_dlinkFindDestroy(client_p, &safelisting_clients);
|
||||
|
@ -478,7 +475,7 @@ static void safelist_iterate_client(struct Client *source_p)
|
|||
|
||||
RB_RADIXTREE_FOREACH_FROM(chptr, &iter, channel_tree, source_p->localClient->safelist_data->chname)
|
||||
{
|
||||
if (safelist_sendq_exceeded(source_p->from) == YES)
|
||||
if (safelist_sendq_exceeded(source_p->from))
|
||||
{
|
||||
rb_free(source_p->localClient->safelist_data->chname);
|
||||
source_p->localClient->safelist_data->chname = rb_strdup(chptr->chname);
|
||||
|
|
|
@ -40,9 +40,9 @@
|
|||
static const char locops_desc[] =
|
||||
"Provides the LOCOPS command to send a message to all local operators";
|
||||
|
||||
static int m_locops(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static int ms_locops(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static int me_locops(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void m_locops(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void ms_locops(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void me_locops(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
|
||||
struct Message locops_msgtab = {
|
||||
"LOCOPS", 0, 0, 0, 0,
|
||||
|
@ -58,7 +58,7 @@ DECLARE_MODULE_AV2(locops, NULL, NULL, locops_clist, NULL, NULL, NULL, NULL, loc
|
|||
* (write to *all* local opers currently online)
|
||||
* parv[1] = message text
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
m_locops(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
sendto_wallops_flags(UMODE_LOCOPS, source_p, "LOCOPS - %s", parv[1]);
|
||||
|
@ -66,11 +66,9 @@ m_locops(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
if(rb_dlink_list_length(&cluster_conf_list) > 0)
|
||||
cluster_generic(source_p, "LOCOPS", SHARED_LOCOPS, CAP_CLUSTER,
|
||||
":%s", parv[1]);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
static void
|
||||
ms_locops(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
/* source_p parv[1] parv[2]
|
||||
|
@ -80,24 +78,20 @@ ms_locops(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sourc
|
|||
":%s", parv[2]);
|
||||
|
||||
if(!match(parv[1], me.name))
|
||||
return 0;
|
||||
return;
|
||||
|
||||
if(find_shared_conf("*", "*", source_p->servptr->name, SHARED_LOCOPS))
|
||||
sendto_wallops_flags(UMODE_LOCOPS, source_p, "SLOCOPS - %s", parv[2]);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
static void
|
||||
me_locops(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p,
|
||||
int parc, const char *parv[])
|
||||
{
|
||||
if(!IsPerson(source_p))
|
||||
return 0;
|
||||
return;
|
||||
|
||||
if(find_shared_conf("*", "*", source_p->servptr->name, SHARED_LOCOPS))
|
||||
sendto_wallops_flags(UMODE_LOCOPS, source_p, "SLOCOPS - %s", parv[1]);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -37,8 +37,8 @@
|
|||
static const char lusers_desc[] =
|
||||
"Provides the LUSERS command to view the number of current and maximum lusers on a server";
|
||||
|
||||
static int m_lusers(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static int ms_lusers(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void m_lusers(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void ms_lusers(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
|
||||
struct Message lusers_msgtab = {
|
||||
"LUSERS", 0, 0, 0, 0,
|
||||
|
@ -57,7 +57,7 @@ DECLARE_MODULE_AV2(lusers, NULL, NULL, lusers_clist, NULL, NULL, NULL, NULL, lus
|
|||
* 19970918 JRL hacked to ignore parv[1] completely and require parc > 3
|
||||
* to cause a force
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
m_lusers(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
static time_t last_used = 0;
|
||||
|
@ -69,19 +69,17 @@ m_lusers(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
/* safe enough to give this on a local connect only */
|
||||
sendto_one(source_p, form_str(RPL_LOAD2HI),
|
||||
me.name, source_p->name, "LUSERS");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
else
|
||||
last_used = rb_current_time();
|
||||
|
||||
if(hunt_server(client_p, source_p, ":%s LUSERS %s :%s", 2, parc, parv) !=
|
||||
HUNTED_ISME)
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
show_lusers(source_p);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -92,17 +90,15 @@ m_lusers(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
* 199970918 JRL hacked to ignore parv[1] completely and require parc > 3
|
||||
* to cause a force
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
ms_lusers(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
if(parc > 2)
|
||||
{
|
||||
if(hunt_server(client_p, source_p, ":%s LUSERS %s :%s", 2, parc, parv)
|
||||
!= HUNTED_ISME)
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
show_lusers(source_p);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -32,8 +32,8 @@
|
|||
|
||||
static const char map_desc[] = "Provides the MAP command to view network topology information";
|
||||
|
||||
static int m_map(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[]);
|
||||
static int mo_map(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[]);
|
||||
static void m_map(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[]);
|
||||
static void mo_map(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[]);
|
||||
|
||||
struct Message map_msgtab = {
|
||||
"MAP", 0, 0, 0, 0,
|
||||
|
@ -51,7 +51,7 @@ static char buf[BUFSIZE];
|
|||
|
||||
/* m_map
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
m_map(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
if((!IsExemptShide(source_p) && ConfigServerHide.flatten_links) ||
|
||||
|
@ -59,25 +59,22 @@ m_map(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p,
|
|||
{
|
||||
flattened_map(client_p);
|
||||
sendto_one_numeric(client_p, RPL_MAPEND, form_str(RPL_MAPEND));
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
dump_map(client_p, &me, buf);
|
||||
sendto_one_numeric(client_p, RPL_MAPEND, form_str(RPL_MAPEND));
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
** mo_map
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
mo_map(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
dump_map(client_p, &me, buf);
|
||||
scache_send_missing(client_p);
|
||||
sendto_one_numeric(client_p, RPL_MAPEND, form_str(RPL_MAPEND));
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -43,7 +43,7 @@ static const char monitor_desc[] = "Provides the MONITOR facility for tracking u
|
|||
|
||||
static int monitor_init(void);
|
||||
static void monitor_deinit(void);
|
||||
static int m_monitor(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void m_monitor(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
|
||||
struct Message monitor_msgtab = {
|
||||
"MONITOR", 0, 0, 0, 0,
|
||||
|
@ -324,7 +324,7 @@ show_monitor_status(struct Client *client_p)
|
|||
sendto_one(client_p, "%s", offbuf);
|
||||
}
|
||||
|
||||
static int
|
||||
static void
|
||||
m_monitor(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
switch(parv[1][0])
|
||||
|
@ -334,7 +334,7 @@ m_monitor(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sourc
|
|||
{
|
||||
sendto_one(client_p, form_str(ERR_NEEDMOREPARAMS),
|
||||
me.name, source_p->name, "MONITOR");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
add_monitor(source_p, parv[2]);
|
||||
|
@ -344,7 +344,7 @@ m_monitor(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sourc
|
|||
{
|
||||
sendto_one(client_p, form_str(ERR_NEEDMOREPARAMS),
|
||||
me.name, source_p->name, "MONITOR");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
del_monitor(source_p, parv[2]);
|
||||
|
@ -368,6 +368,4 @@ m_monitor(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sourc
|
|||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -38,8 +38,8 @@
|
|||
|
||||
static const char motd_desc[] = "Provides the MOTD command to view the Message of the Day";
|
||||
|
||||
static int m_motd(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static int mo_motd(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void m_motd(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void mo_motd(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
|
||||
struct Message motd_msgtab = {
|
||||
"MOTD", 0, 0, 0, 0,
|
||||
|
@ -62,7 +62,7 @@ static void motd_spy(struct Client *);
|
|||
** m_motd
|
||||
** parv[1] = servername
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
m_motd(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
static time_t last_used = 0;
|
||||
|
@ -74,34 +74,30 @@ m_motd(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p
|
|||
me.name, source_p->name, "MOTD");
|
||||
sendto_one(source_p, form_str(RPL_ENDOFMOTD),
|
||||
me.name, source_p->name);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
else
|
||||
last_used = rb_current_time();
|
||||
|
||||
if(hunt_server(client_p, source_p, ":%s MOTD :%s", 1, parc, parv) != HUNTED_ISME)
|
||||
return 0;
|
||||
return;
|
||||
|
||||
motd_spy(source_p);
|
||||
send_user_motd(source_p);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
** mo_motd
|
||||
** parv[1] = servername
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
mo_motd(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
if(hunt_server(client_p, source_p, ":%s MOTD :%s", 1, parc, parv) != HUNTED_ISME)
|
||||
return 0;
|
||||
return;
|
||||
|
||||
motd_spy(source_p);
|
||||
send_user_motd(source_p);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* motd_spy()
|
||||
|
|
|
@ -39,7 +39,7 @@
|
|||
|
||||
static const char names_desc[] = "Provides the NAMES command to view users on a channel";
|
||||
|
||||
static int m_names(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void m_names(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
|
||||
struct Message names_msgtab = {
|
||||
"NAMES", 0, 0, 0, 0,
|
||||
|
@ -60,7 +60,7 @@ static void names_global(struct Client *source_p);
|
|||
* m_names
|
||||
* parv[1] = channel
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
m_names(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
static time_t last_used = 0;
|
||||
|
@ -78,7 +78,7 @@ m_names(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
sendto_one_numeric(source_p, ERR_BADCHANNAME,
|
||||
form_str(ERR_BADCHANNAME),
|
||||
(unsigned char *) p);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if((chptr = find_channel(p)) != NULL)
|
||||
|
@ -97,7 +97,7 @@ m_names(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
me.name, source_p->name, "NAMES");
|
||||
sendto_one(source_p, form_str(RPL_ENDOFNAMES),
|
||||
me.name, source_p->name, "*");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
else
|
||||
last_used = rb_current_time();
|
||||
|
@ -108,7 +108,7 @@ m_names(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
me.name, source_p->name, "*");
|
||||
}
|
||||
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -124,7 +124,7 @@ names_global(struct Client *source_p)
|
|||
int mlen;
|
||||
int tlen;
|
||||
int cur_len;
|
||||
int dont_show = NO;
|
||||
bool dont_show = false;
|
||||
rb_dlink_node *lp, *ptr;
|
||||
struct Client *target_p;
|
||||
struct Channel *chptr = NULL;
|
||||
|
@ -146,7 +146,7 @@ names_global(struct Client *source_p)
|
|||
RB_DLINK_FOREACH(ptr, global_client_list.head)
|
||||
{
|
||||
target_p = ptr->data;
|
||||
dont_show = NO;
|
||||
dont_show = false;
|
||||
|
||||
if(!IsPerson(target_p) || IsInvisible(target_p))
|
||||
continue;
|
||||
|
@ -166,7 +166,7 @@ names_global(struct Client *source_p)
|
|||
if(PubChannel(chptr) || IsMember(source_p, chptr) ||
|
||||
SecretChannel(chptr))
|
||||
{
|
||||
dont_show = YES;
|
||||
dont_show = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -41,7 +41,9 @@
|
|||
|
||||
static const char oper_desc[] = "Provides the OPER command to become an IRC operator";
|
||||
|
||||
static int m_oper(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void m_oper(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
|
||||
static bool match_oper_password(const char *password, struct oper_conf *oper_p);
|
||||
|
||||
struct Message oper_msgtab = {
|
||||
"OPER", 0, 0, 0, 0,
|
||||
|
@ -52,14 +54,12 @@ mapi_clist_av1 oper_clist[] = { &oper_msgtab, NULL };
|
|||
|
||||
DECLARE_MODULE_AV2(oper, NULL, NULL, oper_clist, NULL, NULL, NULL, NULL, oper_desc);
|
||||
|
||||
static int match_oper_password(const char *password, struct oper_conf *oper_p);
|
||||
|
||||
/*
|
||||
* m_oper
|
||||
* parv[1] = oper name
|
||||
* parv[2] = oper password
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
m_oper(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
struct oper_conf *oper_p;
|
||||
|
@ -73,7 +73,7 @@ m_oper(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p
|
|||
{
|
||||
sendto_one(source_p, form_str(RPL_YOUREOPER), me.name, source_p->name);
|
||||
send_oper_motd(source_p);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
/* end the grace period */
|
||||
|
@ -97,7 +97,7 @@ m_oper(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p
|
|||
source_p->name, source_p->username, source_p->host);
|
||||
}
|
||||
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if(IsOperConfNeedSSL(oper_p) && !IsSSLClient(source_p))
|
||||
|
@ -113,7 +113,7 @@ m_oper(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p
|
|||
"Failed OPER attempt - missing SSL/TLS by %s (%s@%s)",
|
||||
source_p->name, source_p->username, source_p->host);
|
||||
}
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if (oper_p->certfp != NULL)
|
||||
|
@ -131,7 +131,7 @@ m_oper(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p
|
|||
"Failed OPER attempt - client certificate fingerprint mismatch by %s (%s@%s)",
|
||||
source_p->name, source_p->username, source_p->host);
|
||||
}
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -142,7 +142,7 @@ m_oper(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p
|
|||
ilog(L_OPERED, "OPER %s by %s!%s@%s (%s)",
|
||||
name, source_p->name, source_p->username, source_p->host,
|
||||
source_p->sockhost);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -160,8 +160,6 @@ m_oper(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p
|
|||
source_p->name, source_p->username, source_p->host);
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -169,17 +167,17 @@ m_oper(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p
|
|||
*
|
||||
* inputs - pointer to given password
|
||||
* - pointer to Conf
|
||||
* output - YES or NO if match
|
||||
* output - true if match, false otherwise
|
||||
* side effects - none
|
||||
*/
|
||||
static int
|
||||
static bool
|
||||
match_oper_password(const char *password, struct oper_conf *oper_p)
|
||||
{
|
||||
const char *encr;
|
||||
|
||||
/* passwd may be NULL pointer. Head it off at the pass... */
|
||||
if(EmptyString(oper_p->passwd))
|
||||
return NO;
|
||||
return false;
|
||||
|
||||
if(IsOperConfEncrypted(oper_p))
|
||||
{
|
||||
|
@ -198,7 +196,7 @@ match_oper_password(const char *password, struct oper_conf *oper_p)
|
|||
encr = password;
|
||||
|
||||
if(encr != NULL && strcmp(encr, oper_p->passwd) == 0)
|
||||
return YES;
|
||||
return true;
|
||||
else
|
||||
return NO;
|
||||
return false;
|
||||
}
|
||||
|
|
|
@ -45,7 +45,7 @@
|
|||
static const char operspy_desc[] =
|
||||
"Provides the operspy facility for viewing normally private data";
|
||||
|
||||
static int ms_operspy(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p,
|
||||
static void ms_operspy(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p,
|
||||
int parc, const char *parv[]);
|
||||
|
||||
struct Message operspy_msgtab = {
|
||||
|
@ -62,7 +62,7 @@ DECLARE_MODULE_AV2(operspy, NULL, NULL, operspy_clist, NULL, NULL, NULL, NULL, o
|
|||
* parv[1] - operspy command
|
||||
* parv[2] - optional params
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
ms_operspy(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p,
|
||||
int parc, const char *parv[])
|
||||
{
|
||||
|
@ -87,7 +87,7 @@ ms_operspy(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sour
|
|||
len = strlen(parv[i]) + 1;
|
||||
|
||||
if((size_t)(cur_len + len) >= sizeof(buffer))
|
||||
return 0;
|
||||
return;
|
||||
|
||||
snprintf(ptr, sizeof(buffer) - cur_len, "%s ",
|
||||
parv[i]);
|
||||
|
@ -97,6 +97,4 @@ ms_operspy(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sour
|
|||
|
||||
report_operspy(source_p, parv[1], buffer);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -37,7 +37,7 @@
|
|||
|
||||
static const char pass_desc[] = "Provides the PASS command to authenticate clients and servers";
|
||||
|
||||
static int mr_pass(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void mr_pass(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
|
||||
struct Message pass_msgtab = {
|
||||
"PASS", 0, 0, 0, 0,
|
||||
|
@ -57,14 +57,14 @@ DECLARE_MODULE_AV2(pass, NULL, NULL, pass_clist, NULL, NULL, NULL, NULL, pass_de
|
|||
* parv[2] = "TS" if this server supports TS.
|
||||
* parv[3] = optional TS version field -- needed for TS6
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
mr_pass(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
char *auth_user, *pass, *buf;
|
||||
buf = LOCAL_COPY(parv[1]);
|
||||
|
||||
if(client_p->localClient->passwd || client_p->localClient->auth_user)
|
||||
return 0;
|
||||
return;
|
||||
|
||||
if ((pass = strchr(buf, ':')) != NULL)
|
||||
{
|
||||
|
@ -108,6 +108,4 @@ mr_pass(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -38,8 +38,8 @@
|
|||
static const char ping_desc[] =
|
||||
"Provides the PING command to ensure a client or server is still alive";
|
||||
|
||||
static int m_ping(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static int ms_ping(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void m_ping(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void ms_ping(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
|
||||
struct Message ping_msgtab = {
|
||||
"PING", 0, 0, 0, 0,
|
||||
|
@ -55,7 +55,7 @@ DECLARE_MODULE_AV2(ping, NULL, NULL, ping_clist, NULL, NULL, NULL, NULL, ping_de
|
|||
** parv[1] = origin
|
||||
** parv[2] = destination
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
m_ping(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
struct Client *target_p;
|
||||
|
@ -76,17 +76,15 @@ m_ping(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p
|
|||
sendto_one_numeric(source_p, ERR_NOSUCHSERVER,
|
||||
form_str(ERR_NOSUCHSERVER),
|
||||
destination);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
}
|
||||
else
|
||||
sendto_one(source_p, ":%s PONG %s :%s", me.name,
|
||||
(destination) ? destination : me.name, parv[1]);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
static void
|
||||
ms_ping(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
struct Client *target_p;
|
||||
|
@ -111,6 +109,4 @@ ms_ping(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
sendto_one(source_p, ":%s PONG %s :%s",
|
||||
get_id(&me, source_p), me.name,
|
||||
get_id(source_p, source_p));
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -40,8 +40,8 @@
|
|||
|
||||
static const char pong_desc[] = "Provides the PONG command to respond to a PING message";
|
||||
|
||||
static int mr_pong(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static int ms_pong(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void mr_pong(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void ms_pong(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
|
||||
struct Message pong_msgtab = {
|
||||
"PONG", 0, 0, 0, 0,
|
||||
|
@ -52,7 +52,7 @@ mapi_clist_av1 pong_clist[] = { &pong_msgtab, NULL };
|
|||
|
||||
DECLARE_MODULE_AV2(pong, NULL, NULL, pong_clist, NULL, NULL, NULL, NULL, pong_desc);
|
||||
|
||||
static int
|
||||
static void
|
||||
ms_pong(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
struct Client *target_p;
|
||||
|
@ -79,7 +79,7 @@ ms_pong(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
if(!IsDigit(*destination))
|
||||
sendto_one_numeric(source_p, ERR_NOSUCHSERVER,
|
||||
form_str(ERR_NOSUCHSERVER), destination);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -95,11 +95,9 @@ ms_pong(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
eob_count++;
|
||||
call_hook(h_server_eob, source_p);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
static void
|
||||
mr_pong(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
if(parc == 2 && !EmptyString(parv[1]))
|
||||
|
@ -119,7 +117,7 @@ mr_pong(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
sendto_one(source_p, form_str(ERR_WRONGPONG),
|
||||
me.name, source_p->name,
|
||||
source_p->localClient->random_ping);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -129,6 +127,4 @@ mr_pong(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
sendto_one(source_p, form_str(ERR_NOORIGIN), me.name, source_p->name);
|
||||
|
||||
source_p->flags &= ~FLAGS_PINGSENT;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -36,7 +36,7 @@
|
|||
static const char post_desc[] =
|
||||
"Ensure Web forms/proxies cannot connect by disconnecting on POST, GET, and PUT";
|
||||
|
||||
static int mr_dumb_proxy(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void mr_dumb_proxy(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
|
||||
struct Message post_msgtab = {
|
||||
"POST", 0, 0, 0, 0,
|
||||
|
@ -54,17 +54,15 @@ struct Message put_msgtab = {
|
|||
mapi_clist_av1 post_clist[] = {
|
||||
&post_msgtab, &get_msgtab, &put_msgtab, NULL
|
||||
};
|
||||
DECLARE_MODULE_AV2(post, NULL, NULL, post_clist, NULL, NULL, NULL, NULL, post_desc);
|
||||
|
||||
DECLARE_MODULE_AV2(post, NULL, NULL, post_clist, NULL, NULL, NULL, NULL, post_desc);
|
||||
|
||||
/*
|
||||
** mr_dumb_proxy
|
||||
** parv[1] = comment
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
mr_dumb_proxy(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
exit_client(client_p, source_p, source_p, "Client Exit");
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -42,9 +42,9 @@
|
|||
|
||||
static const char privs_desc[] = "Provides the PRIVS command to inspect an operator's privileges";
|
||||
|
||||
static int m_privs(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[]);
|
||||
static int me_privs(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[]);
|
||||
static int mo_privs(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[]);
|
||||
static void m_privs(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[]);
|
||||
static void me_privs(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[]);
|
||||
static void mo_privs(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[]);
|
||||
|
||||
struct Message privs_msgtab = {
|
||||
"PRIVS", 0, 0, 0, 0,
|
||||
|
@ -115,21 +115,21 @@ static void show_privs(struct Client *source_p, struct Client *target_p)
|
|||
target_p->name, buf);
|
||||
}
|
||||
|
||||
static int me_privs(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
static void
|
||||
me_privs(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
struct Client *target_p;
|
||||
|
||||
if (!IsOper(source_p) || parc < 2 || EmptyString(parv[1]))
|
||||
return 0;
|
||||
return;
|
||||
|
||||
/* we cannot show privs for remote clients */
|
||||
if((target_p = find_person(parv[1])) && MyClient(target_p))
|
||||
show_privs(source_p, target_p);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int mo_privs(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
static void
|
||||
mo_privs(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
struct Client *target_p;
|
||||
|
||||
|
@ -142,7 +142,7 @@ static int mo_privs(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Cli
|
|||
{
|
||||
sendto_one_numeric(source_p, ERR_NOSUCHNICK,
|
||||
form_str(ERR_NOSUCHNICK), parv[1]);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -153,18 +153,17 @@ static int mo_privs(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Cli
|
|||
get_id(source_p, target_p),
|
||||
target_p->servptr->name,
|
||||
use_id(target_p));
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int m_privs(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
static void
|
||||
m_privs(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
if (parc >= 2 && !EmptyString(parv[1]) &&
|
||||
irccmp(parv[1], source_p->name)) {
|
||||
sendto_one_numeric(source_p, ERR_NOPRIVILEGES,
|
||||
form_str(ERR_NOPRIVILEGES));
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
show_privs(source_p, source_p);
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -47,8 +47,8 @@
|
|||
static const char rehash_desc[] =
|
||||
"Provides the REHASH command to reload configuration and other files";
|
||||
|
||||
static int mo_rehash(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static int me_rehash(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void mo_rehash(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void me_rehash(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
|
||||
struct Message rehash_msgtab = {
|
||||
"REHASH", 0, 0, 0, 0,
|
||||
|
@ -357,7 +357,7 @@ do_rehash(struct Client *source_p, const char *type)
|
|||
* parv[1] = rehash type or destination
|
||||
* parv[2] = destination
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
mo_rehash(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
const char *type = NULL, *target_server = NULL;
|
||||
|
@ -366,7 +366,7 @@ mo_rehash(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sourc
|
|||
{
|
||||
sendto_one(source_p, form_str(ERR_NOPRIVS),
|
||||
me.name, source_p->name, "rehash");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if (parc > 2)
|
||||
|
@ -384,33 +384,29 @@ mo_rehash(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sourc
|
|||
{
|
||||
sendto_one(source_p, form_str(ERR_NOPRIVS),
|
||||
me.name, source_p->name, "remoteban");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
sendto_match_servs(source_p, target_server,
|
||||
CAP_ENCAP, NOCAPS,
|
||||
"ENCAP %s REHASH %s",
|
||||
target_server, type != NULL ? type : "");
|
||||
if (match(target_server, me.name) == 0)
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
do_rehash(source_p, type);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
static void
|
||||
me_rehash(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
|
||||
if (!IsPerson(source_p))
|
||||
return 0;
|
||||
return;
|
||||
|
||||
if (!find_shared_conf(source_p->username, source_p->host,
|
||||
source_p->servptr->name, SHARED_REHASH))
|
||||
return 0;
|
||||
return;
|
||||
|
||||
do_rehash(source_p, parc > 1 ? parv[1] : NULL);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -40,9 +40,9 @@
|
|||
|
||||
static const char restart_desc[] = "Provides the RESTART command to restart the server";
|
||||
|
||||
static int mo_restart(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static int me_restart(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static int do_restart(struct Client *source_p, const char *servername);
|
||||
static void mo_restart(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void me_restart(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void do_restart(struct Client *source_p, const char *servername);
|
||||
|
||||
struct Message restart_msgtab = {
|
||||
"RESTART", 0, 0, 0, 0,
|
||||
|
@ -56,7 +56,7 @@ DECLARE_MODULE_AV2(restart, NULL, NULL, restart_clist, NULL, NULL, NULL, NULL, r
|
|||
/*
|
||||
* mo_restart
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
mo_restart(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
char buf[BUFSIZE];
|
||||
|
@ -67,13 +67,13 @@ mo_restart(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sour
|
|||
{
|
||||
sendto_one(source_p, form_str(ERR_NOPRIVS),
|
||||
me.name, source_p->name, "die");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if(parc < 2 || EmptyString(parv[1]))
|
||||
{
|
||||
sendto_one_notice(source_p, ":Need server name /restart %s", me.name);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if(parc > 2)
|
||||
|
@ -83,33 +83,33 @@ mo_restart(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sour
|
|||
if (!server_p)
|
||||
{
|
||||
sendto_one_numeric(source_p, ERR_NOSUCHSERVER, form_str(ERR_NOSUCHSERVER), parv[2]);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if (!IsMe(server_p))
|
||||
{
|
||||
sendto_one(server_p, ":%s ENCAP %s RESTART %s", source_p->name, parv[2], parv[1]);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
return do_restart(source_p, parv[1]);
|
||||
do_restart(source_p, parv[1]);
|
||||
}
|
||||
|
||||
static int
|
||||
static void
|
||||
me_restart(struct MsgBuf *msgbuf_p __unused, struct Client *client_p __unused, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
if(!find_shared_conf(source_p->username, source_p->host, source_p->servptr->name, SHARED_DIE))
|
||||
{
|
||||
sendto_one_notice(source_p, ":*** You do not have an appropriate shared block to "
|
||||
"remotely restart this server.");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
return do_restart(source_p, parv[1]);
|
||||
do_restart(source_p, parv[1]);
|
||||
}
|
||||
|
||||
static int
|
||||
static void
|
||||
do_restart(struct Client *source_p, const char *servername)
|
||||
{
|
||||
char buf[BUFSIZE];
|
||||
|
@ -119,7 +119,7 @@ do_restart(struct Client *source_p, const char *servername)
|
|||
if(irccmp(servername, me.name))
|
||||
{
|
||||
sendto_one_notice(source_p, ":Mismatch on /restart %s", me.name);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
RB_DLINK_FOREACH(ptr, lclient_list.head)
|
||||
|
@ -139,6 +139,4 @@ do_restart(struct Client *source_p, const char *servername)
|
|||
|
||||
sprintf(buf, "Server RESTART by %s", get_client_name(source_p, HIDE_IP));
|
||||
restart(buf);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -41,12 +41,12 @@
|
|||
static const char resv_desc[] =
|
||||
"Provides management of reserved nicknames and channels using (UN)RESV";
|
||||
|
||||
static int mo_resv(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static int ms_resv(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static int me_resv(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static int mo_unresv(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static int ms_unresv(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static int me_unresv(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void mo_resv(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void ms_resv(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void me_resv(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void mo_unresv(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void ms_unresv(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void me_unresv(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
|
||||
struct Message resv_msgtab = {
|
||||
"RESV", 0, 0, 0, 0,
|
||||
|
@ -77,7 +77,7 @@ static void remove_resv(struct Client *source_p, const char *name, int propagate
|
|||
* parv[1] = channel/nick to forbid
|
||||
* parv[2] = reason
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
mo_resv(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
const char *name;
|
||||
|
@ -90,7 +90,7 @@ mo_resv(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
if(!IsOperResv(source_p))
|
||||
{
|
||||
sendto_one(source_p, form_str(ERR_NOPRIVS), me.name, source_p->name, "resv");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
/* RESV [time] <name> [ON <server>] :<reason> */
|
||||
|
@ -110,7 +110,7 @@ mo_resv(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
{
|
||||
sendto_one(source_p, form_str(ERR_NOPRIVS),
|
||||
me.name, source_p->name, "remoteban");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
target_server = parv[loc + 1];
|
||||
|
@ -123,7 +123,7 @@ mo_resv(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
if(parc <= loc || EmptyString(parv[loc]))
|
||||
{
|
||||
sendto_one(source_p, form_str(ERR_NEEDMOREPARAMS), me.name, source_p->name, "RESV");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
reason = parv[loc];
|
||||
|
@ -134,7 +134,7 @@ mo_resv(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
propagate_resv(source_p, target_server, temp_time, name, reason);
|
||||
|
||||
if(match(target_server, me.name) == 0)
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
else if(!propagated && rb_dlink_list_length(&cluster_conf_list) > 0)
|
||||
cluster_resv(source_p, temp_time, name, reason);
|
||||
|
@ -142,12 +142,10 @@ mo_resv(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
if(propagated && temp_time == 0)
|
||||
{
|
||||
sendto_one_notice(source_p, ":Cannot set a permanent global ban");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
parse_resv(source_p, name, reason, temp_time, propagated);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* ms_resv()
|
||||
|
@ -155,7 +153,7 @@ mo_resv(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
* parv[2] = channel/nick to forbid
|
||||
* parv[3] = reason
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
ms_resv(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
/* parv[0] parv[1] parv[2] parv[3]
|
||||
|
@ -164,24 +162,22 @@ ms_resv(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
propagate_resv(source_p, parv[1], 0, parv[2], parv[3]);
|
||||
|
||||
if(!match(parv[1], me.name))
|
||||
return 0;
|
||||
return;
|
||||
|
||||
if(!IsPerson(source_p))
|
||||
return 0;
|
||||
return;
|
||||
|
||||
parse_resv(source_p, parv[2], parv[3], 0, 0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
static void
|
||||
me_resv(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
/* time name 0 :reason */
|
||||
if(!IsPerson(source_p))
|
||||
return 0;
|
||||
return;
|
||||
|
||||
parse_resv(source_p, parv[2], parv[4], atoi(parv[1]), 0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* parse_resv()
|
||||
|
@ -423,7 +419,7 @@ cluster_resv(struct Client *source_p, int temp_time, const char *name, const cha
|
|||
* mo_unresv()
|
||||
* parv[1] = channel/nick to unforbid
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
mo_unresv(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
int propagated = 1;
|
||||
|
@ -431,7 +427,7 @@ mo_unresv(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sourc
|
|||
if(!IsOperResv(source_p))
|
||||
{
|
||||
sendto_one(source_p, form_str(ERR_NOPRIVS), me.name, source_p->name, "resv");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if((parc == 4) && (irccmp(parv[2], "ON") == 0))
|
||||
|
@ -440,13 +436,13 @@ mo_unresv(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sourc
|
|||
{
|
||||
sendto_one(source_p, form_str(ERR_NOPRIVS),
|
||||
me.name, source_p->name, "remoteban");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
propagate_generic(source_p, "UNRESV", parv[3], CAP_CLUSTER, "%s", parv[1]);
|
||||
|
||||
if(match(parv[3], me.name) == 0)
|
||||
return 0;
|
||||
return;
|
||||
|
||||
propagated = 0;
|
||||
}
|
||||
|
@ -457,14 +453,13 @@ mo_unresv(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sourc
|
|||
/* cluster{} moved to remove_resv */
|
||||
|
||||
remove_resv(source_p, parv[1], propagated);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* ms_unresv()
|
||||
* parv[1] = target server
|
||||
* parv[2] = resv to remove
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
ms_unresv(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
/* parv[0] parv[1] parv[2]
|
||||
|
@ -473,24 +468,22 @@ ms_unresv(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sourc
|
|||
propagate_generic(source_p, "UNRESV", parv[1], CAP_CLUSTER, "%s", parv[2]);
|
||||
|
||||
if(!match(parv[1], me.name))
|
||||
return 0;
|
||||
return;
|
||||
|
||||
if(!IsPerson(source_p))
|
||||
return 0;
|
||||
return;
|
||||
|
||||
handle_remote_unresv(source_p, parv[2]);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
static void
|
||||
me_unresv(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
/* name */
|
||||
if(!IsPerson(source_p))
|
||||
return 0;
|
||||
return;
|
||||
|
||||
handle_remote_unresv(source_p, parv[1]);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
|
@ -43,9 +43,9 @@
|
|||
|
||||
static const char sasl_desc[] = "Provides SASL authentication support";
|
||||
|
||||
static int m_authenticate(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static int me_sasl(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static int me_mechlist(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void m_authenticate(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void me_sasl(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void me_mechlist(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
|
||||
static void abort_sasl(struct Client *);
|
||||
static void abort_sasl_exit(hook_data_client_exit *);
|
||||
|
@ -80,7 +80,7 @@ mapi_hfn_list_av1 sasl_hfnlist[] = {
|
|||
{ NULL, NULL }
|
||||
};
|
||||
|
||||
static int
|
||||
static bool
|
||||
sasl_visible(struct Client *client_p)
|
||||
{
|
||||
struct Client *agent_p = NULL;
|
||||
|
@ -119,7 +119,7 @@ _moddeinit(void)
|
|||
|
||||
DECLARE_MODULE_AV2(sasl, _modinit, _moddeinit, sasl_clist, NULL, sasl_hfnlist, NULL, NULL, sasl_desc);
|
||||
|
||||
static int
|
||||
static void
|
||||
m_authenticate(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p,
|
||||
int parc, const char *parv[])
|
||||
{
|
||||
|
@ -128,19 +128,19 @@ m_authenticate(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *
|
|||
|
||||
/* They really should use CAP for their own sake. */
|
||||
if(!IsCapable(source_p, CLICAP_SASL))
|
||||
return 0;
|
||||
return;
|
||||
|
||||
if (strlen(client_p->id) == 3)
|
||||
{
|
||||
exit_client(client_p, client_p, client_p, "Mixing client and server protocol");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
saslserv_p = find_named_client(ConfigFileEntry.sasl_service);
|
||||
if (saslserv_p == NULL || !IsService(saslserv_p))
|
||||
{
|
||||
sendto_one(source_p, form_str(ERR_SASLABORTED), me.name, EmptyString(source_p->name) ? "*" : source_p->name);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if(source_p->localClient->sasl_complete)
|
||||
|
@ -152,7 +152,7 @@ m_authenticate(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *
|
|||
if(strlen(parv[1]) > 400)
|
||||
{
|
||||
sendto_one(source_p, form_str(ERR_SASLTOOLONG), me.name, EmptyString(source_p->name) ? "*" : source_p->name);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if(!*source_p->id)
|
||||
|
@ -187,11 +187,9 @@ m_authenticate(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *
|
|||
me.id, agent_p->servptr->name, source_p->id, agent_p->id,
|
||||
parv[1]);
|
||||
source_p->localClient->sasl_out++;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
static void
|
||||
me_sasl(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p,
|
||||
int parc, const char *parv[])
|
||||
{
|
||||
|
@ -201,26 +199,26 @@ me_sasl(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
* Only SASL agents can answer global requests.
|
||||
*/
|
||||
if(strncmp(parv[2], me.id, 3))
|
||||
return 0;
|
||||
return;
|
||||
|
||||
if((target_p = find_id(parv[2])) == NULL)
|
||||
return 0;
|
||||
return;
|
||||
|
||||
if((agent_p = find_id(parv[1])) == NULL)
|
||||
return 0;
|
||||
return;
|
||||
|
||||
if(source_p != agent_p->servptr) /* WTF?! */
|
||||
return 0;
|
||||
return;
|
||||
|
||||
/* We only accept messages from SASL agents; these must have umode +S
|
||||
* (so the server must be listed in a service{} block).
|
||||
*/
|
||||
if(!IsService(agent_p))
|
||||
return 0;
|
||||
return;
|
||||
|
||||
/* Reject if someone has already answered. */
|
||||
if(*target_p->localClient->sasl_agent && strncmp(parv[1], target_p->localClient->sasl_agent, IDLEN))
|
||||
return 0;
|
||||
return;
|
||||
else if(!*target_p->localClient->sasl_agent)
|
||||
rb_strlcpy(target_p->localClient->sasl_agent, parv[1], IDLEN);
|
||||
|
||||
|
@ -239,17 +237,13 @@ me_sasl(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
}
|
||||
else if(*parv[3] == 'M')
|
||||
sendto_one(target_p, form_str(RPL_SASLMECHS), me.name, EmptyString(target_p->name) ? "*" : target_p->name, parv[4]);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
static void
|
||||
me_mechlist(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p,
|
||||
int parc, const char *parv[])
|
||||
{
|
||||
rb_strlcpy(mechlist_buf, parv[1], sizeof mechlist_buf);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* If the client never finished authenticating but is
|
||||
|
|
|
@ -52,8 +52,8 @@
|
|||
static const char scan_desc[] =
|
||||
"Provides the SCAN command to show users that have a mode set or cleared";
|
||||
|
||||
static int mo_scan(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static int scan_umodes(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void mo_scan(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void scan_umodes(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
|
||||
struct Message scan_msgtab = {
|
||||
"SCAN", 0, 0, 0, 0,
|
||||
|
@ -64,7 +64,7 @@ mapi_clist_av1 scan_clist[] = { &scan_msgtab, NULL };
|
|||
|
||||
DECLARE_MODULE_AV2(scan, NULL, NULL, scan_clist, NULL, NULL, NULL, NULL, scan_desc);
|
||||
|
||||
typedef int (*scan_handler)(struct MsgBuf *, struct Client *, struct Client *, int,
|
||||
typedef void (*scan_handler)(struct MsgBuf *, struct Client *, struct Client *, int,
|
||||
const char **);
|
||||
|
||||
struct scan_cmd {
|
||||
|
@ -84,7 +84,7 @@ static const char *spoofed_sockhost = "0";
|
|||
* parv[1] = options [or target]
|
||||
* parv[2] = [target]
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
mo_scan(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc,
|
||||
const char *parv[])
|
||||
{
|
||||
|
@ -94,28 +94,25 @@ mo_scan(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
{
|
||||
if (!irccmp(sptr->name, parv[1]))
|
||||
{
|
||||
if (sptr->operlevel == L_ADMIN &&
|
||||
!IsOperAdmin(source_p))
|
||||
return -1;
|
||||
else
|
||||
return sptr->handler(msgbuf_p, client_p, source_p, parc, parv);
|
||||
if (!(sptr->operlevel == L_ADMIN && !IsOperAdmin(source_p)))
|
||||
sptr->handler(msgbuf_p, client_p, source_p, parc, parv);
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
sendto_one_notice(source_p, ":*** %s is not an implemented SCAN target",
|
||||
parv[1]);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
static void
|
||||
scan_umodes(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc,
|
||||
const char *parv[])
|
||||
{
|
||||
unsigned int allowed_umodes = 0, disallowed_umodes = 0;
|
||||
int what = MODE_ADD;
|
||||
int mode;
|
||||
int list_users = YES;
|
||||
bool list_users = true;
|
||||
int list_max = 500;
|
||||
int list_count = 0, count = 0;
|
||||
const char *mask = NULL;
|
||||
|
@ -133,13 +130,13 @@ scan_umodes(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sou
|
|||
sendto_one(source_p, form_str(ERR_NEEDMOREPARAMS),
|
||||
me.name, source_p->name, "SCAN UMODES");
|
||||
|
||||
return -1;
|
||||
return;
|
||||
}
|
||||
|
||||
if (parv[2][0] != '+' && parv[2][0] != '-')
|
||||
{
|
||||
sendto_one_notice(source_p, ":SCAN UMODES: umodes parameter must start with '+' or '-'");
|
||||
return -1;
|
||||
return;
|
||||
}
|
||||
|
||||
for (c = parv[2]; *c; c++)
|
||||
|
@ -166,9 +163,9 @@ scan_umodes(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sou
|
|||
for (i = 3; i < parc; i++)
|
||||
{
|
||||
if (!irccmp(parv[i], "no-list"))
|
||||
list_users = NO;
|
||||
list_users = false;
|
||||
else if (!irccmp(parv[i], "list"))
|
||||
list_users = YES;
|
||||
list_users = true;
|
||||
else if (!irccmp(parv[i], "global"))
|
||||
target_list = &global_client_list;
|
||||
else if (i < (parc - 1))
|
||||
|
@ -180,13 +177,13 @@ scan_umodes(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sou
|
|||
else
|
||||
{
|
||||
sendto_one_notice(source_p, ":SCAN UMODES: invalid parameters");
|
||||
return -1;
|
||||
return;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
sendto_one_notice(source_p, ":SCAN UMODES: invalid parameters");
|
||||
return -1;
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (target_list == &global_client_list && list_users)
|
||||
|
@ -208,7 +205,7 @@ scan_umodes(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sou
|
|||
{
|
||||
sendto_one(source_p, form_str(ERR_NOPRIVS),
|
||||
me.name, source_p->name, "oper_spy");
|
||||
return -1;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -277,6 +274,4 @@ scan_umodes(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sou
|
|||
|
||||
sendto_one_numeric(source_p, RPL_SCANMATCHED,
|
||||
form_str(RPL_SCANMATCHED), count);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -55,10 +55,10 @@ static void _moddeinit(void);
|
|||
static void mark_services(void);
|
||||
static void unmark_services(void);
|
||||
|
||||
static int me_su(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static int me_login(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static int me_rsfnc(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static int me_nickdelay(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void me_su(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void me_login(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void me_rsfnc(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void me_nickdelay(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
|
||||
static void h_svc_server_introduced(hook_data_client *);
|
||||
static void h_svc_whois(hook_data_client *);
|
||||
|
@ -113,7 +113,7 @@ _moddeinit(void)
|
|||
unmark_services();
|
||||
}
|
||||
|
||||
static int
|
||||
static void
|
||||
me_su(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p,
|
||||
int parc, const char *parv[])
|
||||
{
|
||||
|
@ -123,14 +123,14 @@ me_su(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p,
|
|||
{
|
||||
sendto_realops_snomask(SNO_GENERAL, L_ALL,
|
||||
"Non-service server %s attempting to execute services-only command SU", source_p->name);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if((target_p = find_client(parv[1])) == NULL)
|
||||
return 0;
|
||||
return;
|
||||
|
||||
if(!target_p->user)
|
||||
return 0;
|
||||
return;
|
||||
|
||||
if(EmptyString(parv[2]))
|
||||
target_p->user->suser[0] = '\0';
|
||||
|
@ -142,22 +142,19 @@ me_su(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p,
|
|||
EmptyString(target_p->user->suser) ? "*" : target_p->user->suser);
|
||||
|
||||
invalidate_bancache_user(target_p);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
static void
|
||||
me_login(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p,
|
||||
int parc, const char *parv[])
|
||||
{
|
||||
if(!IsPerson(source_p))
|
||||
return 0;
|
||||
return;
|
||||
|
||||
rb_strlcpy(source_p->user->suser, parv[1], sizeof(source_p->user->suser));
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
static void
|
||||
me_rsfnc(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p,
|
||||
int parc, const char *parv[])
|
||||
{
|
||||
|
@ -170,17 +167,17 @@ me_rsfnc(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
{
|
||||
sendto_realops_snomask(SNO_GENERAL, L_ALL,
|
||||
"Non-service server %s attempting to execute services-only command RSFNC", source_p->name);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if((target_p = find_person(parv[1])) == NULL)
|
||||
return 0;
|
||||
return;
|
||||
|
||||
if(!MyClient(target_p))
|
||||
return 0;
|
||||
return;
|
||||
|
||||
if(!clean_nick(parv[2], 0) || IsDigit(parv[2][0]))
|
||||
return 0;
|
||||
return;
|
||||
|
||||
curts = atol(parv[4]);
|
||||
|
||||
|
@ -189,7 +186,7 @@ me_rsfnc(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
* nicknames before the RSFNC arrives.. --anfl
|
||||
*/
|
||||
if(target_p->tsinfo != curts)
|
||||
return 0;
|
||||
return;
|
||||
|
||||
if((exist_p = find_named_client(parv[2])))
|
||||
{
|
||||
|
@ -258,7 +255,6 @@ doit:
|
|||
|
||||
snprintf(note, NICKLEN + 10, "Nick: %s", target_p->name);
|
||||
rb_note(target_p->localClient->F, note);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -266,7 +262,7 @@ doit:
|
|||
** parv[1] = duration in seconds (0 to remove)
|
||||
** parv[2] = nick
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
me_nickdelay(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
int duration;
|
||||
|
@ -276,7 +272,7 @@ me_nickdelay(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *so
|
|||
{
|
||||
sendto_realops_snomask(SNO_GENERAL, L_ALL,
|
||||
"Non-service server %s attempting to execute services-only command NICKDELAY", source_p->name);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
duration = atoi(parv[1]);
|
||||
|
@ -295,8 +291,6 @@ me_nickdelay(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *so
|
|||
if (nd != NULL)
|
||||
nd->expire = rb_current_time() + duration;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
|
@ -41,7 +41,7 @@
|
|||
|
||||
static const char set_desc[] = "Provides the SET command to change server parameters";
|
||||
|
||||
static int mo_set(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void mo_set(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
|
||||
struct Message set_msgtab = {
|
||||
"SET", 0, 0, 0, 0,
|
||||
|
@ -453,7 +453,7 @@ quote_splitusers(struct Client *source_p, const char *arg, int newval)
|
|||
* mo_set - SET command handler
|
||||
* set options while running
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
mo_set(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
int newval;
|
||||
|
@ -497,7 +497,7 @@ mo_set(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p
|
|||
wants_char ? "string, " : ""),
|
||||
(set_cmd_table[i].
|
||||
wants_char ? "int" : ""));
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if(parc <= 2)
|
||||
|
@ -529,14 +529,14 @@ mo_set(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p
|
|||
":Value less than 0 illegal for %s",
|
||||
set_cmd_table[i].name);
|
||||
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
}
|
||||
else
|
||||
newval = -1;
|
||||
|
||||
set_cmd_table[i].handler(source_p, arg, newval);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -545,10 +545,8 @@ mo_set(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p
|
|||
* found within set_cmd_table.
|
||||
*/
|
||||
sendto_one_notice(source_p, ":Variable not found.");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
list_quote_commands(source_p);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -51,8 +51,8 @@
|
|||
|
||||
static const char signon_desc[] = "Provides account login/logout support for services";
|
||||
|
||||
static int me_svslogin(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static int ms_signon(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void me_svslogin(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void ms_signon(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
|
||||
static void send_signon(struct Client *, struct Client *, const char *, const char *, const char *, unsigned int, const char *);
|
||||
|
||||
|
@ -75,7 +75,7 @@ DECLARE_MODULE_AV2(signon, NULL, NULL, signon_clist, NULL, NULL, NULL, NULL, sig
|
|||
#define USER_VALID 2
|
||||
#define HOST_VALID 4
|
||||
|
||||
static int
|
||||
static bool
|
||||
clean_username(const char *username)
|
||||
{
|
||||
int len = 0;
|
||||
|
@ -85,16 +85,16 @@ clean_username(const char *username)
|
|||
len++;
|
||||
|
||||
if(!IsUserChar(*username))
|
||||
return 0;
|
||||
return false;
|
||||
}
|
||||
|
||||
if(len > USERLEN)
|
||||
return 0;
|
||||
return false;
|
||||
|
||||
return 1;
|
||||
return true;
|
||||
}
|
||||
|
||||
static int
|
||||
static bool
|
||||
clean_host(const char *host)
|
||||
{
|
||||
int len = 0;
|
||||
|
@ -104,16 +104,16 @@ clean_host(const char *host)
|
|||
len++;
|
||||
|
||||
if(!IsHostChar(*host))
|
||||
return 0;
|
||||
return false;
|
||||
}
|
||||
|
||||
if(len > HOSTLEN)
|
||||
return 0;
|
||||
return false;
|
||||
|
||||
return 1;
|
||||
return true;
|
||||
}
|
||||
|
||||
static int
|
||||
static void
|
||||
me_svslogin(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p,
|
||||
int parc, const char *parv[])
|
||||
{
|
||||
|
@ -126,14 +126,14 @@ me_svslogin(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sou
|
|||
{
|
||||
sendto_realops_snomask(SNO_GENERAL, L_ALL,
|
||||
"Non-service server %s attempting to execute services-only command SVSLOGIN", source_p->name);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if((target_p = find_client(parv[1])) == NULL)
|
||||
return 0;
|
||||
return;
|
||||
|
||||
if(!MyClient(target_p) && !IsUnknown(target_p))
|
||||
return 0;
|
||||
return;
|
||||
|
||||
if(clean_nick(parv[2], 0))
|
||||
{
|
||||
|
@ -175,7 +175,7 @@ me_svslogin(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sou
|
|||
|
||||
/* Login (mostly) follows nick rules. */
|
||||
if(*login && !clean_nick(login, 0))
|
||||
return 0;
|
||||
return;
|
||||
|
||||
if((exist_p = find_person(nick)) && target_p != exist_p)
|
||||
{
|
||||
|
@ -195,7 +195,9 @@ me_svslogin(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sou
|
|||
snprintf(buf, sizeof(buf), "Killed (%s (Nickname regained by services))",
|
||||
me.name);
|
||||
exit_client(NULL, exist_p, &me, buf);
|
||||
}else if((exist_p = find_client(nick)) && IsUnknown(exist_p) && exist_p != target_p) {
|
||||
}
|
||||
else if((exist_p = find_client(nick)) && IsUnknown(exist_p) && exist_p != target_p)
|
||||
{
|
||||
exit_client(NULL, exist_p, &me, "Overridden");
|
||||
}
|
||||
|
||||
|
@ -239,11 +241,9 @@ me_svslogin(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sou
|
|||
snprintf(note, NICKLEN + 10, "Nick: %s", target_p->name);
|
||||
rb_note(target_p->localClient->F, note);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
static void
|
||||
ms_signon(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p,
|
||||
int parc, const char *parv[])
|
||||
{
|
||||
|
@ -266,7 +266,7 @@ ms_signon(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sourc
|
|||
me.name);
|
||||
source_p->flags |= FLAGS_KILLED;
|
||||
exit_client(NULL, source_p, &me, "Bad nickname from SIGNON");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if(!clean_username(parv[2]) || !clean_host(parv[3]))
|
||||
|
@ -284,7 +284,7 @@ ms_signon(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sourc
|
|||
me.name);
|
||||
source_p->flags |= FLAGS_KILLED;
|
||||
exit_client(NULL, source_p, &me, "Bad user@host from SIGNON");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
newts = atol(parv[4]);
|
||||
|
@ -296,7 +296,7 @@ ms_signon(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sourc
|
|||
if (clean_nick(parv[5], 0))
|
||||
rb_strlcpy(login, parv[5], NICKLEN + 1);
|
||||
else
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
else
|
||||
login[0] = '\0';
|
||||
|
@ -331,7 +331,7 @@ ms_signon(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sourc
|
|||
exit_client(NULL, target_p, &me, "Nick collision(new)");
|
||||
source_p->flags |= FLAGS_KILLED;
|
||||
exit_client(client_p, source_p, &me, "Nick collision(old)");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -367,7 +367,7 @@ ms_signon(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sourc
|
|||
exit_client(client_p, source_p, &me, "Nick collision(old)");
|
||||
else
|
||||
exit_client(client_p, source_p, &me, "Nick collision(new)");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -400,7 +400,6 @@ ms_signon(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sourc
|
|||
}
|
||||
|
||||
send_signon(client_p, source_p, parv[1], parv[2], parv[3], newts, login);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
|
@ -66,7 +66,7 @@ DECLARE_MODULE_AV2(snote, NULL, NULL, snote_clist, NULL, NULL, NULL, NULL, snote
|
|||
* parv[1] = snomask letter
|
||||
* parv[2] = message
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
me_snote(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc,
|
||||
const char *parv[])
|
||||
{
|
||||
|
@ -75,12 +75,10 @@ me_snote(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
* shit happens afterall -nenolod
|
||||
*/
|
||||
if (parc > 3)
|
||||
return 0;
|
||||
return;
|
||||
if (!IsServer(source_p))
|
||||
return 0;
|
||||
return;
|
||||
|
||||
sendto_realops_snomask_from(snomask_modes[(unsigned char) *parv[1]],
|
||||
L_ALL, source_p, "%s", parv[2]);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -35,7 +35,7 @@
|
|||
|
||||
static const char starttls_desc[] = "Provides the tls CAP and STARTTLS command";
|
||||
|
||||
static int mr_starttls(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void mr_starttls(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
|
||||
struct Message starttls_msgtab = {
|
||||
"STARTTLS", 0, 0, 0, 0,
|
||||
|
@ -59,7 +59,7 @@ mapi_cap_list_av2 starttls_cap_list[] = { { 0, NULL, NULL, NULL } };
|
|||
|
||||
DECLARE_MODULE_AV2(starttls, NULL, NULL, starttls_clist, NULL, NULL, starttls_cap_list, NULL, starttls_desc);
|
||||
|
||||
static int
|
||||
static void
|
||||
mr_starttls(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
#ifdef HAVE_LIBCRYPTO
|
||||
|
@ -67,25 +67,25 @@ mr_starttls(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sou
|
|||
rb_fde_t *F[2];
|
||||
|
||||
if (!MyConnect(client_p))
|
||||
return 0;
|
||||
return;
|
||||
|
||||
if (IsSSL(client_p))
|
||||
{
|
||||
sendto_one_numeric(client_p, ERR_STARTTLS, form_str(ERR_STARTTLS), "Nested TLS handshake not allowed");
|
||||
return 1;
|
||||
return;
|
||||
}
|
||||
|
||||
if (!ssl_ok || !get_ssld_count())
|
||||
{
|
||||
sendto_one_numeric(client_p, ERR_STARTTLS, form_str(ERR_STARTTLS), "TLS is not configured");
|
||||
return 1;
|
||||
return;
|
||||
}
|
||||
|
||||
if (rb_socketpair(AF_UNIX, SOCK_STREAM, 0, &F[0], &F[1], "STARTTLS ssld session") == -1)
|
||||
{
|
||||
ilog_error("error creating SSL/TLS socketpair for ssld slave");
|
||||
sendto_one_numeric(client_p, ERR_STARTTLS, form_str(ERR_STARTTLS), "Unable to create SSL/TLS socketpair for ssld offload slave");
|
||||
return 1;
|
||||
return;
|
||||
}
|
||||
|
||||
s_assert(client_p->localClient != NULL);
|
||||
|
@ -103,11 +103,7 @@ mr_starttls(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sou
|
|||
client_p->localClient->ssl_ctl = ctl;
|
||||
SetSSL(client_p);
|
||||
}
|
||||
else
|
||||
return 1;
|
||||
|
||||
#else
|
||||
#else /* HAVE_LIBCRYPTO */
|
||||
sendto_one_numeric(client_p, ERR_STARTTLS, form_str(ERR_STARTTLS), "TLS is not configured");
|
||||
#endif
|
||||
return 0;
|
||||
#endif /* HAVE_LIBCRYPTO */
|
||||
}
|
||||
|
|
|
@ -52,7 +52,7 @@
|
|||
static const char stats_desc[] =
|
||||
"Provides the STATS command to inspect various server/network information";
|
||||
|
||||
static int m_stats (struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void m_stats (struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
|
||||
struct Message stats_msgtab = {
|
||||
"STATS", 0, 0, 0, 0,
|
||||
|
@ -73,8 +73,8 @@ DECLARE_MODULE_AV2(stats, NULL, NULL, stats_clist, stats_hlist, NULL, NULL, NULL
|
|||
|
||||
const char *Lformat = "%s %u %u %u %u %u :%u %u %s";
|
||||
|
||||
static void stats_l_list(struct Client *s, const char *, int, int, rb_dlink_list *, char,
|
||||
int (*check_fn)(struct Client *target_p));
|
||||
static void stats_l_list(struct Client *s, const char *, bool, bool, rb_dlink_list *, char,
|
||||
bool (*check_fn)(struct Client *target_p));
|
||||
static void stats_l_client(struct Client *source_p, struct Client *target_p,
|
||||
char statchar);
|
||||
|
||||
|
@ -193,7 +193,7 @@ static struct stats_cmd stats_cmd_table[255] = {
|
|||
* This will search the tables for the appropriate stats letter,
|
||||
* if found execute it.
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
m_stats(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
static time_t last_used = 0;
|
||||
|
@ -214,14 +214,14 @@ m_stats(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
me.name, source_p->name, "STATS");
|
||||
sendto_one_numeric(source_p, RPL_ENDOFSTATS,
|
||||
form_str(RPL_ENDOFSTATS), statchar);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
else
|
||||
last_used = rb_current_time();
|
||||
}
|
||||
|
||||
if(hunt_server (client_p, source_p, ":%s STATS %s :%s", 2, parc, parv) != HUNTED_ISME)
|
||||
return 0;
|
||||
return;
|
||||
|
||||
if((statchar != 'L') && (statchar != 'l'))
|
||||
{
|
||||
|
@ -266,8 +266,6 @@ stats_out:
|
|||
/* Send the end of stats notice, and the stats_spy */
|
||||
sendto_one_numeric(source_p, RPL_ENDOFSTATS,
|
||||
form_str(RPL_ENDOFSTATS), statchar);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -1587,20 +1585,17 @@ stats_servlinks (struct Client *source_p)
|
|||
sendto_one_numeric(source_p, RPL_STATSDEBUG, "? :Server recv: %s", buf);
|
||||
}
|
||||
|
||||
static int
|
||||
static inline bool
|
||||
stats_l_should_show_oper(struct Client *target_p)
|
||||
{
|
||||
if (IsOperInvis(target_p))
|
||||
return 0;
|
||||
|
||||
return 1;
|
||||
return (!IsOperInvis(target_p));
|
||||
}
|
||||
|
||||
static void
|
||||
stats_ltrace(struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
int doall = 0;
|
||||
int wilds = 0;
|
||||
bool doall = false;
|
||||
bool wilds = false;
|
||||
const char *name;
|
||||
char statchar = parv[1][0];
|
||||
|
||||
|
@ -1612,7 +1607,7 @@ stats_ltrace(struct Client *source_p, int parc, const char *parv[])
|
|||
(!MyClient(source_p) && !irccmp(parv[2], me.id)))
|
||||
{
|
||||
name = me.name;
|
||||
doall = 1;
|
||||
doall = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -1646,7 +1641,7 @@ stats_ltrace(struct Client *source_p, int parc, const char *parv[])
|
|||
else
|
||||
{
|
||||
name = me.name;
|
||||
doall = 1;
|
||||
doall = true;
|
||||
}
|
||||
|
||||
stats_spy(source_p, statchar, name);
|
||||
|
@ -1684,8 +1679,8 @@ stats_ltrace(struct Client *source_p, int parc, const char *parv[])
|
|||
}
|
||||
|
||||
static void
|
||||
stats_l_list(struct Client *source_p, const char *name, int doall, int wilds,
|
||||
rb_dlink_list * list, char statchar, int (*check_fn)(struct Client *target_p))
|
||||
stats_l_list(struct Client *source_p, const char *name, bool doall, bool wilds,
|
||||
rb_dlink_list * list, char statchar, bool (*check_fn)(struct Client *target_p))
|
||||
{
|
||||
rb_dlink_node *ptr;
|
||||
struct Client *target_p;
|
||||
|
@ -1766,10 +1761,6 @@ stats_comm(struct Client *source_p)
|
|||
* output - none
|
||||
* side effects -
|
||||
* This little helper function reports to opers if configured.
|
||||
* personally, I don't see why opers need to see stats requests
|
||||
* at all. They are just "noise" to an oper, and users can't do
|
||||
* any damage with stats requests now anyway. So, why show them?
|
||||
* -Dianora
|
||||
*/
|
||||
static int
|
||||
stats_spy(struct Client *source_p, char statchar, const char *name)
|
||||
|
|
|
@ -38,7 +38,7 @@
|
|||
static const char svinfo_desc[] =
|
||||
"Provides TS6 SVINFO command to ensure version and clock synchronisation";
|
||||
|
||||
static int ms_svinfo(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void ms_svinfo(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
struct Message svinfo_msgtab = {
|
||||
"SVINFO", 0, 0, 0, 0,
|
||||
{mg_unreg, mg_ignore, mg_ignore, {ms_svinfo, 5}, mg_ignore, mg_ignore}
|
||||
|
@ -54,7 +54,7 @@ DECLARE_MODULE_AV2(svinfo, NULL, NULL, svinfo_clist, NULL, NULL, NULL, NULL, svi
|
|||
* parv[3] = unused, send 0
|
||||
* parv[4] = server's idea of UTC time
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
ms_svinfo(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
signed long deltat;
|
||||
|
@ -63,7 +63,7 @@ ms_svinfo(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sourc
|
|||
|
||||
/* SVINFO isnt remote. */
|
||||
if(source_p != client_p)
|
||||
return 0;
|
||||
return;
|
||||
|
||||
if(TS_CURRENT < atoi(parv[2]) || atoi(parv[1]) < TS_MIN)
|
||||
{
|
||||
|
@ -74,7 +74,7 @@ ms_svinfo(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sourc
|
|||
snprintf(squitreason, sizeof squitreason, "Incompatible TS version (%s,%s)",
|
||||
parv[1], parv[2]);
|
||||
exit_client(source_p, source_p, source_p, squitreason);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -99,7 +99,7 @@ ms_svinfo(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sourc
|
|||
(long) rb_current_time(), (long) theirtime, deltat);
|
||||
disable_server_conf_autoconn(source_p->name);
|
||||
exit_client(source_p, source_p, source_p, squitreason);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if(deltat > ConfigFileEntry.ts_warn_delta)
|
||||
|
@ -109,6 +109,4 @@ ms_svinfo(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sourc
|
|||
" (my TS=%ld, their TS=%ld, delta=%ld)",
|
||||
source_p->name, (long) rb_current_time(), (long) theirtime, deltat);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -45,8 +45,8 @@
|
|||
static const char tb_desc[] =
|
||||
"Provides TS6 TB and ETB commands for topic bursting between servers";
|
||||
|
||||
static int ms_tb(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[]);
|
||||
static int ms_etb(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[]);
|
||||
static void ms_tb(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[]);
|
||||
static void ms_etb(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[]);
|
||||
|
||||
struct Message tb_msgtab = {
|
||||
"TB", 0, 0, 0, 0,
|
||||
|
@ -68,7 +68,7 @@ DECLARE_MODULE_AV2(tb, NULL, NULL, tb_clist, NULL, NULL, NULL, NULL, tb_desc);
|
|||
* parv[3] - optional topicwho/topic
|
||||
* parv[4] - topic
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
ms_tb(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
struct Channel *chptr;
|
||||
|
@ -80,7 +80,7 @@ ms_tb(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p,
|
|||
chptr = find_channel(parv[1]);
|
||||
|
||||
if(chptr == NULL)
|
||||
return 0;
|
||||
return;
|
||||
|
||||
newtopicts = atol(parv[2]);
|
||||
|
||||
|
@ -102,7 +102,7 @@ ms_tb(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p,
|
|||
}
|
||||
|
||||
if (EmptyString(newtopic))
|
||||
return 0;
|
||||
return;
|
||||
|
||||
if(chptr->topic == NULL || chptr->topic_time > newtopicts)
|
||||
{
|
||||
|
@ -111,7 +111,7 @@ ms_tb(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p,
|
|||
* same topic just drop the message --fl
|
||||
*/
|
||||
if(chptr->topic != NULL && strcmp(chptr->topic, newtopic) == 0)
|
||||
return 0;
|
||||
return;
|
||||
|
||||
set_channel_topic(chptr, newtopic, newtopicwho, newtopicts);
|
||||
sendto_channel_local(ALL_MEMBERS, chptr, ":%s TOPIC %s :%s",
|
||||
|
@ -122,8 +122,6 @@ ms_tb(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p,
|
|||
ConfigChannel.burst_topicwho ? chptr->topic_info : "",
|
||||
ConfigChannel.burst_topicwho ? " " : "", chptr->topic);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* ms_etb()
|
||||
|
@ -134,7 +132,7 @@ ms_tb(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p,
|
|||
* parv[4] - topicwho
|
||||
* parv[5] - topic
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
ms_etb(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
struct Channel *chptr;
|
||||
|
@ -148,7 +146,7 @@ ms_etb(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p
|
|||
chptr = find_channel(parv[2]);
|
||||
|
||||
if(chptr == NULL)
|
||||
return 0;
|
||||
return;
|
||||
|
||||
newtopicts = atol(parv[3]);
|
||||
|
||||
|
@ -250,6 +248,4 @@ ms_etb(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p
|
|||
me.id, chptr->chname, chptr->chname);
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -41,8 +41,8 @@
|
|||
|
||||
static const char testline_desc[] = "Provides the ability to test I/K/D/X lines and RESVs";
|
||||
|
||||
static int mo_testline(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static int mo_testgecos(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void mo_testline(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void mo_testgecos(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
|
||||
struct Message testline_msgtab = {
|
||||
"TESTLINE", 0, 0, 0, 0,
|
||||
|
@ -57,7 +57,7 @@ mapi_clist_av1 testline_clist[] = { &testline_msgtab, &testgecos_msgtab, NULL };
|
|||
|
||||
DECLARE_MODULE_AV2(testline, NULL, NULL, testline_clist, NULL, NULL, NULL, NULL, testline_desc);
|
||||
|
||||
static int
|
||||
static void
|
||||
mo_testline(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
struct ConfItem *aconf;
|
||||
|
@ -95,7 +95,7 @@ mo_testline(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sou
|
|||
else
|
||||
sendto_one(source_p, form_str(RPL_NOTESTLINE),
|
||||
me.name, source_p->name, parv[1]);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if((p = strchr(mask, '!')))
|
||||
|
@ -105,7 +105,7 @@ mo_testline(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sou
|
|||
mask = p;
|
||||
|
||||
if(EmptyString(mask))
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if((p = strchr(mask, '@')))
|
||||
|
@ -115,7 +115,7 @@ mo_testline(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sou
|
|||
host = p;
|
||||
|
||||
if(EmptyString(host))
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
else
|
||||
host = mask;
|
||||
|
@ -142,7 +142,7 @@ mo_testline(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sou
|
|||
(long) ((aconf->hold - rb_current_time()) / 60) : 0L,
|
||||
phost, reasonbuf);
|
||||
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
/* Otherwise, aconf is an exempt{} */
|
||||
if(aconf == NULL &&
|
||||
|
@ -195,7 +195,7 @@ mo_testline(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sou
|
|||
(aconf->flags & CONF_FLAGS_TEMPORARY) ?
|
||||
(long) ((aconf->hold - rb_current_time()) / 60) : 0L,
|
||||
buf, reasonbuf);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -212,7 +212,7 @@ mo_testline(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sou
|
|||
* --nenolod
|
||||
*/
|
||||
resv_p->port--;
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
/* no matching resv, we can print the I: if it exists */
|
||||
|
@ -222,16 +222,15 @@ mo_testline(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sou
|
|||
aconf->info.name, EmptyString(aconf->spasswd) ? "<NULL>" : aconf->spasswd,
|
||||
show_iline_prefix(source_p, aconf, aconf->user),
|
||||
aconf->host, aconf->port, aconf->className);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
/* nothing matches.. */
|
||||
sendto_one(source_p, form_str(RPL_NOTESTLINE),
|
||||
me.name, source_p->name, parv[1]);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
static void
|
||||
mo_testgecos(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
struct ConfItem *aconf;
|
||||
|
@ -240,7 +239,7 @@ mo_testgecos(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *so
|
|||
{
|
||||
sendto_one(source_p, form_str(RPL_NOTESTLINE),
|
||||
me.name, source_p->name, parv[1]);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
sendto_one(source_p, form_str(RPL_TESTLINE),
|
||||
|
@ -248,5 +247,4 @@ mo_testgecos(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *so
|
|||
aconf->hold ? 'x' : 'X',
|
||||
aconf->hold ? (long) ((aconf->hold - rb_current_time()) / 60) : 0L,
|
||||
aconf->host, aconf->passwd);
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -46,11 +46,12 @@
|
|||
#include "parse.h"
|
||||
#include "modules.h"
|
||||
|
||||
static void mo_testmask(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p,
|
||||
int parc, const char *parv[]);
|
||||
static const char testmask_desc[] =
|
||||
"Provides the TESTMASK command to show the number of clients matching a hostmask or GECOS";
|
||||
|
||||
static void mo_testmask(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p,
|
||||
int parc, const char *parv[]);
|
||||
|
||||
struct Message testmask_msgtab = {
|
||||
"TESTMASK", 0, 0, 0, 0,
|
||||
{mg_unreg, mg_not_oper, mg_ignore, mg_ignore, mg_ignore, {mo_testmask, 2}}
|
||||
|
@ -62,7 +63,7 @@ DECLARE_MODULE_AV2(testmask, NULL, NULL, testmask_clist, NULL, NULL, NULL, NULL,
|
|||
static const char *empty_sockhost = "255.255.255.255";
|
||||
static const char *spoofed_sockhost = "0";
|
||||
|
||||
static int
|
||||
static void
|
||||
mo_testmask(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p,
|
||||
int parc, const char *parv[])
|
||||
{
|
||||
|
@ -81,7 +82,7 @@ mo_testmask(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sou
|
|||
if((hostname = strchr(name, '@')) == NULL)
|
||||
{
|
||||
sendto_one_notice(source_p, ":Invalid parameters");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
*hostname++ = '\0';
|
||||
|
@ -98,7 +99,7 @@ mo_testmask(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sou
|
|||
if(EmptyString(username) || EmptyString(hostname))
|
||||
{
|
||||
sendto_one_notice(source_p, ":Invalid parameters");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if(parc > 2 && !EmptyString(parv[2]))
|
||||
|
@ -143,5 +144,4 @@ mo_testmask(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sou
|
|||
me.name, source_p->name,
|
||||
lcount, gcount, name ? name : "*",
|
||||
username, hostname, gecos ? gecos : "*");
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -41,7 +41,7 @@
|
|||
|
||||
static const char tginfo_desc[] = "Processes target change notifications from other servers";
|
||||
|
||||
static int me_tginfo(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void me_tginfo(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
|
||||
struct Message tginfo_msgtab = {
|
||||
"TGINFO", 0, 0, 0, 0,
|
||||
|
@ -56,15 +56,15 @@ DECLARE_MODULE_AV2(tginfo, NULL, NULL, tginfo_clist, NULL, NULL, NULL, NULL, tgi
|
|||
** me_tginfo
|
||||
** parv[1] = 0, reserved for future use (number of remaining targets)
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
me_tginfo(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
if (!IsPerson(source_p))
|
||||
return 0;
|
||||
return;
|
||||
|
||||
int remaining = atoi(parv[1]);
|
||||
if (remaining != 0)
|
||||
return 0; /* not implemented */
|
||||
return; /* not implemented */
|
||||
|
||||
if (!EmptyString(source_p->sockhost) && strcmp(source_p->sockhost, "0"))
|
||||
{
|
||||
|
@ -79,6 +79,4 @@ me_tginfo(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sourc
|
|||
"Excessive target change from %s (%s@%s)",
|
||||
source_p->name, source_p->username, source_p->orighost);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -34,11 +34,12 @@
|
|||
#include "modules.h"
|
||||
#include "packet.h"
|
||||
|
||||
static int m_time(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static char *date(void);
|
||||
static const char time_desc[] =
|
||||
"Provides the TIME command to show the current server time";
|
||||
|
||||
static void m_time(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static char *date(void);
|
||||
|
||||
struct Message time_msgtab = {
|
||||
"TIME", 0, 0, 0, 0,
|
||||
{mg_unreg, {m_time, 0}, {m_time, 2}, mg_ignore, mg_ignore, {m_time, 0}}
|
||||
|
@ -62,7 +63,7 @@ static const char *weekdays[] = {
|
|||
* m_time
|
||||
* parv[1] = servername
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
m_time(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
/* this is not rate limited, so end the grace period */
|
||||
|
@ -72,8 +73,6 @@ m_time(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p
|
|||
if(hunt_server(client_p, source_p, ":%s TIME :%s", 1, parc, parv) == HUNTED_ISME)
|
||||
sendto_one_numeric(source_p, RPL_TIME, form_str(RPL_TIME),
|
||||
me.name, date());
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* date()
|
||||
|
|
|
@ -44,8 +44,8 @@
|
|||
static const char topic_desc[] =
|
||||
"Provides the TOPIC command to set, remove, and inspect channel topics";
|
||||
|
||||
static int m_topic(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static int ms_topic(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void m_topic(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void ms_topic(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
|
||||
struct Message topic_msgtab = {
|
||||
"TOPIC", 0, 0, 0, 0,
|
||||
|
@ -60,7 +60,7 @@ DECLARE_MODULE_AV2(topic, NULL, NULL, topic_clist, NULL, NULL, NULL, NULL, topic
|
|||
* parv[1] = channel name
|
||||
* parv[2] = new topic, if setting topic
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
m_topic(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
struct Channel *chptr = NULL;
|
||||
|
@ -83,7 +83,7 @@ m_topic(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
{
|
||||
sendto_one(source_p, form_str(ERR_NEEDMOREPARAMS),
|
||||
me.name, source_p->name, "TOPIC");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -96,7 +96,7 @@ m_topic(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
{
|
||||
sendto_one_numeric(source_p, ERR_NOSUCHCHANNEL,
|
||||
form_str(ERR_NOSUCHCHANNEL), name);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
/* setting topic */
|
||||
|
@ -108,7 +108,7 @@ m_topic(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
{
|
||||
sendto_one_numeric(source_p, ERR_NOTONCHANNEL,
|
||||
form_str(ERR_NOTONCHANNEL), name);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if(MyClient(source_p) && !is_chanop_voiced(msptr) &&
|
||||
|
@ -117,7 +117,7 @@ m_topic(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
{
|
||||
sendto_one(source_p, form_str(ERR_TARGCHANGE),
|
||||
me.name, source_p->name, chptr->chname);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if(((chptr->mode.mode & MODE_TOPICLIMIT) == 0 ||
|
||||
|
@ -160,7 +160,7 @@ m_topic(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
{
|
||||
sendto_one_numeric(source_p, ERR_NOTONCHANNEL,
|
||||
form_str(ERR_NOTONCHANNEL), name);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
if(chptr->topic == NULL)
|
||||
sendto_one(source_p, form_str(RPL_NOTOPIC),
|
||||
|
@ -176,8 +176,6 @@ m_topic(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
(unsigned long)chptr->topic_time);
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -189,19 +187,17 @@ m_topic(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
*
|
||||
* Let servers always set a topic
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
ms_topic(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
struct Channel *chptr = NULL;
|
||||
|
||||
if((chptr = find_channel(parv[1])) == NULL)
|
||||
return 0;
|
||||
return;
|
||||
|
||||
set_channel_topic(chptr, parv[4], parv[2], atoi(parv[3]));
|
||||
|
||||
sendto_channel_local(ALL_MEMBERS, chptr, ":%s TOPIC %s :%s",
|
||||
source_p->name, parv[1],
|
||||
chptr->topic == NULL ? "" : chptr->topic);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -43,7 +43,7 @@
|
|||
static const char trace_desc[] =
|
||||
"Provides the TRACE command to trace the route to a client or server";
|
||||
|
||||
static int m_trace(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void m_trace(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
|
||||
static void trace_spy(struct Client *, struct Client *);
|
||||
|
||||
|
@ -70,14 +70,14 @@ static const char *empty_sockhost = "255.255.255.255";
|
|||
* m_trace
|
||||
* parv[1] = servername
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
m_trace(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
struct Client *target_p = NULL;
|
||||
struct Class *cltmp;
|
||||
const char *tname;
|
||||
int doall = 0;
|
||||
int cnt = 0, wilds, dow;
|
||||
bool doall = false, wilds, dow;
|
||||
int cnt = 0;
|
||||
rb_dlink_node *ptr;
|
||||
|
||||
if(parc > 1)
|
||||
|
@ -88,7 +88,7 @@ m_trace(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
{
|
||||
if(hunt_server(client_p, source_p, ":%s TRACE %s :%s", 2, parc, parv) !=
|
||||
HUNTED_ISME)
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
}
|
||||
else
|
||||
|
@ -134,27 +134,27 @@ m_trace(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
ac2ptr ? ac2ptr->name : tname,
|
||||
ac2ptr ? ac2ptr->from->name : "EEK!");
|
||||
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
case HUNTED_ISME:
|
||||
break;
|
||||
|
||||
default:
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if(match(tname, me.name))
|
||||
{
|
||||
doall = 1;
|
||||
doall = true;
|
||||
}
|
||||
/* if theyre tracing our SID, we need to move tname to our name so
|
||||
* we dont give the sid in ENDOFTRACE
|
||||
*/
|
||||
else if(!MyClient(source_p) && !strcmp(tname, me.id))
|
||||
{
|
||||
doall = 1;
|
||||
doall = true;
|
||||
tname = me.name;
|
||||
}
|
||||
|
||||
|
@ -162,7 +162,7 @@ m_trace(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
dow = wilds || doall;
|
||||
|
||||
/* specific trace */
|
||||
if(dow == 0)
|
||||
if(!dow)
|
||||
{
|
||||
if(MyClient(source_p) || parc > 2)
|
||||
target_p = find_named_person(tname);
|
||||
|
@ -182,7 +182,7 @@ m_trace(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
|
||||
sendto_one_numeric(source_p, RPL_ENDOFTRACE,
|
||||
form_str(RPL_ENDOFTRACE), tname);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
trace_spy(source_p, NULL);
|
||||
|
@ -223,7 +223,7 @@ m_trace(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
|
||||
sendto_one_numeric(source_p, RPL_ENDOFTRACE,
|
||||
form_str(RPL_ENDOFTRACE), tname);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
/* source_p is opered */
|
||||
|
@ -281,7 +281,7 @@ m_trace(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
*/
|
||||
sendto_one_numeric(source_p, RPL_ENDOFTRACE,
|
||||
form_str(RPL_ENDOFTRACE), tname);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if(doall)
|
||||
|
@ -298,8 +298,6 @@ m_trace(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
}
|
||||
|
||||
sendto_one_numeric(source_p, RPL_ENDOFTRACE, form_str(RPL_ENDOFTRACE), tname);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -30,41 +30,41 @@
|
|||
#include "modules.h"
|
||||
#include "send.h"
|
||||
|
||||
static int mo_unreject(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static const char unreject_desc[] =
|
||||
"Provides the UNREJECT command to remove an IP from the reject cache";
|
||||
|
||||
static void mo_unreject(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
|
||||
struct Message unreject_msgtab = {
|
||||
"UNREJECT", 0, 0, 0, 0,
|
||||
{mg_unreg, mg_not_oper, mg_ignore, mg_ignore, mg_ignore, {mo_unreject, 2}}
|
||||
};
|
||||
|
||||
mapi_clist_av1 unreject_clist[] = { &unreject_msgtab, NULL };
|
||||
|
||||
DECLARE_MODULE_AV2(unreject, NULL, NULL, unreject_clist, NULL, NULL, NULL, NULL, unreject_desc);
|
||||
|
||||
/*
|
||||
* mo_unreject
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
mo_unreject(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
if(ConfigFileEntry.reject_after_count == 0 || ConfigFileEntry.reject_ban_time == 0 ||
|
||||
ConfigFileEntry.reject_duration == 0)
|
||||
{
|
||||
sendto_one_notice(source_p, ":Reject cache is disabled");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if(!parse_netmask(parv[1], NULL, NULL))
|
||||
{
|
||||
sendto_one_notice(source_p, ":Unable to parse netmask %s", parv[1]);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if(remove_reject_ip(parv[1]))
|
||||
sendto_one_notice(source_p, ":Removed reject for %s", parv[1]);
|
||||
else
|
||||
sendto_one_notice(source_p, ":Unable to remove reject for %s", parv[1]);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -39,7 +39,7 @@
|
|||
static const char user_desc[] =
|
||||
"Provides the USER command to register a new connection";
|
||||
|
||||
static int mr_user(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void mr_user(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
|
||||
struct Message user_msgtab = {
|
||||
"USER", 0, 0, 0, 0,
|
||||
|
@ -49,8 +49,8 @@ struct Message user_msgtab = {
|
|||
mapi_clist_av1 user_clist[] = { &user_msgtab, NULL };
|
||||
DECLARE_MODULE_AV2(user, NULL, NULL, user_clist, NULL, NULL, NULL, NULL, user_desc);
|
||||
|
||||
static int do_local_user(struct Client *client_p, struct Client *source_p,
|
||||
const char *username, const char *realname);
|
||||
static void do_local_user(struct Client *client_p, struct Client *source_p,
|
||||
const char *username, const char *realname);
|
||||
|
||||
/* mr_user()
|
||||
* parv[1] = username (login name, account)
|
||||
|
@ -58,7 +58,7 @@ static int do_local_user(struct Client *client_p, struct Client *source_p,
|
|||
* parv[3] = server host name (ignored)
|
||||
* parv[4] = users gecos
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
mr_user(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
static char buf[BUFSIZE];
|
||||
|
@ -67,11 +67,11 @@ mr_user(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
if (strlen(client_p->id) == 3)
|
||||
{
|
||||
exit_client(client_p, client_p, client_p, "Mixing client and server protocol");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if(source_p->flags & FLAGS_SENTUSER)
|
||||
return 0;
|
||||
return;
|
||||
|
||||
if((p = strchr(parv[1], '@')))
|
||||
*p = '\0';
|
||||
|
@ -81,10 +81,9 @@ mr_user(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
source_p->localClient->fullcaps = rb_strdup(buf);
|
||||
|
||||
do_local_user(client_p, source_p, parv[1], parv[4]);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
static void
|
||||
do_local_user(struct Client *client_p, struct Client *source_p,
|
||||
const char *username, const char *realname)
|
||||
{
|
||||
|
@ -104,8 +103,6 @@ do_local_user(struct Client *client_p, struct Client *source_p,
|
|||
if(source_p->name[0])
|
||||
{
|
||||
/* NICK already received, now I have USER... */
|
||||
return register_local_user(client_p, source_p);
|
||||
register_local_user(client_p, source_p);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -39,7 +39,7 @@ static const char userhost_desc[] =
|
|||
|
||||
static char buf[BUFSIZE];
|
||||
|
||||
static int m_userhost(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void m_userhost(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
|
||||
struct Message userhost_msgtab = {
|
||||
"USERHOST", 0, 0, 0, 0,
|
||||
|
@ -55,7 +55,7 @@ DECLARE_MODULE_AV2(userhost, NULL, NULL, userhost_clist, NULL, NULL, NULL, NULL,
|
|||
* the need for complicated requests like WHOIS. It returns user/host
|
||||
* information only (no spurious AWAY labels or channels).
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
m_userhost(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
struct Client *target_p;
|
||||
|
@ -111,6 +111,4 @@ m_userhost(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sour
|
|||
}
|
||||
|
||||
sendto_one(source_p, "%s", buf);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -36,7 +36,7 @@
|
|||
static const char users_desc[] =
|
||||
"Provides the USERS command to display connection statistics locally and globally";
|
||||
|
||||
static int m_users(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void m_users(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
|
||||
struct Message users_msgtab = {
|
||||
"USERS", 0, 0, 0, 0,
|
||||
|
@ -51,7 +51,7 @@ DECLARE_MODULE_AV2(users, NULL, NULL, users_clist, NULL, NULL, NULL, NULL, users
|
|||
* m_users
|
||||
* parv[1] = servername
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
m_users(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
if(hunt_server(client_p, source_p, ":%s USERS :%s", 1, parc, parv) == HUNTED_ISME)
|
||||
|
@ -68,6 +68,4 @@ m_users(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
Count.total, Count.max_tot,
|
||||
Count.total, Count.max_tot);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -39,8 +39,8 @@ static const char version_desc[] =
|
|||
|
||||
static char *confopts(void);
|
||||
|
||||
static int m_version(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static int mo_version(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void m_version(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void mo_version(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
|
||||
struct Message version_msgtab = {
|
||||
"VERSION", 0, 0, 0, 0,
|
||||
|
@ -55,7 +55,7 @@ DECLARE_MODULE_AV2(version, NULL, NULL, version_clist, NULL, NULL, NULL, NULL, v
|
|||
* m_version - VERSION command handler
|
||||
* parv[1] = remote server
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
m_version(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
static time_t last_used = 0L;
|
||||
|
@ -67,13 +67,13 @@ m_version(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sourc
|
|||
/* safe enough to give this on a local connect only */
|
||||
sendto_one(source_p, form_str(RPL_LOAD2HI),
|
||||
me.name, source_p->name, "VERSION");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
else
|
||||
last_used = rb_current_time();
|
||||
|
||||
if(hunt_server(client_p, source_p, ":%s VERSION :%s", 1, parc, parv) != HUNTED_ISME)
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
sendto_one_numeric(source_p, RPL_VERSION, form_str(RPL_VERSION),
|
||||
|
@ -85,15 +85,13 @@ m_version(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sourc
|
|||
ServerInfo.sid);
|
||||
|
||||
show_isupport(source_p);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* mo_version - VERSION command handler
|
||||
* parv[1] = remote server
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
mo_version(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
if(hunt_server(client_p, source_p, ":%s VERSION :%s", 1, parc, parv) == HUNTED_ISME)
|
||||
|
@ -107,8 +105,6 @@ mo_version(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sour
|
|||
ServerInfo.sid);
|
||||
show_isupport(source_p);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* confopts()
|
||||
|
|
|
@ -39,9 +39,9 @@
|
|||
static const char wallops_desc[] =
|
||||
"Provides the WALLOPS and OPERWALL commands to message online operators";
|
||||
|
||||
static int mo_operwall(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static int ms_operwall(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static int ms_wallops(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void mo_operwall(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void ms_operwall(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void ms_wallops(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
|
||||
struct Message wallops_msgtab = {
|
||||
"WALLOPS", 0, 0, 0, 0,
|
||||
|
@ -60,21 +60,19 @@ DECLARE_MODULE_AV2(wallops, NULL, NULL, wallops_clist, NULL, NULL, NULL, NULL, w
|
|||
* mo_operwall (write to *all* opers currently online)
|
||||
* parv[1] = message text
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
mo_operwall(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
if(!IsOperOperwall(source_p))
|
||||
{
|
||||
sendto_one(source_p, form_str(ERR_NOPRIVS),
|
||||
me.name, source_p->name, "operwall");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
sendto_wallops_flags(UMODE_OPERWALL, source_p, "OPERWALL - %s", parv[1]);
|
||||
sendto_server(client_p, NULL, CAP_TS6, NOCAPS, ":%s OPERWALL :%s",
|
||||
use_id(source_p), parv[1]);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -82,21 +80,19 @@ mo_operwall(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sou
|
|||
* (write to *all* local opers currently online)
|
||||
* parv[1] = message text
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
ms_operwall(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
sendto_server(client_p, NULL, CAP_TS6, NOCAPS, ":%s OPERWALL :%s",
|
||||
use_id(source_p), parv[1]);
|
||||
sendto_wallops_flags(UMODE_OPERWALL, source_p, "OPERWALL - %s", parv[1]);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* ms_wallops (write to *all* opers currently online)
|
||||
* parv[1] = message text
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
ms_wallops(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
const char *prefix = "";
|
||||
|
@ -105,7 +101,7 @@ ms_wallops(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sour
|
|||
{
|
||||
sendto_one(source_p, form_str(ERR_NOPRIVS),
|
||||
me.name, source_p->name, "mass_notice");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if (IsPerson(source_p))
|
||||
|
@ -121,7 +117,5 @@ ms_wallops(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sour
|
|||
|
||||
sendto_server(client_p, NULL, CAP_TS6, NOCAPS, ":%s WALLOPS :%s",
|
||||
use_id(source_p), parv[1]);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -64,7 +64,15 @@ struct who_format
|
|||
const char *querytype;
|
||||
};
|
||||
|
||||
static int m_who(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void m_who(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
|
||||
static void do_who_on_channel(struct Client *source_p, struct Channel *chptr,
|
||||
int server_oper, int member,
|
||||
struct who_format *fmt);
|
||||
static void who_global(struct Client *source_p, const char *mask, int server_oper, int operspy, struct who_format *fmt);
|
||||
static void do_who(struct Client *source_p,
|
||||
struct Client *target_p, struct membership *msptr,
|
||||
struct who_format *fmt);
|
||||
|
||||
struct Message who_msgtab = {
|
||||
"WHO", 0, 0, 0, 0,
|
||||
|
@ -87,23 +95,12 @@ _moddeinit(void)
|
|||
mapi_clist_av1 who_clist[] = { &who_msgtab, NULL };
|
||||
DECLARE_MODULE_AV2(who, _modinit, _moddeinit, who_clist, NULL, NULL, NULL, NULL, who_desc);
|
||||
|
||||
static void do_who_on_channel(struct Client *source_p, struct Channel *chptr,
|
||||
int server_oper, int member,
|
||||
struct who_format *fmt);
|
||||
|
||||
static void who_global(struct Client *source_p, const char *mask, int server_oper, int operspy, struct who_format *fmt);
|
||||
|
||||
static void do_who(struct Client *source_p,
|
||||
struct Client *target_p, struct membership *msptr,
|
||||
struct who_format *fmt);
|
||||
|
||||
|
||||
/*
|
||||
** m_who
|
||||
** parv[1] = nickname mask list
|
||||
** parv[2] = additional selection flag and format options
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
m_who(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
static time_t last_used = 0;
|
||||
|
@ -162,17 +159,17 @@ m_who(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p,
|
|||
if((*(mask + 1) == '\0') && (*mask == '*'))
|
||||
{
|
||||
if(source_p->user == NULL)
|
||||
return 0;
|
||||
return;
|
||||
|
||||
if((lp = source_p->user->channel.head) != NULL)
|
||||
{
|
||||
msptr = lp->data;
|
||||
do_who_on_channel(source_p, msptr->chptr, server_oper, YES, &fmt);
|
||||
do_who_on_channel(source_p, msptr->chptr, server_oper, true, &fmt);
|
||||
}
|
||||
|
||||
sendto_one(source_p, form_str(RPL_ENDOFWHO),
|
||||
me.name, source_p->name, "*");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if(IsOperSpy(source_p) && *mask == '!')
|
||||
|
@ -184,7 +181,7 @@ m_who(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p,
|
|||
{
|
||||
sendto_one(source_p, form_str(RPL_ENDOFWHO),
|
||||
me.name, source_p->name, parv[1]);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -202,21 +199,21 @@ m_who(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p,
|
|||
me.name, source_p->name, "WHO");
|
||||
sendto_one(source_p, form_str(RPL_ENDOFWHO),
|
||||
me.name, source_p->name, "*");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if(operspy)
|
||||
report_operspy(source_p, "WHO", chptr->chname);
|
||||
|
||||
if(IsMember(source_p, chptr) || operspy)
|
||||
do_who_on_channel(source_p, chptr, server_oper, YES, &fmt);
|
||||
do_who_on_channel(source_p, chptr, server_oper, true, &fmt);
|
||||
else if(!SecretChannel(chptr))
|
||||
do_who_on_channel(source_p, chptr, server_oper, NO, &fmt);
|
||||
do_who_on_channel(source_p, chptr, server_oper, false, &fmt);
|
||||
}
|
||||
|
||||
sendto_one(source_p, form_str(RPL_ENDOFWHO),
|
||||
me.name, source_p->name, parv[1] + operspy);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
/* '/who nick' */
|
||||
|
@ -251,7 +248,7 @@ m_who(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p,
|
|||
|
||||
sendto_one(source_p, form_str(RPL_ENDOFWHO),
|
||||
me.name, source_p->name, mask);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if(!IsFloodDone(source_p))
|
||||
|
@ -266,7 +263,7 @@ m_who(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p,
|
|||
me.name, source_p->name, "WHO");
|
||||
sendto_one(source_p, form_str(RPL_ENDOFWHO),
|
||||
me.name, source_p->name, "*");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
else
|
||||
last_used = rb_current_time();
|
||||
|
@ -288,8 +285,6 @@ m_who(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p,
|
|||
|
||||
sendto_one(source_p, form_str(RPL_ENDOFWHO),
|
||||
me.name, source_p->name, mask);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* who_common_channel
|
||||
|
@ -556,12 +551,12 @@ do_who(struct Client *source_p, struct Client *target_p, struct membership *mspt
|
|||
|
||||
if (pos >= sizeof str)
|
||||
{
|
||||
static int warned = 0;
|
||||
static bool warned = false;
|
||||
if (!warned)
|
||||
sendto_realops_snomask(SNO_DEBUG, L_NETWIDE,
|
||||
"WHOX overflow while sending information about %s to %s",
|
||||
target_p->name, source_p->name);
|
||||
warned = 1;
|
||||
warned = true;
|
||||
}
|
||||
sendto_one(source_p, "%s", str);
|
||||
}
|
||||
|
|
|
@ -51,8 +51,8 @@ static const char whois_desc[] =
|
|||
static void do_whois(struct Client *client_p, struct Client *source_p, int parc, const char *parv[]);
|
||||
static void single_whois(struct Client *source_p, struct Client *target_p, int operspy);
|
||||
|
||||
static int m_whois(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static int ms_whois(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void m_whois(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void ms_whois(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
|
||||
struct Message whois_msgtab = {
|
||||
"WHOIS", 0, 0, 0, 0,
|
||||
|
@ -77,7 +77,7 @@ DECLARE_MODULE_AV2(whois, NULL, NULL, whois_clist, whois_hlist, NULL, NULL, NULL
|
|||
* m_whois
|
||||
* parv[1] = nickname masklist
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
m_whois(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
static time_t last_used = 0;
|
||||
|
@ -88,7 +88,7 @@ m_whois(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
{
|
||||
sendto_one(source_p, form_str(ERR_NONICKNAMEGIVEN),
|
||||
me.name, source_p->name);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if(!IsOper(source_p))
|
||||
|
@ -100,7 +100,7 @@ m_whois(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
me.name, source_p->name, "WHOIS");
|
||||
sendto_one_numeric(source_p, RPL_ENDOFWHOIS,
|
||||
form_str(RPL_ENDOFWHOIS), parv[2]);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
else
|
||||
last_used = rb_current_time();
|
||||
|
@ -108,14 +108,12 @@ m_whois(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
|
||||
if(hunt_server(client_p, source_p, ":%s WHOIS %s :%s", 1, parc, parv) !=
|
||||
HUNTED_ISME)
|
||||
return 0;
|
||||
return;
|
||||
|
||||
parv[1] = parv[2];
|
||||
|
||||
}
|
||||
do_whois(client_p, source_p, parc, parv);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -123,7 +121,7 @@ m_whois(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
|
|||
* parv[1] = server to reply
|
||||
* parv[2] = nickname to whois
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
ms_whois(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
struct Client *target_p;
|
||||
|
@ -136,7 +134,7 @@ ms_whois(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
{
|
||||
sendto_one(source_p, form_str(ERR_NONICKNAMEGIVEN),
|
||||
me.name, source_p->name);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
/* check if parv[1] exists */
|
||||
|
@ -145,7 +143,7 @@ ms_whois(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
sendto_one_numeric(source_p, ERR_NOSUCHSERVER,
|
||||
form_str(ERR_NOSUCHSERVER),
|
||||
IsDigit(parv[1][0]) ? "*" : parv[1]);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
/* if parv[1] isnt my client, or me, someone else is supposed
|
||||
|
@ -156,7 +154,7 @@ ms_whois(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
sendto_one(target_p, ":%s WHOIS %s :%s",
|
||||
get_id(source_p, target_p),
|
||||
get_id(target_p, target_p), parv[2]);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
/* ok, the target is either us, or a client on our server, so perform the whois
|
||||
|
@ -165,8 +163,6 @@ ms_whois(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
*/
|
||||
parv[1] = parv[2];
|
||||
do_whois(client_p, source_p, parc, parv);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* do_whois
|
||||
|
@ -215,7 +211,6 @@ do_whois(struct Client *client_p, struct Client *source_p, int parc, const char
|
|||
|
||||
sendto_one_numeric(source_p, RPL_ENDOFWHOIS,
|
||||
form_str(RPL_ENDOFWHOIS), parv[1]);
|
||||
return;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -421,6 +416,4 @@ single_whois(struct Client *source_p, struct Client *target_p, int operspy)
|
|||
call_hook(doing_whois_hook, &hdata);
|
||||
else
|
||||
call_hook(doing_whois_global_hook, &hdata);
|
||||
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -42,7 +42,7 @@
|
|||
static const char whowas_desc[] =
|
||||
"Provides the WHOWAS command to display information on a disconnected user";
|
||||
|
||||
static int m_whowas(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
static void m_whowas(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
|
||||
|
||||
struct Message whowas_msgtab = {
|
||||
"WHOWAS", 0, 0, 0, 0,
|
||||
|
@ -57,7 +57,7 @@ DECLARE_MODULE_AV2(whowas, NULL, NULL, whowas_clist, NULL, NULL, NULL, NULL, who
|
|||
** m_whowas
|
||||
** parv[1] = nickname queried
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
m_whowas(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
rb_dlink_list *whowas_list;
|
||||
|
@ -81,7 +81,7 @@ m_whowas(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
me.name, source_p->name, "WHOWAS");
|
||||
sendto_one_numeric(source_p, RPL_ENDOFWHOWAS, form_str(RPL_ENDOFWHOWAS),
|
||||
parv[1]);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
else
|
||||
last_used = rb_current_time();
|
||||
|
@ -93,7 +93,7 @@ m_whowas(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
|
||||
if(parc > 3)
|
||||
if(hunt_server(client_p, source_p, ":%s WHOWAS %s %s :%s", 3, parc, parv))
|
||||
return 0;
|
||||
return;
|
||||
|
||||
if(!MyClient(source_p) && (max <= 0 || max > 20))
|
||||
max = 20;
|
||||
|
@ -110,7 +110,7 @@ m_whowas(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
{
|
||||
sendto_one_numeric(source_p, ERR_WASNOSUCHNICK, form_str(ERR_WASNOSUCHNICK), nick);
|
||||
sendto_one_numeric(source_p, RPL_ENDOFWHOWAS, form_str(RPL_ENDOFWHOWAS), parv[1]);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
RB_DLINK_FOREACH(ptr, whowas_list->head)
|
||||
|
@ -149,5 +149,4 @@ m_whowas(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
}
|
||||
|
||||
sendto_one_numeric(source_p, RPL_ENDOFWHOWAS, form_str(RPL_ENDOFWHOWAS), parv[1]);
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -54,17 +54,17 @@
|
|||
static const char xline_desc[] =
|
||||
"Provides management of GECOS bans via (UN)XLINE command";
|
||||
|
||||
static int mo_xline(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[]);
|
||||
static int ms_xline(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[]);
|
||||
static int me_xline(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[]);
|
||||
static int mo_unxline(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc,
|
||||
static void mo_xline(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[]);
|
||||
static void ms_xline(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[]);
|
||||
static void me_xline(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[]);
|
||||
static void mo_unxline(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc,
|
||||
const char *parv[]);
|
||||
static int ms_unxline(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc,
|
||||
static void ms_unxline(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc,
|
||||
const char *parv[]);
|
||||
static int me_unxline(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc,
|
||||
static void me_unxline(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc,
|
||||
const char *parv[]);
|
||||
|
||||
static int valid_xline(struct Client *, const char *, const char *);
|
||||
static bool valid_xline(struct Client *, const char *, const char *);
|
||||
static void apply_xline(struct Client *client_p, const char *name,
|
||||
const char *reason, int temp_time, int propagated);
|
||||
static void propagate_xline(struct Client *source_p, const char *target,
|
||||
|
@ -98,7 +98,7 @@ DECLARE_MODULE_AV2(xline, NULL, NULL, xline_clist, NULL, NULL, NULL, NULL, xline
|
|||
* parv[2] - optional type/reason
|
||||
* parv[3] - reason
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
mo_xline(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
struct ConfItem *aconf;
|
||||
|
@ -112,7 +112,7 @@ mo_xline(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
if(!IsOperXline(source_p))
|
||||
{
|
||||
sendto_one(source_p, form_str(ERR_NOPRIVS), me.name, source_p->name, "xline");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if((temp_time = valid_temp_time(parv[loc])) >= 0)
|
||||
|
@ -131,7 +131,7 @@ mo_xline(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
{
|
||||
sendto_one(source_p, form_str(ERR_NOPRIVS),
|
||||
me.name, source_p->name, "remoteban");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
target_server = parv[loc + 1];
|
||||
|
@ -142,7 +142,7 @@ mo_xline(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
{
|
||||
sendto_one(source_p, form_str(ERR_NEEDMOREPARAMS),
|
||||
me.name, source_p->name, "XLINE");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
reason = parv[loc];
|
||||
|
@ -152,7 +152,7 @@ mo_xline(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
propagate_xline(source_p, target_server, temp_time, name, "2", reason);
|
||||
|
||||
if(!match(target_server, me.name))
|
||||
return 0;
|
||||
return;
|
||||
|
||||
/* Set as local-only. */
|
||||
propagated = 0;
|
||||
|
@ -164,28 +164,26 @@ mo_xline(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
{
|
||||
sendto_one(source_p, ":%s NOTICE %s :[%s] already X-Lined by [%s] - %s",
|
||||
me.name, source_p->name, name, aconf->host, aconf->passwd);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if(!valid_xline(source_p, name, reason))
|
||||
return 0;
|
||||
return;
|
||||
|
||||
if(propagated && temp_time == 0)
|
||||
{
|
||||
sendto_one_notice(source_p, ":Cannot set a permanent global ban");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
apply_xline(source_p, name, reason, temp_time, propagated);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* ms_xline()
|
||||
*
|
||||
* handles a remote xline
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
ms_xline(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
/* parv[0] parv[1] parv[2] parv[3] parv[4]
|
||||
|
@ -194,25 +192,23 @@ ms_xline(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
|
|||
propagate_xline(source_p, parv[1], 0, parv[2], parv[3], parv[4]);
|
||||
|
||||
if(!IsPerson(source_p))
|
||||
return 0;
|
||||
return;
|
||||
|
||||
/* destined for me? */
|
||||
if(!match(parv[1], me.name))
|
||||
return 0;
|
||||
return;
|
||||
|
||||
handle_remote_xline(source_p, 0, parv[2], parv[4]);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
static void
|
||||
me_xline(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
/* time name type :reason */
|
||||
if(!IsPerson(source_p))
|
||||
return 0;
|
||||
return;
|
||||
|
||||
handle_remote_xline(source_p, atoi(parv[1]), parv[2], parv[4]);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -245,14 +241,14 @@ handle_remote_xline(struct Client *source_p, int temp_time, const char *name, co
|
|||
* outputs -
|
||||
* side effects - checks the xline for validity, erroring if needed
|
||||
*/
|
||||
static int
|
||||
static bool
|
||||
valid_xline(struct Client *source_p, const char *gecos, const char *reason)
|
||||
{
|
||||
if(EmptyString(reason))
|
||||
{
|
||||
sendto_one(source_p, form_str(ERR_NEEDMOREPARAMS),
|
||||
get_id(&me, source_p), get_id(source_p, source_p), "XLINE");
|
||||
return 0;
|
||||
return false;
|
||||
}
|
||||
|
||||
if(!valid_wild_card_simple(gecos))
|
||||
|
@ -261,10 +257,10 @@ valid_xline(struct Client *source_p, const char *gecos, const char *reason)
|
|||
":Please include at least %d non-wildcard "
|
||||
"characters with the xline",
|
||||
ConfigFileEntry.min_nonwildcard_simple);
|
||||
return 0;
|
||||
return false;
|
||||
}
|
||||
|
||||
return 1;
|
||||
return true;
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -386,7 +382,7 @@ cluster_xline(struct Client *source_p, int temp_time, const char *name, const ch
|
|||
*
|
||||
* parv[1] - thing to unxline
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
mo_unxline(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
int propagated = 1;
|
||||
|
@ -394,7 +390,7 @@ mo_unxline(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sour
|
|||
if(!IsOperXline(source_p))
|
||||
{
|
||||
sendto_one(source_p, form_str(ERR_NOPRIVS), me.name, source_p->name, "xline");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if(parc == 4 && !(irccmp(parv[2], "ON")))
|
||||
|
@ -403,28 +399,26 @@ mo_unxline(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sour
|
|||
{
|
||||
sendto_one(source_p, form_str(ERR_NOPRIVS),
|
||||
me.name, source_p->name, "remoteban");
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
propagate_generic(source_p, "UNXLINE", parv[3], CAP_CLUSTER, "%s", parv[1]);
|
||||
|
||||
if(match(parv[3], me.name) == 0)
|
||||
return 0;
|
||||
return;
|
||||
|
||||
propagated = 0;
|
||||
}
|
||||
/* cluster{} moved to remove_xline */
|
||||
|
||||
remove_xline(source_p, parv[1], propagated);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* ms_unxline()
|
||||
*
|
||||
* handles a remote unxline
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
ms_unxline(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
/* parv[0] parv[1] parv[2]
|
||||
|
@ -433,24 +427,22 @@ ms_unxline(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sour
|
|||
propagate_generic(source_p, "UNXLINE", parv[1], CAP_CLUSTER, "%s", parv[2]);
|
||||
|
||||
if(!match(parv[1], me.name))
|
||||
return 0;
|
||||
return;
|
||||
|
||||
if(!IsPerson(source_p))
|
||||
return 0;
|
||||
return;
|
||||
|
||||
handle_remote_unxline(source_p, parv[2]);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
static void
|
||||
me_unxline(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
/* name */
|
||||
if(!IsPerson(source_p))
|
||||
return 0;
|
||||
return;
|
||||
|
||||
handle_remote_unxline(source_p, parv[1]);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -461,8 +453,6 @@ handle_remote_unxline(struct Client *source_p, const char *name)
|
|||
return;
|
||||
|
||||
remove_xline(source_p, name, 0);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -544,6 +534,4 @@ remove_xline(struct Client *source_p, const char *name, int propagated)
|
|||
cluster_generic(source_p, "UNXLINE", SHARED_UNXLINE, CAP_CLUSTER, "%s", name);
|
||||
|
||||
sendto_one_notice(source_p, ":No X-Line for %s", name);
|
||||
|
||||
return;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue