* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
+#include "chanserv.h"
#include "proto-common.c"
/* Full commands. */
#define CMD_LIST "LIST"
#define CMD_LUSERS "LUSERS"
#define CMD_MAP "MAP"
+#define CMD_MARK "MARK"
#define CMD_MODE "MODE"
#define CMD_MOTD "MOTD"
#define CMD_NAMES "NAMES"
#define TOK_EOB "EB"
#define TOK_EOB_ACK "EA"
#define TOK_ERROR "Y"
+#define TOK_EXEMPT "EX"
#define TOK_FAKEHOST "FA"
#define TOK_GET "GET"
#define TOK_GLINE "GL"
#define TOK_LIST "LIST"
#define TOK_LUSERS "LU"
#define TOK_MAP "MAP"
+#define TOK_MARK "MK"
#define TOK_MODE "M"
#define TOK_MOTD "MO"
#define TOK_NAMES "E"
#define P10_LIST TYPE(LIST)
#define P10_LUSERS TYPE(LUSERS)
#define P10_MAP TYPE(MAP)
+#define P10_MARK TYPE(MARK)
#define P10_MODE TYPE(MODE)
#define P10_MOTD TYPE(MOTD)
#define P10_NAMES TYPE(NAMES)
#define P10_WHO TYPE(WHO)
#define P10_WHOIS TYPE(WHOIS)
#define P10_WHOWAS TYPE(WHOWAS)
+#define P10_EXEMPT TYPE(EXEMPT)
/* Servers claiming to have a boot or link time before PREHISTORY
* trigger errors to the log. We hope no server has been running
if (ctype == 1) {
if (bcheck == 0) {
/* strip % char off start of very first ban */
- strncat(banlist, strtok(parm, "%"), sizeof(banlist) - 1 - strlen(banlist));
- strncat(banlist, " ", sizeof(banlist) - 1 - strlen(banlist));
+ if (strlen(parm) > 1) {
+ strncat(banlist, strtok(parm, "%"), sizeof(banlist) - 1 - strlen(banlist));
+ strncat(banlist, " ", sizeof(banlist) - 1 - strlen(banlist));
+ }
bcheck = 1;
} else {
strncat(banlist, parm, sizeof(banlist) - 1 - strlen(banlist));
dict_insert(irc_func_dict, TOK_WALLOPS, cmd_dummy);
dict_insert(irc_func_dict, CMD_WALLHOPS, cmd_dummy);
dict_insert(irc_func_dict, TOK_WALLHOPS, cmd_dummy);
+ /* Ignore dnsbl exemptions */
+ dict_insert(irc_func_dict, TOK_EXEMPT, cmd_dummy);
+ dict_insert(irc_func_dict, TOK_MARK, cmd_dummy);
+ /* Ignore privs */
+ dict_insert(irc_func_dict, TOK_PRIVS, cmd_dummy);
/* We have reliable clock! Always! Wraaa! */
dict_insert(irc_func_dict, CMD_SETTIME, cmd_dummy);
dict_insert(irc_func_dict, TOK_SETTIME, cmd_dummy);
case 'e': remove |= MODE_EXEMPT; break;
case 'D': remove |= MODE_DELAYJOINS; break;
case 'r': remove |= MODE_REGONLY; break;
- case 'c': remove |= MODE_NOCOLORS;
+ case 'c': remove |= MODE_NOCOLORS; break;
case 'C': remove |= MODE_NOCTCPS; break;
case 'S': remove |= MODE_STRIPCOLOR; break;
case 'M': remove |= MODE_MODUNREG; break;