#include "stdinc.h"
#include "client.h"
-#include "event.h"
-#include "irc_string.h"
-#include "sprintf_irc.h"
+#include "match.h"
#include "ircd.h"
#include "numeric.h"
-#include "commio.h"
#include "s_serv.h"
#include "send.h"
#include "common.h"
struct SetStruct
{
const char *name;
- void (*handler) ();
+ void (*handler)(struct Client *source_p, const char *chararg, int intarg);
int wants_char; /* 1 if it expects (char *, [int]) */
int wants_int; /* 1 if it expects ([char *], int) */
};
-static void quote_adminstring(struct Client *, const char *);
-static void quote_autoconn(struct Client *, char *, int);
-static void quote_autoconnall(struct Client *, int);
-static void quote_floodcount(struct Client *, int);
-static void quote_identtimeout(struct Client *, int);
-static void quote_max(struct Client *, int);
-static void quote_operstring(struct Client *, const char *);
-static void quote_spamnum(struct Client *, int);
-static void quote_spamtime(struct Client *, int);
-static void quote_splitmode(struct Client *, char *);
-static void quote_splitnum(struct Client *, int);
-static void quote_splitusers(struct Client *, int);
+static void quote_adminstring(struct Client *, const char *, int);
+static void quote_autoconn(struct Client *, const char *, int);
+static void quote_autoconnall(struct Client *, const char *, int);
+static void quote_floodcount(struct Client *, const char *, int);
+static void quote_identtimeout(struct Client *, const char *, int);
+static void quote_max(struct Client *, const char *, int);
+static void quote_operstring(struct Client *, const char *, int);
+static void quote_spamnum(struct Client *, const char *, int);
+static void quote_spamtime(struct Client *, const char *, int);
+static void quote_splitmode(struct Client *, const char *, int);
+static void quote_splitnum(struct Client *, const char *, int);
+static void quote_splitusers(struct Client *, const char *, int);
+
static void list_quote_commands(struct Client *);
{"SPLITNUM", quote_splitnum, 0, 1 },
{"SPLITUSERS", quote_splitusers, 0, 1 },
/* -------------------------------------------------------- */
- {(char *) 0, (void (*)()) 0, 0, 0}
+ {(char *) 0, (void (*)(struct Client *, const char *, int)) 0, 0, 0}
};
/* SET AUTOCONN */
static void
-quote_autoconn(struct Client *source_p, char *arg, int newval)
+quote_autoconn(struct Client *source_p, const char *arg, int newval)
{
set_server_conf_autoconn(source_p, arg, newval);
}
/* SET AUTOCONNALL */
static void
-quote_autoconnall(struct Client *source_p, int newval)
+quote_autoconnall(struct Client *source_p, const char *arg, int newval)
{
if(newval >= 0)
{
/* SET FLOODCOUNT */
static void
-quote_floodcount(struct Client *source_p, int newval)
+quote_floodcount(struct Client *source_p, const char *arg, int newval)
{
if(newval >= 0)
{
/* SET IDENTTIMEOUT */
static void
-quote_identtimeout(struct Client *source_p, int newval)
+quote_identtimeout(struct Client *source_p, const char *arg, int newval)
{
if(!IsOperAdmin(source_p))
{
/* SET MAX */
static void
-quote_max(struct Client *source_p, int newval)
+quote_max(struct Client *source_p, const char *arg, int newval)
{
if(newval > 0)
{
- if(newval > ServerInfo.max_clients)
+ if(newval > maxconnections - MAX_BUFFER)
{
sendto_one_notice(source_p,
- ":You cannot set MAXCLIENTS to > max_clients (%d)",
- ServerInfo.max_clients);
+ ":You cannot set MAXCLIENTS to > %d",
+ maxconnections - MAX_BUFFER);
return;
}
if(newval < 32)
{
- sendto_one_notice(source_p, ":You cannot set MAXCLIENTS to < 32 (%d)",
- GlobalSetOptions.maxclients);
+ sendto_one_notice(source_p, ":You cannot set MAXCLIENTS to < 32 (%d:%d)",
+ GlobalSetOptions.maxclients, rb_getmaxconnect());
return;
}
/* SET OPERSTRING */
static void
-quote_operstring(struct Client *source_p, const char *arg)
+quote_operstring(struct Client *source_p, const char *arg, int newval)
{
if(EmptyString(arg))
{
}
else
{
- strlcpy(GlobalSetOptions.operstring, arg,
+ rb_strlcpy(GlobalSetOptions.operstring, arg,
sizeof(GlobalSetOptions.operstring));
sendto_realops_snomask(SNO_GENERAL, L_ALL,
/* SET ADMINSTRING */
static void
-quote_adminstring(struct Client *source_p, const char *arg)
+quote_adminstring(struct Client *source_p, const char *arg, int newval)
{
if(EmptyString(arg))
{
}
else
{
- strlcpy(GlobalSetOptions.adminstring, arg,
+ rb_strlcpy(GlobalSetOptions.adminstring, arg,
sizeof(GlobalSetOptions.adminstring));
sendto_realops_snomask(SNO_GENERAL, L_ALL,
/* SET SPAMNUM */
static void
-quote_spamnum(struct Client *source_p, int newval)
+quote_spamnum(struct Client *source_p, const char *arg, int newval)
{
if(newval > 0)
{
/* SET SPAMTIME */
static void
-quote_spamtime(struct Client *source_p, int newval)
+quote_spamtime(struct Client *source_p, const char *arg, int newval)
{
if(newval > 0)
{
/* SET SPLITMODE */
static void
-quote_splitmode(struct Client *source_p, char *charval)
+quote_splitmode(struct Client *source_p, const char *charval, int intval)
{
if(charval)
{
splitmode = 0;
splitchecking = 0;
- rb_event_delete(check_splitmode, NULL);
+ rb_event_delete(check_splitmode_ev);
+ check_splitmode_ev = NULL;
}
/* ON */
else if(newval == 1)
splitchecking = 0;
/* we might be deactivating an automatic splitmode, so pull the event */
- rb_event_delete(check_splitmode, NULL);
+ rb_event_delete(check_splitmode_ev);
+ check_splitmode_ev = NULL;
}
/* AUTO */
else if(newval == 2)
/* SET SPLITNUM */
static void
-quote_splitnum(struct Client *source_p, int newval)
+quote_splitnum(struct Client *source_p, const char *arg, int newval)
{
if(newval >= 0)
{
/* SET SPLITUSERS */
static void
-quote_splitusers(struct Client *source_p, int newval)
+quote_splitusers(struct Client *source_p, const char *arg, int newval)
{
if(newval >= 0)
{
else
newval = -1;
- if(set_cmd_table[i].wants_char)
- {
- if(set_cmd_table[i].wants_int)
- set_cmd_table[i].handler(source_p, arg, newval);
- else
- set_cmd_table[i].handler(source_p, arg);
- return 0;
- }
- else
- {
- if(set_cmd_table[i].wants_int)
- set_cmd_table[i].handler(source_p, newval);
- else
- /* Just in case someone actually wants a
- * set function that takes no args.. *shrug* */
- set_cmd_table[i].handler(source_p);
- return 0;
- }
+ set_cmd_table[i].handler(source_p, arg, newval);
+ return 0;
}
}