Allow the final parameter of MLOCK to be empty, to remove an existing mlock
This commit is contained in:
parent
1916ed52f8
commit
6b8db2daf2
4 changed files with 7 additions and 7 deletions
|
@ -241,7 +241,6 @@ extern void del_invite(struct Channel *chptr, struct Client *who);
|
||||||
|
|
||||||
const char *channel_modes_real(struct Channel *chptr, struct Mode *mode, struct Client *who);
|
const char *channel_modes_real(struct Channel *chptr, struct Mode *mode, struct Client *who);
|
||||||
#define channel_modes(chptr, who) channel_modes_real(chptr, &(chptr)->mode, who)
|
#define channel_modes(chptr, who) channel_modes_real(chptr, &(chptr)->mode, who)
|
||||||
#define channel_mlock(chptr, who) channel_modes_real(chptr, &(chptr)->mode_lock, who)
|
|
||||||
|
|
||||||
extern struct Channel *find_bannickchange_channel(struct Client *client_p);
|
extern struct Channel *find_bannickchange_channel(struct Client *client_p);
|
||||||
|
|
||||||
|
|
|
@ -58,7 +58,7 @@ struct Message tmode_msgtab = {
|
||||||
};
|
};
|
||||||
struct Message mlock_msgtab = {
|
struct Message mlock_msgtab = {
|
||||||
"MLOCK", 0, 0, 0, MFLG_SLOW,
|
"MLOCK", 0, 0, 0, MFLG_SLOW,
|
||||||
{mg_ignore, mg_ignore, {ms_mlock, 4}, {ms_mlock, 4}, mg_ignore, mg_ignore}
|
{mg_ignore, mg_ignore, {ms_mlock, 3}, {ms_mlock, 3}, mg_ignore, mg_ignore}
|
||||||
};
|
};
|
||||||
struct Message bmask_msgtab = {
|
struct Message bmask_msgtab = {
|
||||||
"BMASK", 0, 0, 0, MFLG_SLOW,
|
"BMASK", 0, 0, 0, MFLG_SLOW,
|
||||||
|
|
|
@ -1774,8 +1774,9 @@ set_channel_mlock(struct Client *client_p, struct Client *source_p,
|
||||||
struct Channel *chptr, const char *newmlock)
|
struct Channel *chptr, const char *newmlock)
|
||||||
{
|
{
|
||||||
rb_free(chptr->mode_lock);
|
rb_free(chptr->mode_lock);
|
||||||
chptr->mode_lock = rb_strdup(newmlock);
|
chptr->mode_lock = newmlock ? rb_strdup(newmlock) : NULL;
|
||||||
|
|
||||||
sendto_server(client_p, NULL, CAP_TS6 | CAP_MLOCK, NOCAPS, ":%s MLOCK %ld %s %s",
|
sendto_server(client_p, NULL, CAP_TS6 | CAP_MLOCK, NOCAPS, ":%s MLOCK %ld %s :%s",
|
||||||
source_p->id, (long) chptr->channelts, chptr->chname, chptr->mode_lock);
|
source_p->id, (long) chptr->channelts, chptr->chname,
|
||||||
|
chptr->mode_lock ? chptr->mode_lock : "");
|
||||||
}
|
}
|
||||||
|
|
|
@ -659,9 +659,9 @@ burst_TS6(struct Client *client_p)
|
||||||
chptr->topic);
|
chptr->topic);
|
||||||
|
|
||||||
if(IsCapable(client_p, CAP_MLOCK))
|
if(IsCapable(client_p, CAP_MLOCK))
|
||||||
sendto_one(client_p, ":%s MLOCK %ld %s %s",
|
sendto_one(client_p, ":%s MLOCK %ld %s :%s",
|
||||||
me.id, (long) chptr->channelts, chptr->chname,
|
me.id, (long) chptr->channelts, chptr->chname,
|
||||||
channel_mlock(chptr, client_p));
|
EmptyString(chptr->mode_lock) ? "" : chptr->mode_lock);
|
||||||
|
|
||||||
hchaninfo.chptr = chptr;
|
hchaninfo.chptr = chptr;
|
||||||
call_hook(h_burst_channel, &hchaninfo);
|
call_hook(h_burst_channel, &hchaninfo);
|
||||||
|
|
Loading…
Reference in a new issue