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);
|
||||
#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);
|
||||
|
||||
|
|
|
@ -58,7 +58,7 @@ struct Message tmode_msgtab = {
|
|||
};
|
||||
struct Message mlock_msgtab = {
|
||||
"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 = {
|
||||
"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)
|
||||
{
|
||||
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",
|
||||
source_p->id, (long) chptr->channelts, chptr->chname, chptr->mode_lock);
|
||||
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 ? chptr->mode_lock : "");
|
||||
}
|
||||
|
|
|
@ -659,9 +659,9 @@ burst_TS6(struct Client *client_p)
|
|||
chptr->topic);
|
||||
|
||||
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,
|
||||
channel_mlock(chptr, client_p));
|
||||
EmptyString(chptr->mode_lock) ? "" : chptr->mode_lock);
|
||||
|
||||
hchaninfo.chptr = chptr;
|
||||
call_hook(h_burst_channel, &hchaninfo);
|
||||
|
|
Loading…
Reference in a new issue