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"
|
#include "chmode.h"
|
||||||
|
|
||||||
static int m_join(struct Client *, struct Client *, int, const char **);
|
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_join(struct Client *, struct Client *, int, const char **);
|
||||||
static int ms_sjoin(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}}
|
{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 = {
|
struct Message sjoin_msgtab = {
|
||||||
"SJOIN", 0, 0, 0, MFLG_SLOW,
|
"SJOIN", 0, 0, 0, MFLG_SLOW,
|
||||||
{mg_unreg, mg_ignore, mg_ignore, {ms_sjoin, 4}, mg_ignore, mg_ignore}
|
{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;
|
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
|
* ms_join
|
||||||
* parv[1] = channel TS
|
* parv[1] = channel TS
|
||||||
|
|
Loading…
Reference in New Issue