Allow the final parameter of MLOCK to be empty, to remove an existing mlock

This commit is contained in:
Stephen Bennett 2010-05-02 20:42:46 +01:00
parent b72bd23a03
commit c554add299
3 changed files with 7 additions and 6 deletions

View File

@ -59,7 +59,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,

View File

@ -2246,8 +2246,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 : "");
} }

View File

@ -679,9 +679,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);