1
0
mirror of https://github.com/unrealircd/unrealircd.git synced 2026-07-08 03:23:12 +02:00

- Added SVSWATCH: allows U-lined server to modify the watch list of a user.

- Added SVSSILENCE: allows U-lined server to modify the silence list of a user.
This commit is contained in:
Bram Matthys
2003-02-27 23:23:24 +00:00
parent 06eaede3f2
commit def6483548
12 changed files with 374 additions and 13 deletions
+2
View File
@@ -1948,3 +1948,5 @@ seen. gmtime warning still there
- Made set::allow-userhost-change force-rejoin work.
- Fixed chmode +u bug when chanop was parting but wasn't sent to normal users.
- Added allow-userhost-change checks to /vhost.
- Added SVSWATCH: allows U-lined server to modify the watch list of a user.
- Added SVSSILENCE: allows U-lined server to modify the silence list of a user.
+17 -2
View File
@@ -69,8 +69,8 @@ help Svscmds {
" a specific command.";
" -";
" ==-----------oOo-----------==";
" SVSNICK SVSMODE SVSKILL";
" SVSNOOP SVSJOIN SVSPART";
" SVSNICK SVSMODE SVSKILL SVSWATCH";
" SVSNOOP SVSJOIN SVSPART SVSSILENCE";
" SVSO SWHOIS SQLINE SVSNLINE";
" UNSQLINE SVS2MODE SVSFLINE";
" SVSMOTD SVSTIME SVSLUSERS";
@@ -1117,3 +1117,18 @@ help Svslusers {
" Example: SVSLUSERS irc.test.com -1 200";
};
help Svswatch {
" Changes the WATCH list of a user.";
" Must be sent trough an U:Lined server.";
" Syntax: SVSWATCH <nick> :<watch parameters>";
" Example: SVSWATCH Blah :+Blih!*@* +Bluh!*@* +Bleh!*@*.com";
};
help Svssilence {
" Changes the SILENCE list of a user.";
" Must be sent trough an U:Lined server.";
" In contrast to the SILENCE command, you can add/remove";
" multiple entries in one line.";
" Syntax: SVSSILENCE <nick> :<silence parameters>";
" Example: SILENCE Blah :+*!*@*.com +*!*@*.bla.co.uk";
};
+1
View File
@@ -180,6 +180,7 @@ extern void set_snomask(aClient *sptr, char *snomask);
extern char *get_sno_str(aClient *sptr);
/* for services */
extern void del_invite(aClient *, aChannel *);
extern int add_silence(aClient *, char *, int);
extern int del_silence(aClient *, char *);
extern void send_user_joins(aClient *, aClient *);
extern void clean_channelname(char *);
+8 -1
View File
@@ -47,7 +47,8 @@ MOD_FILES=SRC/L_COMMANDS.OBJ SRC/M_CHGHOST.OBJ SRC/M_SDESC.OBJ SRC/M_SETIDENT.OB
SRC/M_SQLINE.OBJ SRC/M_KILL.OBJ SRC/M_TSCTL.OBJ SRC/M_UNKLINE.OBJ \
SRC/M_UNSQLINE.OBJ SRC/M_UNZLINE.OBJ SRC/M_WHOIS.OBJ \
SRC/SCAN.OBJ SRC/SCAN_SOCKS.OBJ SRC/SCAN_HTTP.OBJ SRC/M_TKL.OBJ SRC/M_VHOST.OBJ \
SRC/M_CYCLE.OBJ SRC/M_SVSJOIN.OBJ SRC/M_SVSPART.OBJ SRC/M_SVSLUSERS.OBJ
SRC/M_CYCLE.OBJ SRC/M_SVSJOIN.OBJ SRC/M_SVSPART.OBJ SRC/M_SVSLUSERS.OBJ \
SRC/M_SVSWATCH.OBJ SRC/M_SVSSILENCE.OBJ
ALL: CONF UNREAL.EXE WIRCD.EXE
@@ -365,6 +366,12 @@ src/m_svspart.obj: src/modules/m_svspart.c $(INCLUDES)
src/m_svslusers.obj: src/modules/m_svslusers.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_svslusers.c
src/m_svswatch.obj: src/modules/m_svswatch.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_svswatch.c
src/m_svssilence.obj: src/modules/m_svssilence.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_svssilence.c
src/scan.obj: src/modules/scan.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/scan.c
+8 -1
View File
@@ -50,7 +50,8 @@ MOD_FILES=SRC/L_COMMANDS.OBJ SRC/M_CHGHOST.OBJ SRC/M_SDESC.OBJ SRC/M_SETIDENT.OB
SRC/M_SQLINE.OBJ SRC/M_KILL.OBJ SRC/M_TSCTL.OBJ SRC/M_UNKLINE.OBJ \
SRC/M_UNSQLINE.OBJ SRC/M_UNZLINE.OBJ SRC/M_WHOIS.OBJ \
SRC/SCAN.OBJ SRC/SCAN_SOCKS.OBJ SRC/SCAN_HTTP.OBJ SRC/M_TKL.OBJ SRC/M_VHOST.OBJ \
SRC/M_CYCLE.OBJ SRC/M_SVSJOIN.OBJ SRC/M_SVSPART.OBJ SRC/M_SVSLUSERS.OBJ
SRC/M_CYCLE.OBJ SRC/M_SVSJOIN.OBJ SRC/M_SVSPART.OBJ SRC/M_SVSLUSERS.OBJ \
SRC/M_SVSWATCH.OBJ SRC/M_SVSSILENCE.OBJ
ALL: CONF UNREAL.EXE WIRCD.EXE
@@ -368,6 +369,12 @@ src/m_svspart.obj: src/modules/m_svspart.c $(INCLUDES)
src/m_svslusers.obj: src/modules/m_svslusers.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_svslusers.c
src/m_svswatch.obj: src/modules/m_svswatch.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_svswatch.c
src/m_svssilence.obj: src/modules/m_svssilence.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_svssilence.c
src/scan.obj: src/modules/scan.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/scan.c
+8 -1
View File
@@ -57,7 +57,8 @@ MOD_FILES=SRC/L_COMMANDS.OBJ SRC/M_CHGHOST.OBJ SRC/M_SDESC.OBJ SRC/M_SETIDENT.OB
SRC/M_SQLINE.OBJ SRC/M_KILL.OBJ SRC/M_TSCTL.OBJ SRC/M_UNKLINE.OBJ \
SRC/M_UNSQLINE.OBJ SRC/M_UNZLINE.OBJ SRC/M_WHOIS.OBJ \
SRC/SCAN.OBJ SRC/SCAN_SOCKS.OBJ SRC/SCAN_HTTP.OBJ SRC/M_TKL.OBJ SRC/M_VHOST.OBJ \
SRC/M_CYCLE.OBJ SRC/M_SVSJOIN.OBJ SRC/M_SVSPART.OBJ SRC/M_SVSLUSERS.OBJ
SRC/M_CYCLE.OBJ SRC/M_SVSJOIN.OBJ SRC/M_SVSPART.OBJ SRC/M_SVSLUSERS.OBJ \
SRC/M_SVSWATCH.OBJ SRC/M_SVSSILENCE.OBJ
ALL: CONF UNREAL.EXE WIRCD.EXE
@@ -378,6 +379,12 @@ src/m_svspart.obj: src/modules/m_svspart.c $(INCLUDES)
src/m_svslusers.obj: src/modules/m_svslusers.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_svslusers.c
src/m_svswatch.obj: src/modules/m_svswatch.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_svswatch.c
src/m_svssilence.obj: src/modules/m_svssilence.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_svssilence.c
src/scan.obj: src/modules/scan.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/scan.c
+8 -1
View File
@@ -52,7 +52,8 @@ MOD_FILES=SRC/L_COMMANDS.OBJ SRC/M_CHGHOST.OBJ SRC/M_SDESC.OBJ SRC/M_SETIDENT.OB
SRC/M_SQLINE.OBJ SRC/M_KILL.OBJ SRC/M_TSCTL.OBJ SRC/M_UNKLINE.OBJ \
SRC/M_UNSQLINE.OBJ SRC/M_UNZLINE.OBJ SRC/M_WHOIS.OBJ \
SRC/SCAN.OBJ SRC/SCAN_SOCKS.OBJ SRC/SCAN_HTTP.OBJ SRC/M_TKL.OBJ SRC/M_VHOST.OBJ \
SRC/M_CYCLE.OBJ SRC/M_SVSJOIN.OBJ SRC/M_SVSPART.OBJ SRC/M_SVSLUSERS.OBJ
SRC/M_CYCLE.OBJ SRC/M_SVSJOIN.OBJ SRC/M_SVSPART.OBJ SRC/M_SVSLUSERS.OBJ \
SRC/M_SVSWATCH.OBJ SRC/M_SVSSILENCE.OBJ
ALL: CONF UNREAL.EXE WIRCD.EXE
@@ -373,6 +374,12 @@ src/m_svspart.obj: src/modules/m_svspart.c $(INCLUDES)
src/m_svslusers.obj: src/modules/m_svslusers.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_svslusers.c
src/m_svswatch.obj: src/modules/m_svswatch.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_svswatch.c
src/m_svssilence.obj: src/modules/m_svssilence.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/m_svssilence.c
src/scan.obj: src/modules/scan.c $(INCLUDES)
$(CC) $(CFLAGS) src/modules/scan.c
+10 -2
View File
@@ -33,7 +33,7 @@ R_MODULES=m_sethost.so m_chghost.so m_chgident.so m_setname.so \
m_quit.so m_rakill.so m_rping.so m_sendumode.so m_sqline.so \
m_tsctl.so m_unkline.so m_unsqline.so m_unzline.so m_whois.so \
m_tkl.so m_vhost.so m_cycle.so m_svsjoin.so m_svspart.so \
scan.so scan_socks.so scan_http.so web/httpd.so
m_svswatch.so m_svssilence.so scan.so scan_socks.so scan_http.so web/httpd.so
COMMANDS=m_sethost.c m_chghost.c m_chgident.c m_setname.c m_setident.c \
m_sdesc.c m_svsmode.c m_swhois.c m_svsmotd.c m_svsnline.c \
@@ -43,7 +43,7 @@ COMMANDS=m_sethost.c m_chghost.c m_chgident.c m_setname.c m_setident.c \
m_quit.c m_rakill.c m_rping.c m_sendumode.c m_sqline.c \
m_tsctl.c m_unkline.c m_unsqline.c m_unzline.c m_whois.c \
m_tkl.c m_vhost.c m_cycle.c m_svsjoin.c m_svspart.c \
m_svslusers.c
m_svslusers.c m_svswatch.c m_svssilence.c
MODULES=commands.so $(R_MODULES)
@@ -233,6 +233,14 @@ m_svslusers.so: m_svslusers.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -DDYNAMIC_LINKING \
-o m_svslusers.so m_svslusers.c
m_svswatch.so: m_svswatch.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -DDYNAMIC_LINKING \
-o m_svswatch.so m_svswatch.c
m_svssilence.so: m_svssilence.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -DDYNAMIC_LINKING \
-o m_svssilence.so m_svssilence.c
scan.so: scan.c $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -DDYNAMIC_LINKING \
-o scan.so scan.c
+9
View File
@@ -93,6 +93,7 @@ extern int m_unzline_Init(ModuleInfo *modinfo), m_unkline_Init(ModuleInfo *modin
extern int m_sqline_Init(ModuleInfo *modinfo), m_unsqline_Init(ModuleInfo *modinfo), m_tkl_Init(ModuleInfo *modinfo);
extern int m_vhost_Init(ModuleInfo *modinfo), m_cycle_Init(ModuleInfo *modinfo), m_svsjoin_Init(ModuleInfo *modinfo);
extern int m_svspart_Init(ModuleInfo *modinfo), m_svslusers_Init(ModuleInfo *modinfo);
extern int m_svswatch_Init(ModuleInfo *modinfo), m_svssilence_Init(ModuleInfo *modinfo);
#ifdef GUEST
extern int m_guest_Init(ModuleInfo *modinfo);
#endif
@@ -115,6 +116,7 @@ extern int m_unzline_Load(int module_load), m_unkline_Load(int module_load);
extern int m_sqline_Load(int module_load), m_unsqline_Load(int module_load), m_tkl_Load(int module_load);
extern int m_vhost_Load(int module_load), m_cycle_Load(int module_load), m_svsjoin_Load(int module_load);
extern int m_svspart_Load(int module_load), m_svslusers_Load(int module_load);
extern int m_svswatch_Load(int module_load), m_svssilence_Load(int module_load);
#ifdef GUEST
extern int m_guest_Load(int module_load);
#endif
@@ -133,6 +135,7 @@ extern int m_pingpong_Unload(), m_oper_Unload(), m_akill_Unload(), m_rakill_Unlo
extern int m_unzline_Unload(), m_unkline_Unload();
extern int m_sqline_Unload(), m_unsqline_Unload(), m_tkl_Unload(), m_vhost_Unload();
extern int m_cycle_Unload(), m_svsjoin_Unload(), m_svspart_Unload(), m_svslusers_Unload();
extern int m_svswatch_Unload(), m_svssilence_Unload();
#ifdef GUEST
extern int m_guest_Unload();
#endif
@@ -218,6 +221,8 @@ int l_commands_Init(ModuleInfo *modinfo)
m_cycle_Init(&ModCmdsInfo);
m_svsjoin_Init(&ModCmdsInfo);
m_svspart_Init(&ModCmdsInfo);
m_svswatch_Init(&ModCmdsInfo);
m_svssilence_Init(&ModCmdsInfo);
m_svslusers_Init(&ModCmdsInfo);
#ifdef GUEST
m_guest_Init(&ModCmdsInfo);
@@ -276,6 +281,8 @@ int l_commands_Load(int module_load)
m_cycle_Load(module_load);
m_svsjoin_Load(module_load);
m_svspart_Load(module_load);
m_svswatch_Load(module_load);
m_svssilence_Load(module_load);
m_svslusers_Load(module_load);
#ifdef GUEST
m_guest_Load(module_load);
@@ -335,6 +342,8 @@ int l_commands_Unload(int module_unload)
m_cycle_Unload();
m_svsjoin_Unload();
m_svspart_Unload();
m_svswatch_Unload();
m_svssilence_Unload();
m_svslusers_Unload();
#ifdef GUEST
m_guest_Unload();
+161
View File
@@ -0,0 +1,161 @@
/*
* Unreal Internet Relay Chat Daemon, src/modules/m_svssilence.c
* (C) 2003 Bram Matthys (Syzop) and the UnrealIRCd Team
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 1, or (at your option)
* any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include "config.h"
#include "struct.h"
#include "common.h"
#include "sys.h"
#include "numeric.h"
#include "msg.h"
#include "channel.h"
#include <time.h>
#include <sys/stat.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#ifdef _WIN32
#include <io.h>
#endif
#include <sys/timeb.h>
#include <fcntl.h>
#include "h.h"
#include "proto.h"
#ifdef STRIPBADWORDS
#include "badwords.h"
#endif
#ifdef _WIN32
#include "version.h"
#endif
DLLFUNC int m_svssilence(aClient *cptr, aClient *sptr, int parc, char *parv[]);
/* Place includes here */
#define MSG_SVSSILENCE "SVSSILENCE"
#define TOK_SVSSILENCE "Bs"
#ifndef DYNAMIC_LINKING
ModuleHeader m_svssilence_Header
#else
#define m_svssilence_Header Mod_Header
ModuleHeader Mod_Header
#endif
= {
"svssilence", /* Name of module */
"$Id$", /* Version */
"command /svssilence", /* Short description of module */
"3.2-b8-1",
NULL
};
/* The purpose of these ifdefs, are that we can "static" link the ircd if we
* want to
*/
/* This is called on module init, before Server Ready */
#ifdef DYNAMIC_LINKING
DLLFUNC int Mod_Init(ModuleInfo *modinfo)
#else
int m_svssilence_Init(ModuleInfo *modinfo)
#endif
{
/*
* We call our add_Command crap here
*/
add_Command(MSG_SVSSILENCE, TOK_SVSSILENCE, m_svssilence, MAXPARA);
return MOD_SUCCESS;
}
/* Is first run when server is 100% ready */
#ifdef DYNAMIC_LINKING
DLLFUNC int Mod_Load(int module_load)
#else
int m_svssilence_Load(int module_load)
#endif
{
return MOD_SUCCESS;
}
/* Called when module is unloaded */
#ifdef DYNAMIC_LINKING
DLLFUNC int Mod_Unload(int module_unload)
#else
int m_svssilence_Unload(int module_unload)
#endif
{
if (del_Command(MSG_SVSSILENCE, TOK_SVSSILENCE, m_svssilence) < 0)
{
sendto_realops("Failed to delete commands when unloading %s",
m_svssilence_Header.name);
}
return MOD_SUCCESS;
}
/* m_svssilence()
* written by Syzop (copied a lot from m_silence),
* suggested by <??>.
* parv[0] - sender
* parv[1] - target nick
* parv[2] - space delimited silence list (+Blah +Blih -Bluh etc)
* SERVER DISTRIBUTION:
* In contrast to the normal SILENCE command, this is sent to all servers
* because it can/will add&remove multiple silence entries at once.
*/
CMD_FUNC(m_svssilence)
{
aClient *acptr;
int mine;
char *p, *cp, c;
if (!IsULine(sptr))
return 0;
if (parc < 3 || BadPtr(parv[2]) || !(acptr = find_person(parv[1], NULL)))
return 0;
sendto_serv_butone_token(sptr, parv[0], MSG_SVSSILENCE, TOK_SVSSILENCE, "%s :%s", parv[1], parv[2]);
mine = MyClient(acptr) ? 1 : 0;
for (p = strtok(parv[2], " "); p; p = strtok(NULL, " "))
{
c = *p;
if ((c == '-') || (c == '+'))
p++;
else if (!(index(p, '@') || index(p, '.') ||
index(p, '!') || index(p, '*')))
{
/* "no such nick" */
continue;
}
else
c = '+';
cp = pretty_mask(p);
if ((c == '-' && !del_silence(acptr, cp)) ||
(c != '-' && !add_silence(acptr, cp, 0)))
{
if (mine)
sendto_prefix_one(acptr, acptr, ":%s SILENCE %c%s", parv[0], c, cp);
}
}
return 0;
}
+137
View File
@@ -0,0 +1,137 @@
/*
* Unreal Internet Relay Chat Daemon, src/modules/m_svswatch.c
* (C) 2003 Bram Matthys (Syzop) and the UnrealIRCd Team
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 1, or (at your option)
* any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include "config.h"
#include "struct.h"
#include "common.h"
#include "sys.h"
#include "numeric.h"
#include "msg.h"
#include "channel.h"
#include <time.h>
#include <sys/stat.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#ifdef _WIN32
#include <io.h>
#endif
#include <sys/timeb.h>
#include <fcntl.h>
#include "h.h"
#include "proto.h"
#ifdef STRIPBADWORDS
#include "badwords.h"
#endif
#ifdef _WIN32
#include "version.h"
#endif
DLLFUNC int m_svswatch(aClient *cptr, aClient *sptr, int parc, char *parv[]);
/* Place includes here */
#define MSG_SVSWATCH "SVSWATCH"
#define TOK_SVSWATCH "BW"
#ifndef DYNAMIC_LINKING
ModuleHeader m_svswatch_Header
#else
#define m_svswatch_Header Mod_Header
ModuleHeader Mod_Header
#endif
= {
"svswatch", /* Name of module */
"$Id$", /* Version */
"command /svswatch", /* Short description of module */
"3.2-b8-1",
NULL
};
/* The purpose of these ifdefs, are that we can "static" link the ircd if we
* want to
*/
/* This is called on module init, before Server Ready */
#ifdef DYNAMIC_LINKING
DLLFUNC int Mod_Init(ModuleInfo *modinfo)
#else
int m_svswatch_Init(ModuleInfo *modinfo)
#endif
{
/*
* We call our add_Command crap here
*/
add_Command(MSG_SVSWATCH, TOK_SVSWATCH, m_svswatch, MAXPARA);
return MOD_SUCCESS;
}
/* Is first run when server is 100% ready */
#ifdef DYNAMIC_LINKING
DLLFUNC int Mod_Load(int module_load)
#else
int m_svswatch_Load(int module_load)
#endif
{
return MOD_SUCCESS;
}
/* Called when module is unloaded */
#ifdef DYNAMIC_LINKING
DLLFUNC int Mod_Unload(int module_unload)
#else
int m_svswatch_Unload(int module_unload)
#endif
{
if (del_Command(MSG_SVSWATCH, TOK_SVSWATCH, m_svswatch) < 0)
{
sendto_realops("Failed to delete commands when unloading %s",
m_svswatch_Header.name);
}
return MOD_SUCCESS;
}
/* m_svswatch() - written by Syzop, suggested by Griever.
* parv[0] - sender
* parv[1] - target nick
* parv[2] - parameters
*/
CMD_FUNC(m_svswatch)
{
aClient *acptr;
if (!IsULine(sptr))
return 0;
if (parc < 3 || BadPtr(parv[2]) || !(acptr = find_person(parv[1], NULL)))
return 0;
if (MyClient(acptr))
{
parv[0] = parv[1];
parv[1] = parv[2];
(void)m_watch(acptr, acptr, 2, parv);
}
else
sendto_one(acptr, ":%s SVSWATCH %s :%s", parv[0], parv[1], parv[2]);
return 0;
}
+5 -5
View File
@@ -2705,7 +2705,7 @@ int del_silence(aClient *sptr, char *mask)
return -1;
}
static int add_silence(aClient *sptr, char *mask)
int add_silence(aClient *sptr, char *mask, int senderr)
{
Link *lp;
int cnt = 0, len = 0;
@@ -2716,8 +2716,8 @@ static int add_silence(aClient *sptr, char *mask)
if (MyClient(sptr))
if ((len > MAXSILELENGTH) || (++cnt >= MAXSILES))
{
sendto_one(sptr, err_str(ERR_SILELISTFULL),
me.name, sptr->name, mask);
if (senderr)
sendto_one(sptr, err_str(ERR_SILELISTFULL), me.name, sptr->name, mask);
return -1;
}
else
@@ -2784,7 +2784,7 @@ CMD_FUNC(m_silence)
c = '+';
cp = pretty_mask(cp);
if ((c == '-' && !del_silence(sptr, cp)) ||
(c != '-' && !add_silence(sptr, cp)))
(c != '-' && !add_silence(sptr, cp, 1)))
{
sendto_prefix_one(sptr, sptr, ":%s SILENCE %c%s",
parv[0], c, cp);
@@ -2809,7 +2809,7 @@ CMD_FUNC(m_silence)
}
else
{
(void)add_silence(sptr, parv[2]);
(void)add_silence(sptr, parv[2], 1);
if (!MyClient(acptr))
sendto_one(acptr, ":%s SILENCE %s :%s",
parv[0], parv[1], parv[2]);