#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
+#include <string.h>
#include "config.h"
#include "ircd.h"
+#include "ircd_alloc.h"
#include "ircd_string.h"
#include "s_debug.h"
#include "y.tab.h"
TOKEN(CONNECT),
TOKEN(CONNECTFREQ),
TOKEN(MAXLINKS),
+ TOKEN(MAXHOPS),
TOKEN(SENDQ),
TOKEN(NAME),
TOKEN(HOST),
+ TOKEN(IP),
+ TOKEN(USERNAME),
TOKEN(PASS),
TOKEN(SECONDS),
TOKEN(MINUTES),
TOKEN(REASON),
TOKEN(RULE),
TOKEN(ALL),
- TOKEN(IP),
TOKEN(CRULE),
TOKEN(KILL),
TOKEN(QUARANTINE),
TOKEN(PSEUDO),
TOKEN(PREPEND),
TOKEN(USERMODE),
+ TOKEN(FAST),
+ TOKEN(AUTOCONNECT),
+ TOKEN(PROGRAM),
+ TOKEN(DNS),
#undef TOKEN
{ "administrator", ADMIN },
+ { "apass_opmode", TPRIV_APASS_OPMODE },
+ { "auto", AUTOCONNECT },
{ "b", BYTES },
{ "badchan", TPRIV_BADCHAN },
{ "chan_limit", TPRIV_CHAN_LIMIT },
{ "file", TFILE },
{ "force_local_opmode", TPRIV_FORCE_LOCAL_OPMODE },
{ "force_opmode", TPRIV_FORCE_OPMODE },
+ { "gb", GBYTES },
+ { "gigabytes", GBYTES },
{ "gline", TPRIV_GLINE },
+ { "ipv4", TOK_IPV4 },
+ { "ipv6", TOK_IPV6 },
{ "kb", KBYTES },
{ "kilobytes", KBYTES },
+ { "list_chan", TPRIV_LIST_CHAN },
{ "local_badchan", TPRIV_LOCAL_BADCHAN },
{ "local_gline", TPRIV_LOCAL_GLINE },
{ "local_jupe", TPRIV_LOCAL_JUPE },
{ "local_kill", TPRIV_LOCAL_KILL },
+ { "local_opmode", TPRIV_LOCAL_OPMODE },
{ "mb", MBYTES },
{ "megabytes", MBYTES },
{ "mode_lchan", TPRIV_MODE_LCHAN },
- { "gb", GBYTES },
- { "gigabytes", GBYTES },
{ "operator", OPER },
{ "opmode", TPRIV_OPMODE },
{ "password", PASS },
QSTRING \"[^"\n]+[\"\n]
%%
-{QSTRING} {yytext[yyleng-1] = 0; yylval.text = yytext+1; return QSTRING;}
+{QSTRING} {yytext[yyleng-1] = 0; DupString(yylval.text, yytext+1); return QSTRING;}
{NUMBER} {yylval.num = strtoul(yytext, NULL, 10); return NUMBER;}
{WHITE} ;
{SHCOMMENT} ;
-[a-zA-Z_]+ { int res = find_token(yytext); if (res) return res; else REJECT; }
+[a-zA-Z_][a-zA-Z_0-9]* { int res = find_token(yytext); if (res) return res; else REJECT; }
\n lineno++;
. return yytext[0];