Add me_svsjoin function to allow services to "force"join clients
to channels, primarily for ns_ajoin.
This commit is contained in:
parent
36fb4e9a77
commit
1d59ea37bb
|
@ -43,6 +43,7 @@
|
|||
#include "chmode.h"
|
||||
|
||||
static int m_join(struct Client *, struct Client *, int, const char **);
|
||||
static int me_svsjoin(struct Client *, struct Client *, int, const char **);
|
||||
static int ms_join(struct Client *, struct Client *, int, const char **);
|
||||
static int ms_sjoin(struct Client *, struct Client *, int, const char **);
|
||||
|
||||
|
@ -51,6 +52,11 @@ struct Message join_msgtab = {
|
|||
{mg_unreg, {m_join, 2}, {ms_join, 2}, mg_ignore, mg_ignore, {m_join, 2}}
|
||||
};
|
||||
|
||||
struct Message svsjoin_msgtab = {
|
||||
"SVSJOIN", 0, 0, 0, MFLG_SLOW,
|
||||
{mg_ignore, mg_ignore, mg_ignore, mg_ignore, {me_svsjoin, 3}, mg_ignore}
|
||||
};
|
||||
|
||||
struct Message sjoin_msgtab = {
|
||||
"SJOIN", 0, 0, 0, MFLG_SLOW,
|
||||
{mg_unreg, mg_ignore, mg_ignore, {ms_sjoin, 4}, mg_ignore, mg_ignore}
|
||||
|
@ -86,6 +92,26 @@ m_join(struct Client *client_p, struct Client *source_p, int parc, const char *p
|
|||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* me_svsjoin - small function to allow services to forcejoin clients, mainly for ns_ajoin
|
||||
* parv[1] = user to act on (join to a channel)
|
||||
* parv[2] = channel
|
||||
*/
|
||||
static int
|
||||
me_svsjoin(struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
|
||||
{
|
||||
struct Client *target_p;
|
||||
|
||||
if(!(source_p->flags & FLAGS_SERVICE))
|
||||
return 0;
|
||||
|
||||
if((target_p = find_person(parv[1])) == NULL)
|
||||
return 0;
|
||||
|
||||
user_join(&me, target_p, parv[2], NULL);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* ms_join
|
||||
* parv[1] = channel TS
|
||||
|
|
Loading…
Reference in New Issue