ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/svn/ircd-hybrid/trunk/src/conf_parser.c
Revision: 8866
Committed: Sat Feb 16 09:57:48 2019 UTC (7 years, 7 months ago) by michael
Content type: text/x-csrc
File size: 216670 byte(s)
Log Message:
- Regenerate parser files

File Contents

# User Rev Content
1 michael 8866 /* A Bison parser, made by GNU Bison 3.3.2. */
2 michael 913
3 michael 1133 /* Bison implementation for Yacc-like parsers in C
4 michael 2473
5 michael 8866 Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2019 Free Software Foundation,
6     Inc.
7 michael 2473
8 michael 967 This program is free software: you can redistribute it and/or modify
9 michael 913 it under the terms of the GNU General Public License as published by
10 michael 967 the Free Software Foundation, either version 3 of the License, or
11     (at your option) any later version.
12 michael 2473
13 michael 913 This program is distributed in the hope that it will be useful,
14     but WITHOUT ANY WARRANTY; without even the implied warranty of
15     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16     GNU General Public License for more details.
17 michael 2473
18 michael 913 You should have received a copy of the GNU General Public License
19 michael 967 along with this program. If not, see <http://www.gnu.org/licenses/>. */
20 michael 913
21     /* As a special exception, you may create a larger work that contains
22     part or all of the Bison parser skeleton and distribute that work
23     under terms of your choice, so long as that work isn't itself a
24     parser generator using the skeleton or a modified version thereof
25     as a parser skeleton. Alternatively, if you modify or redistribute
26     the parser skeleton itself, you may (at your option) remove this
27     special exception, which will cause the skeleton and the resulting
28     Bison output files to be licensed under the GNU General Public
29     License without this special exception.
30 michael 2473
31 michael 913 This special exception was added by the Free Software Foundation in
32     version 2.2 of Bison. */
33    
34     /* C LALR(1) parser skeleton written by Richard Stallman, by
35     simplifying the original so-called "semantic" parser. */
36    
37     /* All symbols defined below should begin with yy or YY, to avoid
38     infringing on user name space. This should be done even for local
39     variables, as they might otherwise be expanded by user macros.
40     There are some unavoidable exceptions within include files to
41     define necessary library symbols; they are noted "INFRINGES ON
42     USER NAME SPACE" below. */
43    
44 michael 8760 /* Undocumented macros, especially those whose name start with YY_,
45     are private implementation details. Do not rely on them. */
46    
47 michael 913 /* Identify Bison output. */
48     #define YYBISON 1
49    
50     /* Bison version. */
51 michael 8866 #define YYBISON_VERSION "3.3.2"
52 michael 913
53     /* Skeleton name. */
54     #define YYSKELETON_NAME "yacc.c"
55    
56     /* Pure parsers. */
57     #define YYPURE 0
58    
59 michael 967 /* Push parsers. */
60     #define YYPUSH 0
61    
62     /* Pull parsers. */
63     #define YYPULL 1
64    
65 michael 913
66    
67    
68 michael 8760 /* First part of user prologue. */
69 michael 8866 #line 28 "conf_parser.y" /* yacc.c:337 */
70 michael 967
71    
72 michael 1009 #include "config.h"
73 michael 967 #include "stdinc.h"
74     #include "ircd.h"
75     #include "list.h"
76 michael 8459 #include "parse.h"
77 michael 1309 #include "conf.h"
78 michael 1632 #include "conf_class.h"
79 michael 7213 #include "conf_cluster.h"
80 michael 7308 #include "conf_gecos.h"
81 michael 4545 #include "conf_pseudo.h"
82 michael 7238 #include "conf_resv.h"
83 michael 7252 #include "conf_service.h"
84 michael 7213 #include "conf_shared.h"
85 michael 967 #include "event.h"
86 michael 6162 #include "id.h"
87 michael 1309 #include "log.h"
88 michael 967 #include "irc_string.h"
89     #include "memory.h"
90     #include "modules.h"
91 michael 3347 #include "server.h"
92 michael 967 #include "hostmask.h"
93     #include "listener.h"
94 michael 3347 #include "user.h"
95 michael 2150 #include "motd.h"
96 michael 967
97 michael 1329 int yylex(void);
98    
99 michael 1646 static struct
100 michael 967 {
101 michael 3473 struct
102     {
103 michael 1646 dlink_list list;
104     } mask,
105     leaf,
106     hub;
107 michael 967
108 michael 3473 struct
109     {
110 michael 1646 char buf[IRCD_BUFSIZE];
111     } name,
112 michael 4545 nick,
113 michael 1646 user,
114     host,
115     addr,
116 michael 1647 bind,
117 michael 1646 file,
118 michael 1647 ciph,
119 michael 2228 cert,
120 michael 1647 rpass,
121     spass,
122 michael 5557 whois,
123 michael 4545 class,
124     target,
125     prepend,
126     command;
127 michael 1646
128 michael 3473 struct
129     {
130 michael 1646 unsigned int value;
131     } flags,
132     modes,
133 michael 1647 size,
134     type,
135 michael 1646 port,
136 michael 1647 aftype,
137 michael 1646 ping_freq,
138 michael 8497 max_perip_local,
139     max_perip_global,
140 michael 1646 con_freq,
141 michael 1783 min_idle,
142     max_idle,
143 michael 1646 max_total,
144     max_sendq,
145     max_recvq,
146 michael 3933 max_channels,
147 michael 1646 cidr_bitlen_ipv4,
148     cidr_bitlen_ipv6,
149     number_per_cidr;
150     } block_state;
151    
152 michael 967 static void
153 michael 1646 reset_block_state(void)
154 michael 967 {
155 michael 4915 dlink_node *node = NULL, *node_next = NULL;
156 michael 1646
157 michael 4915 DLINK_FOREACH_SAFE(node, node_next, block_state.mask.list.head)
158 michael 1646 {
159 michael 7032 xfree(node->data);
160 michael 4915 dlinkDelete(node, &block_state.mask.list);
161     free_dlink_node(node);
162 michael 1646 }
163    
164 michael 4915 DLINK_FOREACH_SAFE(node, node_next, block_state.leaf.list.head)
165 michael 1646 {
166 michael 7032 xfree(node->data);
167 michael 4915 dlinkDelete(node, &block_state.leaf.list);
168     free_dlink_node(node);
169 michael 1646 }
170    
171 michael 4915 DLINK_FOREACH_SAFE(node, node_next, block_state.hub.list.head)
172 michael 1646 {
173 michael 7032 xfree(node->data);
174 michael 4915 dlinkDelete(node, &block_state.hub.list);
175     free_dlink_node(node);
176 michael 1646 }
177    
178     memset(&block_state, 0, sizeof(block_state));
179 michael 967 }
180    
181    
182 michael 8866 #line 183 "conf_parser.c" /* yacc.c:337 */
183 michael 2570 # ifndef YY_NULLPTR
184 michael 8760 # if defined __cplusplus
185     # if 201103L <= __cplusplus
186     # define YY_NULLPTR nullptr
187     # else
188     # define YY_NULLPTR 0
189     # endif
190 michael 1425 # else
191 michael 8760 # define YY_NULLPTR ((void*)0)
192 michael 1425 # endif
193     # endif
194    
195 michael 967 /* Enabling verbose error messages. */
196     #ifdef YYERROR_VERBOSE
197     # undef YYERROR_VERBOSE
198     # define YYERROR_VERBOSE 1
199     #else
200     # define YYERROR_VERBOSE 0
201     #endif
202    
203 michael 1466 /* In a future release of Bison, this section will be replaced
204     by #include "y.tab.h". */
205 michael 1736 #ifndef YY_YY_CONF_PARSER_H_INCLUDED
206     # define YY_YY_CONF_PARSER_H_INCLUDED
207 michael 2473 /* Debug traces. */
208 michael 1466 #ifndef YYDEBUG
209     # define YYDEBUG 0
210 michael 967 #endif
211 michael 1466 #if YYDEBUG
212     extern int yydebug;
213     #endif
214 michael 967
215 michael 2473 /* Token type. */
216 michael 913 #ifndef YYTOKENTYPE
217     # define YYTOKENTYPE
218 michael 2473 enum yytokentype
219     {
220     ACCEPT_PASSWORD = 258,
221     ADMIN = 259,
222     AFTYPE = 260,
223     ANTI_NICK_FLOOD = 261,
224     ANTI_SPAM_EXIT_MESSAGE_TIME = 262,
225     AUTOCONN = 263,
226 michael 4313 AWAY_COUNT = 264,
227     AWAY_TIME = 265,
228     BYTES = 266,
229     KBYTES = 267,
230     MBYTES = 268,
231     CALLER_ID_WAIT = 269,
232     CAN_FLOOD = 270,
233     CHANNEL = 271,
234 michael 8318 CIDR_BITLEN_IPV4 = 272,
235     CIDR_BITLEN_IPV6 = 273,
236     CLASS = 274,
237     CLOSE = 275,
238     CONNECT = 276,
239     CONNECTFREQ = 277,
240     CYCLE_ON_HOST_CHANGE = 278,
241     DEFAULT_FLOODCOUNT = 279,
242     DEFAULT_FLOODTIME = 280,
243     DEFAULT_JOIN_FLOOD_COUNT = 281,
244     DEFAULT_JOIN_FLOOD_TIME = 282,
245     DEFAULT_MAX_CLIENTS = 283,
246     DENY = 284,
247     DESCRIPTION = 285,
248     DIE = 286,
249     DISABLE_AUTH = 287,
250     DISABLE_FAKE_CHANNELS = 288,
251     DISABLE_REMOTE_COMMANDS = 289,
252     DLINE_MIN_CIDR = 290,
253     DLINE_MIN_CIDR6 = 291,
254     DOTS_IN_IDENT = 292,
255     EMAIL = 293,
256     ENCRYPTED = 294,
257     EXCEED_LIMIT = 295,
258     EXEMPT = 296,
259     FAILED_OPER_NOTICE = 297,
260     FLATTEN_LINKS = 298,
261     FLATTEN_LINKS_DELAY = 299,
262     FLATTEN_LINKS_FILE = 300,
263     GECOS = 301,
264     GENERAL = 302,
265     HIDDEN = 303,
266     HIDDEN_NAME = 304,
267     HIDE_CHANS = 305,
268     HIDE_IDLE = 306,
269     HIDE_IDLE_FROM_OPERS = 307,
270     HIDE_SERVER_IPS = 308,
271     HIDE_SERVERS = 309,
272     HIDE_SERVICES = 310,
273     HOST = 311,
274     HUB = 312,
275     HUB_MASK = 313,
276 michael 8789 INVISIBLE_ON_CONNECT = 314,
277     INVITE_CLIENT_COUNT = 315,
278     INVITE_CLIENT_TIME = 316,
279     INVITE_DELAY_CHANNEL = 317,
280     INVITE_EXPIRE_TIME = 318,
281     IP = 319,
282     IRCD_AUTH = 320,
283     IRCD_FLAGS = 321,
284     IRCD_SID = 322,
285     JOIN = 323,
286     KILL = 324,
287     KILL_CHASE_TIME_LIMIT = 325,
288     KLINE = 326,
289     KLINE_EXEMPT = 327,
290     KLINE_MIN_CIDR = 328,
291     KLINE_MIN_CIDR6 = 329,
292     KNOCK_CLIENT_COUNT = 330,
293     KNOCK_CLIENT_TIME = 331,
294     KNOCK_DELAY_CHANNEL = 332,
295     LEAF_MASK = 333,
296     LISTEN = 334,
297     MASK = 335,
298     MAX_ACCEPT = 336,
299     MAX_BANS = 337,
300     MAX_BANS_LARGE = 338,
301     MAX_CHANNELS = 339,
302     MAX_IDLE = 340,
303     MAX_INVITES = 341,
304     MAX_NICK_CHANGES = 342,
305     MAX_NICK_LENGTH = 343,
306     MAX_NICK_TIME = 344,
307     MAX_NUMBER = 345,
308     MAX_TARGETS = 346,
309     MAX_TOPIC_LENGTH = 347,
310     MAX_WATCH = 348,
311     MIN_IDLE = 349,
312     MIN_NONWILDCARD = 350,
313     MIN_NONWILDCARD_SIMPLE = 351,
314     MODULE = 352,
315     MODULES = 353,
316     MOTD = 354,
317     NAME = 355,
318     NEED_IDENT = 356,
319     NEED_PASSWORD = 357,
320     NETWORK_DESC = 358,
321     NETWORK_NAME = 359,
322     NICK = 360,
323     NO_OPER_FLOOD = 361,
324     NO_TILDE = 362,
325     NUMBER = 363,
326     NUMBER_PER_CIDR = 364,
327     NUMBER_PER_IP_GLOBAL = 365,
328     NUMBER_PER_IP_LOCAL = 366,
329     OPER_ONLY_UMODES = 367,
330     OPER_UMODES = 368,
331     OPERATOR = 369,
332     OPERS_BYPASS_CALLERID = 370,
333     PACE_WAIT = 371,
334     PACE_WAIT_SIMPLE = 372,
335     PASSWORD = 373,
336     PATH = 374,
337     PING_COOKIE = 375,
338     PING_TIME = 376,
339     PORT = 377,
340     QSTRING = 378,
341     RANDOM_IDLE = 379,
342     REASON = 380,
343     REDIRPORT = 381,
344     REDIRSERV = 382,
345     REHASH = 383,
346     REMOTE = 384,
347     REMOTEBAN = 385,
348     RESV = 386,
349     RESV_EXEMPT = 387,
350     RSA_PRIVATE_KEY_FILE = 388,
351     SECONDS = 389,
352     MINUTES = 390,
353     HOURS = 391,
354     DAYS = 392,
355     WEEKS = 393,
356     MONTHS = 394,
357     YEARS = 395,
358     SEND_PASSWORD = 396,
359     SENDQ = 397,
360     SERVERHIDE = 398,
361     SERVERINFO = 399,
362     SHORT_MOTD = 400,
363     SPOOF = 401,
364     SPOOF_NOTICE = 402,
365     SQUIT = 403,
366     SSL_CERTIFICATE_FILE = 404,
367     SSL_CERTIFICATE_FINGERPRINT = 405,
368     SSL_CONNECTION_REQUIRED = 406,
369     SSL_DH_ELLIPTIC_CURVE = 407,
370     SSL_DH_PARAM_FILE = 408,
371     SSL_MESSAGE_DIGEST_ALGORITHM = 409,
372     STATS_E_DISABLED = 410,
373     STATS_I_OPER_ONLY = 411,
374     STATS_K_OPER_ONLY = 412,
375     STATS_M_OPER_ONLY = 413,
376     STATS_O_OPER_ONLY = 414,
377     STATS_P_OPER_ONLY = 415,
378     STATS_U_OPER_ONLY = 416,
379     T_ALL = 417,
380 michael 8866 T_BIND = 418,
381     T_BOTS = 419,
382     T_CALLERID = 420,
383     T_CCONN = 421,
384     T_COMMAND = 422,
385     T_CLUSTER = 423,
386     T_DEAF = 424,
387     T_DEBUG = 425,
388     T_DLINE = 426,
389     T_EXTERNAL = 427,
390     T_FARCONNECT = 428,
391     T_FILE = 429,
392     T_FULL = 430,
393     T_GLOBOPS = 431,
394     T_INVISIBLE = 432,
395     T_IPV4 = 433,
396     T_IPV6 = 434,
397     T_LOCOPS = 435,
398     T_LOG = 436,
399     T_NCHANGE = 437,
400     T_NONONREG = 438,
401     T_OPME = 439,
402     T_PREPEND = 440,
403     T_PSEUDO = 441,
404     T_RECVQ = 442,
405     T_REJ = 443,
406     T_RESTART = 444,
407     T_SERVER = 445,
408     T_SERVICE = 446,
409     T_SERVNOTICE = 447,
410     T_SET = 448,
411     T_SHARED = 449,
412     T_SIZE = 450,
413     T_SKILL = 451,
414     T_SOFTCALLERID = 452,
415     T_SPY = 453,
416     T_SSL = 454,
417     T_SSL_CIPHER_LIST = 455,
418     T_TARGET = 456,
419     T_UMODES = 457,
420     T_UNAUTH = 458,
421     T_UNDLINE = 459,
422     T_UNLIMITED = 460,
423     T_UNRESV = 461,
424     T_UNXLINE = 462,
425     T_WALLOP = 463,
426     T_WALLOPS = 464,
427     T_WEBIRC = 465,
428     TBOOL = 466,
429     THROTTLE_COUNT = 467,
430     THROTTLE_TIME = 468,
431     TKLINE_EXPIRE_NOTICES = 469,
432     TMASKED = 470,
433     TS_MAX_DELTA = 471,
434     TS_WARN_DELTA = 472,
435     TWODOTS = 473,
436     TYPE = 474,
437     UNKLINE = 475,
438     USE_LOGGING = 476,
439     USER = 477,
440     VHOST = 478,
441     VHOST6 = 479,
442     WARN_NO_CONNECT_BLOCK = 480,
443     WHOIS = 481,
444     WHOWAS_HISTORY_LENGTH = 482,
445     XLINE = 483,
446     XLINE_EXEMPT = 484
447 michael 2473 };
448 michael 913 #endif
449     /* Tokens. */
450     #define ACCEPT_PASSWORD 258
451 michael 1520 #define ADMIN 259
452     #define AFTYPE 260
453     #define ANTI_NICK_FLOOD 261
454     #define ANTI_SPAM_EXIT_MESSAGE_TIME 262
455     #define AUTOCONN 263
456 michael 4313 #define AWAY_COUNT 264
457     #define AWAY_TIME 265
458     #define BYTES 266
459     #define KBYTES 267
460     #define MBYTES 268
461     #define CALLER_ID_WAIT 269
462     #define CAN_FLOOD 270
463     #define CHANNEL 271
464 michael 8318 #define CIDR_BITLEN_IPV4 272
465     #define CIDR_BITLEN_IPV6 273
466     #define CLASS 274
467     #define CLOSE 275
468     #define CONNECT 276
469     #define CONNECTFREQ 277
470     #define CYCLE_ON_HOST_CHANGE 278
471     #define DEFAULT_FLOODCOUNT 279
472     #define DEFAULT_FLOODTIME 280
473     #define DEFAULT_JOIN_FLOOD_COUNT 281
474     #define DEFAULT_JOIN_FLOOD_TIME 282
475     #define DEFAULT_MAX_CLIENTS 283
476     #define DENY 284
477     #define DESCRIPTION 285
478     #define DIE 286
479     #define DISABLE_AUTH 287
480     #define DISABLE_FAKE_CHANNELS 288
481     #define DISABLE_REMOTE_COMMANDS 289
482     #define DLINE_MIN_CIDR 290
483     #define DLINE_MIN_CIDR6 291
484     #define DOTS_IN_IDENT 292
485     #define EMAIL 293
486     #define ENCRYPTED 294
487     #define EXCEED_LIMIT 295
488     #define EXEMPT 296
489     #define FAILED_OPER_NOTICE 297
490     #define FLATTEN_LINKS 298
491     #define FLATTEN_LINKS_DELAY 299
492     #define FLATTEN_LINKS_FILE 300
493     #define GECOS 301
494     #define GENERAL 302
495     #define HIDDEN 303
496     #define HIDDEN_NAME 304
497     #define HIDE_CHANS 305
498     #define HIDE_IDLE 306
499     #define HIDE_IDLE_FROM_OPERS 307
500     #define HIDE_SERVER_IPS 308
501     #define HIDE_SERVERS 309
502     #define HIDE_SERVICES 310
503     #define HOST 311
504     #define HUB 312
505     #define HUB_MASK 313
506 michael 8789 #define INVISIBLE_ON_CONNECT 314
507     #define INVITE_CLIENT_COUNT 315
508     #define INVITE_CLIENT_TIME 316
509     #define INVITE_DELAY_CHANNEL 317
510     #define INVITE_EXPIRE_TIME 318
511     #define IP 319
512     #define IRCD_AUTH 320
513     #define IRCD_FLAGS 321
514     #define IRCD_SID 322
515     #define JOIN 323
516     #define KILL 324
517     #define KILL_CHASE_TIME_LIMIT 325
518     #define KLINE 326
519     #define KLINE_EXEMPT 327
520     #define KLINE_MIN_CIDR 328
521     #define KLINE_MIN_CIDR6 329
522     #define KNOCK_CLIENT_COUNT 330
523     #define KNOCK_CLIENT_TIME 331
524     #define KNOCK_DELAY_CHANNEL 332
525     #define LEAF_MASK 333
526     #define LISTEN 334
527     #define MASK 335
528     #define MAX_ACCEPT 336
529     #define MAX_BANS 337
530     #define MAX_BANS_LARGE 338
531     #define MAX_CHANNELS 339
532     #define MAX_IDLE 340
533     #define MAX_INVITES 341
534     #define MAX_NICK_CHANGES 342
535     #define MAX_NICK_LENGTH 343
536     #define MAX_NICK_TIME 344
537     #define MAX_NUMBER 345
538     #define MAX_TARGETS 346
539     #define MAX_TOPIC_LENGTH 347
540     #define MAX_WATCH 348
541     #define MIN_IDLE 349
542     #define MIN_NONWILDCARD 350
543     #define MIN_NONWILDCARD_SIMPLE 351
544     #define MODULE 352
545     #define MODULES 353
546     #define MOTD 354
547     #define NAME 355
548     #define NEED_IDENT 356
549     #define NEED_PASSWORD 357
550     #define NETWORK_DESC 358
551     #define NETWORK_NAME 359
552     #define NICK 360
553     #define NO_OPER_FLOOD 361
554     #define NO_TILDE 362
555     #define NUMBER 363
556     #define NUMBER_PER_CIDR 364
557     #define NUMBER_PER_IP_GLOBAL 365
558     #define NUMBER_PER_IP_LOCAL 366
559     #define OPER_ONLY_UMODES 367
560     #define OPER_UMODES 368
561     #define OPERATOR 369
562     #define OPERS_BYPASS_CALLERID 370
563     #define PACE_WAIT 371
564     #define PACE_WAIT_SIMPLE 372
565     #define PASSWORD 373
566     #define PATH 374
567     #define PING_COOKIE 375
568     #define PING_TIME 376
569     #define PORT 377
570     #define QSTRING 378
571     #define RANDOM_IDLE 379
572     #define REASON 380
573     #define REDIRPORT 381
574     #define REDIRSERV 382
575     #define REHASH 383
576     #define REMOTE 384
577     #define REMOTEBAN 385
578     #define RESV 386
579     #define RESV_EXEMPT 387
580     #define RSA_PRIVATE_KEY_FILE 388
581     #define SECONDS 389
582     #define MINUTES 390
583     #define HOURS 391
584     #define DAYS 392
585     #define WEEKS 393
586     #define MONTHS 394
587     #define YEARS 395
588     #define SEND_PASSWORD 396
589     #define SENDQ 397
590     #define SERVERHIDE 398
591     #define SERVERINFO 399
592     #define SHORT_MOTD 400
593     #define SPOOF 401
594     #define SPOOF_NOTICE 402
595     #define SQUIT 403
596     #define SSL_CERTIFICATE_FILE 404
597     #define SSL_CERTIFICATE_FINGERPRINT 405
598     #define SSL_CONNECTION_REQUIRED 406
599     #define SSL_DH_ELLIPTIC_CURVE 407
600     #define SSL_DH_PARAM_FILE 408
601     #define SSL_MESSAGE_DIGEST_ALGORITHM 409
602     #define STATS_E_DISABLED 410
603     #define STATS_I_OPER_ONLY 411
604     #define STATS_K_OPER_ONLY 412
605     #define STATS_M_OPER_ONLY 413
606     #define STATS_O_OPER_ONLY 414
607     #define STATS_P_OPER_ONLY 415
608     #define STATS_U_OPER_ONLY 416
609     #define T_ALL 417
610 michael 8866 #define T_BIND 418
611     #define T_BOTS 419
612     #define T_CALLERID 420
613     #define T_CCONN 421
614     #define T_COMMAND 422
615     #define T_CLUSTER 423
616     #define T_DEAF 424
617     #define T_DEBUG 425
618     #define T_DLINE 426
619     #define T_EXTERNAL 427
620     #define T_FARCONNECT 428
621     #define T_FILE 429
622     #define T_FULL 430
623     #define T_GLOBOPS 431
624     #define T_INVISIBLE 432
625     #define T_IPV4 433
626     #define T_IPV6 434
627     #define T_LOCOPS 435
628     #define T_LOG 436
629     #define T_NCHANGE 437
630     #define T_NONONREG 438
631     #define T_OPME 439
632     #define T_PREPEND 440
633     #define T_PSEUDO 441
634     #define T_RECVQ 442
635     #define T_REJ 443
636     #define T_RESTART 444
637     #define T_SERVER 445
638     #define T_SERVICE 446
639     #define T_SERVNOTICE 447
640     #define T_SET 448
641     #define T_SHARED 449
642     #define T_SIZE 450
643     #define T_SKILL 451
644     #define T_SOFTCALLERID 452
645     #define T_SPY 453
646     #define T_SSL 454
647     #define T_SSL_CIPHER_LIST 455
648     #define T_TARGET 456
649     #define T_UMODES 457
650     #define T_UNAUTH 458
651     #define T_UNDLINE 459
652     #define T_UNLIMITED 460
653     #define T_UNRESV 461
654     #define T_UNXLINE 462
655     #define T_WALLOP 463
656     #define T_WALLOPS 464
657     #define T_WEBIRC 465
658     #define TBOOL 466
659     #define THROTTLE_COUNT 467
660     #define THROTTLE_TIME 468
661     #define TKLINE_EXPIRE_NOTICES 469
662     #define TMASKED 470
663     #define TS_MAX_DELTA 471
664     #define TS_WARN_DELTA 472
665     #define TWODOTS 473
666     #define TYPE 474
667     #define UNKLINE 475
668     #define USE_LOGGING 476
669     #define USER 477
670     #define VHOST 478
671     #define VHOST6 479
672     #define WARN_NO_CONNECT_BLOCK 480
673     #define WHOIS 481
674     #define WHOWAS_HISTORY_LENGTH 482
675     #define XLINE 483
676     #define XLINE_EXEMPT 484
677 michael 913
678 michael 2473 /* Value type. */
679 michael 967 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
680 michael 5398
681 michael 2473 union YYSTYPE
682 michael 913 {
683 michael 8866 #line 141 "conf_parser.y" /* yacc.c:352 */
684 michael 913
685 michael 967 int number;
686     char *string;
687 michael 913
688 michael 8866 #line 689 "conf_parser.c" /* yacc.c:352 */
689 michael 2473 };
690 michael 5398
691     typedef union YYSTYPE YYSTYPE;
692 michael 967 # define YYSTYPE_IS_TRIVIAL 1
693 michael 913 # define YYSTYPE_IS_DECLARED 1
694     #endif
695    
696 michael 2473
697 michael 1466 extern YYSTYPE yylval;
698 michael 913
699 michael 1466 int yyparse (void);
700    
701 michael 1736 #endif /* !YY_YY_CONF_PARSER_H_INCLUDED */
702 michael 1466
703 michael 913
704    
705     #ifdef short
706     # undef short
707     #endif
708    
709     #ifdef YYTYPE_UINT8
710     typedef YYTYPE_UINT8 yytype_uint8;
711     #else
712     typedef unsigned char yytype_uint8;
713     #endif
714    
715     #ifdef YYTYPE_INT8
716     typedef YYTYPE_INT8 yytype_int8;
717 michael 2473 #else
718 michael 913 typedef signed char yytype_int8;
719     #endif
720    
721     #ifdef YYTYPE_UINT16
722     typedef YYTYPE_UINT16 yytype_uint16;
723     #else
724 michael 8760 typedef unsigned short yytype_uint16;
725 michael 913 #endif
726    
727     #ifdef YYTYPE_INT16
728     typedef YYTYPE_INT16 yytype_int16;
729     #else
730 michael 8760 typedef short yytype_int16;
731 michael 913 #endif
732    
733     #ifndef YYSIZE_T
734     # ifdef __SIZE_TYPE__
735     # define YYSIZE_T __SIZE_TYPE__
736     # elif defined size_t
737     # define YYSIZE_T size_t
738 michael 2473 # elif ! defined YYSIZE_T
739 michael 913 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
740     # define YYSIZE_T size_t
741     # else
742 michael 8760 # define YYSIZE_T unsigned
743 michael 913 # endif
744     #endif
745    
746     #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
747    
748     #ifndef YY_
749 michael 1089 # if defined YYENABLE_NLS && YYENABLE_NLS
750 michael 913 # if ENABLE_NLS
751     # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
752 michael 1619 # define YY_(Msgid) dgettext ("bison-runtime", Msgid)
753 michael 913 # endif
754     # endif
755     # ifndef YY_
756 michael 1619 # define YY_(Msgid) Msgid
757 michael 913 # endif
758     #endif
759    
760 michael 2570 #ifndef YY_ATTRIBUTE
761     # if (defined __GNUC__ \
762     && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \
763     || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
764     # define YY_ATTRIBUTE(Spec) __attribute__(Spec)
765     # else
766     # define YY_ATTRIBUTE(Spec) /* empty */
767 michael 1835 # endif
768     #endif
769    
770 michael 2570 #ifndef YY_ATTRIBUTE_PURE
771     # define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__))
772     #endif
773    
774     #ifndef YY_ATTRIBUTE_UNUSED
775     # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
776     #endif
777    
778 michael 913 /* Suppress unused-variable warnings by "using" E. */
779     #if ! defined lint || defined __GNUC__
780 michael 1619 # define YYUSE(E) ((void) (E))
781 michael 913 #else
782 michael 1619 # define YYUSE(E) /* empty */
783 michael 913 #endif
784    
785 michael 8760 #if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
786 michael 2473 /* Suppress an incorrect diagnostic about yylval being uninitialized. */
787     # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
788     _Pragma ("GCC diagnostic push") \
789     _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
790     _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
791     # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
792     _Pragma ("GCC diagnostic pop")
793 michael 913 #else
794 michael 2473 # define YY_INITIAL_VALUE(Value) Value
795 michael 913 #endif
796 michael 2473 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
797     # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
798     # define YY_IGNORE_MAYBE_UNINITIALIZED_END
799 michael 913 #endif
800 michael 2473 #ifndef YY_INITIAL_VALUE
801     # define YY_INITIAL_VALUE(Value) /* Nothing. */
802     #endif
803 michael 913
804 michael 2473
805 michael 913 #if ! defined yyoverflow || YYERROR_VERBOSE
806    
807     /* The parser invokes alloca or malloc; define the necessary symbols. */
808    
809     # ifdef YYSTACK_USE_ALLOCA
810     # if YYSTACK_USE_ALLOCA
811     # ifdef __GNUC__
812     # define YYSTACK_ALLOC __builtin_alloca
813     # elif defined __BUILTIN_VA_ARG_INCR
814     # include <alloca.h> /* INFRINGES ON USER NAME SPACE */
815     # elif defined _AIX
816     # define YYSTACK_ALLOC __alloca
817     # elif defined _MSC_VER
818     # include <malloc.h> /* INFRINGES ON USER NAME SPACE */
819     # define alloca _alloca
820     # else
821     # define YYSTACK_ALLOC alloca
822 michael 2473 # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
823 michael 913 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
824 michael 1425 /* Use EXIT_SUCCESS as a witness for stdlib.h. */
825 michael 1133 # ifndef EXIT_SUCCESS
826     # define EXIT_SUCCESS 0
827 michael 913 # endif
828     # endif
829     # endif
830     # endif
831     # endif
832    
833     # ifdef YYSTACK_ALLOC
834 michael 2473 /* Pacify GCC's 'empty if-body' warning. */
835     # define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
836 michael 913 # ifndef YYSTACK_ALLOC_MAXIMUM
837     /* The OS might guarantee only one guard page at the bottom of the stack,
838     and a page size can be as small as 4096 bytes. So we cannot safely
839     invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
840     to allow for a few compiler-allocated temporary stack slots. */
841     # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
842     # endif
843     # else
844     # define YYSTACK_ALLOC YYMALLOC
845     # define YYSTACK_FREE YYFREE
846     # ifndef YYSTACK_ALLOC_MAXIMUM
847     # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
848     # endif
849 michael 1133 # if (defined __cplusplus && ! defined EXIT_SUCCESS \
850 michael 913 && ! ((defined YYMALLOC || defined malloc) \
851 michael 2473 && (defined YYFREE || defined free)))
852 michael 913 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
853 michael 1133 # ifndef EXIT_SUCCESS
854     # define EXIT_SUCCESS 0
855 michael 913 # endif
856     # endif
857     # ifndef YYMALLOC
858     # define YYMALLOC malloc
859 michael 2473 # if ! defined malloc && ! defined EXIT_SUCCESS
860 michael 913 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
861     # endif
862     # endif
863     # ifndef YYFREE
864     # define YYFREE free
865 michael 2473 # if ! defined free && ! defined EXIT_SUCCESS
866 michael 913 void free (void *); /* INFRINGES ON USER NAME SPACE */
867     # endif
868     # endif
869     # endif
870     #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
871    
872    
873     #if (! defined yyoverflow \
874     && (! defined __cplusplus \
875 michael 2473 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
876 michael 913
877     /* A type that is properly aligned for any stack member. */
878     union yyalloc
879     {
880 michael 967 yytype_int16 yyss_alloc;
881     YYSTYPE yyvs_alloc;
882     };
883 michael 913
884     /* The size of the maximum gap between one aligned stack and the next. */
885     # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
886    
887     /* The size of an array large to enough to hold all stacks, each with
888     N elements. */
889     # define YYSTACK_BYTES(N) \
890     ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
891     + YYSTACK_GAP_MAXIMUM)
892    
893 michael 1133 # define YYCOPY_NEEDED 1
894 michael 913
895     /* Relocate STACK from its old location to the new one. The
896     local variables YYSIZE and YYSTACKSIZE give the old and new number of
897     elements in the stack, and YYPTR gives the new location of the
898     stack. Advance YYPTR to a properly aligned location for the next
899     stack. */
900 michael 2473 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \
901     do \
902     { \
903     YYSIZE_T yynewbytes; \
904     YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
905     Stack = &yyptr->Stack_alloc; \
906     yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
907     yyptr += yynewbytes / sizeof (*yyptr); \
908     } \
909     while (0)
910 michael 913
911     #endif
912    
913 michael 1133 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
914 michael 1425 /* Copy COUNT objects from SRC to DST. The source and destination do
915 michael 1133 not overlap. */
916     # ifndef YYCOPY
917     # if defined __GNUC__ && 1 < __GNUC__
918 michael 1425 # define YYCOPY(Dst, Src, Count) \
919     __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
920 michael 1133 # else
921 michael 1425 # define YYCOPY(Dst, Src, Count) \
922     do \
923     { \
924     YYSIZE_T yyi; \
925     for (yyi = 0; yyi < (Count); yyi++) \
926     (Dst)[yyi] = (Src)[yyi]; \
927     } \
928 michael 2473 while (0)
929 michael 1133 # endif
930     # endif
931     #endif /* !YYCOPY_NEEDED */
932    
933 michael 913 /* YYFINAL -- State number of the termination state. */
934     #define YYFINAL 2
935     /* YYLAST -- Last index in YYTABLE. */
936 michael 8789 #define YYLAST 1249
937 michael 913
938     /* YYNTOKENS -- Number of terminals. */
939 michael 8866 #define YYNTOKENS 236
940 michael 913 /* YYNNTS -- Number of nonterminals. */
941 michael 8866 #define YYNNTS 292
942 michael 913 /* YYNRULES -- Number of rules. */
943 michael 8866 #define YYNRULES 662
944 michael 2473 /* YYNSTATES -- Number of states. */
945 michael 8866 #define YYNSTATES 1304
946 michael 913
947     #define YYUNDEFTOK 2
948 michael 8866 #define YYMAXUTOK 484
949 michael 913
950 michael 8866 /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
951     as returned by yylex, with out-of-bounds checking. */
952 michael 2473 #define YYTRANSLATE(YYX) \
953 michael 8760 ((unsigned) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
954 michael 913
955 michael 2473 /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
956 michael 8866 as returned by yylex. */
957 michael 1247 static const yytype_uint8 yytranslate[] =
958 michael 913 {
959     0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
960     2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
961     2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
962     2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
963 michael 8866 2, 2, 2, 2, 234, 2, 2, 2, 2, 2,
964     2, 2, 2, 2, 2, 2, 2, 2, 235, 230,
965     2, 233, 2, 2, 2, 2, 2, 2, 2, 2,
966 michael 913 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
967     2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
968     2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
969     2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
970     2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
971 michael 8866 2, 2, 2, 232, 2, 231, 2, 2, 2, 2,
972 michael 913 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
973     2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
974     2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
975     2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
976     2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
977     2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
978     2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
979     2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
980     2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
981     2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
982     2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
983     2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
984     2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
985     5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
986     15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
987     25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
988     35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
989     45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
990     55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
991     65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
992     75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
993     85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
994     95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
995     105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
996     115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
997     125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
998     135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
999     145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
1000     155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
1001     165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
1002     175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
1003     185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
1004     195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
1005 michael 1751 205, 206, 207, 208, 209, 210, 211, 212, 213, 214,
1006 michael 6603 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
1007 michael 8866 225, 226, 227, 228, 229
1008 michael 913 };
1009    
1010     #if YYDEBUG
1011 michael 2473 /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
1012 michael 913 static const yytype_uint16 yyrline[] =
1013     {
1014 michael 8866 0, 374, 374, 375, 378, 379, 380, 381, 382, 383,
1015     384, 385, 386, 387, 388, 389, 390, 391, 392, 393,
1016     394, 395, 396, 397, 398, 399, 400, 401, 405, 405,
1017     406, 407, 408, 409, 410, 411, 412, 413, 416, 416,
1018     417, 418, 419, 420, 427, 429, 429, 430, 430, 430,
1019     432, 438, 448, 450, 450, 451, 452, 453, 454, 455,
1020     456, 457, 458, 459, 460, 461, 462, 463, 464, 465,
1021     466, 469, 478, 487, 496, 505, 514, 523, 538, 553,
1022     563, 577, 586, 609, 632, 655, 665, 667, 667, 668,
1023     669, 670, 671, 673, 682, 691, 705, 704, 722, 722,
1024     723, 723, 723, 725, 731, 742, 741, 760, 760, 761,
1025     761, 761, 761, 761, 763, 769, 775, 781, 803, 804,
1026     804, 806, 806, 807, 809, 816, 816, 829, 830, 832,
1027     832, 833, 833, 835, 843, 846, 852, 851, 857, 857,
1028     858, 862, 866, 870, 874, 878, 882, 886, 897, 896,
1029     958, 958, 959, 960, 961, 962, 963, 964, 965, 966,
1030     967, 968, 969, 971, 977, 983, 989, 995, 1006, 1012,
1031     1023, 1030, 1029, 1035, 1035, 1036, 1040, 1044, 1048, 1052,
1032     1056, 1060, 1064, 1068, 1072, 1076, 1080, 1084, 1088, 1092,
1033     1096, 1100, 1104, 1108, 1112, 1116, 1120, 1127, 1126, 1132,
1034     1132, 1133, 1137, 1141, 1145, 1149, 1153, 1157, 1161, 1165,
1035     1169, 1173, 1177, 1181, 1185, 1189, 1193, 1197, 1201, 1205,
1036     1209, 1213, 1217, 1221, 1225, 1229, 1233, 1237, 1241, 1245,
1037     1256, 1255, 1312, 1312, 1313, 1314, 1315, 1316, 1317, 1318,
1038     1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328,
1039     1330, 1336, 1342, 1348, 1354, 1360, 1366, 1372, 1378, 1385,
1040     1391, 1397, 1403, 1412, 1422, 1421, 1427, 1427, 1428, 1432,
1041     1443, 1442, 1449, 1448, 1453, 1453, 1454, 1458, 1462, 1468,
1042     1468, 1469, 1469, 1469, 1469, 1469, 1471, 1471, 1473, 1473,
1043     1475, 1488, 1505, 1511, 1522, 1521, 1568, 1568, 1569, 1570,
1044     1571, 1572, 1573, 1574, 1575, 1576, 1577, 1579, 1585, 1591,
1045     1597, 1609, 1608, 1614, 1614, 1615, 1619, 1623, 1627, 1631,
1046     1635, 1639, 1643, 1647, 1651, 1657, 1671, 1680, 1694, 1693,
1047     1708, 1708, 1709, 1709, 1709, 1709, 1711, 1717, 1723, 1733,
1048     1735, 1735, 1736, 1736, 1738, 1755, 1754, 1777, 1777, 1778,
1049     1778, 1778, 1778, 1780, 1786, 1806, 1805, 1811, 1811, 1812,
1050     1816, 1820, 1824, 1828, 1832, 1836, 1840, 1844, 1848, 1859,
1051     1858, 1877, 1877, 1878, 1878, 1878, 1880, 1887, 1886, 1892,
1052     1892, 1893, 1897, 1901, 1905, 1909, 1913, 1917, 1921, 1925,
1053     1929, 1940, 1939, 2013, 2013, 2014, 2015, 2016, 2017, 2018,
1054     2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026, 2027, 2028,
1055     2030, 2036, 2042, 2048, 2061, 2074, 2080, 2086, 2090, 2097,
1056     2096, 2101, 2101, 2102, 2106, 2112, 2123, 2129, 2135, 2141,
1057     2157, 2156, 2180, 2180, 2181, 2181, 2181, 2183, 2203, 2214,
1058     2213, 2238, 2238, 2239, 2239, 2239, 2241, 2247, 2257, 2259,
1059     2259, 2260, 2260, 2262, 2280, 2279, 2300, 2300, 2301, 2301,
1060     2301, 2303, 2309, 2319, 2321, 2321, 2322, 2323, 2324, 2325,
1061     2326, 2327, 2328, 2329, 2330, 2331, 2332, 2333, 2334, 2335,
1062     2336, 2337, 2338, 2339, 2340, 2341, 2342, 2343, 2344, 2345,
1063     2346, 2347, 2348, 2349, 2350, 2351, 2352, 2353, 2354, 2355,
1064     2356, 2357, 2358, 2359, 2360, 2361, 2362, 2363, 2364, 2365,
1065     2366, 2367, 2368, 2371, 2376, 2381, 2386, 2391, 2396, 2401,
1066     2406, 2411, 2416, 2421, 2426, 2431, 2436, 2441, 2446, 2451,
1067     2456, 2461, 2466, 2471, 2476, 2481, 2486, 2491, 2496, 2501,
1068     2504, 2509, 2512, 2517, 2522, 2527, 2532, 2537, 2542, 2547,
1069     2552, 2557, 2562, 2567, 2572, 2578, 2577, 2582, 2582, 2583,
1070     2586, 2589, 2592, 2595, 2598, 2601, 2604, 2607, 2610, 2613,
1071     2616, 2619, 2622, 2625, 2628, 2631, 2634, 2637, 2640, 2643,
1072     2646, 2652, 2651, 2656, 2656, 2657, 2660, 2663, 2666, 2669,
1073     2672, 2675, 2678, 2681, 2684, 2687, 2690, 2693, 2696, 2699,
1074     2702, 2705, 2708, 2711, 2714, 2719, 2724, 2729, 2734, 2743,
1075     2745, 2745, 2746, 2747, 2748, 2749, 2750, 2751, 2752, 2753,
1076     2754, 2755, 2756, 2757, 2758, 2759, 2760, 2762, 2767, 2772,
1077     2777, 2782, 2787, 2792, 2797, 2802, 2807, 2812, 2817, 2822,
1078     2827, 2836, 2838, 2838, 2839, 2840, 2841, 2842, 2843, 2844,
1079     2845, 2846, 2847, 2848, 2850, 2856, 2872, 2881, 2887, 2893,
1080     2899, 2908, 2914
1081 michael 913 };
1082     #endif
1083    
1084 michael 1466 #if YYDEBUG || YYERROR_VERBOSE || 0
1085 michael 913 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
1086     First, the terminals, then, starting at YYNTOKENS, nonterminals. */
1087     static const char *const yytname[] =
1088     {
1089 michael 1520 "$end", "error", "$undefined", "ACCEPT_PASSWORD", "ADMIN", "AFTYPE",
1090 michael 4313 "ANTI_NICK_FLOOD", "ANTI_SPAM_EXIT_MESSAGE_TIME", "AUTOCONN",
1091     "AWAY_COUNT", "AWAY_TIME", "BYTES", "KBYTES", "MBYTES", "CALLER_ID_WAIT",
1092 michael 8318 "CAN_FLOOD", "CHANNEL", "CIDR_BITLEN_IPV4", "CIDR_BITLEN_IPV6", "CLASS",
1093     "CLOSE", "CONNECT", "CONNECTFREQ", "CYCLE_ON_HOST_CHANGE",
1094     "DEFAULT_FLOODCOUNT", "DEFAULT_FLOODTIME", "DEFAULT_JOIN_FLOOD_COUNT",
1095     "DEFAULT_JOIN_FLOOD_TIME", "DEFAULT_MAX_CLIENTS", "DENY", "DESCRIPTION",
1096     "DIE", "DISABLE_AUTH", "DISABLE_FAKE_CHANNELS",
1097     "DISABLE_REMOTE_COMMANDS", "DLINE_MIN_CIDR", "DLINE_MIN_CIDR6",
1098     "DOTS_IN_IDENT", "EMAIL", "ENCRYPTED", "EXCEED_LIMIT", "EXEMPT",
1099     "FAILED_OPER_NOTICE", "FLATTEN_LINKS", "FLATTEN_LINKS_DELAY",
1100 michael 6603 "FLATTEN_LINKS_FILE", "GECOS", "GENERAL", "HIDDEN", "HIDDEN_NAME",
1101     "HIDE_CHANS", "HIDE_IDLE", "HIDE_IDLE_FROM_OPERS", "HIDE_SERVER_IPS",
1102     "HIDE_SERVERS", "HIDE_SERVICES", "HOST", "HUB", "HUB_MASK",
1103 michael 8789 "INVISIBLE_ON_CONNECT", "INVITE_CLIENT_COUNT", "INVITE_CLIENT_TIME",
1104     "INVITE_DELAY_CHANNEL", "INVITE_EXPIRE_TIME", "IP", "IRCD_AUTH",
1105     "IRCD_FLAGS", "IRCD_SID", "JOIN", "KILL", "KILL_CHASE_TIME_LIMIT",
1106     "KLINE", "KLINE_EXEMPT", "KLINE_MIN_CIDR", "KLINE_MIN_CIDR6",
1107     "KNOCK_CLIENT_COUNT", "KNOCK_CLIENT_TIME", "KNOCK_DELAY_CHANNEL",
1108     "LEAF_MASK", "LISTEN", "MASK", "MAX_ACCEPT", "MAX_BANS",
1109     "MAX_BANS_LARGE", "MAX_CHANNELS", "MAX_IDLE", "MAX_INVITES",
1110 michael 8497 "MAX_NICK_CHANGES", "MAX_NICK_LENGTH", "MAX_NICK_TIME", "MAX_NUMBER",
1111     "MAX_TARGETS", "MAX_TOPIC_LENGTH", "MAX_WATCH", "MIN_IDLE",
1112     "MIN_NONWILDCARD", "MIN_NONWILDCARD_SIMPLE", "MODULE", "MODULES", "MOTD",
1113     "NAME", "NEED_IDENT", "NEED_PASSWORD", "NETWORK_DESC", "NETWORK_NAME",
1114     "NICK", "NO_OPER_FLOOD", "NO_TILDE", "NUMBER", "NUMBER_PER_CIDR",
1115     "NUMBER_PER_IP_GLOBAL", "NUMBER_PER_IP_LOCAL", "OPER_ONLY_UMODES",
1116 michael 8318 "OPER_UMODES", "OPERATOR", "OPERS_BYPASS_CALLERID", "PACE_WAIT",
1117     "PACE_WAIT_SIMPLE", "PASSWORD", "PATH", "PING_COOKIE", "PING_TIME",
1118     "PORT", "QSTRING", "RANDOM_IDLE", "REASON", "REDIRPORT", "REDIRSERV",
1119     "REHASH", "REMOTE", "REMOTEBAN", "RESV", "RESV_EXEMPT",
1120     "RSA_PRIVATE_KEY_FILE", "SECONDS", "MINUTES", "HOURS", "DAYS", "WEEKS",
1121     "MONTHS", "YEARS", "SEND_PASSWORD", "SENDQ", "SERVERHIDE", "SERVERINFO",
1122     "SHORT_MOTD", "SPOOF", "SPOOF_NOTICE", "SQUIT", "SSL_CERTIFICATE_FILE",
1123 michael 7262 "SSL_CERTIFICATE_FINGERPRINT", "SSL_CONNECTION_REQUIRED",
1124     "SSL_DH_ELLIPTIC_CURVE", "SSL_DH_PARAM_FILE",
1125 michael 8318 "SSL_MESSAGE_DIGEST_ALGORITHM", "STATS_E_DISABLED", "STATS_I_OPER_ONLY",
1126     "STATS_K_OPER_ONLY", "STATS_M_OPER_ONLY", "STATS_O_OPER_ONLY",
1127 michael 8866 "STATS_P_OPER_ONLY", "STATS_U_OPER_ONLY", "T_ALL", "T_BIND", "T_BOTS",
1128 michael 8318 "T_CALLERID", "T_CCONN", "T_COMMAND", "T_CLUSTER", "T_DEAF", "T_DEBUG",
1129     "T_DLINE", "T_EXTERNAL", "T_FARCONNECT", "T_FILE", "T_FULL", "T_GLOBOPS",
1130     "T_INVISIBLE", "T_IPV4", "T_IPV6", "T_LOCOPS", "T_LOG", "T_NCHANGE",
1131     "T_NONONREG", "T_OPME", "T_PREPEND", "T_PSEUDO", "T_RECVQ", "T_REJ",
1132     "T_RESTART", "T_SERVER", "T_SERVICE", "T_SERVNOTICE", "T_SET",
1133 michael 5004 "T_SHARED", "T_SIZE", "T_SKILL", "T_SOFTCALLERID", "T_SPY", "T_SSL",
1134     "T_SSL_CIPHER_LIST", "T_TARGET", "T_UMODES", "T_UNAUTH", "T_UNDLINE",
1135     "T_UNLIMITED", "T_UNRESV", "T_UNXLINE", "T_WALLOP", "T_WALLOPS",
1136     "T_WEBIRC", "TBOOL", "THROTTLE_COUNT", "THROTTLE_TIME",
1137     "TKLINE_EXPIRE_NOTICES", "TMASKED", "TS_MAX_DELTA", "TS_WARN_DELTA",
1138 michael 5417 "TWODOTS", "TYPE", "UNKLINE", "USE_LOGGING", "USER", "VHOST", "VHOST6",
1139 michael 7445 "WARN_NO_CONNECT_BLOCK", "WHOIS", "WHOWAS_HISTORY_LENGTH", "XLINE",
1140     "XLINE_EXEMPT", "';'", "'}'", "'{'", "'='", "','", "':'", "$accept",
1141     "conf", "conf_item", "timespec_", "timespec", "sizespec_", "sizespec",
1142     "modules_entry", "modules_items", "modules_item", "modules_module",
1143     "modules_path", "serverinfo_entry", "serverinfo_items",
1144     "serverinfo_item", "serverinfo_ssl_certificate_file",
1145 michael 1306 "serverinfo_rsa_private_key_file", "serverinfo_ssl_dh_param_file",
1146 michael 4114 "serverinfo_ssl_cipher_list", "serverinfo_ssl_message_digest_algorithm",
1147 michael 8318 "serverinfo_ssl_dh_elliptic_curve", "serverinfo_name", "serverinfo_sid",
1148     "serverinfo_description", "serverinfo_network_name",
1149 michael 8866 "serverinfo_network_desc", "serverinfo_default_max_clients",
1150     "serverinfo_max_nick_length", "serverinfo_max_topic_length",
1151     "serverinfo_hub", "admin_entry", "admin_items", "admin_item",
1152     "admin_name", "admin_email", "admin_description", "motd_entry", "$@1",
1153     "motd_items", "motd_item", "motd_mask", "motd_file", "pseudo_entry",
1154     "$@2", "pseudo_items", "pseudo_item", "pseudo_command", "pseudo_name",
1155     "pseudo_prepend", "pseudo_target", "logging_entry", "logging_items",
1156     "logging_item", "logging_use_logging", "logging_file_entry", "$@3",
1157     "logging_file_items", "logging_file_item", "logging_file_name",
1158     "logging_file_size", "logging_file_type", "$@4",
1159     "logging_file_type_items", "logging_file_type_item", "oper_entry", "$@5",
1160     "oper_items", "oper_item", "oper_name", "oper_user", "oper_password",
1161     "oper_whois", "oper_encrypted", "oper_ssl_certificate_fingerprint",
1162 michael 8318 "oper_ssl_connection_required", "oper_class", "oper_umodes", "$@6",
1163     "oper_umodes_items", "oper_umodes_item", "oper_flags", "$@7",
1164     "oper_flags_items", "oper_flags_item", "class_entry", "$@8",
1165 michael 6595 "class_items", "class_item", "class_name", "class_ping_time",
1166 michael 8497 "class_number_per_ip_local", "class_number_per_ip_global",
1167     "class_connectfreq", "class_max_channels", "class_max_number",
1168     "class_sendq", "class_recvq", "class_cidr_bitlen_ipv4",
1169     "class_cidr_bitlen_ipv6", "class_number_per_cidr", "class_min_idle",
1170     "class_max_idle", "class_flags", "$@9", "class_flags_items",
1171     "class_flags_item", "listen_entry", "$@10", "listen_flags", "$@11",
1172     "listen_flags_items", "listen_flags_item", "listen_items", "listen_item",
1173     "listen_port", "$@12", "port_items", "port_item", "listen_address",
1174     "listen_host", "auth_entry", "$@13", "auth_items", "auth_item",
1175     "auth_user", "auth_passwd", "auth_class", "auth_encrypted", "auth_flags",
1176     "$@14", "auth_flags_items", "auth_flags_item", "auth_spoof",
1177     "auth_redir_serv", "auth_redir_port", "resv_entry", "$@15", "resv_items",
1178     "resv_item", "resv_mask", "resv_reason", "resv_exempt", "service_entry",
1179 michael 8318 "service_items", "service_item", "service_name", "shared_entry", "$@16",
1180 michael 1783 "shared_items", "shared_item", "shared_name", "shared_user",
1181 michael 8318 "shared_type", "$@17", "shared_types", "shared_type_item",
1182     "cluster_entry", "$@18", "cluster_items", "cluster_item", "cluster_name",
1183     "cluster_type", "$@19", "cluster_types", "cluster_type_item",
1184     "connect_entry", "$@20", "connect_items", "connect_item", "connect_name",
1185 michael 8866 "connect_host", "connect_bind", "connect_send_password",
1186 michael 2244 "connect_accept_password", "connect_ssl_certificate_fingerprint",
1187 michael 8318 "connect_port", "connect_aftype", "connect_flags", "$@21",
1188 michael 2244 "connect_flags_items", "connect_flags_item", "connect_encrypted",
1189     "connect_hub_mask", "connect_leaf_mask", "connect_class",
1190 michael 8318 "connect_ssl_cipher_list", "kill_entry", "$@22", "kill_items",
1191     "kill_item", "kill_user", "kill_reason", "deny_entry", "$@23",
1192 michael 2244 "deny_items", "deny_item", "deny_ip", "deny_reason", "exempt_entry",
1193 michael 8318 "exempt_items", "exempt_item", "exempt_ip", "gecos_entry", "$@24",
1194 michael 2244 "gecos_items", "gecos_item", "gecos_name", "gecos_reason",
1195 michael 4313 "general_entry", "general_items", "general_item", "general_away_count",
1196 michael 7445 "general_away_time", "general_max_watch",
1197     "general_whowas_history_length", "general_cycle_on_host_change",
1198 michael 5806 "general_dline_min_cidr", "general_dline_min_cidr6",
1199     "general_kline_min_cidr", "general_kline_min_cidr6",
1200     "general_tkline_expire_notices", "general_kill_chase_time_limit",
1201 michael 8789 "general_failed_oper_notice", "general_anti_nick_flood",
1202     "general_max_nick_time", "general_max_nick_changes",
1203     "general_max_accept", "general_anti_spam_exit_message_time",
1204     "general_ts_warn_delta", "general_ts_max_delta",
1205     "general_invisible_on_connect", "general_warn_no_connect_block",
1206     "general_stats_e_disabled", "general_stats_m_oper_only",
1207     "general_stats_o_oper_only", "general_stats_P_oper_only",
1208     "general_stats_u_oper_only", "general_stats_k_oper_only",
1209     "general_stats_i_oper_only", "general_pace_wait",
1210     "general_caller_id_wait", "general_opers_bypass_callerid",
1211     "general_pace_wait_simple", "general_short_motd",
1212     "general_no_oper_flood", "general_dots_in_ident", "general_max_targets",
1213     "general_ping_cookie", "general_disable_auth", "general_throttle_count",
1214     "general_throttle_time", "general_oper_umodes", "$@25", "umode_oitems",
1215     "umode_oitem", "general_oper_only_umodes", "$@26", "umode_items",
1216     "umode_item", "general_min_nonwildcard",
1217 michael 3877 "general_min_nonwildcard_simple", "general_default_floodcount",
1218 michael 7861 "general_default_floodtime", "channel_entry", "channel_items",
1219     "channel_item", "channel_disable_fake_channels",
1220     "channel_invite_client_count", "channel_invite_client_time",
1221     "channel_invite_delay_channel", "channel_invite_expire_time",
1222     "channel_knock_client_count", "channel_knock_client_time",
1223     "channel_knock_delay_channel", "channel_max_channels",
1224 michael 8047 "channel_max_invites", "channel_max_bans", "channel_max_bans_large",
1225 michael 7772 "channel_default_join_flood_count", "channel_default_join_flood_time",
1226     "serverhide_entry", "serverhide_items", "serverhide_item",
1227     "serverhide_flatten_links", "serverhide_flatten_links_delay",
1228     "serverhide_flatten_links_file", "serverhide_disable_remote_commands",
1229     "serverhide_hide_servers", "serverhide_hide_services",
1230     "serverhide_hidden_name", "serverhide_hidden",
1231     "serverhide_hide_server_ips", YY_NULLPTR
1232 michael 913 };
1233     #endif
1234    
1235     # ifdef YYPRINT
1236 michael 2473 /* YYTOKNUM[NUM] -- (External) token number corresponding to the
1237     (internal) symbol number NUM (which must be that of a token). */
1238 michael 913 static const yytype_uint16 yytoknum[] =
1239     {
1240     0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
1241     265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
1242     275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
1243     285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
1244     295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
1245     305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
1246     315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
1247     325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
1248     335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
1249     345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
1250     355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
1251     365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
1252     375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
1253     385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
1254     395, 396, 397, 398, 399, 400, 401, 402, 403, 404,
1255     405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
1256     415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
1257     425, 426, 427, 428, 429, 430, 431, 432, 433, 434,
1258     435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
1259     445, 446, 447, 448, 449, 450, 451, 452, 453, 454,
1260     455, 456, 457, 458, 459, 460, 461, 462, 463, 464,
1261 michael 1783 465, 466, 467, 468, 469, 470, 471, 472, 473, 474,
1262 michael 8866 475, 476, 477, 478, 479, 480, 481, 482, 483, 484,
1263     59, 125, 123, 61, 44, 58
1264 michael 913 };
1265     # endif
1266    
1267 michael 8866 #define YYPACT_NINF -882
1268 michael 913
1269 michael 2473 #define yypact_value_is_default(Yystate) \
1270 michael 8866 (!!((Yystate) == (-882)))
1271 michael 2473
1272 michael 8866 #define YYTABLE_NINF -126
1273 michael 2473
1274     #define yytable_value_is_error(Yytable_value) \
1275     0
1276    
1277     /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1278     STATE-NUM. */
1279     static const yytype_int16 yypact[] =
1280 michael 913 {
1281 michael 8866 -882, 697, -882, -68, -216, -203, -882, -882, -882, -200,
1282     -882, -191, -882, -882, -882, -189, -882, -882, -882, -180,
1283     -172, -882, -163, -882, -144, -882, -882, -882, -882, -882,
1284     -882, -882, -882, -882, -882, -882, -882, -882, -882, -882,
1285     -882, -882, -882, -882, -882, -882, -882, -882, -882, -882,
1286     -882, 29, 957, -134, -128, -123, 23, -107, 423, -86,
1287     -63, -49, 91, -41, -23, -20, 408, 519, -18, 44,
1288     -17, 13, -6, -158, -151, -56, -5, 16, -882, -882,
1289     -882, -882, -882, 54, 57, 64, 66, 79, 92, 93,
1290     94, 101, 107, 112, 113, 123, 130, 219, -882, -882,
1291     -882, -882, -882, -882, -882, -882, -882, -882, -882, -882,
1292     -882, -882, -882, 733, 624, 27, -882, 131, 32, -882,
1293     -882, 19, -882, 133, 134, 135, 137, 138, 143, 144,
1294     146, 147, 149, 151, 155, 156, 157, 158, 159, 160,
1295     165, 166, 167, 168, 170, 173, 174, 175, -882, -882,
1296     177, 178, 179, 181, 183, 184, 186, 188, 190, 194,
1297     195, 201, 203, 206, 207, 210, 211, 231, 233, 41,
1298     -882, -882, -882, -882, -882, -882, -882, -882, -882, -882,
1299     -882, -882, -882, -882, -882, -882, -882, -882, -882, -882,
1300     -882, -882, -882, -882, -882, -882, -882, -882, -882, -882,
1301     -882, -882, -882, -882, -882, -882, -882, -882, -882, -882,
1302     -882, -882, -882, -882, -882, -882, -882, 467, 14, 319,
1303     46, 234, 236, 52, -882, -882, -882, 30, 320, 80,
1304     -882, 240, 242, 243, 244, 245, 246, 247, 248, 250,
1305     299, -882, -882, -882, -882, -882, -882, -882, -882, -882,
1306     -882, 83, 251, 252, 254, 255, 256, 257, 259, 261,
1307     262, 265, 268, 275, 276, 278, 280, 78, -882, -882,
1308     -882, -882, -882, -882, -882, -882, -882, -882, -882, -882,
1309     -882, -882, -882, -882, 48, 285, 284, 2, -882, -882,
1310     -882, 111, 164, -882, 288, 43, -882, -882, 3, -882,
1311     192, 274, 308, 295, -882, 394, 397, 315, 419, 397,
1312     397, 397, 420, 397, 397, 424, 429, 433, 436, 318,
1313     -882, 321, 312, 317, 322, -882, 323, 324, 325, 326,
1314     329, 330, 331, 332, 334, 336, 337, 150, -882, -882,
1315     -882, -882, -882, -882, -882, -882, -882, -882, -882, -882,
1316     -882, -882, -882, -882, 343, 342, 344, 354, 356, 357,
1317     359, -882, 362, 363, 365, 366, 368, 369, 370, 272,
1318     -882, -882, -882, -882, -882, -882, -882, -882, -882, -882,
1319     -882, -882, -882, -882, -882, -882, 371, 372, 25, -882,
1320     -882, -882, 430, 379, -882, -882, 377, 382, 55, -882,
1321     -882, -882, 401, 397, 508, 397, 397, 406, 510, 397,
1322     409, 513, 516, 518, 417, 421, 397, 530, 533, 534,
1323     536, 397, 537, 538, 539, 541, 444, 431, 432, 455,
1324     397, 397, 456, 464, 465, -188, -154, 466, 470, 473,
1325     474, 562, 397, 475, 397, 397, 480, 570, 463, -882,
1326     469, 461, 462, -882, 471, 481, 482, 484, 487, 269,
1327     -882, -882, -882, -882, -882, -882, -882, -882, -882, -882,
1328     488, 489, 62, -882, -882, -882, 476, 492, 494, -882,
1329     495, -882, 67, -882, -882, -882, -882, -882, 577, 585,
1330     499, -882, 500, 502, 504, 10, -882, -882, -882, 506,
1331     507, 509, -882, 512, 514, 515, 520, -882, 521, 523,
1332     223, -882, -882, -882, -882, -882, -882, -882, -882, -882,
1333     -882, -882, 511, 524, 525, 526, 17, -882, -882, -882,
1334     -882, 528, 549, 397, 609, 550, 610, 553, 556, 558,
1335     542, -882, -882, 641, 629, 564, 650, 669, 670, 656,
1336     657, 658, 659, 660, 661, 662, 663, 665, 559, -882,
1337     560, 565, -882, 20, -882, -882, -882, -882, 580, 563,
1338     -882, 568, 567, 569, 571, 572, 573, 7, -882, -882,
1339     -882, -882, -882, 678, 578, -882, 579, 574, -882, 581,
1340     85, -882, -882, -882, -882, 589, 590, 591, -882, 592,
1341     522, 595, 596, 599, 600, 601, 602, 604, 605, 607,
1342     615, 616, 617, 618, -882, -882, 684, 702, 397, 622,
1343     741, 397, 742, 397, 728, 748, 749, 750, 397, 751,
1344     751, 631, -882, -882, 739, 28, 740, 653, 743, 744,
1345     635, 746, 747, 763, 753, 754, 756, 757, 642, -882,
1346     758, 759, 643, -882, 644, -882, 764, 771, 666, -882,
1347     668, 671, 674, 675, 676, 677, 679, 680, 681, 683,
1348     685, 689, 691, 692, 694, 695, 696, 703, 706, 709,
1349     711, 713, 714, 716, 719, 805, 720, 721, 722, 724,
1350     725, 726, 729, 730, 734, 735, 736, 737, 761, 762,
1351     766, 768, 769, 770, 774, 775, 776, 777, -882, -882,
1352     791, 688, 699, 804, 842, 849, 853, 856, 779, -882,
1353     858, 863, 780, -882, -882, 866, 871, 778, 887, 782,
1354     -882, 784, 785, -882, -882, 893, 898, 792, -882, -882,
1355     900, 813, 793, 902, 904, 905, 818, 797, 908, 912,
1356     806, -882, -882, 914, 915, 919, 814, -882, 815, 816,
1357     817, 819, 820, 821, 822, 823, 824, -882, 825, 826,
1358     827, 828, 829, 830, 831, 832, 833, 834, 835, 836,
1359     837, 838, 839, -882, -882, 925, 840, 841, -882, 844,
1360     -882, 24, -882, 947, 949, 952, 953, 847, -882, 848,
1361     -882, -882, 956, 850, 958, 852, -882, -882, -882, -882,
1362     -882, 397, 397, 397, 397, 397, 397, 397, -882, -882,
1363     -882, -882, -882, -882, -882, -882, -882, -882, -882, -882,
1364     -882, -882, -882, 854, 855, 857, -39, 859, 860, 861,
1365     862, 864, 865, 867, 868, 869, 82, 870, 872, -882,
1366     873, 874, 875, 876, 877, 878, 879, 4, 880, 881,
1367     882, 883, 884, 885, 886, -882, 888, 889, -882, -882,
1368     890, 891, -882, -882, -882, -882, -882, -882, -882, -882,
1369     -882, -882, -882, -882, -882, -882, -882, -882, -882, -882,
1370     -882, -882, -882, -882, -882, -882, -882, -882, -882, -882,
1371     -882, -882, -882, -882, -882, -882, -882, -882, -882, -882,
1372     -882, -882, -882, -882, -882, -882, -882, -882, -160, -882,
1373     -882, -882, -882, -882, -882, -882, -882, -882, -882, -882,
1374     -882, -882, -882, -882, -882, -882, -882, -882, -882, -882,
1375     -882, -882, -159, -882, -882, -882, -882, -882, -882, -882,
1376     -882, -882, -882, -882, -882, -882, -882, -882, -882, -882,
1377     -882, -882, -882, -882, -882, 892, 894, 459, 895, 896,
1378     897, 899, 901, -882, 903, 906, -882, 907, 909, -26,
1379     910, 846, -882, -882, -882, -882, 911, 913, -882, 916,
1380     917, 503, 918, 920, 921, 922, 765, 923, 924, -882,
1381     926, 927, 928, -882, -882, -882, -882, -882, -882, -882,
1382     -882, -882, -882, -882, -882, -882, -882, -882, -882, -882,
1383     -882, -882, -882, -882, -882, -882, -882, -882, 929, 198,
1384     -882, -882, 930, 931, 932, -882, 18, -882, -882, -882,
1385     -882, 933, 936, 937, 938, -882, -882, 939, 632, 940,
1386     -882, -882, -882, -882, -882, -882, -882, -882, -882, -882,
1387     -882, -882, -882, -150, -882, -882, -882, -882, -882, -882,
1388     -882, -882, -882, -882, 751, 751, 751, -882, -882, -882,
1389     -882, -882, -882, -882, -882, -882, -882, -882, -882, -882,
1390     -55, -882, -882, -882, -882, -882, -882, -882, -882, -882,
1391     -882, -882, -882, -882, 805, -882, 720, -882, -882, -882,
1392     -882, -882, -882, -882, -882, -882, -882, -882, -882, -13,
1393     -882, -882, -882, -882, -882, -882, -882, -882, -882, -882,
1394     -882, -882, -882, 76, -882, 978, 887, 941, -882, -882,
1395     -882, -882, -882, -882, 942, -882, 943, 944, -882, -882,
1396     945, 946, -882, -882, 948, -882, -882, -882, -882, -882,
1397     -882, -882, -882, -882, -882, -882, -882, 88, -882, -882,
1398     -882, -882, -882, -882, -882, -882, -882, -882, -882, -882,
1399     -882, -882, -882, -882, -882, -882, -882, -882, -882, -882,
1400     -882, -882, -882, -882, -882, 102, -882, -882, -882, -882,
1401     -882, -882, -882, -882, -882, -882, -882, -882, -882, -882,
1402     -882, -882, -882, 121, -882, -882, 965, -46, 951, 955,
1403     -882, -882, -882, -882, -882, -882, -882, -882, -882, -882,
1404     -882, -882, -882, -882, -882, -882, 127, -882, -882, -882,
1405     -39, -882, -882, -882, -882, 4, -882, -882, -882, 459,
1406     -882, -26, -882, -882, -882, 964, 970, 967, 986, 994,
1407     1001, -882, 503, -882, 765, -882, 198, 959, 960, 961,
1408     483, -882, -882, 632, -882, -882, -882, -882, -882, -882,
1409     -882, -882, -882, -882, -882, -882, -882, -882, -882, -882,
1410     -882, -882, -882, -882, -882, -882, -882, -882, 128, -882,
1411     -882, -882, 483, -882
1412 michael 913 };
1413    
1414 michael 2473 /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
1415     Performed when YYTABLE does not specify something else to do. Zero
1416     means the default is an error. */
1417 michael 913 static const yytype_uint16 yydefact[] =
1418     {
1419 michael 8866 2, 0, 1, 0, 0, 0, 230, 391, 439, 0,
1420     454, 0, 294, 430, 270, 0, 96, 148, 328, 0,
1421     0, 369, 0, 105, 0, 345, 3, 23, 11, 4,
1422 michael 4545 24, 25, 5, 6, 8, 9, 10, 13, 14, 15,
1423     16, 17, 18, 19, 20, 22, 21, 7, 12, 26,
1424     27, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1425 michael 913 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1426 michael 8866 0, 0, 0, 0, 0, 0, 0, 0, 88, 89,
1427     91, 90, 626, 0, 0, 0, 0, 0, 0, 0,
1428     0, 0, 0, 0, 0, 0, 0, 0, 611, 625,
1429     614, 615, 616, 617, 618, 619, 620, 621, 622, 612,
1430     613, 623, 624, 0, 0, 0, 452, 0, 0, 450,
1431     451, 0, 512, 0, 0, 0, 0, 0, 0, 0,
1432 michael 913 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1433 michael 8866 0, 0, 0, 0, 0, 0, 0, 0, 581, 555,
1434 michael 913 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1435     0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1436 michael 8866 465, 466, 467, 510, 473, 511, 505, 506, 507, 508,
1437     504, 477, 468, 469, 470, 471, 472, 474, 475, 476,
1438     478, 479, 509, 483, 484, 485, 486, 482, 481, 487,
1439     494, 495, 488, 489, 490, 480, 492, 502, 503, 500,
1440     501, 493, 491, 498, 499, 496, 497, 0, 0, 0,
1441 michael 8789 0, 0, 0, 0, 46, 47, 48, 0, 0, 0,
1442 michael 8866 653, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1443     0, 643, 644, 645, 646, 647, 648, 649, 651, 650,
1444     652, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1445     0, 0, 0, 0, 0, 0, 0, 0, 54, 67,
1446     65, 63, 68, 69, 64, 55, 66, 57, 58, 59,
1447     60, 61, 62, 56, 0, 0, 0, 0, 120, 121,
1448     122, 0, 0, 343, 0, 0, 341, 342, 0, 92,
1449     0, 0, 0, 0, 87, 0, 0, 0, 0, 0,
1450 michael 913 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1451 michael 8866 610, 0, 0, 0, 0, 264, 0, 0, 0, 0,
1452     0, 0, 0, 0, 0, 0, 0, 0, 233, 234,
1453     237, 239, 240, 241, 242, 243, 244, 245, 235, 236,
1454     238, 246, 247, 248, 0, 0, 0, 0, 0, 0,
1455     0, 419, 0, 0, 0, 0, 0, 0, 0, 0,
1456     394, 395, 396, 397, 398, 399, 400, 402, 401, 404,
1457     408, 405, 406, 407, 403, 445, 0, 0, 0, 442,
1458     443, 444, 0, 0, 449, 460, 0, 0, 0, 457,
1459     458, 459, 0, 0, 0, 0, 0, 0, 0, 0,
1460 michael 913 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1461     0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1462     0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1463 michael 8866 0, 0, 0, 0, 0, 0, 0, 0, 0, 464,
1464     0, 0, 0, 311, 0, 0, 0, 0, 0, 0,
1465     297, 298, 299, 300, 305, 301, 302, 303, 304, 436,
1466     0, 0, 0, 433, 434, 435, 0, 0, 0, 272,
1467     0, 282, 0, 280, 281, 283, 284, 49, 0, 0,
1468     0, 45, 0, 0, 0, 0, 99, 100, 101, 0,
1469     0, 0, 197, 0, 0, 0, 0, 171, 0, 0,
1470     0, 151, 152, 153, 154, 155, 158, 159, 160, 157,
1471     156, 161, 0, 0, 0, 0, 0, 331, 332, 333,
1472     334, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1473     0, 642, 70, 0, 0, 0, 0, 0, 0, 0,
1474     0, 0, 0, 0, 0, 0, 0, 0, 0, 53,
1475     0, 0, 377, 0, 372, 373, 374, 123, 0, 0,
1476     119, 0, 0, 0, 0, 0, 0, 0, 108, 109,
1477     111, 110, 112, 0, 0, 340, 0, 0, 355, 0,
1478     0, 348, 349, 350, 351, 0, 0, 0, 86, 0,
1479     28, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1480     0, 0, 0, 0, 609, 249, 0, 0, 0, 0,
1481 michael 913 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1482 michael 8866 0, 0, 232, 409, 0, 0, 0, 0, 0, 0,
1483     0, 0, 0, 0, 0, 0, 0, 0, 0, 393,
1484     0, 0, 0, 441, 0, 448, 0, 0, 0, 456,
1485 michael 1285 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1486     0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1487     0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1488     0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1489 michael 8866 0, 0, 0, 0, 0, 0, 0, 0, 463, 306,
1490     0, 0, 0, 0, 0, 0, 0, 0, 0, 296,
1491     0, 0, 0, 432, 285, 0, 0, 0, 0, 0,
1492     279, 0, 0, 44, 102, 0, 0, 0, 98, 162,
1493 michael 913 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1494 michael 8866 0, 150, 335, 0, 0, 0, 0, 330, 0, 0,
1495     0, 0, 0, 0, 0, 0, 0, 641, 0, 0,
1496 michael 913 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1497 michael 8866 0, 0, 0, 52, 375, 0, 0, 0, 371, 0,
1498     118, 0, 113, 0, 0, 0, 0, 0, 107, 0,
1499     339, 352, 0, 0, 0, 0, 347, 95, 94, 93,
1500     639, 28, 28, 28, 28, 28, 28, 28, 30, 29,
1501     640, 627, 628, 629, 630, 631, 632, 633, 634, 637,
1502     638, 635, 636, 0, 0, 0, 0, 0, 0, 0,
1503     0, 0, 0, 0, 0, 0, 38, 0, 0, 231,
1504 michael 8047 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1505 michael 8866 0, 0, 0, 0, 0, 392, 0, 0, 440, 453,
1506     0, 0, 455, 525, 529, 513, 514, 544, 517, 607,
1507     608, 552, 518, 519, 549, 524, 532, 523, 520, 521,
1508     528, 527, 526, 550, 515, 605, 606, 548, 591, 585,
1509     601, 586, 587, 588, 596, 604, 589, 598, 602, 592,
1510     603, 593, 597, 590, 600, 595, 594, 599, 0, 584,
1511     564, 565, 566, 559, 577, 560, 561, 562, 572, 580,
1512     563, 574, 578, 568, 579, 569, 573, 567, 576, 571,
1513     570, 575, 0, 558, 545, 543, 546, 551, 547, 534,
1514     541, 542, 539, 540, 535, 536, 537, 538, 553, 554,
1515     522, 531, 530, 533, 516, 0, 0, 0, 0, 0,
1516     0, 0, 0, 295, 0, 0, 431, 0, 0, 0,
1517     290, 286, 289, 271, 50, 51, 0, 0, 97, 0,
1518     0, 0, 0, 0, 0, 0, 0, 0, 0, 149,
1519     0, 0, 0, 329, 657, 654, 655, 656, 661, 660,
1520     662, 658, 659, 82, 79, 85, 78, 83, 84, 77,
1521     81, 80, 72, 71, 76, 73, 75, 74, 0, 0,
1522     370, 124, 0, 0, 0, 136, 0, 128, 129, 131,
1523     130, 0, 0, 0, 0, 106, 344, 0, 0, 0,
1524     346, 31, 32, 33, 34, 35, 36, 37, 259, 260,
1525     254, 269, 268, 0, 267, 255, 263, 256, 262, 250,
1526     261, 253, 252, 251, 38, 38, 38, 40, 39, 257,
1527     258, 414, 417, 418, 428, 425, 411, 426, 423, 424,
1528     0, 422, 427, 410, 416, 413, 415, 412, 429, 446,
1529     447, 461, 462, 582, 0, 556, 0, 309, 310, 320,
1530     316, 317, 319, 324, 321, 322, 315, 323, 318, 0,
1531     314, 308, 327, 326, 325, 307, 438, 437, 293, 292,
1532     277, 278, 276, 0, 275, 0, 0, 0, 103, 104,
1533     170, 167, 217, 229, 204, 213, 0, 202, 207, 223,
1534     0, 216, 221, 227, 206, 209, 218, 220, 224, 214,
1535     222, 210, 228, 212, 219, 208, 211, 0, 200, 163,
1536     165, 168, 169, 180, 181, 182, 175, 193, 176, 177,
1537     178, 188, 196, 179, 190, 194, 184, 195, 185, 189,
1538     183, 192, 187, 186, 191, 0, 174, 164, 166, 338,
1539     336, 337, 376, 381, 387, 390, 383, 389, 384, 388,
1540     386, 382, 385, 0, 380, 132, 0, 0, 0, 0,
1541     127, 115, 114, 116, 117, 353, 359, 365, 368, 361,
1542     367, 362, 366, 364, 360, 363, 0, 358, 354, 265,
1543     0, 41, 42, 43, 420, 0, 583, 557, 312, 0,
1544     273, 0, 291, 288, 287, 0, 0, 0, 0, 0,
1545     0, 198, 0, 172, 0, 378, 0, 0, 0, 0,
1546     0, 126, 356, 0, 266, 421, 313, 274, 203, 226,
1547     201, 225, 215, 205, 199, 173, 379, 133, 135, 134,
1548     146, 145, 141, 143, 147, 144, 140, 142, 0, 139,
1549     357, 137, 0, 138
1550 michael 913 };
1551    
1552 michael 2473 /* YYPGOTO[NTERM-NUM]. */
1553     static const yytype_int16 yypgoto[] =
1554     {
1555 michael 8866 -882, -882, -882, -777, -304, -881, -629, -882, -882, 950,
1556     -882, -882, -882, -882, 934, -882, -882, -882, -882, -882,
1557     -882, -882, -882, -882, -882, -882, -882, -882, -882, -882,
1558     -882, -882, 1055, -882, -882, -882, -882, -882, -882, 639,
1559     -882, -882, -882, -882, -882, 561, -882, -882, -882, -882,
1560     -882, -882, 935, -882, -882, -882, -882, 99, -882, -882,
1561     -882, -882, -882, -162, -882, -882, -882, 634, -882, -882,
1562     -882, -882, -882, -882, -882, -882, -882, -882, -882, -122,
1563     -882, -882, -882, -117, -882, -882, -882, 812, -882, -882,
1564     -882, -882, -882, -882, -882, -882, -882, -882, -882, -882,
1565     -882, -882, -882, -882, -882, -85, -882, -882, -882, -882,
1566     -882, -90, -882, 690, -882, -882, -882, 26, -882, -882,
1567     -882, -882, -882, 715, -882, -882, -882, -882, -882, -882,
1568     -882, -74, -882, -882, -882, -882, -882, -882, 667, -882,
1569     -882, -882, -882, -882, 954, -882, -882, -882, -882, 586,
1570     -882, -882, -882, -882, -882, -91, -882, -882, -882, 623,
1571     -882, -882, -882, -882, -79, -882, -882, -882, 843, -882,
1572     -882, -882, -882, -882, -882, -882, -882, -882, -882, -882,
1573     -57, -882, -882, -882, -882, -882, -882, -882, -882, 723,
1574     -882, -882, -882, -882, -882, 808, -882, -882, -882, -882,
1575     1074, -882, -882, -882, -882, 796, -882, -882, -882, -882,
1576     1028, -882, -882, -882, -882, -882, -882, -882, -882, -882,
1577     -882, -882, -882, -882, -882, -882, -882, -882, -882, -882,
1578     -882, -882, -882, -882, -882, -882, -882, -882, -882, -882,
1579     -882, -882, -882, -882, -882, -882, -882, -882, -882, -882,
1580     -882, -882, -882, -882, 96, -882, -882, -882, 95, -882,
1581     -882, -882, -882, -882, -882, 1101, -882, -882, -882, -882,
1582     -882, -882, -882, -882, -882, -882, -882, -882, -882, -882,
1583     -882, -882, 963, -882, -882, -882, -882, -882, -882, -882,
1584     -882, -882
1585 michael 2473 };
1586    
1587     /* YYDEFGOTO[NTERM-NUM]. */
1588 michael 913 static const yytype_int16 yydefgoto[] =
1589     {
1590 michael 8866 -1, 1, 26, 818, 819, 1077, 1078, 27, 223, 224,
1591     225, 226, 28, 267, 268, 269, 270, 271, 272, 273,
1592     274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
1593     29, 77, 78, 79, 80, 81, 30, 63, 495, 496,
1594     497, 498, 31, 70, 577, 578, 579, 580, 581, 582,
1595     32, 287, 288, 289, 290, 291, 1036, 1037, 1038, 1039,
1596     1040, 1218, 1298, 1299, 33, 64, 510, 511, 512, 513,
1597     514, 515, 516, 517, 518, 519, 520, 747, 1195, 1196,
1598     521, 742, 1167, 1168, 34, 53, 337, 338, 339, 340,
1599     341, 342, 343, 344, 345, 346, 347, 348, 349, 350,
1600     351, 352, 353, 619, 1063, 1064, 35, 61, 481, 727,
1601     1133, 1134, 482, 483, 484, 1137, 981, 982, 485, 486,
1602     36, 59, 459, 460, 461, 462, 463, 464, 465, 712,
1603     1119, 1120, 466, 467, 468, 37, 65, 526, 527, 528,
1604     529, 530, 38, 295, 296, 297, 39, 72, 590, 591,
1605     592, 593, 594, 803, 1236, 1237, 40, 68, 563, 564,
1606     565, 566, 786, 1213, 1214, 41, 54, 369, 370, 371,
1607     372, 373, 374, 375, 376, 377, 378, 379, 640, 1090,
1608     1091, 380, 381, 382, 383, 384, 42, 60, 472, 473,
1609     474, 475, 43, 55, 388, 389, 390, 391, 44, 118,
1610     119, 120, 45, 57, 398, 399, 400, 401, 46, 169,
1611     170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
1612     180, 181, 182, 183, 184, 185, 186, 187, 188, 189,
1613     190, 191, 192, 193, 194, 195, 196, 197, 198, 199,
1614     200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
1615     210, 211, 428, 942, 943, 212, 427, 918, 919, 213,
1616     214, 215, 216, 47, 97, 98, 99, 100, 101, 102,
1617     103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
1618     48, 240, 241, 242, 243, 244, 245, 246, 247, 248,
1619     249, 250
1620 michael 913 };
1621    
1622 michael 2473 /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
1623     positive, shift that token. If negative, reduce the rule whose
1624     number is the opposite. If YYTABLE_NINF, syntax error. */
1625 michael 1247 static const yytype_int16 yytable[] =
1626 michael 913 {
1627 michael 8866 847, 848, 601, 285, 586, 604, 605, 606, 572, 608,
1628     609, 492, 1088, 1061, 293, 469, 51, 73, 522, 1032,
1629     395, 560, 1130, 693, 116, 1032, 385, 694, 385, 52,
1630     73, 492, 56, 116, 1051, 1052, 1053, 1054, 1055, 1056,
1631     1057, 58, 122, 62, 293, 285, 74, 123, 124, 560,
1632     125, 126, 66, 220, 75, 127, 395, 695, 523, 74,
1633     67, 696, 846, 469, 128, 129, 130, 75, 476, 69,
1634     1103, 1105, 299, 131, 1104, 1106, 132, 133, 134, 251,
1635     1239, 522, 300, 135, 1240, 1062, 586, 117, 71, 386,
1636     493, 386, 220, 1074, 1075, 1076, 117, 524, 113, 661,
1637     136, 663, 664, 587, 114, 667, 252, 573, 253, 115,
1638     493, 137, 674, 294, 138, 139, 76, 679, 1033, 396,
1639     561, 523, 140, 477, 1033, 121, 688, 689, 141, 76,
1640     142, 478, 143, 479, 144, 254, 145, 146, 702, 470,
1641     704, 705, 525, 294, 397, 255, 217, 147, 561, 221,
1642     387, 321, 387, 148, 149, 396, 150, 151, 152, 1268,
1643     524, 153, 49, 50, 1131, 572, 256, 322, 323, 218,
1644     257, 222, 324, 1132, 574, 1244, -125, 301, 258, 1245,
1645     397, 259, 260, 219, 494, 587, 154, 470, 221, 480,
1646     846, 227, 575, 1241, 1242, 1243, 155, 156, 157, 158,
1647     159, 160, 161, 1089, 494, 525, 851, 852, 576, 228,
1648     222, 261, 229, 1034, 284, 292, 325, 1248, -125, 1034,
1649     82, 1249, 588, 286, 499, 589, 298, 262, 302, 760,
1650     263, 264, 265, 569, 326, 327, 471, 1035, 797, 562,
1651     328, 737, 500, 1035, 329, 83, 84, 303, 756, 1219,
1652     330, 787, 85, 162, 163, 164, 652, 165, 166, 331,
1653     332, 333, 501, 393, 573, 286, 167, 562, 168, 1203,
1654     450, 334, 448, 354, 584, 355, 487, 356, 266, 86,
1655     87, 88, 89, 490, 471, 571, 658, 305, 451, 502,
1656     306, 357, 335, 722, 90, 91, 92, 307, 729, 308,
1657     230, 93, 94, 95, 588, 96, 1250, 589, 452, 558,
1658     1251, 358, 309, 542, 835, 595, 805, 838, 1261, 840,
1659     476, 499, 1262, 503, 845, 310, 311, 312, 359, 1204,
1660     360, 574, 1263, 231, 313, 453, 1264, 336, 361, 500,
1661     314, 504, 232, 233, 234, 315, 316, 235, 236, 575,
1662     362, 1265, 237, 238, 239, 1266, 317, 1272, 1301, 501,
1663     1205, 1273, 1302, 318, 392, 576, 402, 403, 404, 1206,
1664     405, 406, 363, 505, 506, 477, 407, 408, 1207, 409,
1665     410, 631, 411, 478, 412, 479, 502, 454, 413, 414,
1666     415, 416, 417, 418, 364, 455, 456, 596, 419, 420,
1667     421, 422, 1208, 423, 1209, 1210, 424, 425, 426, 230,
1668     429, 430, 431, 365, 432, 457, 433, 434, 1211, 435,
1669     503, 436, 366, 437, 122, 507, 1212, 438, 439, 123,
1670     124, 597, 125, 126, 440, 367, 441, 127, 504, 442,
1671     443, 480, 231, 444, 445, 508, 128, 129, 130, 509,
1672     319, 232, 233, 234, 750, 131, 235, 236, 132, 133,
1673     134, 237, 238, 239, 446, 135, 447, 488, 450, 489,
1674     505, 506, 368, 531, 1109, 532, 533, 534, 535, 536,
1675     537, 538, 136, 539, 543, 544, 451, 545, 546, 547,
1676     548, 458, 549, 137, 550, 551, 138, 139, 552, 1110,
1677     718, 553, 599, 648, 140, 600, 452, 1142, 554, 555,
1678     141, 556, 142, 557, 143, 567, 144, 568, 145, 146,
1679     251, 583, 507, 1143, 1144, 598, 602, 603, 607, 147,
1680     540, 1111, 610, 453, 1145, 148, 149, 611, 150, 151,
1681     152, 612, 508, 153, 613, 616, 509, 252, 614, 253,
1682     617, 615, 1290, 654, 1291, 618, 620, 621, 622, 623,
1683     1112, 1113, 624, 625, 626, 627, 1114, 628, 154, 629,
1684     630, 1146, 1147, 633, 1148, 634, 254, 635, 155, 156,
1685     157, 158, 159, 160, 161, 454, 255, 636, 1269, 637,
1686     638, 1115, 639, 455, 456, 641, 642, 1292, 643, 644,
1687     1149, 645, 646, 647, 650, 651, 1116, 256, 1150, 655,
1688     656, 257, 660, 457, 1293, 657, 662, 665, 666, 258,
1689     668, 669, 259, 260, 670, 354, 671, 355, 672, 356,
1690     600, 1151, 673, 1152, 1153, 162, 163, 164, 675, 165,
1691     166, 676, 677, 357, 678, 680, 681, 682, 167, 683,
1692     168, 1154, 261, 1294, 1295, 684, 811, 812, 813, 814,
1693     815, 816, 817, 358, 685, 686, 687, 690, 262, 1117,
1694     701, 263, 264, 265, 1155, 691, 692, 697, 707, 1156,
1695     359, 698, 360, 1157, 699, 700, 703, 1158, 1118, 458,
1696     361, 706, 1159, 708, 710, 711, 1160, 2, 3, 709,
1697     731, 4, 362, 1226, 713, 1296, 724, 1161, 732, 1162,
1698     1163, 1297, 1164, 5, 714, 715, 6, 716, 7, 266,
1699     717, 720, 721, 1165, 363, 725, 8, 726, 728, 733,
1700     734, 1166, 761, 763, 321, 735, 739, 736, 9, 758,
1701     740, 752, 741, 10, 11, 743, 364, 744, 745, 768,
1702     322, 323, 769, 746, 748, 324, 749, 753, 754, 755,
1703     759, 762, 12, 1227, 764, 365, 13, 765, 920, 766,
1704     921, 922, 767, 771, 366, 770, 14, 772, 773, 774,
1705     775, 776, 777, 778, 779, 780, 781, 367, 782, 783,
1706     784, 789, 833, 790, 1228, 15, 16, 792, 785, 325,
1707     791, 799, 793, 1229, 794, 795, 796, 802, 800, 801,
1708     834, 17, 1230, 1173, 804, 1174, 1175, 326, 327, 807,
1709     808, 809, 810, 328, 368, 820, 821, 329, 18, 822,
1710     823, 824, 825, 330, 826, 827, 1231, 828, 1232, 1233,
1711     19, 20, 331, 332, 333, 829, 830, 831, 832, 837,
1712     839, 841, 1234, 898, 334, 836, 842, 843, 844, 846,
1713     1235, 849, 850, 853, 854, 21, 855, 856, 857, 858,
1714     859, 860, 865, 868, 869, 335, 861, 862, 22, 863,
1715     864, 866, 867, 23, 923, 924, 925, 870, 24, 926,
1716     927, 25, 928, 929, 871, 930, 872, 931, 873, 966,
1717     932, 874, 933, 934, 875, 876, 877, 878, 935, 879,
1718     880, 881, 936, 882, 965, 883, 937, 938, 939, 884,
1719     336, 885, 886, 940, 887, 888, 889, 968, 941, 1176,
1720     1177, 1178, 967, 890, 1179, 1180, 891, 1181, 1182, 892,
1721     1183, 893, 1184, 894, 895, 1185, 896, 1186, 1187, 897,
1722     969, 944, 945, 1188, 946, 947, 948, 1189, 82, 949,
1723     950, 1190, 1191, 1192, 951, 952, 953, 954, 1193, 899,
1724     900, 901, 970, 1194, 902, 903, 971, 904, 905, 972,
1725     906, 974, 907, 83, 84, 908, 975, 909, 910, 977,
1726     85, 955, 956, 911, 978, 980, 957, 912, 958, 959,
1727     960, 913, 914, 915, 961, 962, 963, 964, 916, 973,
1728     976, 979, 983, 917, 984, 985, 986, 86, 87, 88,
1729     89, 987, 988, 989, 990, 992, 991, 993, 994, 995,
1730     996, 997, 90, 91, 92, 998, 999, 1000, 1001, 93,
1731     94, 95, 1002, 96, 1003, 1004, 1005, 1006, 1028, 1007,
1732     1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017,
1733     1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027,
1734     1041, 1030, 1042, 1029, 1031, 1043, 1044, 1045, 1046, 1047,
1735     1136, 1049, 1050, 1048, 1058, 1059, 1252, 1060, 1267, 1065,
1736     1066, 1067, 1068, 1278, 1069, 1070, 1280, 1071, 1072, 1073,
1737     1079, 1279, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087,
1738     1092, 1093, 1094, 1095, 1096, 1097, 1098, 1281, 1099, 1100,
1739     1101, 1102, 1107, 1282, 1108, 1121, 1122, 1123, 1135, 1124,
1740     1283, 1125, 304, 1126, 738, 1220, 1127, 1128, 798, 1129,
1741     1303, 1138, 1285, 1139, 751, 1284, 1140, 1141, 1169, 632,
1742     1170, 1171, 1172, 1197, 1198, 1274, 1199, 1200, 1201, 1202,
1743     1215, 1277, 1253, 1221, 1216, 1217, 1222, 1223, 1224, 1225,
1744     1238, 1254, 730, 491, 719, 1276, 806, 1255, 1256, 1257,
1745     1258, 1259, 1300, 1260, 1270, 1271, 788, 1286, 1275, 1287,
1746     1288, 1289, 394, 757, 659, 723, 653, 449, 320, 1246,
1747     0, 559, 1247, 541, 0, 0, 0, 0, 0, 0,
1748     0, 0, 649, 0, 0, 0, 0, 0, 0, 0,
1749     0, 0, 570, 0, 0, 0, 0, 0, 0, 0,
1750 michael 1855 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1751 michael 8866 0, 0, 0, 0, 0, 0, 0, 0, 0, 585
1752 michael 913 };
1753    
1754     static const yytype_int16 yycheck[] =
1755     {
1756 michael 8866 629, 630, 306, 1, 1, 309, 310, 311, 1, 313,
1757     314, 1, 8, 52, 1, 1, 232, 1, 1, 1,
1758     1, 1, 48, 211, 1, 1, 1, 215, 1, 232,
1759     1, 1, 232, 1, 811, 812, 813, 814, 815, 816,
1760     817, 232, 1, 232, 1, 1, 30, 6, 7, 1,
1761     9, 10, 232, 1, 38, 14, 1, 211, 41, 30,
1762     232, 215, 108, 1, 23, 24, 25, 38, 1, 232,
1763     230, 230, 230, 32, 234, 234, 35, 36, 37, 1,
1764     230, 1, 233, 42, 234, 124, 1, 64, 232, 64,
1765     80, 64, 1, 11, 12, 13, 64, 80, 232, 403,
1766     59, 405, 406, 100, 232, 409, 28, 100, 30, 232,
1767     80, 70, 416, 100, 73, 74, 100, 421, 100, 100,
1768     100, 41, 81, 56, 100, 232, 430, 431, 87, 100,
1769     89, 64, 91, 66, 93, 57, 95, 96, 442, 125,
1770     444, 445, 125, 100, 125, 67, 232, 106, 100, 97,
1771     125, 1, 125, 112, 113, 100, 115, 116, 117, 205,
1772     80, 120, 230, 231, 190, 1, 88, 17, 18, 232,
1773     92, 119, 22, 199, 167, 230, 174, 233, 100, 234,
1774     125, 103, 104, 232, 174, 100, 145, 125, 97, 122,
1775     108, 232, 185, 1074, 1075, 1076, 155, 156, 157, 158,
1776     159, 160, 161, 199, 174, 125, 178, 179, 201, 232,
1777     119, 133, 232, 195, 232, 232, 66, 230, 174, 195,
1778     1, 234, 219, 221, 1, 222, 232, 149, 233, 533,
1779     152, 153, 154, 231, 84, 85, 222, 219, 231, 219,
1780     90, 231, 19, 219, 94, 26, 27, 231, 231, 231,
1781     100, 231, 33, 212, 213, 214, 231, 216, 217, 109,
1782     110, 111, 39, 231, 100, 221, 225, 219, 227, 71,
1783     1, 121, 231, 1, 231, 3, 230, 5, 200, 60,
1784     61, 62, 63, 231, 222, 174, 231, 233, 19, 66,
1785     233, 19, 142, 231, 75, 76, 77, 233, 231, 233,
1786     1, 82, 83, 84, 219, 86, 230, 222, 39, 231,
1787     234, 39, 233, 230, 618, 123, 231, 621, 230, 623,
1788     1, 1, 234, 100, 628, 233, 233, 233, 56, 131,
1789     58, 167, 230, 34, 233, 66, 234, 187, 66, 19,
1790     233, 118, 43, 44, 45, 233, 233, 48, 49, 185,
1791     78, 230, 53, 54, 55, 234, 233, 230, 230, 39,
1792     162, 234, 234, 233, 233, 201, 233, 233, 233, 171,
1793     233, 233, 100, 150, 151, 56, 233, 233, 180, 233,
1794     233, 231, 233, 64, 233, 66, 66, 118, 233, 233,
1795     233, 233, 233, 233, 122, 126, 127, 123, 233, 233,
1796     233, 233, 204, 233, 206, 207, 233, 233, 233, 1,
1797     233, 233, 233, 141, 233, 146, 233, 233, 220, 233,
1798     100, 233, 150, 233, 1, 202, 228, 233, 233, 6,
1799     7, 123, 9, 10, 233, 163, 233, 14, 118, 233,
1800     233, 122, 34, 233, 233, 222, 23, 24, 25, 226,
1801     231, 43, 44, 45, 231, 32, 48, 49, 35, 36,
1802     37, 53, 54, 55, 233, 42, 233, 233, 1, 233,
1803     150, 151, 200, 233, 15, 233, 233, 233, 233, 233,
1804     233, 233, 59, 233, 233, 233, 19, 233, 233, 233,
1805     233, 222, 233, 70, 233, 233, 73, 74, 233, 40,
1806     231, 233, 108, 231, 81, 108, 39, 4, 233, 233,
1807     87, 233, 89, 233, 91, 230, 93, 233, 95, 96,
1808     1, 233, 202, 20, 21, 230, 211, 108, 108, 106,
1809     231, 72, 108, 66, 31, 112, 113, 108, 115, 116,
1810     117, 108, 222, 120, 108, 233, 226, 28, 230, 30,
1811     233, 230, 69, 123, 71, 233, 233, 233, 233, 233,
1812     101, 102, 233, 233, 233, 233, 107, 233, 145, 233,
1813     233, 68, 69, 230, 71, 233, 57, 233, 155, 156,
1814     157, 158, 159, 160, 161, 118, 67, 233, 1217, 233,
1815     233, 132, 233, 126, 127, 233, 233, 114, 233, 233,
1816     97, 233, 233, 233, 233, 233, 147, 88, 105, 230,
1817     233, 92, 211, 146, 131, 233, 108, 211, 108, 100,
1818     211, 108, 103, 104, 108, 1, 108, 3, 211, 5,
1819     108, 128, 211, 130, 131, 212, 213, 214, 108, 216,
1820     217, 108, 108, 19, 108, 108, 108, 108, 225, 108,
1821     227, 148, 133, 170, 171, 211, 134, 135, 136, 137,
1822     138, 139, 140, 39, 233, 233, 211, 211, 149, 210,
1823     108, 152, 153, 154, 171, 211, 211, 211, 108, 176,
1824     56, 211, 58, 180, 211, 211, 211, 184, 229, 222,
1825     66, 211, 189, 230, 233, 233, 193, 0, 1, 230,
1826     123, 4, 78, 71, 233, 222, 230, 204, 123, 206,
1827     207, 228, 209, 16, 233, 233, 19, 233, 21, 200,
1828     233, 233, 233, 220, 100, 233, 29, 233, 233, 230,
1829     230, 228, 123, 123, 1, 233, 230, 233, 41, 211,
1830     233, 230, 233, 46, 47, 233, 122, 233, 233, 108,
1831     17, 18, 123, 233, 233, 22, 233, 233, 233, 233,
1832     211, 211, 65, 131, 211, 141, 69, 211, 48, 211,
1833     50, 51, 230, 123, 150, 211, 79, 108, 108, 123,
1834     123, 123, 123, 123, 123, 123, 123, 163, 123, 230,
1835     230, 211, 108, 230, 162, 98, 99, 230, 233, 66,
1836     232, 123, 233, 171, 233, 233, 233, 233, 230, 230,
1837     108, 114, 180, 48, 233, 50, 51, 84, 85, 230,
1838     230, 230, 230, 90, 200, 230, 230, 94, 131, 230,
1839     230, 230, 230, 100, 230, 230, 204, 230, 206, 207,
1840     143, 144, 109, 110, 111, 230, 230, 230, 230, 108,
1841     108, 123, 220, 48, 121, 233, 108, 108, 108, 108,
1842     228, 230, 123, 123, 211, 168, 123, 123, 233, 123,
1843     123, 108, 230, 230, 230, 142, 123, 123, 181, 123,
1844     123, 123, 123, 186, 164, 165, 166, 123, 191, 169,
1845     170, 194, 172, 173, 123, 175, 230, 177, 230, 211,
1846     180, 230, 182, 183, 230, 230, 230, 230, 188, 230,
1847     230, 230, 192, 230, 123, 230, 196, 197, 198, 230,
1848     187, 230, 230, 203, 230, 230, 230, 123, 208, 164,
1849     165, 166, 233, 230, 169, 170, 230, 172, 173, 230,
1850     175, 230, 177, 230, 230, 180, 230, 182, 183, 230,
1851     108, 230, 230, 188, 230, 230, 230, 192, 1, 230,
1852     230, 196, 197, 198, 230, 230, 230, 230, 203, 164,
1853     165, 166, 123, 208, 169, 170, 123, 172, 173, 123,
1854     175, 123, 177, 26, 27, 180, 123, 182, 183, 123,
1855     33, 230, 230, 188, 123, 108, 230, 192, 230, 230,
1856     230, 196, 197, 198, 230, 230, 230, 230, 203, 230,
1857     230, 233, 230, 208, 230, 230, 123, 60, 61, 62,
1858     63, 123, 230, 123, 211, 123, 233, 123, 123, 211,
1859     233, 123, 75, 76, 77, 123, 230, 123, 123, 82,
1860     83, 84, 123, 86, 230, 230, 230, 230, 123, 230,
1861     230, 230, 230, 230, 230, 230, 230, 230, 230, 230,
1862     230, 230, 230, 230, 230, 230, 230, 230, 230, 230,
1863     123, 230, 123, 233, 230, 123, 123, 230, 230, 123,
1864     234, 123, 230, 233, 230, 230, 108, 230, 123, 230,
1865     230, 230, 230, 129, 230, 230, 129, 230, 230, 230,
1866     230, 131, 230, 230, 230, 230, 230, 230, 230, 230,
1867     230, 230, 230, 230, 230, 230, 230, 131, 230, 230,
1868     230, 230, 230, 129, 230, 230, 230, 230, 218, 230,
1869     129, 230, 77, 230, 495, 1036, 230, 230, 577, 230,
1870     1302, 230, 1264, 230, 510, 1262, 230, 230, 230, 337,
1871     230, 230, 230, 230, 230, 1240, 230, 230, 230, 230,
1872     230, 1251, 1136, 230, 233, 233, 230, 230, 230, 230,
1873     230, 230, 482, 223, 459, 1249, 590, 235, 235, 235,
1874     235, 235, 1273, 235, 233, 230, 563, 1266, 1245, 230,
1875     230, 230, 118, 526, 398, 472, 388, 169, 97, 1104,
1876     -1, 267, 1106, 240, -1, -1, -1, -1, -1, -1,
1877     -1, -1, 369, -1, -1, -1, -1, -1, -1, -1,
1878     -1, -1, 287, -1, -1, -1, -1, -1, -1, -1,
1879 michael 1855 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1880 michael 8866 -1, -1, -1, -1, -1, -1, -1, -1, -1, 295
1881 michael 913 };
1882    
1883 michael 2473 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1884     symbol of state STATE-NUM. */
1885 michael 913 static const yytype_uint16 yystos[] =
1886     {
1887 michael 8866 0, 237, 0, 1, 4, 16, 19, 21, 29, 41,
1888 michael 8789 46, 47, 65, 69, 79, 98, 99, 114, 131, 143,
1889 michael 8866 144, 168, 181, 186, 191, 194, 238, 243, 248, 266,
1890     272, 278, 286, 300, 320, 342, 356, 371, 378, 382,
1891     392, 401, 422, 428, 434, 438, 444, 499, 516, 230,
1892     231, 232, 232, 321, 402, 429, 232, 439, 232, 357,
1893     423, 343, 232, 273, 301, 372, 232, 232, 393, 232,
1894     279, 232, 383, 1, 30, 38, 100, 267, 268, 269,
1895     270, 271, 1, 26, 27, 33, 60, 61, 62, 63,
1896     75, 76, 77, 82, 83, 84, 86, 500, 501, 502,
1897     503, 504, 505, 506, 507, 508, 509, 510, 511, 512,
1898     513, 514, 515, 232, 232, 232, 1, 64, 435, 436,
1899     437, 232, 1, 6, 7, 9, 10, 14, 23, 24,
1900 michael 8789 25, 32, 35, 36, 37, 42, 59, 70, 73, 74,
1901     81, 87, 89, 91, 93, 95, 96, 106, 112, 113,
1902     115, 116, 117, 120, 145, 155, 156, 157, 158, 159,
1903 michael 8866 160, 161, 212, 213, 214, 216, 217, 225, 227, 445,
1904     446, 447, 448, 449, 450, 451, 452, 453, 454, 455,
1905     456, 457, 458, 459, 460, 461, 462, 463, 464, 465,
1906     466, 467, 468, 469, 470, 471, 472, 473, 474, 475,
1907     476, 477, 478, 479, 480, 481, 482, 483, 484, 485,
1908     486, 487, 491, 495, 496, 497, 498, 232, 232, 232,
1909     1, 97, 119, 244, 245, 246, 247, 232, 232, 232,
1910 michael 8789 1, 34, 43, 44, 45, 48, 49, 53, 54, 55,
1911 michael 8866 517, 518, 519, 520, 521, 522, 523, 524, 525, 526,
1912     527, 1, 28, 30, 57, 67, 88, 92, 100, 103,
1913     104, 133, 149, 152, 153, 154, 200, 249, 250, 251,
1914     252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
1915     262, 263, 264, 265, 232, 1, 221, 287, 288, 289,
1916     290, 291, 232, 1, 100, 379, 380, 381, 232, 230,
1917     233, 233, 233, 231, 268, 233, 233, 233, 233, 233,
1918     233, 233, 233, 233, 233, 233, 233, 233, 233, 231,
1919     501, 1, 17, 18, 22, 66, 84, 85, 90, 94,
1920     100, 109, 110, 111, 121, 142, 187, 322, 323, 324,
1921     325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
1922     335, 336, 337, 338, 1, 3, 5, 19, 39, 56,
1923     58, 66, 78, 100, 122, 141, 150, 163, 200, 403,
1924     404, 405, 406, 407, 408, 409, 410, 411, 412, 413,
1925     417, 418, 419, 420, 421, 1, 64, 125, 430, 431,
1926     432, 433, 233, 231, 436, 1, 100, 125, 440, 441,
1927     442, 443, 233, 233, 233, 233, 233, 233, 233, 233,
1928     233, 233, 233, 233, 233, 233, 233, 233, 233, 233,
1929     233, 233, 233, 233, 233, 233, 233, 492, 488, 233,
1930     233, 233, 233, 233, 233, 233, 233, 233, 233, 233,
1931     233, 233, 233, 233, 233, 233, 233, 233, 231, 446,
1932     1, 19, 39, 66, 118, 126, 127, 146, 222, 358,
1933     359, 360, 361, 362, 363, 364, 368, 369, 370, 1,
1934     125, 222, 424, 425, 426, 427, 1, 56, 64, 66,
1935     122, 344, 348, 349, 350, 354, 355, 230, 233, 233,
1936     231, 245, 1, 80, 174, 274, 275, 276, 277, 1,
1937     19, 39, 66, 100, 118, 150, 151, 202, 222, 226,
1938     302, 303, 304, 305, 306, 307, 308, 309, 310, 311,
1939     312, 316, 1, 41, 80, 125, 373, 374, 375, 376,
1940     377, 233, 233, 233, 233, 233, 233, 233, 233, 233,
1941     231, 518, 230, 233, 233, 233, 233, 233, 233, 233,
1942     233, 233, 233, 233, 233, 233, 233, 233, 231, 250,
1943     1, 100, 219, 394, 395, 396, 397, 230, 233, 231,
1944     288, 174, 1, 100, 167, 185, 201, 280, 281, 282,
1945     283, 284, 285, 233, 231, 380, 1, 100, 219, 222,
1946     384, 385, 386, 387, 388, 123, 123, 123, 230, 108,
1947     108, 240, 211, 108, 240, 240, 240, 108, 240, 240,
1948     108, 108, 108, 108, 230, 230, 233, 233, 233, 339,
1949     233, 233, 233, 233, 233, 233, 233, 233, 233, 233,
1950     233, 231, 323, 230, 233, 233, 233, 233, 233, 233,
1951     414, 233, 233, 233, 233, 233, 233, 233, 231, 404,
1952     233, 233, 231, 431, 123, 230, 233, 233, 231, 441,
1953     211, 240, 108, 240, 240, 211, 108, 240, 211, 108,
1954     108, 108, 211, 211, 240, 108, 108, 108, 108, 240,
1955     108, 108, 108, 108, 211, 233, 233, 211, 240, 240,
1956     211, 211, 211, 211, 215, 211, 215, 211, 211, 211,
1957     211, 108, 240, 211, 240, 240, 211, 108, 230, 230,
1958     233, 233, 365, 233, 233, 233, 233, 233, 231, 359,
1959     233, 233, 231, 425, 230, 233, 233, 345, 233, 231,
1960     349, 123, 123, 230, 230, 233, 233, 231, 275, 230,
1961     233, 233, 317, 233, 233, 233, 233, 313, 233, 233,
1962     231, 303, 230, 233, 233, 233, 231, 374, 211, 211,
1963     240, 123, 211, 123, 211, 211, 211, 230, 108, 123,
1964     211, 123, 108, 108, 123, 123, 123, 123, 123, 123,
1965     123, 123, 123, 230, 230, 233, 398, 231, 395, 211,
1966     230, 232, 230, 233, 233, 233, 233, 231, 281, 123,
1967     230, 230, 233, 389, 233, 231, 385, 230, 230, 230,
1968     230, 134, 135, 136, 137, 138, 139, 140, 239, 240,
1969     230, 230, 230, 230, 230, 230, 230, 230, 230, 230,
1970     230, 230, 230, 108, 108, 240, 233, 108, 240, 108,
1971     240, 123, 108, 108, 108, 240, 108, 242, 242, 230,
1972     123, 178, 179, 123, 211, 123, 123, 233, 123, 123,
1973     108, 123, 123, 123, 123, 230, 123, 123, 230, 230,
1974     123, 123, 230, 230, 230, 230, 230, 230, 230, 230,
1975     230, 230, 230, 230, 230, 230, 230, 230, 230, 230,
1976     230, 230, 230, 230, 230, 230, 230, 230, 48, 164,
1977     165, 166, 169, 170, 172, 173, 175, 177, 180, 182,
1978     183, 188, 192, 196, 197, 198, 203, 208, 493, 494,
1979     48, 50, 51, 164, 165, 166, 169, 170, 172, 173,
1980     175, 177, 180, 182, 183, 188, 192, 196, 197, 198,
1981     203, 208, 489, 490, 230, 230, 230, 230, 230, 230,
1982     230, 230, 230, 230, 230, 230, 230, 230, 230, 230,
1983     230, 230, 230, 230, 230, 123, 211, 233, 123, 108,
1984     123, 123, 123, 230, 123, 123, 230, 123, 123, 233,
1985     108, 352, 353, 230, 230, 230, 123, 123, 230, 123,
1986     211, 233, 123, 123, 123, 211, 233, 123, 123, 230,
1987     123, 123, 123, 230, 230, 230, 230, 230, 230, 230,
1988     230, 230, 230, 230, 230, 230, 230, 230, 230, 230,
1989     230, 230, 230, 230, 230, 230, 230, 230, 123, 233,
1990     230, 230, 1, 100, 195, 219, 292, 293, 294, 295,
1991     296, 123, 123, 123, 123, 230, 230, 123, 233, 123,
1992     230, 239, 239, 239, 239, 239, 239, 239, 230, 230,
1993     230, 52, 124, 340, 341, 230, 230, 230, 230, 230,
1994     230, 230, 230, 230, 11, 12, 13, 241, 242, 230,
1995     230, 230, 230, 230, 230, 230, 230, 230, 8, 199,
1996     415, 416, 230, 230, 230, 230, 230, 230, 230, 230,
1997     230, 230, 230, 230, 234, 230, 234, 230, 230, 15,
1998     40, 72, 101, 102, 107, 132, 147, 210, 229, 366,
1999     367, 230, 230, 230, 230, 230, 230, 230, 230, 230,
2000     48, 190, 199, 346, 347, 218, 234, 351, 230, 230,
2001     230, 230, 4, 20, 21, 31, 68, 69, 71, 97,
2002     105, 128, 130, 131, 148, 171, 176, 180, 184, 189,
2003     193, 204, 206, 207, 209, 220, 228, 318, 319, 230,
2004     230, 230, 230, 48, 50, 51, 164, 165, 166, 169,
2005     170, 172, 173, 175, 177, 180, 182, 183, 188, 192,
2006     196, 197, 198, 203, 208, 314, 315, 230, 230, 230,
2007     230, 230, 230, 71, 131, 162, 171, 180, 204, 206,
2008     207, 220, 228, 399, 400, 230, 233, 233, 297, 231,
2009     293, 230, 230, 230, 230, 230, 71, 131, 162, 171,
2010     180, 204, 206, 207, 220, 228, 390, 391, 230, 230,
2011     234, 241, 241, 241, 230, 234, 494, 490, 230, 234,
2012     230, 234, 108, 353, 230, 235, 235, 235, 235, 235,
2013     235, 230, 234, 230, 234, 230, 234, 123, 205, 242,
2014     233, 230, 230, 234, 341, 416, 367, 347, 129, 131,
2015     129, 131, 129, 129, 319, 315, 400, 230, 230, 230,
2016     69, 71, 114, 131, 170, 171, 222, 228, 298, 299,
2017     391, 230, 234, 299
2018 michael 913 };
2019    
2020 michael 2473 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
2021     static const yytype_uint16 yyr1[] =
2022     {
2023 michael 8866 0, 236, 237, 237, 238, 238, 238, 238, 238, 238,
2024     238, 238, 238, 238, 238, 238, 238, 238, 238, 238,
2025     238, 238, 238, 238, 238, 238, 238, 238, 239, 239,
2026     240, 240, 240, 240, 240, 240, 240, 240, 241, 241,
2027     242, 242, 242, 242, 243, 244, 244, 245, 245, 245,
2028     246, 247, 248, 249, 249, 250, 250, 250, 250, 250,
2029     250, 250, 250, 250, 250, 250, 250, 250, 250, 250,
2030     250, 251, 252, 253, 254, 255, 256, 257, 258, 259,
2031     260, 261, 262, 263, 264, 265, 266, 267, 267, 268,
2032     268, 268, 268, 269, 270, 271, 273, 272, 274, 274,
2033     275, 275, 275, 276, 277, 279, 278, 280, 280, 281,
2034     281, 281, 281, 281, 282, 283, 284, 285, 286, 287,
2035     287, 288, 288, 288, 289, 291, 290, 292, 292, 293,
2036     293, 293, 293, 294, 295, 295, 297, 296, 298, 298,
2037     299, 299, 299, 299, 299, 299, 299, 299, 301, 300,
2038     302, 302, 303, 303, 303, 303, 303, 303, 303, 303,
2039     303, 303, 303, 304, 305, 306, 307, 308, 309, 310,
2040     311, 313, 312, 314, 314, 315, 315, 315, 315, 315,
2041     315, 315, 315, 315, 315, 315, 315, 315, 315, 315,
2042     315, 315, 315, 315, 315, 315, 315, 317, 316, 318,
2043     318, 319, 319, 319, 319, 319, 319, 319, 319, 319,
2044     319, 319, 319, 319, 319, 319, 319, 319, 319, 319,
2045     319, 319, 319, 319, 319, 319, 319, 319, 319, 319,
2046     321, 320, 322, 322, 323, 323, 323, 323, 323, 323,
2047     323, 323, 323, 323, 323, 323, 323, 323, 323, 323,
2048     324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
2049     334, 335, 336, 337, 339, 338, 340, 340, 341, 341,
2050     343, 342, 345, 344, 346, 346, 347, 347, 347, 348,
2051     348, 349, 349, 349, 349, 349, 351, 350, 352, 352,
2052     353, 353, 354, 355, 357, 356, 358, 358, 359, 359,
2053     359, 359, 359, 359, 359, 359, 359, 360, 361, 362,
2054     363, 365, 364, 366, 366, 367, 367, 367, 367, 367,
2055     367, 367, 367, 367, 367, 368, 369, 370, 372, 371,
2056     373, 373, 374, 374, 374, 374, 375, 376, 377, 378,
2057     379, 379, 380, 380, 381, 383, 382, 384, 384, 385,
2058     385, 385, 385, 386, 387, 389, 388, 390, 390, 391,
2059     391, 391, 391, 391, 391, 391, 391, 391, 391, 393,
2060     392, 394, 394, 395, 395, 395, 396, 398, 397, 399,
2061     399, 400, 400, 400, 400, 400, 400, 400, 400, 400,
2062     400, 402, 401, 403, 403, 404, 404, 404, 404, 404,
2063     404, 404, 404, 404, 404, 404, 404, 404, 404, 404,
2064     405, 406, 407, 408, 409, 410, 411, 412, 412, 414,
2065     413, 415, 415, 416, 416, 417, 418, 419, 420, 421,
2066     423, 422, 424, 424, 425, 425, 425, 426, 427, 429,
2067     428, 430, 430, 431, 431, 431, 432, 433, 434, 435,
2068     435, 436, 436, 437, 439, 438, 440, 440, 441, 441,
2069     441, 442, 443, 444, 445, 445, 446, 446, 446, 446,
2070     446, 446, 446, 446, 446, 446, 446, 446, 446, 446,
2071     446, 446, 446, 446, 446, 446, 446, 446, 446, 446,
2072     446, 446, 446, 446, 446, 446, 446, 446, 446, 446,
2073     446, 446, 446, 446, 446, 446, 446, 446, 446, 446,
2074     446, 446, 446, 447, 448, 449, 450, 451, 452, 453,
2075     454, 455, 456, 457, 458, 459, 460, 461, 462, 463,
2076     464, 465, 466, 467, 468, 469, 470, 471, 472, 473,
2077     473, 474, 474, 475, 476, 477, 478, 479, 480, 481,
2078     482, 483, 484, 485, 486, 488, 487, 489, 489, 490,
2079     490, 490, 490, 490, 490, 490, 490, 490, 490, 490,
2080     490, 490, 490, 490, 490, 490, 490, 490, 490, 490,
2081     490, 492, 491, 493, 493, 494, 494, 494, 494, 494,
2082     494, 494, 494, 494, 494, 494, 494, 494, 494, 494,
2083     494, 494, 494, 494, 494, 495, 496, 497, 498, 499,
2084     500, 500, 501, 501, 501, 501, 501, 501, 501, 501,
2085     501, 501, 501, 501, 501, 501, 501, 502, 503, 504,
2086     505, 506, 507, 508, 509, 510, 511, 512, 513, 514,
2087     515, 516, 517, 517, 518, 518, 518, 518, 518, 518,
2088     518, 518, 518, 518, 519, 520, 521, 522, 523, 524,
2089     525, 526, 527
2090 michael 2473 };
2091 michael 913
2092 michael 2473 /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
2093     static const yytype_uint8 yyr2[] =
2094     {
2095     0, 2, 0, 2, 1, 1, 1, 1, 1, 1,
2096     1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2097 michael 4545 1, 1, 1, 1, 1, 1, 2, 2, 0, 1,
2098     2, 3, 3, 3, 3, 3, 3, 3, 0, 1,
2099     2, 3, 3, 3, 5, 2, 1, 1, 1, 2,
2100     4, 4, 5, 2, 1, 1, 1, 1, 1, 1,
2101 michael 2473 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2102 michael 8866 2, 4, 4, 4, 4, 4, 4, 4, 4, 4,
2103     4, 4, 4, 4, 4, 4, 5, 2, 1, 1,
2104     1, 1, 2, 4, 4, 4, 0, 6, 2, 1,
2105     1, 1, 2, 4, 4, 0, 6, 2, 1, 1,
2106     1, 1, 1, 2, 4, 4, 4, 4, 5, 2,
2107     1, 1, 1, 2, 4, 0, 6, 2, 1, 1,
2108     1, 1, 2, 4, 4, 4, 0, 5, 3, 1,
2109     1, 1, 1, 1, 1, 1, 1, 1, 0, 6,
2110     2, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2111 michael 8318 1, 1, 2, 4, 4, 4, 4, 4, 4, 4,
2112 michael 8866 4, 0, 5, 3, 1, 1, 1, 1, 1, 1,
2113     1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2114     1, 1, 1, 1, 1, 1, 1, 0, 5, 3,
2115     1, 3, 1, 3, 1, 3, 1, 1, 1, 1,
2116     1, 1, 1, 1, 1, 3, 1, 1, 1, 1,
2117     1, 1, 1, 1, 1, 3, 3, 1, 1, 1,
2118     0, 6, 2, 1, 1, 1, 1, 1, 1, 1,
2119     1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
2120 michael 4545 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
2121 michael 8866 4, 4, 4, 4, 0, 5, 3, 1, 1, 1,
2122     0, 6, 0, 5, 3, 1, 1, 1, 1, 2,
2123     1, 1, 1, 1, 1, 2, 0, 5, 3, 1,
2124     1, 3, 4, 4, 0, 6, 2, 1, 1, 1,
2125 michael 8318 1, 1, 1, 1, 1, 1, 2, 4, 4, 4,
2126     4, 0, 5, 3, 1, 1, 1, 1, 1, 1,
2127 michael 8866 1, 1, 1, 1, 1, 4, 4, 4, 0, 6,
2128     2, 1, 1, 1, 1, 2, 4, 4, 4, 5,
2129     2, 1, 1, 1, 4, 0, 6, 2, 1, 1,
2130     1, 1, 2, 4, 4, 0, 5, 3, 1, 1,
2131     1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
2132     6, 2, 1, 1, 1, 2, 4, 0, 5, 3,
2133 michael 8318 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2134 michael 8866 1, 0, 6, 2, 1, 1, 1, 1, 1, 1,
2135     1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
2136     4, 4, 4, 4, 4, 4, 4, 4, 4, 0,
2137     5, 3, 1, 1, 1, 4, 4, 4, 4, 4,
2138     0, 6, 2, 1, 1, 1, 1, 4, 4, 0,
2139     6, 2, 1, 1, 1, 1, 4, 4, 5, 2,
2140     1, 1, 1, 4, 0, 6, 2, 1, 1, 1,
2141     1, 4, 4, 5, 2, 1, 1, 1, 1, 1,
2142 michael 6490 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2143 michael 5987 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2144 michael 5004 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2145 michael 7061 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2146 michael 8866 1, 1, 1, 4, 4, 4, 4, 4, 4, 4,
2147 michael 2473 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
2148     4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
2149     4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
2150 michael 8866 4, 4, 4, 4, 4, 0, 5, 3, 1, 1,
2151 michael 4313 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2152 michael 2473 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2153 michael 8866 1, 0, 5, 3, 1, 1, 1, 1, 1, 1,
2154 michael 6490 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2155 michael 8866 1, 1, 1, 1, 1, 4, 4, 4, 4, 5,
2156     2, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2157     1, 1, 1, 1, 1, 1, 1, 4, 4, 4,
2158     4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
2159     4, 5, 2, 1, 1, 1, 1, 1, 1, 1,
2160     1, 1, 1, 1, 4, 4, 4, 4, 4, 4,
2161     4, 4, 4
2162 michael 2473 };
2163 michael 913
2164    
2165 michael 2473 #define yyerrok (yyerrstatus = 0)
2166     #define yyclearin (yychar = YYEMPTY)
2167     #define YYEMPTY (-2)
2168     #define YYEOF 0
2169 michael 913
2170 michael 2473 #define YYACCEPT goto yyacceptlab
2171     #define YYABORT goto yyabortlab
2172     #define YYERROR goto yyerrorlab
2173 michael 913
2174 michael 2473
2175 michael 913 #define YYRECOVERING() (!!yyerrstatus)
2176    
2177 michael 8866 #define YYBACKUP(Token, Value) \
2178     do \
2179     if (yychar == YYEMPTY) \
2180     { \
2181     yychar = (Token); \
2182     yylval = (Value); \
2183     YYPOPSTACK (yylen); \
2184     yystate = *yyssp; \
2185     goto yybackup; \
2186     } \
2187     else \
2188     { \
2189     yyerror (YY_("syntax error: cannot back up")); \
2190     YYERROR; \
2191     } \
2192     while (0)
2193 michael 913
2194 michael 1651 /* Error token number */
2195 michael 2473 #define YYTERROR 1
2196     #define YYERRCODE 256
2197 michael 913
2198    
2199    
2200     /* Enable debugging if requested. */
2201     #if YYDEBUG
2202    
2203     # ifndef YYFPRINTF
2204     # include <stdio.h> /* INFRINGES ON USER NAME SPACE */
2205     # define YYFPRINTF fprintf
2206     # endif
2207    
2208 michael 2473 # define YYDPRINTF(Args) \
2209     do { \
2210     if (yydebug) \
2211     YYFPRINTF Args; \
2212     } while (0)
2213 michael 913
2214 michael 2473 /* This macro is provided for backward compatibility. */
2215     #ifndef YY_LOCATION_PRINT
2216     # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2217     #endif
2218 michael 913
2219    
2220 michael 2473 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
2221     do { \
2222     if (yydebug) \
2223     { \
2224     YYFPRINTF (stderr, "%s ", Title); \
2225     yy_symbol_print (stderr, \
2226     Type, Value); \
2227     YYFPRINTF (stderr, "\n"); \
2228     } \
2229     } while (0)
2230 michael 913
2231 michael 2473
2232 michael 8760 /*-----------------------------------.
2233     | Print this symbol's value on YYO. |
2234     `-----------------------------------*/
2235 michael 2473
2236 michael 913 static void
2237 michael 8760 yy_symbol_value_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep)
2238 michael 913 {
2239 michael 8760 FILE *yyoutput = yyo;
2240     YYUSE (yyoutput);
2241 michael 913 if (!yyvaluep)
2242     return;
2243     # ifdef YYPRINT
2244     if (yytype < YYNTOKENS)
2245 michael 8760 YYPRINT (yyo, yytoknum[yytype], *yyvaluep);
2246 michael 913 # endif
2247 michael 1835 YYUSE (yytype);
2248 michael 913 }
2249    
2250    
2251 michael 8760 /*---------------------------.
2252     | Print this symbol on YYO. |
2253     `---------------------------*/
2254 michael 913
2255     static void
2256 michael 8760 yy_symbol_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep)
2257 michael 913 {
2258 michael 8760 YYFPRINTF (yyo, "%s %s (",
2259 michael 2473 yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
2260 michael 913
2261 michael 8760 yy_symbol_value_print (yyo, yytype, yyvaluep);
2262     YYFPRINTF (yyo, ")");
2263 michael 913 }
2264    
2265     /*------------------------------------------------------------------.
2266     | yy_stack_print -- Print the state stack from its BOTTOM up to its |
2267     | TOP (included). |
2268     `------------------------------------------------------------------*/
2269    
2270     static void
2271 michael 967 yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
2272 michael 913 {
2273     YYFPRINTF (stderr, "Stack now");
2274 michael 967 for (; yybottom <= yytop; yybottom++)
2275     {
2276     int yybot = *yybottom;
2277     YYFPRINTF (stderr, " %d", yybot);
2278     }
2279 michael 913 YYFPRINTF (stderr, "\n");
2280     }
2281    
2282 michael 2473 # define YY_STACK_PRINT(Bottom, Top) \
2283     do { \
2284     if (yydebug) \
2285     yy_stack_print ((Bottom), (Top)); \
2286     } while (0)
2287 michael 913
2288    
2289     /*------------------------------------------------.
2290     | Report that the YYRULE is going to be reduced. |
2291     `------------------------------------------------*/
2292    
2293     static void
2294 michael 2473 yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule)
2295 michael 913 {
2296 michael 8760 unsigned long yylno = yyrline[yyrule];
2297 michael 913 int yynrhs = yyr2[yyrule];
2298     int yyi;
2299     YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
2300 michael 2473 yyrule - 1, yylno);
2301 michael 913 /* The symbols being reduced. */
2302     for (yyi = 0; yyi < yynrhs; yyi++)
2303     {
2304 michael 967 YYFPRINTF (stderr, " $%d = ", yyi + 1);
2305 michael 2473 yy_symbol_print (stderr,
2306     yystos[yyssp[yyi + 1 - yynrhs]],
2307 michael 8866 &yyvsp[(yyi + 1) - (yynrhs)]
2308 michael 2473 );
2309 michael 967 YYFPRINTF (stderr, "\n");
2310 michael 913 }
2311     }
2312    
2313 michael 2473 # define YY_REDUCE_PRINT(Rule) \
2314     do { \
2315     if (yydebug) \
2316     yy_reduce_print (yyssp, yyvsp, Rule); \
2317     } while (0)
2318 michael 913
2319     /* Nonzero means print parse trace. It is left uninitialized so that
2320     multiple parsers can coexist. */
2321     int yydebug;
2322     #else /* !YYDEBUG */
2323     # define YYDPRINTF(Args)
2324     # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
2325     # define YY_STACK_PRINT(Bottom, Top)
2326     # define YY_REDUCE_PRINT(Rule)
2327     #endif /* !YYDEBUG */
2328    
2329    
2330     /* YYINITDEPTH -- initial size of the parser's stacks. */
2331 michael 2473 #ifndef YYINITDEPTH
2332 michael 913 # define YYINITDEPTH 200
2333     #endif
2334    
2335     /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
2336     if the built-in stack extension method is used).
2337    
2338     Do not make this value too large; the results are undefined if
2339     YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
2340     evaluated with infinite-precision integer arithmetic. */
2341    
2342     #ifndef YYMAXDEPTH
2343     # define YYMAXDEPTH 10000
2344     #endif
2345    
2346    
2347     #if YYERROR_VERBOSE
2348    
2349     # ifndef yystrlen
2350     # if defined __GLIBC__ && defined _STRING_H
2351     # define yystrlen strlen
2352     # else
2353     /* Return the length of YYSTR. */
2354     static YYSIZE_T
2355     yystrlen (const char *yystr)
2356     {
2357     YYSIZE_T yylen;
2358     for (yylen = 0; yystr[yylen]; yylen++)
2359     continue;
2360     return yylen;
2361     }
2362     # endif
2363     # endif
2364    
2365     # ifndef yystpcpy
2366     # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
2367     # define yystpcpy stpcpy
2368     # else
2369     /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
2370     YYDEST. */
2371     static char *
2372     yystpcpy (char *yydest, const char *yysrc)
2373     {
2374     char *yyd = yydest;
2375     const char *yys = yysrc;
2376    
2377     while ((*yyd++ = *yys++) != '\0')
2378     continue;
2379    
2380     return yyd - 1;
2381     }
2382     # endif
2383     # endif
2384    
2385     # ifndef yytnamerr
2386     /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
2387     quotes and backslashes, so that it's suitable for yyerror. The
2388     heuristic is that double-quoting is unnecessary unless the string
2389     contains an apostrophe, a comma, or backslash (other than
2390     backslash-backslash). YYSTR is taken from yytname. If YYRES is
2391     null, do not copy; instead, return the length of what the result
2392     would have been. */
2393     static YYSIZE_T
2394     yytnamerr (char *yyres, const char *yystr)
2395     {
2396     if (*yystr == '"')
2397     {
2398     YYSIZE_T yyn = 0;
2399     char const *yyp = yystr;
2400    
2401     for (;;)
2402 michael 2473 switch (*++yyp)
2403     {
2404     case '\'':
2405     case ',':
2406     goto do_not_strip_quotes;
2407 michael 913
2408 michael 2473 case '\\':
2409     if (*++yyp != '\\')
2410     goto do_not_strip_quotes;
2411 michael 8866 else
2412     goto append;
2413    
2414     append:
2415 michael 2473 default:
2416     if (yyres)
2417     yyres[yyn] = *yyp;
2418     yyn++;
2419     break;
2420 michael 913
2421 michael 2473 case '"':
2422     if (yyres)
2423     yyres[yyn] = '\0';
2424     return yyn;
2425     }
2426 michael 913 do_not_strip_quotes: ;
2427     }
2428    
2429     if (! yyres)
2430     return yystrlen (yystr);
2431    
2432 michael 8760 return (YYSIZE_T) (yystpcpy (yyres, yystr) - yyres);
2433 michael 913 }
2434     # endif
2435    
2436 michael 1133 /* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
2437     about the unexpected token YYTOKEN for the state stack whose top is
2438     YYSSP.
2439    
2440     Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is
2441     not large enough to hold the message. In that case, also set
2442     *YYMSG_ALLOC to the required number of bytes. Return 2 if the
2443     required number of bytes is too large to store. */
2444     static int
2445     yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
2446     yytype_int16 *yyssp, int yytoken)
2447 michael 913 {
2448 michael 2570 YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
2449 michael 1133 YYSIZE_T yysize = yysize0;
2450     enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
2451     /* Internationalized format string. */
2452 michael 2570 const char *yyformat = YY_NULLPTR;
2453 michael 1133 /* Arguments of yyformat. */
2454     char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
2455     /* Number of reported tokens (one for the "unexpected", one per
2456     "expected"). */
2457     int yycount = 0;
2458 michael 913
2459 michael 1133 /* There are many possibilities here to consider:
2460     - If this state is a consistent state with a default action, then
2461     the only way this function was invoked is if the default action
2462     is an error action. In that case, don't check for expected
2463     tokens because there are none.
2464     - The only way there can be no lookahead present (in yychar) is if
2465     this state is a consistent state with a default action. Thus,
2466     detecting the absence of a lookahead is sufficient to determine
2467     that there is no unexpected or expected token to report. In that
2468     case, just report a simple "syntax error".
2469     - Don't assume there isn't a lookahead just because this state is a
2470     consistent state with a default action. There might have been a
2471     previous inconsistent state, consistent state with a non-default
2472     action, or user semantic action that manipulated yychar.
2473     - Of course, the expected token list depends on states to have
2474     correct lookahead information, and it depends on the parser not
2475     to perform extra reductions after fetching a lookahead from the
2476     scanner and before detecting a syntax error. Thus, state merging
2477     (from LALR or IELR) and default reductions corrupt the expected
2478     token list. However, the list is correct for canonical LR with
2479     one exception: it will still contain any token that will not be
2480     accepted due to an error action in a later state.
2481     */
2482     if (yytoken != YYEMPTY)
2483 michael 913 {
2484 michael 1133 int yyn = yypact[*yyssp];
2485     yyarg[yycount++] = yytname[yytoken];
2486     if (!yypact_value_is_default (yyn))
2487     {
2488     /* Start YYX at -YYN if negative to avoid negative indexes in
2489     YYCHECK. In other words, skip the first -YYN actions for
2490     this state because they are default actions. */
2491     int yyxbegin = yyn < 0 ? -yyn : 0;
2492     /* Stay within bounds of both yycheck and yytname. */
2493     int yychecklim = YYLAST - yyn + 1;
2494     int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
2495     int yyx;
2496 michael 913
2497 michael 1133 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
2498     if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
2499     && !yytable_value_is_error (yytable[yyx + yyn]))
2500     {
2501     if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
2502     {
2503     yycount = 1;
2504     yysize = yysize0;
2505     break;
2506     }
2507     yyarg[yycount++] = yytname[yyx];
2508 michael 1680 {
2509 michael 2570 YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
2510 michael 8866 if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)
2511     yysize = yysize1;
2512     else
2513 michael 1680 return 2;
2514     }
2515 michael 1133 }
2516     }
2517     }
2518 michael 913
2519 michael 1133 switch (yycount)
2520     {
2521     # define YYCASE_(N, S) \
2522     case N: \
2523     yyformat = S; \
2524     break
2525 michael 8760 default: /* Avoid compiler warnings. */
2526 michael 1133 YYCASE_(0, YY_("syntax error"));
2527     YYCASE_(1, YY_("syntax error, unexpected %s"));
2528     YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
2529     YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
2530     YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
2531     YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
2532     # undef YYCASE_
2533     }
2534 michael 913
2535 michael 1680 {
2536     YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
2537 michael 8866 if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)
2538     yysize = yysize1;
2539     else
2540 michael 1680 return 2;
2541     }
2542 michael 913
2543 michael 1133 if (*yymsg_alloc < yysize)
2544     {
2545     *yymsg_alloc = 2 * yysize;
2546     if (! (yysize <= *yymsg_alloc
2547     && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
2548     *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
2549     return 1;
2550     }
2551 michael 913
2552 michael 1133 /* Avoid sprintf, as that infringes on the user's name space.
2553     Don't have undefined behavior even if the translation
2554     produced a string with the wrong number of "%s"s. */
2555     {
2556     char *yyp = *yymsg;
2557     int yyi = 0;
2558     while ((*yyp = *yyformat) != '\0')
2559     if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
2560     {
2561     yyp += yytnamerr (yyp, yyarg[yyi++]);
2562     yyformat += 2;
2563     }
2564     else
2565     {
2566     yyp++;
2567     yyformat++;
2568     }
2569     }
2570     return 0;
2571 michael 913 }
2572     #endif /* YYERROR_VERBOSE */
2573    
2574     /*-----------------------------------------------.
2575     | Release the memory associated to this symbol. |
2576     `-----------------------------------------------*/
2577    
2578     static void
2579     yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
2580     {
2581     YYUSE (yyvaluep);
2582     if (!yymsg)
2583     yymsg = "Deleting";
2584     YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
2585    
2586 michael 2473 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2587 michael 1835 YYUSE (yytype);
2588 michael 2473 YY_IGNORE_MAYBE_UNINITIALIZED_END
2589 michael 913 }
2590    
2591 michael 1133
2592 michael 913
2593    
2594 michael 967 /* The lookahead symbol. */
2595 michael 913 int yychar;
2596    
2597 michael 967 /* The semantic value of the lookahead symbol. */
2598 michael 2473 YYSTYPE yylval;
2599 michael 913 /* Number of syntax errors so far. */
2600     int yynerrs;
2601    
2602    
2603 michael 1133 /*----------.
2604     | yyparse. |
2605     `----------*/
2606 michael 913
2607     int
2608     yyparse (void)
2609     {
2610 michael 967 int yystate;
2611     /* Number of tokens to shift before error messages enabled. */
2612     int yyerrstatus;
2613 michael 913
2614 michael 967 /* The stacks and their tools:
2615 michael 2473 'yyss': related to states.
2616     'yyvs': related to semantic values.
2617 michael 913
2618 michael 1425 Refer to the stacks through separate pointers, to allow yyoverflow
2619 michael 967 to reallocate them elsewhere. */
2620 michael 913
2621 michael 967 /* The state stack. */
2622     yytype_int16 yyssa[YYINITDEPTH];
2623     yytype_int16 *yyss;
2624     yytype_int16 *yyssp;
2625 michael 913
2626 michael 967 /* The semantic value stack. */
2627     YYSTYPE yyvsa[YYINITDEPTH];
2628     YYSTYPE *yyvs;
2629     YYSTYPE *yyvsp;
2630 michael 913
2631 michael 967 YYSIZE_T yystacksize;
2632 michael 913
2633 michael 967 int yyn;
2634     int yyresult;
2635     /* Lookahead token as an internal (translated) token number. */
2636 michael 1619 int yytoken = 0;
2637 michael 913 /* The variables used to return semantic value and location from the
2638     action routines. */
2639     YYSTYPE yyval;
2640    
2641 michael 967 #if YYERROR_VERBOSE
2642     /* Buffer for error messages, and its allocated size. */
2643     char yymsgbuf[128];
2644     char *yymsg = yymsgbuf;
2645     YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
2646     #endif
2647 michael 913
2648 michael 967 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
2649    
2650 michael 913 /* The number of symbols on the RHS of the reduced rule.
2651     Keep to zero when no symbol should be popped. */
2652     int yylen = 0;
2653    
2654 michael 1651 yyssp = yyss = yyssa;
2655     yyvsp = yyvs = yyvsa;
2656 michael 967 yystacksize = YYINITDEPTH;
2657    
2658 michael 913 YYDPRINTF ((stderr, "Starting parse\n"));
2659    
2660     yystate = 0;
2661     yyerrstatus = 0;
2662     yynerrs = 0;
2663 michael 967 yychar = YYEMPTY; /* Cause a token to be read. */
2664 michael 913 goto yysetstate;
2665    
2666 michael 8866
2667 michael 913 /*------------------------------------------------------------.
2668 michael 8866 | yynewstate -- push a new state, which is found in yystate. |
2669 michael 913 `------------------------------------------------------------*/
2670 michael 8866 yynewstate:
2671 michael 913 /* In all cases, when you get here, the value and location stacks
2672     have just been pushed. So pushing a state here evens the stacks. */
2673     yyssp++;
2674    
2675 michael 8866
2676     /*--------------------------------------------------------------------.
2677     | yynewstate -- set current state (the top of the stack) to yystate. |
2678     `--------------------------------------------------------------------*/
2679     yysetstate:
2680 michael 8760 *yyssp = (yytype_int16) yystate;
2681 michael 913
2682     if (yyss + yystacksize - 1 <= yyssp)
2683 michael 8866 #if !defined yyoverflow && !defined YYSTACK_RELOCATE
2684     goto yyexhaustedlab;
2685     #else
2686 michael 913 {
2687     /* Get the current used size of the three stacks, in elements. */
2688 michael 8760 YYSIZE_T yysize = (YYSIZE_T) (yyssp - yyss + 1);
2689 michael 913
2690 michael 8866 # if defined yyoverflow
2691 michael 913 {
2692 michael 2473 /* Give user a chance to reallocate the stack. Use copies of
2693     these so that the &'s don't force the real ones into
2694     memory. */
2695     YYSTYPE *yyvs1 = yyvs;
2696     yytype_int16 *yyss1 = yyss;
2697 michael 913
2698 michael 2473 /* Each stack pointer address is followed by the size of the
2699     data in use in that stack, in bytes. This used to be a
2700     conditional around just the two extra args, but that might
2701     be undefined if yyoverflow is a macro. */
2702     yyoverflow (YY_("memory exhausted"),
2703     &yyss1, yysize * sizeof (*yyssp),
2704     &yyvs1, yysize * sizeof (*yyvsp),
2705     &yystacksize);
2706     yyss = yyss1;
2707     yyvs = yyvs1;
2708 michael 913 }
2709 michael 8866 # else /* defined YYSTACK_RELOCATE */
2710 michael 913 /* Extend the stack our own way. */
2711     if (YYMAXDEPTH <= yystacksize)
2712 michael 2473 goto yyexhaustedlab;
2713 michael 913 yystacksize *= 2;
2714     if (YYMAXDEPTH < yystacksize)
2715 michael 2473 yystacksize = YYMAXDEPTH;
2716 michael 913
2717     {
2718 michael 2473 yytype_int16 *yyss1 = yyss;
2719     union yyalloc *yyptr =
2720     (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
2721     if (! yyptr)
2722     goto yyexhaustedlab;
2723     YYSTACK_RELOCATE (yyss_alloc, yyss);
2724     YYSTACK_RELOCATE (yyvs_alloc, yyvs);
2725 michael 8866 # undef YYSTACK_RELOCATE
2726 michael 2473 if (yyss1 != yyssa)
2727     YYSTACK_FREE (yyss1);
2728 michael 913 }
2729     # endif
2730    
2731     yyssp = yyss + yysize - 1;
2732     yyvsp = yyvs + yysize - 1;
2733    
2734     YYDPRINTF ((stderr, "Stack size increased to %lu\n",
2735 michael 8760 (unsigned long) yystacksize));
2736 michael 913
2737     if (yyss + yystacksize - 1 <= yyssp)
2738 michael 2473 YYABORT;
2739 michael 913 }
2740 michael 8866 #endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */
2741 michael 913
2742     YYDPRINTF ((stderr, "Entering state %d\n", yystate));
2743    
2744 michael 967 if (yystate == YYFINAL)
2745     YYACCEPT;
2746    
2747 michael 913 goto yybackup;
2748    
2749 michael 8866
2750 michael 913 /*-----------.
2751     | yybackup. |
2752     `-----------*/
2753     yybackup:
2754     /* Do appropriate processing given the current state. Read a
2755 michael 967 lookahead token if we need one and don't already have one. */
2756 michael 913
2757 michael 967 /* First try to decide what to do without reference to lookahead token. */
2758 michael 913 yyn = yypact[yystate];
2759 michael 1133 if (yypact_value_is_default (yyn))
2760 michael 913 goto yydefault;
2761    
2762 michael 967 /* Not known => get a lookahead token if don't already have one. */
2763 michael 913
2764 michael 967 /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
2765 michael 913 if (yychar == YYEMPTY)
2766     {
2767     YYDPRINTF ((stderr, "Reading a token: "));
2768 michael 2473 yychar = yylex ();
2769 michael 913 }
2770    
2771     if (yychar <= YYEOF)
2772     {
2773     yychar = yytoken = YYEOF;
2774     YYDPRINTF ((stderr, "Now at end of input.\n"));
2775     }
2776     else
2777     {
2778     yytoken = YYTRANSLATE (yychar);
2779     YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
2780     }
2781    
2782     /* If the proper action on seeing token YYTOKEN is to reduce or to
2783     detect an error, take that action. */
2784     yyn += yytoken;
2785     if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
2786     goto yydefault;
2787     yyn = yytable[yyn];
2788     if (yyn <= 0)
2789     {
2790 michael 1133 if (yytable_value_is_error (yyn))
2791     goto yyerrlab;
2792 michael 913 yyn = -yyn;
2793     goto yyreduce;
2794     }
2795    
2796     /* Count tokens shifted since error; after three, turn off error
2797     status. */
2798     if (yyerrstatus)
2799     yyerrstatus--;
2800    
2801 michael 967 /* Shift the lookahead token. */
2802 michael 913 YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
2803    
2804 michael 967 /* Discard the shifted token. */
2805     yychar = YYEMPTY;
2806 michael 913
2807     yystate = yyn;
2808 michael 1619 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2809 michael 913 *++yyvsp = yylval;
2810 michael 1619 YY_IGNORE_MAYBE_UNINITIALIZED_END
2811 michael 913
2812     goto yynewstate;
2813    
2814    
2815     /*-----------------------------------------------------------.
2816     | yydefault -- do the default action for the current state. |
2817     `-----------------------------------------------------------*/
2818     yydefault:
2819     yyn = yydefact[yystate];
2820     if (yyn == 0)
2821     goto yyerrlab;
2822     goto yyreduce;
2823    
2824    
2825     /*-----------------------------.
2826 michael 8866 | yyreduce -- do a reduction. |
2827 michael 913 `-----------------------------*/
2828     yyreduce:
2829     /* yyn is the number of a rule to reduce with. */
2830     yylen = yyr2[yyn];
2831    
2832     /* If YYLEN is nonzero, implement the default value of the action:
2833 michael 2473 '$$ = $1'.
2834 michael 913
2835     Otherwise, the following line sets YYVAL to garbage.
2836     This behavior is undocumented and Bison
2837     users should not rely upon it. Assigning to YYVAL
2838     unconditionally makes the parser a bit smaller, and it avoids a
2839     GCC warning that YYVAL may be used uninitialized. */
2840     yyval = yyvsp[1-yylen];
2841    
2842    
2843     YY_REDUCE_PRINT (yyn);
2844     switch (yyn)
2845     {
2846 michael 4545 case 28:
2847 michael 8866 #line 405 "conf_parser.y" /* yacc.c:1652 */
2848 michael 913 { (yyval.number) = 0; }
2849 michael 8866 #line 2850 "conf_parser.c" /* yacc.c:1652 */
2850 michael 913 break;
2851    
2852 michael 4545 case 30:
2853 michael 8866 #line 406 "conf_parser.y" /* yacc.c:1652 */
2854 michael 3473 { (yyval.number) = (yyvsp[-1].number) + (yyvsp[0].number); }
2855 michael 8866 #line 2856 "conf_parser.c" /* yacc.c:1652 */
2856 michael 913 break;
2857    
2858 michael 4545 case 31:
2859 michael 8866 #line 407 "conf_parser.y" /* yacc.c:1652 */
2860 michael 3473 { (yyval.number) = (yyvsp[-2].number) + (yyvsp[0].number); }
2861 michael 8866 #line 2862 "conf_parser.c" /* yacc.c:1652 */
2862 michael 913 break;
2863    
2864 michael 4545 case 32:
2865 michael 8866 #line 408 "conf_parser.y" /* yacc.c:1652 */
2866 michael 3473 { (yyval.number) = (yyvsp[-2].number) * 60 + (yyvsp[0].number); }
2867 michael 8866 #line 2868 "conf_parser.c" /* yacc.c:1652 */
2868 michael 913 break;
2869    
2870 michael 4545 case 33:
2871 michael 8866 #line 409 "conf_parser.y" /* yacc.c:1652 */
2872 michael 3473 { (yyval.number) = (yyvsp[-2].number) * 60 * 60 + (yyvsp[0].number); }
2873 michael 8866 #line 2874 "conf_parser.c" /* yacc.c:1652 */
2874 michael 913 break;
2875    
2876 michael 4545 case 34:
2877 michael 8866 #line 410 "conf_parser.y" /* yacc.c:1652 */
2878 michael 3473 { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 + (yyvsp[0].number); }
2879 michael 8866 #line 2880 "conf_parser.c" /* yacc.c:1652 */
2880 michael 913 break;
2881    
2882 michael 4545 case 35:
2883 michael 8866 #line 411 "conf_parser.y" /* yacc.c:1652 */
2884 michael 3473 { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 7 + (yyvsp[0].number); }
2885 michael 8866 #line 2886 "conf_parser.c" /* yacc.c:1652 */
2886 michael 913 break;
2887    
2888 michael 4545 case 36:
2889 michael 8866 #line 412 "conf_parser.y" /* yacc.c:1652 */
2890 michael 3473 { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 7 * 4 + (yyvsp[0].number); }
2891 michael 8866 #line 2892 "conf_parser.c" /* yacc.c:1652 */
2892 michael 913 break;
2893    
2894 michael 4545 case 37:
2895 michael 8866 #line 413 "conf_parser.y" /* yacc.c:1652 */
2896 michael 3473 { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 365 + (yyvsp[0].number); }
2897 michael 8866 #line 2898 "conf_parser.c" /* yacc.c:1652 */
2898 michael 1783 break;
2899    
2900 michael 4545 case 38:
2901 michael 8866 #line 416 "conf_parser.y" /* yacc.c:1652 */
2902 michael 1783 { (yyval.number) = 0; }
2903 michael 8866 #line 2904 "conf_parser.c" /* yacc.c:1652 */
2904 michael 1783 break;
2905    
2906 michael 4545 case 40:
2907 michael 8866 #line 417 "conf_parser.y" /* yacc.c:1652 */
2908 michael 2473 { (yyval.number) = (yyvsp[-1].number) + (yyvsp[0].number); }
2909 michael 8866 #line 2910 "conf_parser.c" /* yacc.c:1652 */
2910 michael 913 break;
2911    
2912 michael 4545 case 41:
2913 michael 8866 #line 418 "conf_parser.y" /* yacc.c:1652 */
2914 michael 2473 { (yyval.number) = (yyvsp[-2].number) + (yyvsp[0].number); }
2915 michael 8866 #line 2916 "conf_parser.c" /* yacc.c:1652 */
2916 michael 913 break;
2917    
2918 michael 4545 case 42:
2919 michael 8866 #line 419 "conf_parser.y" /* yacc.c:1652 */
2920 michael 2473 { (yyval.number) = (yyvsp[-2].number) * 1024 + (yyvsp[0].number); }
2921 michael 8866 #line 2922 "conf_parser.c" /* yacc.c:1652 */
2922 michael 913 break;
2923    
2924 michael 4545 case 43:
2925 michael 8866 #line 420 "conf_parser.y" /* yacc.c:1652 */
2926 michael 2473 { (yyval.number) = (yyvsp[-2].number) * 1024 * 1024 + (yyvsp[0].number); }
2927 michael 8866 #line 2928 "conf_parser.c" /* yacc.c:1652 */
2928 michael 913 break;
2929    
2930 michael 4545 case 50:
2931 michael 8866 #line 433 "conf_parser.y" /* yacc.c:1652 */
2932 michael 913 {
2933 michael 967 if (conf_parser_ctx.pass == 2)
2934 michael 978 add_conf_module(libio_basename(yylval.string));
2935 michael 913 }
2936 michael 8866 #line 2937 "conf_parser.c" /* yacc.c:1652 */
2937 michael 913 break;
2938    
2939 michael 4545 case 51:
2940 michael 8866 #line 439 "conf_parser.y" /* yacc.c:1652 */
2941 michael 913 {
2942 michael 967 if (conf_parser_ctx.pass == 2)
2943 michael 913 mod_add_path(yylval.string);
2944     }
2945 michael 8866 #line 2946 "conf_parser.c" /* yacc.c:1652 */
2946 michael 913 break;
2947    
2948 michael 8866 case 71:
2949     #line 470 "conf_parser.y" /* yacc.c:1652 */
2950 michael 913 {
2951 michael 4499 if (conf_parser_ctx.pass == 2)
2952 michael 913 {
2953 michael 7131 xfree(ConfigServerInfo.ssl_certificate_file);
2954 michael 7109 ConfigServerInfo.ssl_certificate_file = xstrdup(yylval.string);
2955 michael 913 }
2956     }
2957 michael 8866 #line 2958 "conf_parser.c" /* yacc.c:1652 */
2958 michael 913 break;
2959    
2960 michael 8866 case 72:
2961     #line 479 "conf_parser.y" /* yacc.c:1652 */
2962 michael 913 {
2963 michael 7131 if (conf_parser_ctx.pass == 2)
2964     {
2965     xfree(ConfigServerInfo.rsa_private_key_file);
2966     ConfigServerInfo.rsa_private_key_file = xstrdup(yylval.string);
2967     }
2968 michael 913 }
2969 michael 8866 #line 2970 "conf_parser.c" /* yacc.c:1652 */
2970 michael 913 break;
2971    
2972 michael 8866 case 73:
2973     #line 488 "conf_parser.y" /* yacc.c:1652 */
2974 michael 913 {
2975 michael 4499 if (conf_parser_ctx.pass == 2)
2976 michael 1306 {
2977 michael 7109 xfree(ConfigServerInfo.ssl_dh_param_file);
2978     ConfigServerInfo.ssl_dh_param_file = xstrdup(yylval.string);
2979 michael 1306 }
2980     }
2981 michael 8866 #line 2982 "conf_parser.c" /* yacc.c:1652 */
2982 michael 1306 break;
2983    
2984 michael 8866 case 74:
2985     #line 497 "conf_parser.y" /* yacc.c:1652 */
2986 michael 1306 {
2987 michael 4499 if (conf_parser_ctx.pass == 2)
2988 michael 7109 {
2989     xfree(ConfigServerInfo.ssl_cipher_list);
2990     ConfigServerInfo.ssl_cipher_list = xstrdup(yylval.string);
2991     }
2992 michael 1306 }
2993 michael 8866 #line 2994 "conf_parser.c" /* yacc.c:1652 */
2994 michael 1306 break;
2995    
2996 michael 8866 case 75:
2997     #line 506 "conf_parser.y" /* yacc.c:1652 */
2998 michael 1306 {
2999 michael 4499 if (conf_parser_ctx.pass == 2)
3000 michael 4114 {
3001 michael 7109 xfree(ConfigServerInfo.ssl_message_digest_algorithm);
3002     ConfigServerInfo.ssl_message_digest_algorithm = xstrdup(yylval.string);
3003 michael 4114 }
3004     }
3005 michael 8866 #line 3006 "conf_parser.c" /* yacc.c:1652 */
3006 michael 4114 break;
3007    
3008 michael 8866 case 76:
3009     #line 515 "conf_parser.y" /* yacc.c:1652 */
3010 michael 4114 {
3011 michael 4499 if (conf_parser_ctx.pass == 2)
3012 michael 4070 {
3013 michael 7109 xfree(ConfigServerInfo.ssl_dh_elliptic_curve);
3014     ConfigServerInfo.ssl_dh_elliptic_curve = xstrdup(yylval.string);
3015 michael 6687 }
3016 michael 4070 }
3017 michael 8866 #line 3018 "conf_parser.c" /* yacc.c:1652 */
3018 michael 4070 break;
3019    
3020 michael 8866 case 77:
3021     #line 524 "conf_parser.y" /* yacc.c:1652 */
3022 michael 4070 {
3023 michael 6671 /* This isn't rehashable */
3024 michael 8866 if (conf_parser_ctx.pass == 2 && ConfigServerInfo.name == NULL)
3025 michael 913 {
3026 michael 8660 if (server_valid_name(yylval.string) == true)
3027 michael 4340 ConfigServerInfo.name = xstrdup(yylval.string);
3028 michael 1117 else
3029 michael 913 {
3030 michael 1752 conf_error_report("Ignoring serverinfo::name -- invalid name. Aborting.");
3031 michael 6671 exit(EXIT_FAILURE);
3032 michael 913 }
3033     }
3034     }
3035 michael 8866 #line 3036 "conf_parser.c" /* yacc.c:1652 */
3036 michael 913 break;
3037    
3038 michael 8866 case 78:
3039     #line 539 "conf_parser.y" /* yacc.c:1652 */
3040 michael 913 {
3041 michael 6671 /* This isn't rehashable */
3042 michael 8866 if (conf_parser_ctx.pass == 2 && ConfigServerInfo.sid == NULL)
3043 michael 913 {
3044     if (valid_sid(yylval.string))
3045 michael 4340 ConfigServerInfo.sid = xstrdup(yylval.string);
3046 michael 913 else
3047     {
3048 michael 1752 conf_error_report("Ignoring serverinfo::sid -- invalid SID. Aborting.");
3049 michael 6671 exit(EXIT_FAILURE);
3050 michael 913 }
3051     }
3052     }
3053 michael 8866 #line 3054 "conf_parser.c" /* yacc.c:1652 */
3054 michael 913 break;
3055    
3056 michael 8866 case 79:
3057     #line 554 "conf_parser.y" /* yacc.c:1652 */
3058 michael 913 {
3059 michael 967 if (conf_parser_ctx.pass == 2)
3060 michael 913 {
3061 michael 7032 xfree(ConfigServerInfo.description);
3062 michael 4340 ConfigServerInfo.description = xstrdup(yylval.string);
3063 michael 4513 strlcpy(me.info, ConfigServerInfo.description, sizeof(me.info));
3064 michael 913 }
3065     }
3066 michael 8866 #line 3067 "conf_parser.c" /* yacc.c:1652 */
3067 michael 913 break;
3068    
3069 michael 8866 case 80:
3070     #line 564 "conf_parser.y" /* yacc.c:1652 */
3071 michael 913 {
3072 michael 967 if (conf_parser_ctx.pass == 2)
3073 michael 913 {
3074     char *p;
3075    
3076 michael 3473 if ((p = strchr(yylval.string, ' ')))
3077 michael 3892 *p = '\0';
3078 michael 913
3079 michael 7032 xfree(ConfigServerInfo.network_name);
3080 michael 4340 ConfigServerInfo.network_name = xstrdup(yylval.string);
3081 michael 913 }
3082     }
3083 michael 8866 #line 3084 "conf_parser.c" /* yacc.c:1652 */
3084 michael 913 break;
3085    
3086 michael 8866 case 81:
3087     #line 578 "conf_parser.y" /* yacc.c:1652 */
3088 michael 913 {
3089 michael 2129 if (conf_parser_ctx.pass != 2)
3090     break;
3091    
3092 michael 7032 xfree(ConfigServerInfo.network_desc);
3093 michael 4340 ConfigServerInfo.network_desc = xstrdup(yylval.string);
3094 michael 913 }
3095 michael 8866 #line 3096 "conf_parser.c" /* yacc.c:1652 */
3096 michael 913 break;
3097    
3098 michael 8866 case 82:
3099     #line 587 "conf_parser.y" /* yacc.c:1652 */
3100 michael 913 {
3101 michael 1736 if (conf_parser_ctx.pass != 2)
3102     break;
3103    
3104 michael 8793 if ((yyvsp[-1].number) < 1)
3105 michael 913 {
3106 michael 8793 conf_error_report("default_max_clients too low, setting to 1");
3107     ConfigServerInfo.default_max_clients = 1;
3108 michael 913 }
3109 michael 2473 else if ((yyvsp[-1].number) > MAXCLIENTS_MAX)
3110 michael 1736 {
3111 michael 3473 char buf[IRCD_BUFSIZE] = "";
3112 michael 1736
3113 michael 8793 snprintf(buf, sizeof(buf), "default_max_clients too high, setting to %d", MAXCLIENTS_MAX);
3114 michael 1752 conf_error_report(buf);
3115 michael 8866
3116 michael 5490 ConfigServerInfo.default_max_clients = MAXCLIENTS_MAX;
3117 michael 1736 }
3118     else
3119 michael 5490 ConfigServerInfo.default_max_clients = (yyvsp[-1].number);
3120 michael 913 }
3121 michael 8866 #line 3122 "conf_parser.c" /* yacc.c:1652 */
3122 michael 913 break;
3123    
3124 michael 8866 case 83:
3125     #line 610 "conf_parser.y" /* yacc.c:1652 */
3126 michael 913 {
3127 michael 1751 if (conf_parser_ctx.pass != 2)
3128     break;
3129    
3130 michael 2473 if ((yyvsp[-1].number) < 9)
3131 michael 1751 {
3132     conf_error_report("max_nick_length too low, setting to 9");
3133 michael 4340 ConfigServerInfo.max_nick_length = 9;
3134 michael 1751 }
3135 michael 2473 else if ((yyvsp[-1].number) > NICKLEN)
3136 michael 1751 {
3137 michael 3473 char buf[IRCD_BUFSIZE] = "";
3138 michael 1751
3139     snprintf(buf, sizeof(buf), "max_nick_length too high, setting to %d", NICKLEN);
3140     conf_error_report(buf);
3141 michael 8866
3142 michael 4340 ConfigServerInfo.max_nick_length = NICKLEN;
3143 michael 1751 }
3144     else
3145 michael 4340 ConfigServerInfo.max_nick_length = (yyvsp[-1].number);
3146 michael 1751 }
3147 michael 8866 #line 3148 "conf_parser.c" /* yacc.c:1652 */
3148 michael 1751 break;
3149    
3150 michael 8866 case 84:
3151     #line 633 "conf_parser.y" /* yacc.c:1652 */
3152 michael 1751 {
3153     if (conf_parser_ctx.pass != 2)
3154     break;
3155    
3156 michael 2473 if ((yyvsp[-1].number) < 80)
3157 michael 1751 {
3158     conf_error_report("max_topic_length too low, setting to 80");
3159 michael 4340 ConfigServerInfo.max_topic_length = 80;
3160 michael 1751 }
3161 michael 2473 else if ((yyvsp[-1].number) > TOPICLEN)
3162 michael 1751 {
3163 michael 3473 char buf[IRCD_BUFSIZE] = "";
3164 michael 1751
3165     snprintf(buf, sizeof(buf), "max_topic_length too high, setting to %d", TOPICLEN);
3166     conf_error_report(buf);
3167 michael 8866
3168 michael 4340 ConfigServerInfo.max_topic_length = TOPICLEN;
3169 michael 1751 }
3170     else
3171 michael 4340 ConfigServerInfo.max_topic_length = (yyvsp[-1].number);
3172 michael 1751 }
3173 michael 8866 #line 3174 "conf_parser.c" /* yacc.c:1652 */
3174 michael 1751 break;
3175    
3176 michael 8866 case 85:
3177     #line 656 "conf_parser.y" /* yacc.c:1652 */
3178 michael 1751 {
3179 michael 967 if (conf_parser_ctx.pass == 2)
3180 michael 4340 ConfigServerInfo.hub = yylval.number;
3181 michael 913 }
3182 michael 8866 #line 3183 "conf_parser.c" /* yacc.c:1652 */
3183 michael 913 break;
3184    
3185 michael 8866 case 93:
3186     #line 674 "conf_parser.y" /* yacc.c:1652 */
3187 michael 913 {
3188 michael 2129 if (conf_parser_ctx.pass != 2)
3189     break;
3190    
3191 michael 7032 xfree(ConfigAdminInfo.name);
3192 michael 4340 ConfigAdminInfo.name = xstrdup(yylval.string);
3193 michael 913 }
3194 michael 8866 #line 3195 "conf_parser.c" /* yacc.c:1652 */
3195 michael 913 break;
3196    
3197 michael 8866 case 94:
3198     #line 683 "conf_parser.y" /* yacc.c:1652 */
3199 michael 913 {
3200 michael 2129 if (conf_parser_ctx.pass != 2)
3201     break;
3202    
3203 michael 7032 xfree(ConfigAdminInfo.email);
3204 michael 4340 ConfigAdminInfo.email = xstrdup(yylval.string);
3205 michael 913 }
3206 michael 8866 #line 3207 "conf_parser.c" /* yacc.c:1652 */
3207 michael 913 break;
3208    
3209 michael 8866 case 95:
3210     #line 692 "conf_parser.y" /* yacc.c:1652 */
3211 michael 913 {
3212 michael 2129 if (conf_parser_ctx.pass != 2)
3213     break;
3214    
3215 michael 7032 xfree(ConfigAdminInfo.description);
3216 michael 4340 ConfigAdminInfo.description = xstrdup(yylval.string);
3217 michael 913 }
3218 michael 8866 #line 3219 "conf_parser.c" /* yacc.c:1652 */
3219 michael 913 break;
3220    
3221 michael 8866 case 96:
3222     #line 705 "conf_parser.y" /* yacc.c:1652 */
3223 michael 913 {
3224 michael 1247 if (conf_parser_ctx.pass == 2)
3225 michael 2150 reset_block_state();
3226     }
3227 michael 8866 #line 3228 "conf_parser.c" /* yacc.c:1652 */
3228 michael 2150 break;
3229    
3230 michael 8866 case 97:
3231     #line 709 "conf_parser.y" /* yacc.c:1652 */
3232 michael 2150 {
3233 michael 4915 dlink_node *node = NULL;
3234 michael 2150
3235     if (conf_parser_ctx.pass != 2)
3236     break;
3237    
3238     if (!block_state.file.buf[0])
3239     break;
3240    
3241 michael 4915 DLINK_FOREACH(node, block_state.mask.list.head)
3242     motd_add(node->data, block_state.file.buf);
3243 michael 2150 }
3244 michael 8866 #line 3245 "conf_parser.c" /* yacc.c:1652 */
3245 michael 2150 break;
3246    
3247 michael 8866 case 103:
3248     #line 726 "conf_parser.y" /* yacc.c:1652 */
3249 michael 2150 {
3250     if (conf_parser_ctx.pass == 2)
3251     dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
3252     }
3253 michael 8866 #line 3254 "conf_parser.c" /* yacc.c:1652 */
3254 michael 2150 break;
3255    
3256 michael 8866 case 104:
3257     #line 732 "conf_parser.y" /* yacc.c:1652 */
3258 michael 2150 {
3259     if (conf_parser_ctx.pass == 2)
3260     strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3261     }
3262 michael 8866 #line 3263 "conf_parser.c" /* yacc.c:1652 */
3263 michael 2150 break;
3264    
3265 michael 8866 case 105:
3266     #line 742 "conf_parser.y" /* yacc.c:1652 */
3267 michael 2150 {
3268     if (conf_parser_ctx.pass == 2)
3269 michael 4545 reset_block_state();
3270     }
3271 michael 8866 #line 3272 "conf_parser.c" /* yacc.c:1652 */
3272 michael 4545 break;
3273    
3274 michael 8866 case 106:
3275     #line 746 "conf_parser.y" /* yacc.c:1652 */
3276 michael 4545 {
3277     if (conf_parser_ctx.pass != 2)
3278     break;
3279    
3280     if (!block_state.command.buf[0] ||
3281     !block_state.name.buf[0] ||
3282     !block_state.nick.buf[0] ||
3283     !block_state.host.buf[0])
3284     break;
3285    
3286     pseudo_register(block_state.name.buf, block_state.nick.buf, block_state.host.buf,
3287     block_state.prepend.buf, block_state.command.buf);
3288     }
3289 michael 8866 #line 3290 "conf_parser.c" /* yacc.c:1652 */
3290 michael 4545 break;
3291    
3292 michael 8866 case 114:
3293     #line 764 "conf_parser.y" /* yacc.c:1652 */
3294 michael 4545 {
3295     if (conf_parser_ctx.pass == 2)
3296     strlcpy(block_state.command.buf, yylval.string, sizeof(block_state.command.buf));
3297     }
3298 michael 8866 #line 3299 "conf_parser.c" /* yacc.c:1652 */
3299 michael 4545 break;
3300    
3301 michael 8866 case 115:
3302     #line 770 "conf_parser.y" /* yacc.c:1652 */
3303 michael 4545 {
3304     if (conf_parser_ctx.pass == 2)
3305     strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
3306     }
3307 michael 8866 #line 3308 "conf_parser.c" /* yacc.c:1652 */
3308 michael 4545 break;
3309    
3310 michael 8866 case 116:
3311     #line 776 "conf_parser.y" /* yacc.c:1652 */
3312 michael 4545 {
3313     if (conf_parser_ctx.pass == 2)
3314     strlcpy(block_state.prepend.buf, yylval.string, sizeof(block_state.prepend.buf));
3315     }
3316 michael 8866 #line 3317 "conf_parser.c" /* yacc.c:1652 */
3317 michael 4545 break;
3318    
3319 michael 8866 case 117:
3320     #line 782 "conf_parser.y" /* yacc.c:1652 */
3321 michael 4545 {
3322     if (conf_parser_ctx.pass == 2)
3323     {
3324     struct split_nuh_item nuh;
3325    
3326     nuh.nuhmask = yylval.string;
3327     nuh.nickptr = NULL;
3328 michael 5603 nuh.userptr = block_state.nick.buf;
3329 michael 4545 nuh.hostptr = block_state.host.buf;
3330     nuh.nicksize = 0;
3331     nuh.usersize = sizeof(block_state.nick.buf);
3332     nuh.hostsize = sizeof(block_state.host.buf);
3333 michael 5603
3334 michael 4545 split_nuh(&nuh);
3335     }
3336     }
3337 michael 8866 #line 3338 "conf_parser.c" /* yacc.c:1652 */
3338 michael 4545 break;
3339    
3340 michael 8866 case 124:
3341     #line 810 "conf_parser.y" /* yacc.c:1652 */
3342 michael 4545 {
3343     if (conf_parser_ctx.pass == 2)
3344 michael 4340 ConfigLog.use_logging = yylval.number;
3345 michael 1247 }
3346 michael 8866 #line 3347 "conf_parser.c" /* yacc.c:1652 */
3347 michael 913 break;
3348    
3349 michael 8866 case 125:
3350     #line 816 "conf_parser.y" /* yacc.c:1652 */
3351 michael 913 {
3352 michael 1647 if (conf_parser_ctx.pass == 2)
3353     reset_block_state();
3354 michael 913 }
3355 michael 8866 #line 3356 "conf_parser.c" /* yacc.c:1652 */
3356 michael 913 break;
3357    
3358 michael 8866 case 126:
3359     #line 820 "conf_parser.y" /* yacc.c:1652 */
3360 michael 913 {
3361 michael 1647 if (conf_parser_ctx.pass != 2)
3362     break;
3363    
3364     if (block_state.type.value && block_state.file.buf[0])
3365 michael 1831 log_set_file(block_state.type.value, block_state.size.value,
3366 michael 1647 block_state.file.buf);
3367 michael 913 }
3368 michael 8866 #line 3369 "conf_parser.c" /* yacc.c:1652 */
3369 michael 913 break;
3370    
3371 michael 8866 case 133:
3372     #line 836 "conf_parser.y" /* yacc.c:1652 */
3373 michael 913 {
3374 michael 1647 if (conf_parser_ctx.pass != 2)
3375     break;
3376    
3377     strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3378 michael 913 }
3379 michael 8866 #line 3380 "conf_parser.c" /* yacc.c:1652 */
3380 michael 913 break;
3381    
3382 michael 8866 case 134:
3383     #line 844 "conf_parser.y" /* yacc.c:1652 */
3384 michael 913 {
3385 michael 2473 block_state.size.value = (yyvsp[-1].number);
3386 michael 913 }
3387 michael 8866 #line 3388 "conf_parser.c" /* yacc.c:1652 */
3388 michael 913 break;
3389    
3390 michael 8866 case 135:
3391     #line 847 "conf_parser.y" /* yacc.c:1652 */
3392 michael 913 {
3393 michael 1647 block_state.size.value = 0;
3394 michael 913 }
3395 michael 8866 #line 3396 "conf_parser.c" /* yacc.c:1652 */
3396 michael 913 break;
3397    
3398 michael 8866 case 136:
3399     #line 852 "conf_parser.y" /* yacc.c:1652 */
3400 michael 913 {
3401 michael 967 if (conf_parser_ctx.pass == 2)
3402 michael 1647 block_state.type.value = 0;
3403 michael 913 }
3404 michael 8866 #line 3405 "conf_parser.c" /* yacc.c:1652 */
3405 michael 913 break;
3406    
3407 michael 8866 case 140:
3408     #line 859 "conf_parser.y" /* yacc.c:1652 */
3409 michael 913 {
3410 michael 967 if (conf_parser_ctx.pass == 2)
3411 michael 1647 block_state.type.value = LOG_TYPE_USER;
3412 michael 913 }
3413 michael 8866 #line 3414 "conf_parser.c" /* yacc.c:1652 */
3414 michael 913 break;
3415    
3416 michael 8866 case 141:
3417     #line 863 "conf_parser.y" /* yacc.c:1652 */
3418 michael 913 {
3419 michael 967 if (conf_parser_ctx.pass == 2)
3420 michael 1647 block_state.type.value = LOG_TYPE_OPER;
3421 michael 913 }
3422 michael 8866 #line 3423 "conf_parser.c" /* yacc.c:1652 */
3423 michael 913 break;
3424    
3425 michael 8866 case 142:
3426     #line 867 "conf_parser.y" /* yacc.c:1652 */
3427 michael 1247 {
3428 michael 967 if (conf_parser_ctx.pass == 2)
3429 michael 5806 block_state.type.value = LOG_TYPE_XLINE;
3430 michael 913 }
3431 michael 8866 #line 3432 "conf_parser.c" /* yacc.c:1652 */
3432 michael 913 break;
3433    
3434 michael 8866 case 143:
3435     #line 871 "conf_parser.y" /* yacc.c:1652 */
3436 michael 913 {
3437 michael 967 if (conf_parser_ctx.pass == 2)
3438 michael 5806 block_state.type.value = LOG_TYPE_RESV;
3439 michael 913 }
3440 michael 8866 #line 3441 "conf_parser.c" /* yacc.c:1652 */
3441 michael 913 break;
3442    
3443 michael 8866 case 144:
3444     #line 875 "conf_parser.y" /* yacc.c:1652 */
3445 michael 913 {
3446 michael 967 if (conf_parser_ctx.pass == 2)
3447 michael 5806 block_state.type.value = LOG_TYPE_DLINE;
3448 michael 913 }
3449 michael 8866 #line 3450 "conf_parser.c" /* yacc.c:1652 */
3450 michael 913 break;
3451    
3452 michael 8866 case 145:
3453     #line 879 "conf_parser.y" /* yacc.c:1652 */
3454 michael 913 {
3455 michael 967 if (conf_parser_ctx.pass == 2)
3456 michael 5806 block_state.type.value = LOG_TYPE_KLINE;
3457 michael 913 }
3458 michael 8866 #line 3459 "conf_parser.c" /* yacc.c:1652 */
3459 michael 913 break;
3460    
3461 michael 8866 case 146:
3462     #line 883 "conf_parser.y" /* yacc.c:1652 */
3463 michael 913 {
3464 michael 967 if (conf_parser_ctx.pass == 2)
3465 michael 5806 block_state.type.value = LOG_TYPE_KILL;
3466 michael 1250 }
3467 michael 8866 #line 3468 "conf_parser.c" /* yacc.c:1652 */
3468 michael 1250 break;
3469    
3470 michael 8866 case 147:
3471     #line 887 "conf_parser.y" /* yacc.c:1652 */
3472 michael 1250 {
3473 michael 2336 if (conf_parser_ctx.pass == 2)
3474 michael 5806 block_state.type.value = LOG_TYPE_DEBUG;
3475 michael 2336 }
3476 michael 8866 #line 3477 "conf_parser.c" /* yacc.c:1652 */
3477 michael 2336 break;
3478    
3479 michael 8866 case 148:
3480     #line 897 "conf_parser.y" /* yacc.c:1652 */
3481 michael 2336 {
3482 michael 1646 if (conf_parser_ctx.pass != 2)
3483     break;
3484    
3485     reset_block_state();
3486     block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
3487 michael 913 }
3488 michael 8866 #line 3489 "conf_parser.c" /* yacc.c:1652 */
3489 michael 913 break;
3490    
3491 michael 8866 case 149:
3492     #line 904 "conf_parser.y" /* yacc.c:1652 */
3493 michael 913 {
3494 michael 4915 dlink_node *node = NULL;
3495 michael 913
3496 michael 1646 if (conf_parser_ctx.pass != 2)
3497     break;
3498 michael 913
3499 michael 1646 if (!block_state.name.buf[0])
3500     break;
3501 michael 6671
3502 michael 1647 if (!block_state.rpass.buf[0])
3503 michael 1646 break;
3504 michael 913
3505 michael 4915 DLINK_FOREACH(node, block_state.mask.list.head)
3506 michael 1646 {
3507     struct split_nuh_item nuh;
3508 michael 7319 char *s = node->data;
3509 michael 913
3510 michael 7319 if (EmptyString(s))
3511     continue;
3512    
3513     nuh.nuhmask = s;
3514 michael 1646 nuh.nickptr = NULL;
3515 michael 1647 nuh.userptr = block_state.user.buf;
3516     nuh.hostptr = block_state.host.buf;
3517 michael 8866
3518 michael 1646 nuh.nicksize = 0;
3519 michael 1647 nuh.usersize = sizeof(block_state.user.buf);
3520     nuh.hostsize = sizeof(block_state.host.buf);
3521 michael 8866
3522 michael 1646 split_nuh(&nuh);
3523 michael 913
3524 michael 8866 struct MaskItem *conf = conf_make(CONF_OPER);
3525     conf->name = xstrdup(block_state.name.buf);
3526     conf->user = xstrdup(block_state.user.buf);
3527     conf->host = xstrdup(block_state.host.buf);
3528 michael 1285
3529 michael 2228 if (block_state.cert.buf[0])
3530     conf->certfp = xstrdup(block_state.cert.buf);
3531    
3532 michael 1647 if (block_state.rpass.buf[0])
3533     conf->passwd = xstrdup(block_state.rpass.buf);
3534 michael 1285
3535 michael 5557 if (block_state.whois.buf[0])
3536     conf->whois = xstrdup(block_state.whois.buf);
3537    
3538 michael 1646 conf->flags = block_state.flags.value;
3539     conf->modes = block_state.modes.value;
3540     conf->port = block_state.port.value;
3541     conf->htype = parse_netmask(conf->host, &conf->addr, &conf->bits);
3542 michael 913
3543 michael 1646 conf_add_class_to_conf(conf, block_state.class.buf);
3544 michael 913 }
3545     }
3546 michael 8866 #line 3547 "conf_parser.c" /* yacc.c:1652 */
3547 michael 913 break;
3548    
3549 michael 8866 case 163:
3550     #line 972 "conf_parser.y" /* yacc.c:1652 */
3551 michael 913 {
3552 michael 967 if (conf_parser_ctx.pass == 2)
3553 michael 1646 strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
3554 michael 913 }
3555 michael 8866 #line 3556 "conf_parser.c" /* yacc.c:1652 */
3556 michael 913 break;
3557    
3558 michael 8866 case 164:
3559     #line 978 "conf_parser.y" /* yacc.c:1652 */
3560 michael 913 {
3561 michael 967 if (conf_parser_ctx.pass == 2)
3562 michael 1646 dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
3563 michael 913 }
3564 michael 8866 #line 3565 "conf_parser.c" /* yacc.c:1652 */
3565 michael 913 break;
3566    
3567 michael 8866 case 165:
3568     #line 984 "conf_parser.y" /* yacc.c:1652 */
3569 michael 913 {
3570 michael 967 if (conf_parser_ctx.pass == 2)
3571 michael 1647 strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
3572 michael 913 }
3573 michael 8866 #line 3574 "conf_parser.c" /* yacc.c:1652 */
3574 michael 913 break;
3575    
3576 michael 8866 case 166:
3577     #line 990 "conf_parser.y" /* yacc.c:1652 */
3578 michael 913 {
3579 michael 5557 if (conf_parser_ctx.pass == 2)
3580     strlcpy(block_state.whois.buf, yylval.string, sizeof(block_state.whois.buf));
3581     }
3582 michael 8866 #line 3583 "conf_parser.c" /* yacc.c:1652 */
3583 michael 5557 break;
3584    
3585 michael 8866 case 167:
3586     #line 996 "conf_parser.y" /* yacc.c:1652 */
3587 michael 5557 {
3588 michael 2129 if (conf_parser_ctx.pass != 2)
3589     break;
3590    
3591     if (yylval.number)
3592     block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
3593     else
3594     block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
3595 michael 913 }
3596 michael 8866 #line 3597 "conf_parser.c" /* yacc.c:1652 */
3597 michael 913 break;
3598    
3599 michael 8866 case 168:
3600     #line 1007 "conf_parser.y" /* yacc.c:1652 */
3601 michael 913 {
3602 michael 967 if (conf_parser_ctx.pass == 2)
3603 michael 2229 strlcpy(block_state.cert.buf, yylval.string, sizeof(block_state.cert.buf));
3604 michael 2228 }
3605 michael 8866 #line 3606 "conf_parser.c" /* yacc.c:1652 */
3606 michael 2228 break;
3607    
3608 michael 8866 case 169:
3609     #line 1013 "conf_parser.y" /* yacc.c:1652 */
3610 michael 2228 {
3611 michael 2248 if (conf_parser_ctx.pass != 2)
3612     break;
3613    
3614     if (yylval.number)
3615     block_state.flags.value |= CONF_FLAGS_SSL;
3616     else
3617     block_state.flags.value &= ~CONF_FLAGS_SSL;
3618     }
3619 michael 8866 #line 3620 "conf_parser.c" /* yacc.c:1652 */
3620 michael 2248 break;
3621    
3622 michael 8866 case 170:
3623     #line 1024 "conf_parser.y" /* yacc.c:1652 */
3624 michael 2248 {
3625 michael 2228 if (conf_parser_ctx.pass == 2)
3626 michael 1646 strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
3627 michael 913 }
3628 michael 8866 #line 3629 "conf_parser.c" /* yacc.c:1652 */
3629 michael 913 break;
3630    
3631 michael 8866 case 171:
3632     #line 1030 "conf_parser.y" /* yacc.c:1652 */
3633 michael 913 {
3634 michael 967 if (conf_parser_ctx.pass == 2)
3635 michael 1646 block_state.modes.value = 0;
3636 michael 913 }
3637 michael 8866 #line 3638 "conf_parser.c" /* yacc.c:1652 */
3638 michael 913 break;
3639    
3640 michael 8866 case 175:
3641     #line 1037 "conf_parser.y" /* yacc.c:1652 */
3642 michael 913 {
3643 michael 967 if (conf_parser_ctx.pass == 2)
3644 michael 2336 block_state.modes.value |= UMODE_BOTS;
3645 michael 913 }
3646 michael 8866 #line 3647 "conf_parser.c" /* yacc.c:1652 */
3647 michael 913 break;
3648    
3649 michael 8866 case 176:
3650     #line 1041 "conf_parser.y" /* yacc.c:1652 */
3651 michael 913 {
3652 michael 967 if (conf_parser_ctx.pass == 2)
3653 michael 2336 block_state.modes.value |= UMODE_CCONN;
3654 michael 913 }
3655 michael 8866 #line 3656 "conf_parser.c" /* yacc.c:1652 */
3656 michael 913 break;
3657    
3658 michael 8866 case 177:
3659     #line 1045 "conf_parser.y" /* yacc.c:1652 */
3660 michael 913 {
3661 michael 967 if (conf_parser_ctx.pass == 2)
3662 michael 2336 block_state.modes.value |= UMODE_DEAF;
3663 michael 913 }
3664 michael 8866 #line 3665 "conf_parser.c" /* yacc.c:1652 */
3665 michael 913 break;
3666    
3667 michael 8866 case 178:
3668     #line 1049 "conf_parser.y" /* yacc.c:1652 */
3669 michael 913 {
3670 michael 967 if (conf_parser_ctx.pass == 2)
3671 michael 2336 block_state.modes.value |= UMODE_DEBUG;
3672 michael 913 }
3673 michael 8866 #line 3674 "conf_parser.c" /* yacc.c:1652 */
3674 michael 913 break;
3675    
3676 michael 8866 case 179:
3677     #line 1053 "conf_parser.y" /* yacc.c:1652 */
3678 michael 913 {
3679 michael 967 if (conf_parser_ctx.pass == 2)
3680 michael 2336 block_state.modes.value |= UMODE_FULL;
3681 michael 913 }
3682 michael 8866 #line 3683 "conf_parser.c" /* yacc.c:1652 */
3683 michael 913 break;
3684    
3685 michael 8866 case 180:
3686     #line 1057 "conf_parser.y" /* yacc.c:1652 */
3687 michael 913 {
3688 michael 967 if (conf_parser_ctx.pass == 2)
3689 michael 2336 block_state.modes.value |= UMODE_HIDDEN;
3690 michael 913 }
3691 michael 8866 #line 3692 "conf_parser.c" /* yacc.c:1652 */
3692 michael 913 break;
3693    
3694 michael 8866 case 181:
3695     #line 1061 "conf_parser.y" /* yacc.c:1652 */
3696 michael 913 {
3697 michael 967 if (conf_parser_ctx.pass == 2)
3698 michael 3513 block_state.modes.value |= UMODE_HIDECHANS;
3699 michael 913 }
3700 michael 8866 #line 3701 "conf_parser.c" /* yacc.c:1652 */
3701 michael 913 break;
3702    
3703 michael 8866 case 182:
3704     #line 1065 "conf_parser.y" /* yacc.c:1652 */
3705 michael 913 {
3706 michael 967 if (conf_parser_ctx.pass == 2)
3707 michael 3513 block_state.modes.value |= UMODE_HIDEIDLE;
3708 michael 913 }
3709 michael 8866 #line 3710 "conf_parser.c" /* yacc.c:1652 */
3710 michael 913 break;
3711    
3712 michael 8866 case 183:
3713     #line 1069 "conf_parser.y" /* yacc.c:1652 */
3714 michael 913 {
3715 michael 967 if (conf_parser_ctx.pass == 2)
3716 michael 3513 block_state.modes.value |= UMODE_SKILL;
3717 michael 913 }
3718 michael 8866 #line 3719 "conf_parser.c" /* yacc.c:1652 */
3719 michael 913 break;
3720    
3721 michael 8866 case 184:
3722     #line 1073 "conf_parser.y" /* yacc.c:1652 */
3723 michael 913 {
3724 michael 967 if (conf_parser_ctx.pass == 2)
3725 michael 3513 block_state.modes.value |= UMODE_NCHANGE;
3726 michael 913 }
3727 michael 8866 #line 3728 "conf_parser.c" /* yacc.c:1652 */
3728 michael 913 break;
3729    
3730 michael 8866 case 185:
3731     #line 1077 "conf_parser.y" /* yacc.c:1652 */
3732 michael 913 {
3733 michael 967 if (conf_parser_ctx.pass == 2)
3734 michael 3513 block_state.modes.value |= UMODE_REJ;
3735 michael 913 }
3736 michael 8866 #line 3737 "conf_parser.c" /* yacc.c:1652 */
3737 michael 913 break;
3738    
3739 michael 8866 case 186:
3740     #line 1081 "conf_parser.y" /* yacc.c:1652 */
3741 michael 913 {
3742 michael 967 if (conf_parser_ctx.pass == 2)
3743 michael 3513 block_state.modes.value |= UMODE_UNAUTH;
3744 michael 913 }
3745 michael 8866 #line 3746 "conf_parser.c" /* yacc.c:1652 */
3746 michael 913 break;
3747    
3748 michael 8866 case 187:
3749     #line 1085 "conf_parser.y" /* yacc.c:1652 */
3750 michael 913 {
3751 michael 967 if (conf_parser_ctx.pass == 2)
3752 michael 3513 block_state.modes.value |= UMODE_SPY;
3753 michael 913 }
3754 michael 8866 #line 3755 "conf_parser.c" /* yacc.c:1652 */
3755 michael 913 break;
3756    
3757 michael 8866 case 188:
3758     #line 1089 "conf_parser.y" /* yacc.c:1652 */
3759 michael 913 {
3760 michael 967 if (conf_parser_ctx.pass == 2)
3761 michael 3513 block_state.modes.value |= UMODE_EXTERNAL;
3762 michael 913 }
3763 michael 8866 #line 3764 "conf_parser.c" /* yacc.c:1652 */
3764 michael 913 break;
3765    
3766 michael 8866 case 189:
3767     #line 1093 "conf_parser.y" /* yacc.c:1652 */
3768 michael 913 {
3769 michael 967 if (conf_parser_ctx.pass == 2)
3770 michael 3869 block_state.modes.value |= UMODE_SERVNOTICE;
3771 michael 913 }
3772 michael 8866 #line 3773 "conf_parser.c" /* yacc.c:1652 */
3773 michael 913 break;
3774    
3775 michael 8866 case 190:
3776     #line 1097 "conf_parser.y" /* yacc.c:1652 */
3777 michael 913 {
3778 michael 967 if (conf_parser_ctx.pass == 2)
3779 michael 3869 block_state.modes.value |= UMODE_INVISIBLE;
3780 michael 913 }
3781 michael 8866 #line 3782 "conf_parser.c" /* yacc.c:1652 */
3782 michael 913 break;
3783    
3784 michael 8866 case 191:
3785     #line 1101 "conf_parser.y" /* yacc.c:1652 */
3786 michael 913 {
3787 michael 1228 if (conf_parser_ctx.pass == 2)
3788 michael 3869 block_state.modes.value |= UMODE_WALLOP;
3789 michael 913 }
3790 michael 8866 #line 3791 "conf_parser.c" /* yacc.c:1652 */
3791 michael 913 break;
3792    
3793 michael 8866 case 192:
3794     #line 1105 "conf_parser.y" /* yacc.c:1652 */
3795 michael 1228 {
3796     if (conf_parser_ctx.pass == 2)
3797 michael 3869 block_state.modes.value |= UMODE_SOFTCALLERID;
3798 michael 1228 }
3799 michael 8866 #line 3800 "conf_parser.c" /* yacc.c:1652 */
3800 michael 913 break;
3801    
3802 michael 8866 case 193:
3803     #line 1109 "conf_parser.y" /* yacc.c:1652 */
3804 michael 913 {
3805 michael 967 if (conf_parser_ctx.pass == 2)
3806 michael 3869 block_state.modes.value |= UMODE_CALLERID;
3807 michael 1855 }
3808 michael 8866 #line 3809 "conf_parser.c" /* yacc.c:1652 */
3809 michael 1855 break;
3810    
3811 michael 8866 case 194:
3812     #line 1113 "conf_parser.y" /* yacc.c:1652 */
3813 michael 1855 {
3814     if (conf_parser_ctx.pass == 2)
3815 michael 3869 block_state.modes.value |= UMODE_LOCOPS;
3816 michael 913 }
3817 michael 8866 #line 3818 "conf_parser.c" /* yacc.c:1652 */
3818 michael 913 break;
3819    
3820 michael 8866 case 195:
3821     #line 1117 "conf_parser.y" /* yacc.c:1652 */
3822 michael 913 {
3823 michael 967 if (conf_parser_ctx.pass == 2)
3824 michael 3869 block_state.modes.value |= UMODE_REGONLY;
3825 michael 913 }
3826 michael 8866 #line 3827 "conf_parser.c" /* yacc.c:1652 */
3827 michael 913 break;
3828    
3829 michael 8866 case 196:
3830     #line 1121 "conf_parser.y" /* yacc.c:1652 */
3831 michael 913 {
3832 michael 967 if (conf_parser_ctx.pass == 2)
3833 michael 3869 block_state.modes.value |= UMODE_FARCONNECT;
3834 michael 3506 }
3835 michael 8866 #line 3836 "conf_parser.c" /* yacc.c:1652 */
3836 michael 3506 break;
3837    
3838 michael 8866 case 197:
3839     #line 1127 "conf_parser.y" /* yacc.c:1652 */
3840 michael 3506 {
3841     if (conf_parser_ctx.pass == 2)
3842 michael 2336 block_state.port.value = 0;
3843 michael 913 }
3844 michael 8866 #line 3845 "conf_parser.c" /* yacc.c:1652 */
3845 michael 913 break;
3846    
3847 michael 8866 case 201:
3848     #line 1134 "conf_parser.y" /* yacc.c:1652 */
3849 michael 913 {
3850 michael 967 if (conf_parser_ctx.pass == 2)
3851 michael 2336 block_state.port.value |= OPER_FLAG_KILL_REMOTE;
3852 michael 913 }
3853 michael 8866 #line 3854 "conf_parser.c" /* yacc.c:1652 */
3854 michael 913 break;
3855    
3856 michael 8866 case 202:
3857     #line 1138 "conf_parser.y" /* yacc.c:1652 */
3858 michael 913 {
3859 michael 967 if (conf_parser_ctx.pass == 2)
3860 michael 2336 block_state.port.value |= OPER_FLAG_KILL;
3861 michael 913 }
3862 michael 8866 #line 3863 "conf_parser.c" /* yacc.c:1652 */
3863 michael 913 break;
3864    
3865 michael 8866 case 203:
3866     #line 1142 "conf_parser.y" /* yacc.c:1652 */
3867 michael 913 {
3868 michael 967 if (conf_parser_ctx.pass == 2)
3869 michael 2336 block_state.port.value |= OPER_FLAG_CONNECT_REMOTE;
3870 michael 913 }
3871 michael 8866 #line 3872 "conf_parser.c" /* yacc.c:1652 */
3872 michael 913 break;
3873    
3874 michael 8866 case 204:
3875     #line 1146 "conf_parser.y" /* yacc.c:1652 */
3876 michael 913 {
3877 michael 967 if (conf_parser_ctx.pass == 2)
3878 michael 2336 block_state.port.value |= OPER_FLAG_CONNECT;
3879 michael 913 }
3880 michael 8866 #line 3881 "conf_parser.c" /* yacc.c:1652 */
3881 michael 913 break;
3882    
3883 michael 8866 case 205:
3884     #line 1150 "conf_parser.y" /* yacc.c:1652 */
3885 michael 913 {
3886 michael 967 if (conf_parser_ctx.pass == 2)
3887 michael 2336 block_state.port.value |= OPER_FLAG_SQUIT_REMOTE;
3888 michael 913 }
3889 michael 8866 #line 3890 "conf_parser.c" /* yacc.c:1652 */
3890 michael 913 break;
3891    
3892 michael 8866 case 206:
3893     #line 1154 "conf_parser.y" /* yacc.c:1652 */
3894 michael 913 {
3895 michael 967 if (conf_parser_ctx.pass == 2)
3896 michael 2336 block_state.port.value |= OPER_FLAG_SQUIT;
3897 michael 913 }
3898 michael 8866 #line 3899 "conf_parser.c" /* yacc.c:1652 */
3899 michael 913 break;
3900    
3901 michael 8866 case 207:
3902     #line 1158 "conf_parser.y" /* yacc.c:1652 */
3903 michael 913 {
3904 michael 967 if (conf_parser_ctx.pass == 2)
3905 michael 4019 block_state.port.value |= OPER_FLAG_KLINE;
3906 michael 913 }
3907 michael 8866 #line 3908 "conf_parser.c" /* yacc.c:1652 */
3908 michael 913 break;
3909    
3910 michael 8866 case 208:
3911     #line 1162 "conf_parser.y" /* yacc.c:1652 */
3912 michael 913 {
3913 michael 967 if (conf_parser_ctx.pass == 2)
3914 michael 2336 block_state.port.value |= OPER_FLAG_UNKLINE;
3915 michael 913 }
3916 michael 8866 #line 3917 "conf_parser.c" /* yacc.c:1652 */
3917 michael 913 break;
3918    
3919 michael 8866 case 209:
3920     #line 1166 "conf_parser.y" /* yacc.c:1652 */
3921 michael 913 {
3922 michael 967 if (conf_parser_ctx.pass == 2)
3923 michael 2336 block_state.port.value |= OPER_FLAG_DLINE;
3924 michael 913 }
3925 michael 8866 #line 3926 "conf_parser.c" /* yacc.c:1652 */
3926 michael 913 break;
3927    
3928 michael 8866 case 210:
3929     #line 1170 "conf_parser.y" /* yacc.c:1652 */
3930 michael 913 {
3931 michael 967 if (conf_parser_ctx.pass == 2)
3932 michael 2336 block_state.port.value |= OPER_FLAG_UNDLINE;
3933 michael 1216 }
3934 michael 8866 #line 3935 "conf_parser.c" /* yacc.c:1652 */
3935 michael 1216 break;
3936    
3937 michael 8866 case 211:
3938     #line 1174 "conf_parser.y" /* yacc.c:1652 */
3939 michael 1216 {
3940     if (conf_parser_ctx.pass == 2)
3941 michael 2853 block_state.port.value |= OPER_FLAG_XLINE;
3942 michael 913 }
3943 michael 8866 #line 3944 "conf_parser.c" /* yacc.c:1652 */
3944 michael 913 break;
3945    
3946 michael 8866 case 212:
3947     #line 1178 "conf_parser.y" /* yacc.c:1652 */
3948 michael 913 {
3949 michael 967 if (conf_parser_ctx.pass == 2)
3950 michael 2853 block_state.port.value |= OPER_FLAG_UNXLINE;
3951 michael 913 }
3952 michael 8866 #line 3953 "conf_parser.c" /* yacc.c:1652 */
3953 michael 913 break;
3954    
3955 michael 8866 case 213:
3956     #line 1182 "conf_parser.y" /* yacc.c:1652 */
3957 michael 913 {
3958 michael 967 if (conf_parser_ctx.pass == 2)
3959 michael 2853 block_state.port.value |= OPER_FLAG_DIE;
3960 michael 913 }
3961 michael 8866 #line 3962 "conf_parser.c" /* yacc.c:1652 */
3962 michael 913 break;
3963    
3964 michael 8866 case 214:
3965     #line 1186 "conf_parser.y" /* yacc.c:1652 */
3966 michael 913 {
3967 michael 1301 if (conf_parser_ctx.pass == 2)
3968 michael 2853 block_state.port.value |= OPER_FLAG_RESTART;
3969 michael 1301 }
3970 michael 8866 #line 3971 "conf_parser.c" /* yacc.c:1652 */
3971 michael 1301 break;
3972    
3973 michael 8866 case 215:
3974     #line 1190 "conf_parser.y" /* yacc.c:1652 */
3975 michael 1301 {
3976 michael 2012 if (conf_parser_ctx.pass == 2)
3977 michael 7061 block_state.port.value |= OPER_FLAG_REHASH_REMOTE;
3978 michael 2012 }
3979 michael 8866 #line 3980 "conf_parser.c" /* yacc.c:1652 */
3980 michael 2012 break;
3981    
3982 michael 8866 case 216:
3983     #line 1194 "conf_parser.y" /* yacc.c:1652 */
3984 michael 2012 {
3985     if (conf_parser_ctx.pass == 2)
3986 michael 7061 block_state.port.value |= OPER_FLAG_REHASH;
3987 michael 2012 }
3988 michael 8866 #line 3989 "conf_parser.c" /* yacc.c:1652 */
3989 michael 2012 break;
3990    
3991 michael 8866 case 217:
3992     #line 1198 "conf_parser.y" /* yacc.c:1652 */
3993 michael 2012 {
3994     if (conf_parser_ctx.pass == 2)
3995 michael 7061 block_state.port.value |= OPER_FLAG_ADMIN;
3996 michael 2012 }
3997 michael 8866 #line 3998 "conf_parser.c" /* yacc.c:1652 */
3998 michael 2012 break;
3999    
4000 michael 8866 case 218:
4001     #line 1202 "conf_parser.y" /* yacc.c:1652 */
4002 michael 2012 {
4003 michael 2038 if (conf_parser_ctx.pass == 2)
4004 michael 7061 block_state.port.value |= OPER_FLAG_GLOBOPS;
4005 michael 2038 }
4006 michael 8866 #line 4007 "conf_parser.c" /* yacc.c:1652 */
4007 michael 2038 break;
4008    
4009 michael 8866 case 219:
4010     #line 1206 "conf_parser.y" /* yacc.c:1652 */
4011 michael 2038 {
4012     if (conf_parser_ctx.pass == 2)
4013 michael 7061 block_state.port.value |= OPER_FLAG_WALLOPS;
4014 michael 2038 }
4015 michael 8866 #line 4016 "conf_parser.c" /* yacc.c:1652 */
4016 michael 2038 break;
4017    
4018 michael 8866 case 220:
4019     #line 1210 "conf_parser.y" /* yacc.c:1652 */
4020 michael 2038 {
4021 michael 2336 if (conf_parser_ctx.pass == 2)
4022 michael 7061 block_state.port.value |= OPER_FLAG_LOCOPS;
4023 michael 2336 }
4024 michael 8866 #line 4025 "conf_parser.c" /* yacc.c:1652 */
4025 michael 2336 break;
4026    
4027 michael 8866 case 221:
4028     #line 1214 "conf_parser.y" /* yacc.c:1652 */
4029 michael 2336 {
4030     if (conf_parser_ctx.pass == 2)
4031 michael 7061 block_state.port.value |= OPER_FLAG_REMOTEBAN;
4032 michael 2336 }
4033 michael 8866 #line 4034 "conf_parser.c" /* yacc.c:1652 */
4034 michael 2336 break;
4035    
4036 michael 8866 case 222:
4037     #line 1218 "conf_parser.y" /* yacc.c:1652 */
4038 michael 2336 {
4039 michael 2853 if (conf_parser_ctx.pass == 2)
4040 michael 7061 block_state.port.value |= OPER_FLAG_SET;
4041 michael 2853 }
4042 michael 8866 #line 4043 "conf_parser.c" /* yacc.c:1652 */
4043 michael 2853 break;
4044    
4045 michael 8866 case 223:
4046     #line 1222 "conf_parser.y" /* yacc.c:1652 */
4047 michael 2853 {
4048 michael 5004 if (conf_parser_ctx.pass == 2)
4049 michael 7061 block_state.port.value |= OPER_FLAG_MODULE;
4050 michael 5004 }
4051 michael 8866 #line 4052 "conf_parser.c" /* yacc.c:1652 */
4052 michael 5004 break;
4053    
4054 michael 8866 case 224:
4055     #line 1226 "conf_parser.y" /* yacc.c:1652 */
4056 michael 5004 {
4057 michael 6450 if (conf_parser_ctx.pass == 2)
4058 michael 7061 block_state.port.value |= OPER_FLAG_OPME;
4059 michael 6450 }
4060 michael 8866 #line 4061 "conf_parser.c" /* yacc.c:1652 */
4061 michael 6450 break;
4062    
4063 michael 8866 case 225:
4064     #line 1230 "conf_parser.y" /* yacc.c:1652 */
4065 michael 6450 {
4066     if (conf_parser_ctx.pass == 2)
4067 michael 7061 block_state.port.value |= OPER_FLAG_NICK_RESV;
4068 michael 6450 }
4069 michael 8866 #line 4070 "conf_parser.c" /* yacc.c:1652 */
4070 michael 6450 break;
4071    
4072 michael 8866 case 226:
4073     #line 1234 "conf_parser.y" /* yacc.c:1652 */
4074 michael 6450 {
4075 michael 6455 if (conf_parser_ctx.pass == 2)
4076 michael 7061 block_state.port.value |= OPER_FLAG_JOIN_RESV;
4077 michael 6455 }
4078 michael 8866 #line 4079 "conf_parser.c" /* yacc.c:1652 */
4079 michael 6455 break;
4080    
4081 michael 8866 case 227:
4082     #line 1238 "conf_parser.y" /* yacc.c:1652 */
4083 michael 6455 {
4084     if (conf_parser_ctx.pass == 2)
4085 michael 7061 block_state.port.value |= OPER_FLAG_RESV;
4086 michael 6455 }
4087 michael 8866 #line 4088 "conf_parser.c" /* yacc.c:1652 */
4088 michael 6455 break;
4089    
4090 michael 8866 case 228:
4091     #line 1242 "conf_parser.y" /* yacc.c:1652 */
4092 michael 6455 {
4093 michael 6490 if (conf_parser_ctx.pass == 2)
4094 michael 7061 block_state.port.value |= OPER_FLAG_UNRESV;
4095 michael 6490 }
4096 michael 8866 #line 4097 "conf_parser.c" /* yacc.c:1652 */
4097 michael 6490 break;
4098    
4099 michael 8866 case 229:
4100     #line 1246 "conf_parser.y" /* yacc.c:1652 */
4101 michael 6490 {
4102 michael 7061 if (conf_parser_ctx.pass == 2)
4103     block_state.port.value |= OPER_FLAG_CLOSE;
4104     }
4105 michael 8866 #line 4106 "conf_parser.c" /* yacc.c:1652 */
4106 michael 7061 break;
4107    
4108 michael 8866 case 230:
4109     #line 1256 "conf_parser.y" /* yacc.c:1652 */
4110 michael 7061 {
4111 michael 1651 if (conf_parser_ctx.pass != 1)
4112     break;
4113    
4114     reset_block_state();
4115    
4116     block_state.ping_freq.value = DEFAULT_PINGFREQUENCY;
4117     block_state.con_freq.value = DEFAULT_CONNECTFREQUENCY;
4118     block_state.max_total.value = MAXIMUM_LINKS_DEFAULT;
4119     block_state.max_sendq.value = DEFAULT_SENDQ;
4120     block_state.max_recvq.value = DEFAULT_RECVQ;
4121 michael 913 }
4122 michael 8866 #line 4123 "conf_parser.c" /* yacc.c:1652 */
4123 michael 913 break;
4124    
4125 michael 8866 case 231:
4126     #line 1268 "conf_parser.y" /* yacc.c:1652 */
4127 michael 913 {
4128 michael 1647 if (conf_parser_ctx.pass != 1)
4129     break;
4130 michael 913
4131 michael 1647 if (!block_state.class.buf[0])
4132     break;
4133 michael 913
4134 michael 8866 struct ClassItem *class = class_find(block_state.class.buf, false);
4135     if (class == NULL)
4136 michael 1647 class = class_make();
4137 michael 913
4138 michael 8866 class->active = true;
4139 michael 7032 xfree(class->name);
4140 michael 1647 class->name = xstrdup(block_state.class.buf);
4141     class->ping_freq = block_state.ping_freq.value;
4142 michael 8497 class->max_perip_local = block_state.max_perip_local.value;
4143     class->max_perip_global = block_state.max_perip_global.value;
4144 michael 1647 class->con_freq = block_state.con_freq.value;
4145     class->max_total = block_state.max_total.value;
4146     class->max_sendq = block_state.max_sendq.value;
4147     class->max_recvq = block_state.max_recvq.value;
4148 michael 3933 class->max_channels = block_state.max_channels.value;
4149 michael 913
4150 michael 1785 if (block_state.min_idle.value > block_state.max_idle.value)
4151     {
4152     block_state.min_idle.value = 0;
4153     block_state.max_idle.value = 0;
4154     block_state.flags.value &= ~CLASS_FLAGS_FAKE_IDLE;
4155     }
4156    
4157     class->flags = block_state.flags.value;
4158     class->min_idle = block_state.min_idle.value;
4159     class->max_idle = block_state.max_idle.value;
4160    
4161 michael 8866 bool diff = (class->cidr_bitlen_ipv4 != block_state.cidr_bitlen_ipv4.value ||
4162     class->cidr_bitlen_ipv6 != block_state.cidr_bitlen_ipv6.value);
4163 michael 1647 class->cidr_bitlen_ipv4 = block_state.cidr_bitlen_ipv4.value;
4164     class->cidr_bitlen_ipv6 = block_state.cidr_bitlen_ipv6.value;
4165     class->number_per_cidr = block_state.number_per_cidr.value;
4166 michael 8607
4167 michael 8609 if (diff)
4168     class_ip_limit_rebuild(class);
4169 michael 913 }
4170 michael 8866 #line 4171 "conf_parser.c" /* yacc.c:1652 */
4171 michael 913 break;
4172    
4173 michael 8866 case 250:
4174     #line 1331 "conf_parser.y" /* yacc.c:1652 */
4175 michael 913 {
4176 michael 967 if (conf_parser_ctx.pass == 1)
4177 michael 1647 strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4178 michael 913 }
4179 michael 8866 #line 4180 "conf_parser.c" /* yacc.c:1652 */
4180 michael 913 break;
4181    
4182 michael 8866 case 251:
4183     #line 1337 "conf_parser.y" /* yacc.c:1652 */
4184 michael 1294 {
4185     if (conf_parser_ctx.pass == 1)
4186 michael 2473 block_state.ping_freq.value = (yyvsp[-1].number);
4187 michael 1294 }
4188 michael 8866 #line 4189 "conf_parser.c" /* yacc.c:1652 */
4189 michael 1294 break;
4190    
4191 michael 8866 case 252:
4192     #line 1343 "conf_parser.y" /* yacc.c:1652 */
4193 michael 8497 {
4194     if (conf_parser_ctx.pass == 1)
4195     block_state.max_perip_local.value = (yyvsp[-1].number);
4196     }
4197 michael 8866 #line 4198 "conf_parser.c" /* yacc.c:1652 */
4198 michael 8497 break;
4199    
4200 michael 8866 case 253:
4201     #line 1349 "conf_parser.y" /* yacc.c:1652 */
4202 michael 913 {
4203 michael 967 if (conf_parser_ctx.pass == 1)
4204 michael 8497 block_state.max_perip_global.value = (yyvsp[-1].number);
4205 michael 913 }
4206 michael 8866 #line 4207 "conf_parser.c" /* yacc.c:1652 */
4207 michael 913 break;
4208    
4209 michael 8866 case 254:
4210     #line 1355 "conf_parser.y" /* yacc.c:1652 */
4211 michael 913 {
4212 michael 967 if (conf_parser_ctx.pass == 1)
4213 michael 2473 block_state.con_freq.value = (yyvsp[-1].number);
4214 michael 913 }
4215 michael 8866 #line 4216 "conf_parser.c" /* yacc.c:1652 */
4216 michael 913 break;
4217    
4218 michael 8866 case 255:
4219     #line 1361 "conf_parser.y" /* yacc.c:1652 */
4220 michael 913 {
4221 michael 967 if (conf_parser_ctx.pass == 1)
4222 michael 3933 block_state.max_channels.value = (yyvsp[-1].number);
4223     }
4224 michael 8866 #line 4225 "conf_parser.c" /* yacc.c:1652 */
4225 michael 3933 break;
4226    
4227 michael 8866 case 256:
4228     #line 1367 "conf_parser.y" /* yacc.c:1652 */
4229 michael 3933 {
4230     if (conf_parser_ctx.pass == 1)
4231 michael 2473 block_state.max_total.value = (yyvsp[-1].number);
4232 michael 913 }
4233 michael 8866 #line 4234 "conf_parser.c" /* yacc.c:1652 */
4234 michael 913 break;
4235    
4236 michael 8866 case 257:
4237     #line 1373 "conf_parser.y" /* yacc.c:1652 */
4238 michael 913 {
4239 michael 967 if (conf_parser_ctx.pass == 1)
4240 michael 8497 block_state.max_sendq.value = (yyvsp[-1].number);
4241 michael 913 }
4242 michael 8866 #line 4243 "conf_parser.c" /* yacc.c:1652 */
4243 michael 913 break;
4244    
4245 michael 8866 case 258:
4246     #line 1379 "conf_parser.y" /* yacc.c:1652 */
4247 michael 913 {
4248 michael 967 if (conf_parser_ctx.pass == 1)
4249 michael 2473 if ((yyvsp[-1].number) >= CLIENT_FLOOD_MIN && (yyvsp[-1].number) <= CLIENT_FLOOD_MAX)
4250     block_state.max_recvq.value = (yyvsp[-1].number);
4251 michael 1516 }
4252 michael 8866 #line 4253 "conf_parser.c" /* yacc.c:1652 */
4253 michael 1516 break;
4254    
4255 michael 8866 case 259:
4256     #line 1386 "conf_parser.y" /* yacc.c:1652 */
4257 michael 1516 {
4258     if (conf_parser_ctx.pass == 1)
4259 michael 2473 block_state.cidr_bitlen_ipv4.value = (yyvsp[-1].number) > 32 ? 32 : (yyvsp[-1].number);
4260 michael 913 }
4261 michael 8866 #line 4262 "conf_parser.c" /* yacc.c:1652 */
4262 michael 913 break;
4263    
4264 michael 8866 case 260:
4265     #line 1392 "conf_parser.y" /* yacc.c:1652 */
4266 michael 913 {
4267 michael 967 if (conf_parser_ctx.pass == 1)
4268 michael 2473 block_state.cidr_bitlen_ipv6.value = (yyvsp[-1].number) > 128 ? 128 : (yyvsp[-1].number);
4269 michael 913 }
4270 michael 8866 #line 4271 "conf_parser.c" /* yacc.c:1652 */
4271 michael 913 break;
4272    
4273 michael 8866 case 261:
4274     #line 1398 "conf_parser.y" /* yacc.c:1652 */
4275 michael 913 {
4276 michael 967 if (conf_parser_ctx.pass == 1)
4277 michael 2473 block_state.number_per_cidr.value = (yyvsp[-1].number);
4278 michael 913 }
4279 michael 8866 #line 4280 "conf_parser.c" /* yacc.c:1652 */
4280 michael 913 break;
4281    
4282 michael 8866 case 262:
4283     #line 1404 "conf_parser.y" /* yacc.c:1652 */
4284 michael 913 {
4285 michael 1785 if (conf_parser_ctx.pass != 1)
4286     break;
4287    
4288 michael 2473 block_state.min_idle.value = (yyvsp[-1].number);
4289 michael 1785 block_state.flags.value |= CLASS_FLAGS_FAKE_IDLE;
4290 michael 1783 }
4291 michael 8866 #line 4292 "conf_parser.c" /* yacc.c:1652 */
4292 michael 1783 break;
4293    
4294 michael 8866 case 263:
4295     #line 1413 "conf_parser.y" /* yacc.c:1652 */
4296 michael 1783 {
4297 michael 1785 if (conf_parser_ctx.pass != 1)
4298     break;
4299    
4300 michael 2473 block_state.max_idle.value = (yyvsp[-1].number);
4301 michael 1785 block_state.flags.value |= CLASS_FLAGS_FAKE_IDLE;
4302 michael 1783 }
4303 michael 8866 #line 4304 "conf_parser.c" /* yacc.c:1652 */
4304 michael 1783 break;
4305    
4306 michael 8866 case 264:
4307     #line 1422 "conf_parser.y" /* yacc.c:1652 */
4308 michael 1783 {
4309     if (conf_parser_ctx.pass == 1)
4310 michael 1785 block_state.flags.value &= CLASS_FLAGS_FAKE_IDLE;
4311 michael 1783 }
4312 michael 8866 #line 4313 "conf_parser.c" /* yacc.c:1652 */
4313 michael 1783 break;
4314    
4315 michael 8866 case 268:
4316     #line 1429 "conf_parser.y" /* yacc.c:1652 */
4317 michael 1783 {
4318     if (conf_parser_ctx.pass == 1)
4319     block_state.flags.value |= CLASS_FLAGS_RANDOM_IDLE;
4320     }
4321 michael 8866 #line 4322 "conf_parser.c" /* yacc.c:1652 */
4322 michael 1783 break;
4323    
4324 michael 8866 case 269:
4325     #line 1433 "conf_parser.y" /* yacc.c:1652 */
4326 michael 1783 {
4327     if (conf_parser_ctx.pass == 1)
4328     block_state.flags.value |= CLASS_FLAGS_HIDE_IDLE_FROM_OPERS;
4329     }
4330 michael 8866 #line 4331 "conf_parser.c" /* yacc.c:1652 */
4331 michael 1783 break;
4332    
4333 michael 8866 case 270:
4334     #line 1443 "conf_parser.y" /* yacc.c:1652 */
4335 michael 1783 {
4336 michael 967 if (conf_parser_ctx.pass == 2)
4337 michael 1646 reset_block_state();
4338 michael 913 }
4339 michael 8866 #line 4340 "conf_parser.c" /* yacc.c:1652 */
4340 michael 913 break;
4341    
4342 michael 8866 case 272:
4343     #line 1449 "conf_parser.y" /* yacc.c:1652 */
4344 michael 913 {
4345 michael 1646 block_state.flags.value = 0;
4346 michael 913 }
4347 michael 8866 #line 4348 "conf_parser.c" /* yacc.c:1652 */
4348 michael 913 break;
4349    
4350 michael 8866 case 276:
4351     #line 1455 "conf_parser.y" /* yacc.c:1652 */
4352 michael 913 {
4353 michael 967 if (conf_parser_ctx.pass == 2)
4354 michael 1646 block_state.flags.value |= LISTENER_SSL;
4355 michael 913 }
4356 michael 8866 #line 4357 "conf_parser.c" /* yacc.c:1652 */
4357 michael 913 break;
4358    
4359 michael 8866 case 277:
4360     #line 1459 "conf_parser.y" /* yacc.c:1652 */
4361 michael 913 {
4362 michael 967 if (conf_parser_ctx.pass == 2)
4363 michael 1647 block_state.flags.value |= LISTENER_HIDDEN;
4364 michael 913 }
4365 michael 8866 #line 4366 "conf_parser.c" /* yacc.c:1652 */
4366 michael 913 break;
4367    
4368 michael 8866 case 278:
4369     #line 1463 "conf_parser.y" /* yacc.c:1652 */
4370 michael 913 {
4371 michael 967 if (conf_parser_ctx.pass == 2)
4372 michael 1647 block_state.flags.value |= LISTENER_SERVER;
4373 michael 913 }
4374 michael 8866 #line 4375 "conf_parser.c" /* yacc.c:1652 */
4375 michael 913 break;
4376    
4377 michael 8866 case 286:
4378     #line 1471 "conf_parser.y" /* yacc.c:1652 */
4379 michael 1648 { block_state.flags.value = 0; }
4380 michael 8866 #line 4381 "conf_parser.c" /* yacc.c:1652 */
4381 michael 913 break;
4382    
4383 michael 8866 case 290:
4384     #line 1476 "conf_parser.y" /* yacc.c:1652 */
4385 michael 913 {
4386 michael 967 if (conf_parser_ctx.pass == 2)
4387 michael 913 {
4388 michael 7109 #ifndef HAVE_TLS
4389 michael 1646 if (block_state.flags.value & LISTENER_SSL)
4390 michael 4499 {
4391 michael 7109 conf_error_report("TLS not available - port closed");
4392 michael 4499 break;
4393     }
4394 michael 913 #endif
4395 michael 6371 listener_add((yyvsp[0].number), block_state.addr.buf, block_state.flags.value);
4396 michael 913 }
4397     }
4398 michael 8866 #line 4399 "conf_parser.c" /* yacc.c:1652 */
4399 michael 913 break;
4400    
4401 michael 8866 case 291:
4402     #line 1489 "conf_parser.y" /* yacc.c:1652 */
4403 michael 913 {
4404 michael 967 if (conf_parser_ctx.pass == 2)
4405 michael 913 {
4406 michael 7109 #ifndef HAVE_TLS
4407 michael 1646 if (block_state.flags.value & LISTENER_SSL)
4408 michael 4499 {
4409 michael 7109 conf_error_report("TLS not available - port closed");
4410 michael 4499 break;
4411     }
4412 michael 913 #endif
4413    
4414 michael 3473 for (int i = (yyvsp[-2].number); i <= (yyvsp[0].number); ++i)
4415 michael 6371 listener_add(i, block_state.addr.buf, block_state.flags.value);
4416 michael 913 }
4417     }
4418 michael 8866 #line 4419 "conf_parser.c" /* yacc.c:1652 */
4419 michael 913 break;
4420    
4421 michael 8866 case 292:
4422     #line 1506 "conf_parser.y" /* yacc.c:1652 */
4423 michael 913 {
4424 michael 967 if (conf_parser_ctx.pass == 2)
4425 michael 1646 strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4426 michael 913 }
4427 michael 8866 #line 4428 "conf_parser.c" /* yacc.c:1652 */
4428 michael 913 break;
4429    
4430 michael 8866 case 293:
4431     #line 1512 "conf_parser.y" /* yacc.c:1652 */
4432 michael 913 {
4433 michael 967 if (conf_parser_ctx.pass == 2)
4434 michael 1646 strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4435 michael 913 }
4436 michael 8866 #line 4437 "conf_parser.c" /* yacc.c:1652 */
4437 michael 913 break;
4438    
4439 michael 8866 case 294:
4440     #line 1522 "conf_parser.y" /* yacc.c:1652 */
4441 michael 913 {
4442 michael 967 if (conf_parser_ctx.pass == 2)
4443 michael 1646 reset_block_state();
4444 michael 913 }
4445 michael 8866 #line 4446 "conf_parser.c" /* yacc.c:1652 */
4446 michael 913 break;
4447    
4448 michael 8866 case 295:
4449     #line 1526 "conf_parser.y" /* yacc.c:1652 */
4450 michael 913 {
4451 michael 4915 dlink_node *node = NULL;
4452 michael 913
4453 michael 1646 if (conf_parser_ctx.pass != 2)
4454 michael 913 break;
4455    
4456 michael 4915 DLINK_FOREACH(node, block_state.mask.list.head)
4457 michael 913 {
4458     struct split_nuh_item nuh;
4459 michael 7319 char *s = node->data;
4460 michael 913
4461 michael 7319 if (EmptyString(s))
4462     continue;
4463    
4464     nuh.nuhmask = s;
4465 michael 913 nuh.nickptr = NULL;
4466 michael 1647 nuh.userptr = block_state.user.buf;
4467     nuh.hostptr = block_state.host.buf;
4468 michael 8866
4469 michael 913 nuh.nicksize = 0;
4470 michael 1647 nuh.usersize = sizeof(block_state.user.buf);
4471     nuh.hostsize = sizeof(block_state.host.buf);
4472 michael 8866
4473 michael 913 split_nuh(&nuh);
4474    
4475 michael 8866 struct MaskItem *conf = conf_make(CONF_CLIENT);
4476     conf->user = xstrdup(block_state.user.buf);
4477     conf->host = xstrdup(block_state.host.buf);
4478 michael 913
4479 michael 1647 if (block_state.rpass.buf[0])
4480     conf->passwd = xstrdup(block_state.rpass.buf);
4481 michael 1646 if (block_state.name.buf[0])
4482 michael 1911 conf->name = xstrdup(block_state.name.buf);
4483 michael 913
4484 michael 1646 conf->flags = block_state.flags.value;
4485     conf->port = block_state.port.value;
4486    
4487     conf_add_class_to_conf(conf, block_state.class.buf);
4488     add_conf_by_address(CONF_CLIENT, conf);
4489 michael 913 }
4490     }
4491 michael 8866 #line 4492 "conf_parser.c" /* yacc.c:1652 */
4492 michael 913 break;
4493    
4494 michael 8866 case 307:
4495     #line 1580 "conf_parser.y" /* yacc.c:1652 */
4496 michael 1646 {
4497     if (conf_parser_ctx.pass == 2)
4498     dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
4499     }
4500 michael 8866 #line 4501 "conf_parser.c" /* yacc.c:1652 */
4501 michael 1646 break;
4502    
4503 michael 8866 case 308:
4504     #line 1586 "conf_parser.y" /* yacc.c:1652 */
4505 michael 913 {
4506 michael 967 if (conf_parser_ctx.pass == 2)
4507 michael 1647 strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4508 michael 913 }
4509 michael 8866 #line 4510 "conf_parser.c" /* yacc.c:1652 */
4510 michael 913 break;
4511    
4512 michael 8866 case 309:
4513     #line 1592 "conf_parser.y" /* yacc.c:1652 */
4514 michael 913 {
4515 michael 967 if (conf_parser_ctx.pass == 2)
4516 michael 1646 strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4517 michael 913 }
4518 michael 8866 #line 4519 "conf_parser.c" /* yacc.c:1652 */
4519 michael 913 break;
4520    
4521 michael 8866 case 310:
4522     #line 1598 "conf_parser.y" /* yacc.c:1652 */
4523 michael 913 {
4524 michael 967 if (conf_parser_ctx.pass == 2)
4525 michael 913 {
4526     if (yylval.number)
4527 michael 1646 block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
4528 michael 913 else
4529 michael 1646 block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
4530 michael 913 }
4531     }
4532 michael 8866 #line 4533 "conf_parser.c" /* yacc.c:1652 */
4533 michael 913 break;
4534    
4535 michael 8866 case 311:
4536     #line 1609 "conf_parser.y" /* yacc.c:1652 */
4537 michael 913 {
4538 michael 1646 if (conf_parser_ctx.pass == 2)
4539 michael 2093 block_state.flags.value &= (CONF_FLAGS_ENCRYPTED | CONF_FLAGS_SPOOF_IP);
4540 michael 913 }
4541 michael 8866 #line 4542 "conf_parser.c" /* yacc.c:1652 */
4542 michael 913 break;
4543    
4544 michael 8866 case 315:
4545     #line 1616 "conf_parser.y" /* yacc.c:1652 */
4546 michael 913 {
4547 michael 967 if (conf_parser_ctx.pass == 2)
4548 michael 7061 block_state.flags.value |= CONF_FLAGS_SPOOF_NOTICE;
4549 michael 913 }
4550 michael 8866 #line 4551 "conf_parser.c" /* yacc.c:1652 */
4551 michael 913 break;
4552    
4553 michael 8866 case 316:
4554     #line 1620 "conf_parser.y" /* yacc.c:1652 */
4555 michael 913 {
4556 michael 967 if (conf_parser_ctx.pass == 2)
4557 michael 7061 block_state.flags.value |= CONF_FLAGS_NOLIMIT;
4558 michael 913 }
4559 michael 8866 #line 4560 "conf_parser.c" /* yacc.c:1652 */
4560 michael 913 break;
4561    
4562 michael 8866 case 317:
4563     #line 1624 "conf_parser.y" /* yacc.c:1652 */
4564 michael 913 {
4565 michael 967 if (conf_parser_ctx.pass == 2)
4566 michael 7061 block_state.flags.value |= CONF_FLAGS_EXEMPTKLINE;
4567 michael 913 }
4568 michael 8866 #line 4569 "conf_parser.c" /* yacc.c:1652 */
4569 michael 913 break;
4570    
4571 michael 8866 case 318:
4572     #line 1628 "conf_parser.y" /* yacc.c:1652 */
4573 michael 913 {
4574 michael 967 if (conf_parser_ctx.pass == 2)
4575 michael 7061 block_state.flags.value |= CONF_FLAGS_EXEMPTXLINE;
4576 michael 913 }
4577 michael 8866 #line 4578 "conf_parser.c" /* yacc.c:1652 */
4578 michael 913 break;
4579    
4580 michael 8866 case 319:
4581     #line 1632 "conf_parser.y" /* yacc.c:1652 */
4582 michael 913 {
4583 michael 967 if (conf_parser_ctx.pass == 2)
4584 michael 7061 block_state.flags.value |= CONF_FLAGS_NEED_IDENTD;
4585 michael 913 }
4586 michael 8866 #line 4587 "conf_parser.c" /* yacc.c:1652 */
4587 michael 913 break;
4588    
4589 michael 8866 case 320:
4590     #line 1636 "conf_parser.y" /* yacc.c:1652 */
4591 michael 913 {
4592 michael 967 if (conf_parser_ctx.pass == 2)
4593 michael 7061 block_state.flags.value |= CONF_FLAGS_CAN_FLOOD;
4594 michael 913 }
4595 michael 8866 #line 4596 "conf_parser.c" /* yacc.c:1652 */
4596 michael 913 break;
4597    
4598 michael 8866 case 321:
4599     #line 1640 "conf_parser.y" /* yacc.c:1652 */
4600 michael 913 {
4601 michael 967 if (conf_parser_ctx.pass == 2)
4602 michael 7061 block_state.flags.value |= CONF_FLAGS_NO_TILDE;
4603 michael 1250 }
4604 michael 8866 #line 4605 "conf_parser.c" /* yacc.c:1652 */
4605 michael 1250 break;
4606    
4607 michael 8866 case 322:
4608     #line 1644 "conf_parser.y" /* yacc.c:1652 */
4609 michael 1250 {
4610 michael 1715 if (conf_parser_ctx.pass == 2)
4611 michael 7061 block_state.flags.value |= CONF_FLAGS_EXEMPTRESV;
4612 michael 1715 }
4613 michael 8866 #line 4614 "conf_parser.c" /* yacc.c:1652 */
4614 michael 1715 break;
4615    
4616 michael 8866 case 323:
4617     #line 1648 "conf_parser.y" /* yacc.c:1652 */
4618 michael 1715 {
4619 michael 5987 if (conf_parser_ctx.pass == 2)
4620 michael 7061 block_state.flags.value |= CONF_FLAGS_WEBIRC;
4621 michael 5987 }
4622 michael 8866 #line 4623 "conf_parser.c" /* yacc.c:1652 */
4623 michael 5987 break;
4624    
4625 michael 8866 case 324:
4626     #line 1652 "conf_parser.y" /* yacc.c:1652 */
4627 michael 5987 {
4628 michael 7061 if (conf_parser_ctx.pass == 2)
4629     block_state.flags.value |= CONF_FLAGS_NEED_PASSWORD;
4630     }
4631 michael 8866 #line 4632 "conf_parser.c" /* yacc.c:1652 */
4632 michael 7061 break;
4633    
4634 michael 8866 case 325:
4635     #line 1658 "conf_parser.y" /* yacc.c:1652 */
4636 michael 7061 {
4637 michael 1646 if (conf_parser_ctx.pass != 2)
4638     break;
4639    
4640 michael 3473 if (valid_hostname(yylval.string))
4641 michael 913 {
4642 michael 1646 strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4643     block_state.flags.value |= CONF_FLAGS_SPOOF_IP;
4644 michael 913 }
4645 michael 1646 else
4646     ilog(LOG_TYPE_IRCD, "Spoof either is too long or contains invalid characters. Ignoring it.");
4647 michael 913 }
4648 michael 8866 #line 4649 "conf_parser.c" /* yacc.c:1652 */
4649 michael 913 break;
4650    
4651 michael 8866 case 326:
4652     #line 1672 "conf_parser.y" /* yacc.c:1652 */
4653 michael 913 {
4654 michael 1646 if (conf_parser_ctx.pass != 2)
4655     break;
4656    
4657     strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4658     block_state.flags.value |= CONF_FLAGS_REDIR;
4659 michael 913 }
4660 michael 8866 #line 4661 "conf_parser.c" /* yacc.c:1652 */
4661 michael 913 break;
4662    
4663 michael 8866 case 327:
4664     #line 1681 "conf_parser.y" /* yacc.c:1652 */
4665 michael 913 {
4666 michael 1646 if (conf_parser_ctx.pass != 2)
4667     break;
4668 michael 1647
4669 michael 1646 block_state.flags.value |= CONF_FLAGS_REDIR;
4670 michael 2473 block_state.port.value = (yyvsp[-1].number);
4671 michael 913 }
4672 michael 8866 #line 4673 "conf_parser.c" /* yacc.c:1652 */
4673 michael 913 break;
4674    
4675 michael 8866 case 328:
4676     #line 1694 "conf_parser.y" /* yacc.c:1652 */
4677 michael 913 {
4678 michael 1647 if (conf_parser_ctx.pass != 2)
4679 michael 913 break;
4680    
4681 michael 1647 reset_block_state();
4682     strlcpy(block_state.rpass.buf, CONF_NOREASON, sizeof(block_state.rpass.buf));
4683 michael 913 }
4684 michael 8866 #line 4685 "conf_parser.c" /* yacc.c:1652 */
4685 michael 913 break;
4686    
4687 michael 8866 case 329:
4688     #line 1701 "conf_parser.y" /* yacc.c:1652 */
4689 michael 1823 {
4690 michael 1858 if (conf_parser_ctx.pass != 2)
4691     break;
4692    
4693 michael 7283 resv_make(block_state.name.buf, block_state.rpass.buf, &block_state.mask.list);
4694 michael 1823 }
4695 michael 8866 #line 4696 "conf_parser.c" /* yacc.c:1652 */
4696 michael 1823 break;
4697    
4698 michael 8866 case 336:
4699     #line 1712 "conf_parser.y" /* yacc.c:1652 */
4700 michael 913 {
4701 michael 967 if (conf_parser_ctx.pass == 2)
4702 michael 1858 strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4703 michael 913 }
4704 michael 8866 #line 4705 "conf_parser.c" /* yacc.c:1652 */
4705 michael 913 break;
4706    
4707 michael 8866 case 337:
4708     #line 1718 "conf_parser.y" /* yacc.c:1652 */
4709 michael 913 {
4710 michael 1823 if (conf_parser_ctx.pass == 2)
4711 michael 1858 strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4712 michael 913 }
4713 michael 8866 #line 4714 "conf_parser.c" /* yacc.c:1652 */
4714 michael 913 break;
4715    
4716 michael 8866 case 338:
4717     #line 1724 "conf_parser.y" /* yacc.c:1652 */
4718 michael 913 {
4719 michael 967 if (conf_parser_ctx.pass == 2)
4720 michael 1858 dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
4721 michael 913 }
4722 michael 8866 #line 4723 "conf_parser.c" /* yacc.c:1652 */
4723 michael 913 break;
4724    
4725 michael 8866 case 344:
4726     #line 1739 "conf_parser.y" /* yacc.c:1652 */
4727 michael 913 {
4728 michael 2129 if (conf_parser_ctx.pass != 2)
4729     break;
4730    
4731 michael 8660 if (server_valid_name(yylval.string) == true)
4732 michael 913 {
4733 michael 7252 struct ServiceItem *service = service_make();
4734     service->name = xstrdup(yylval.string);
4735 michael 1157 }
4736     }
4737 michael 8866 #line 4738 "conf_parser.c" /* yacc.c:1652 */
4738 michael 1157 break;
4739    
4740 michael 8866 case 345:
4741     #line 1755 "conf_parser.y" /* yacc.c:1652 */
4742 michael 1157 {
4743 michael 1647 if (conf_parser_ctx.pass != 2)
4744     break;
4745    
4746     reset_block_state();
4747    
4748     strlcpy(block_state.name.buf, "*", sizeof(block_state.name.buf));
4749     strlcpy(block_state.user.buf, "*", sizeof(block_state.user.buf));
4750     strlcpy(block_state.host.buf, "*", sizeof(block_state.host.buf));
4751     block_state.flags.value = SHARED_ALL;
4752 michael 913 }
4753 michael 8866 #line 4754 "conf_parser.c" /* yacc.c:1652 */
4754 michael 913 break;
4755    
4756 michael 8866 case 346:
4757     #line 1766 "conf_parser.y" /* yacc.c:1652 */
4758 michael 913 {
4759 michael 1647 if (conf_parser_ctx.pass != 2)
4760     break;
4761    
4762 michael 7213 struct SharedItem *shared = shared_make();
4763     shared->type = block_state.flags.value;
4764     shared->server = xstrdup(block_state.name.buf);
4765     shared->user = xstrdup(block_state.user.buf);
4766     shared->host = xstrdup(block_state.host.buf);
4767 michael 913 }
4768 michael 8866 #line 4769 "conf_parser.c" /* yacc.c:1652 */
4769 michael 913 break;
4770    
4771 michael 8866 case 353:
4772     #line 1781 "conf_parser.y" /* yacc.c:1652 */
4773 michael 913 {
4774 michael 967 if (conf_parser_ctx.pass == 2)
4775 michael 1647 strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4776 michael 913 }
4777 michael 8866 #line 4778 "conf_parser.c" /* yacc.c:1652 */
4778 michael 913 break;
4779    
4780 michael 8866 case 354:
4781     #line 1787 "conf_parser.y" /* yacc.c:1652 */
4782 michael 913 {
4783 michael 967 if (conf_parser_ctx.pass == 2)
4784 michael 913 {
4785     struct split_nuh_item nuh;
4786    
4787     nuh.nuhmask = yylval.string;
4788     nuh.nickptr = NULL;
4789 michael 1647 nuh.userptr = block_state.user.buf;
4790     nuh.hostptr = block_state.host.buf;
4791 michael 913
4792     nuh.nicksize = 0;
4793 michael 1647 nuh.usersize = sizeof(block_state.user.buf);
4794     nuh.hostsize = sizeof(block_state.host.buf);
4795 michael 913
4796     split_nuh(&nuh);
4797     }
4798     }
4799 michael 8866 #line 4800 "conf_parser.c" /* yacc.c:1652 */
4800 michael 913 break;
4801    
4802 michael 8866 case 355:
4803     #line 1806 "conf_parser.y" /* yacc.c:1652 */
4804 michael 913 {
4805 michael 967 if (conf_parser_ctx.pass == 2)
4806 michael 1647 block_state.flags.value = 0;
4807 michael 913 }
4808 michael 8866 #line 4809 "conf_parser.c" /* yacc.c:1652 */
4809 michael 913 break;
4810    
4811 michael 8866 case 359:
4812     #line 1813 "conf_parser.y" /* yacc.c:1652 */
4813 michael 1644 {
4814     if (conf_parser_ctx.pass == 2)
4815 michael 7061 block_state.flags.value |= SHARED_KLINE;
4816 michael 1644 }
4817 michael 8866 #line 4818 "conf_parser.c" /* yacc.c:1652 */
4818 michael 1644 break;
4819    
4820 michael 8866 case 360:
4821     #line 1817 "conf_parser.y" /* yacc.c:1652 */
4822 michael 913 {
4823 michael 967 if (conf_parser_ctx.pass == 2)
4824 michael 7061 block_state.flags.value |= SHARED_UNKLINE;
4825 michael 913 }
4826 michael 8866 #line 4827 "conf_parser.c" /* yacc.c:1652 */
4827 michael 913 break;
4828    
4829 michael 8866 case 361:
4830     #line 1821 "conf_parser.y" /* yacc.c:1652 */
4831 michael 913 {
4832 michael 967 if (conf_parser_ctx.pass == 2)
4833 michael 7061 block_state.flags.value |= SHARED_DLINE;
4834 michael 913 }
4835 michael 8866 #line 4836 "conf_parser.c" /* yacc.c:1652 */
4836 michael 913 break;
4837    
4838 michael 8866 case 362:
4839     #line 1825 "conf_parser.y" /* yacc.c:1652 */
4840 michael 913 {
4841 michael 967 if (conf_parser_ctx.pass == 2)
4842 michael 7061 block_state.flags.value |= SHARED_UNDLINE;
4843 michael 913 }
4844 michael 8866 #line 4845 "conf_parser.c" /* yacc.c:1652 */
4845 michael 913 break;
4846    
4847 michael 8866 case 363:
4848     #line 1829 "conf_parser.y" /* yacc.c:1652 */
4849 michael 913 {
4850 michael 967 if (conf_parser_ctx.pass == 2)
4851 michael 7061 block_state.flags.value |= SHARED_XLINE;
4852 michael 913 }
4853 michael 8866 #line 4854 "conf_parser.c" /* yacc.c:1652 */
4854 michael 913 break;
4855    
4856 michael 8866 case 364:
4857     #line 1833 "conf_parser.y" /* yacc.c:1652 */
4858 michael 913 {
4859 michael 967 if (conf_parser_ctx.pass == 2)
4860 michael 7061 block_state.flags.value |= SHARED_UNXLINE;
4861 michael 913 }
4862 michael 8866 #line 4863 "conf_parser.c" /* yacc.c:1652 */
4863 michael 913 break;
4864    
4865 michael 8866 case 365:
4866     #line 1837 "conf_parser.y" /* yacc.c:1652 */
4867 michael 913 {
4868 michael 967 if (conf_parser_ctx.pass == 2)
4869 michael 7061 block_state.flags.value |= SHARED_RESV;
4870 michael 913 }
4871 michael 8866 #line 4872 "conf_parser.c" /* yacc.c:1652 */
4872 michael 913 break;
4873    
4874 michael 8866 case 366:
4875     #line 1841 "conf_parser.y" /* yacc.c:1652 */
4876 michael 913 {
4877 michael 967 if (conf_parser_ctx.pass == 2)
4878 michael 7061 block_state.flags.value |= SHARED_UNRESV;
4879 michael 913 }
4880 michael 8866 #line 4881 "conf_parser.c" /* yacc.c:1652 */
4881 michael 913 break;
4882    
4883 michael 8866 case 367:
4884     #line 1845 "conf_parser.y" /* yacc.c:1652 */
4885 michael 913 {
4886 michael 967 if (conf_parser_ctx.pass == 2)
4887 michael 7061 block_state.flags.value |= SHARED_LOCOPS;
4888 michael 913 }
4889 michael 8866 #line 4890 "conf_parser.c" /* yacc.c:1652 */
4890 michael 913 break;
4891    
4892 michael 8866 case 368:
4893     #line 1849 "conf_parser.y" /* yacc.c:1652 */
4894 michael 913 {
4895 michael 7061 if (conf_parser_ctx.pass == 2)
4896     block_state.flags.value = SHARED_ALL;
4897     }
4898 michael 8866 #line 4899 "conf_parser.c" /* yacc.c:1652 */
4899 michael 7061 break;
4900    
4901 michael 8866 case 369:
4902     #line 1859 "conf_parser.y" /* yacc.c:1652 */
4903 michael 7061 {
4904 michael 1647 if (conf_parser_ctx.pass != 2)
4905     break;
4906    
4907     reset_block_state();
4908    
4909     strlcpy(block_state.name.buf, "*", sizeof(block_state.name.buf));
4910 michael 7213 block_state.flags.value = CLUSTER_ALL;
4911 michael 913 }
4912 michael 8866 #line 4913 "conf_parser.c" /* yacc.c:1652 */
4913 michael 913 break;
4914    
4915 michael 8866 case 370:
4916     #line 1868 "conf_parser.y" /* yacc.c:1652 */
4917 michael 913 {
4918 michael 1647 if (conf_parser_ctx.pass != 2)
4919     break;
4920    
4921 michael 7213 struct ClusterItem *cluster = cluster_make();
4922     cluster->type = block_state.flags.value;
4923     cluster->server = xstrdup(block_state.name.buf);
4924 michael 913 }
4925 michael 8866 #line 4926 "conf_parser.c" /* yacc.c:1652 */
4926 michael 913 break;
4927    
4928 michael 8866 case 376:
4929     #line 1881 "conf_parser.y" /* yacc.c:1652 */
4930 michael 913 {
4931 michael 967 if (conf_parser_ctx.pass == 2)
4932 michael 1647 strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4933 michael 913 }
4934 michael 8866 #line 4935 "conf_parser.c" /* yacc.c:1652 */
4935 michael 913 break;
4936    
4937 michael 8866 case 377:
4938     #line 1887 "conf_parser.y" /* yacc.c:1652 */
4939 michael 913 {
4940 michael 967 if (conf_parser_ctx.pass == 2)
4941 michael 1647 block_state.flags.value = 0;
4942 michael 913 }
4943 michael 8866 #line 4944 "conf_parser.c" /* yacc.c:1652 */
4944 michael 913 break;
4945    
4946 michael 8866 case 381:
4947     #line 1894 "conf_parser.y" /* yacc.c:1652 */
4948 michael 913 {
4949 michael 967 if (conf_parser_ctx.pass == 2)
4950 michael 7213 block_state.flags.value |= CLUSTER_KLINE;
4951 michael 913 }
4952 michael 8866 #line 4953 "conf_parser.c" /* yacc.c:1652 */
4953 michael 913 break;
4954    
4955 michael 8866 case 382:
4956     #line 1898 "conf_parser.y" /* yacc.c:1652 */
4957 michael 913 {
4958 michael 967 if (conf_parser_ctx.pass == 2)
4959 michael 7213 block_state.flags.value |= CLUSTER_UNKLINE;
4960 michael 913 }
4961 michael 8866 #line 4962 "conf_parser.c" /* yacc.c:1652 */
4962 michael 913 break;
4963    
4964 michael 8866 case 383:
4965     #line 1902 "conf_parser.y" /* yacc.c:1652 */
4966 michael 913 {
4967 michael 967 if (conf_parser_ctx.pass == 2)
4968 michael 7213 block_state.flags.value |= CLUSTER_DLINE;
4969 michael 913 }
4970 michael 8866 #line 4971 "conf_parser.c" /* yacc.c:1652 */
4971 michael 913 break;
4972    
4973 michael 8866 case 384:
4974     #line 1906 "conf_parser.y" /* yacc.c:1652 */
4975 michael 913 {
4976 michael 967 if (conf_parser_ctx.pass == 2)
4977 michael 7213 block_state.flags.value |= CLUSTER_UNDLINE;
4978 michael 913 }
4979 michael 8866 #line 4980 "conf_parser.c" /* yacc.c:1652 */
4980 michael 913 break;
4981    
4982 michael 8866 case 385:
4983     #line 1910 "conf_parser.y" /* yacc.c:1652 */
4984 michael 913 {
4985 michael 967 if (conf_parser_ctx.pass == 2)
4986 michael 7213 block_state.flags.value |= CLUSTER_XLINE;
4987 michael 913 }
4988 michael 8866 #line 4989 "conf_parser.c" /* yacc.c:1652 */
4989 michael 913 break;
4990    
4991 michael 8866 case 386:
4992     #line 1914 "conf_parser.y" /* yacc.c:1652 */
4993 michael 913 {
4994 michael 967 if (conf_parser_ctx.pass == 2)
4995 michael 7213 block_state.flags.value |= CLUSTER_UNXLINE;
4996 michael 913 }
4997 michael 8866 #line 4998 "conf_parser.c" /* yacc.c:1652 */
4998 michael 913 break;
4999    
5000 michael 8866 case 387:
5001     #line 1918 "conf_parser.y" /* yacc.c:1652 */
5002 michael 913 {
5003 michael 967 if (conf_parser_ctx.pass == 2)
5004 michael 7213 block_state.flags.value |= CLUSTER_RESV;
5005 michael 913 }
5006 michael 8866 #line 5007 "conf_parser.c" /* yacc.c:1652 */
5007 michael 913 break;
5008    
5009 michael 8866 case 388:
5010     #line 1922 "conf_parser.y" /* yacc.c:1652 */
5011 michael 913 {
5012 michael 967 if (conf_parser_ctx.pass == 2)
5013 michael 7213 block_state.flags.value |= CLUSTER_UNRESV;
5014 michael 913 }
5015 michael 8866 #line 5016 "conf_parser.c" /* yacc.c:1652 */
5016 michael 913 break;
5017    
5018 michael 8866 case 389:
5019     #line 1926 "conf_parser.y" /* yacc.c:1652 */
5020 michael 913 {
5021 michael 967 if (conf_parser_ctx.pass == 2)
5022 michael 7213 block_state.flags.value |= CLUSTER_LOCOPS;
5023 michael 1250 }
5024 michael 8866 #line 5025 "conf_parser.c" /* yacc.c:1652 */
5025 michael 1250 break;
5026    
5027 michael 8866 case 390:
5028     #line 1930 "conf_parser.y" /* yacc.c:1652 */
5029 michael 1250 {
5030 michael 7061 if (conf_parser_ctx.pass == 2)
5031 michael 7213 block_state.flags.value = CLUSTER_ALL;
5032 michael 7061 }
5033 michael 8866 #line 5034 "conf_parser.c" /* yacc.c:1652 */
5034 michael 7061 break;
5035 michael 1285
5036 michael 8866 case 391:
5037     #line 1940 "conf_parser.y" /* yacc.c:1652 */
5038 michael 7061 {
5039    
5040 michael 1647 if (conf_parser_ctx.pass != 2)
5041     break;
5042    
5043     reset_block_state();
5044 michael 2397 block_state.aftype.value = AF_INET;
5045 michael 1647 block_state.port.value = PORTNUM;
5046 michael 913 }
5047 michael 8866 #line 5048 "conf_parser.c" /* yacc.c:1652 */
5048 michael 913 break;
5049    
5050 michael 8866 case 392:
5051     #line 1949 "conf_parser.y" /* yacc.c:1652 */
5052 michael 913 {
5053 michael 1647 struct addrinfo hints, *res;
5054    
5055     if (conf_parser_ctx.pass != 2)
5056     break;
5057    
5058 michael 1648 if (!block_state.name.buf[0] ||
5059     !block_state.host.buf[0])
5060 michael 1647 break;
5061    
5062 michael 2126 if (!block_state.rpass.buf[0] ||
5063     !block_state.spass.buf[0])
5064 michael 1647 break;
5065    
5066 michael 8866 if (server_valid_name(block_state.name.buf) == false)
5067     break;
5068    
5069 michael 1647 if (has_wildcards(block_state.name.buf) ||
5070     has_wildcards(block_state.host.buf))
5071     break;
5072    
5073 michael 8866 struct MaskItem *conf = conf_make(CONF_SERVER);
5074 michael 1647 conf->port = block_state.port.value;
5075     conf->flags = block_state.flags.value;
5076     conf->aftype = block_state.aftype.value;
5077     conf->host = xstrdup(block_state.host.buf);
5078     conf->name = xstrdup(block_state.name.buf);
5079     conf->passwd = xstrdup(block_state.rpass.buf);
5080     conf->spasswd = xstrdup(block_state.spass.buf);
5081 michael 2228
5082     if (block_state.cert.buf[0])
5083     conf->certfp = xstrdup(block_state.cert.buf);
5084    
5085 michael 2252 if (block_state.ciph.buf[0])
5086     conf->cipher_list = xstrdup(block_state.ciph.buf);
5087 michael 1647
5088     dlinkMoveList(&block_state.leaf.list, &conf->leaf_list);
5089     dlinkMoveList(&block_state.hub.list, &conf->hub_list);
5090    
5091     if (block_state.bind.buf[0])
5092 michael 913 {
5093 michael 1647 memset(&hints, 0, sizeof(hints));
5094    
5095     hints.ai_family = AF_UNSPEC;
5096     hints.ai_socktype = SOCK_STREAM;
5097     hints.ai_flags = AI_PASSIVE | AI_NUMERICHOST;
5098    
5099     if (getaddrinfo(block_state.bind.buf, NULL, &hints, &res))
5100 michael 8866 ilog(LOG_TYPE_IRCD, "Invalid netmask for server bind(%s)", block_state.bind.buf);
5101 michael 1302 else
5102     {
5103 michael 3473 assert(res);
5104 michael 913
5105 michael 1647 memcpy(&conf->bind, res->ai_addr, res->ai_addrlen);
5106     conf->bind.ss.ss_family = res->ai_family;
5107     conf->bind.ss_len = res->ai_addrlen;
5108     freeaddrinfo(res);
5109 michael 1302 }
5110 michael 1647 }
5111 michael 913
5112 michael 1647 conf_add_class_to_conf(conf, block_state.class.buf);
5113     lookup_confhost(conf);
5114 michael 913 }
5115 michael 8866 #line 5116 "conf_parser.c" /* yacc.c:1652 */
5116 michael 913 break;
5117    
5118 michael 8866 case 410:
5119     #line 2031 "conf_parser.y" /* yacc.c:1652 */
5120 michael 913 {
5121 michael 967 if (conf_parser_ctx.pass == 2)
5122 michael 1647 strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5123 michael 913 }
5124 michael 8866 #line 5125 "conf_parser.c" /* yacc.c:1652 */
5125 michael 913 break;
5126    
5127 michael 8866 case 411:
5128     #line 2037 "conf_parser.y" /* yacc.c:1652 */
5129 michael 913 {
5130 michael 967 if (conf_parser_ctx.pass == 2)
5131 michael 1647 strlcpy(block_state.host.buf, yylval.string, sizeof(block_state.host.buf));
5132 michael 913 }
5133 michael 8866 #line 5134 "conf_parser.c" /* yacc.c:1652 */
5134 michael 913 break;
5135    
5136 michael 8866 case 412:
5137     #line 2043 "conf_parser.y" /* yacc.c:1652 */
5138 michael 913 {
5139 michael 967 if (conf_parser_ctx.pass == 2)
5140 michael 1647 strlcpy(block_state.bind.buf, yylval.string, sizeof(block_state.bind.buf));
5141 michael 913 }
5142 michael 8866 #line 5143 "conf_parser.c" /* yacc.c:1652 */
5143 michael 913 break;
5144    
5145 michael 8866 case 413:
5146     #line 2049 "conf_parser.y" /* yacc.c:1652 */
5147 michael 913 {
5148 michael 1647 if (conf_parser_ctx.pass != 2)
5149     break;
5150 michael 913
5151 michael 8866 if (*yylval.string == ':')
5152 michael 1752 conf_error_report("Server passwords cannot begin with a colon");
5153 michael 8866 else if (strchr(yylval.string, ' '))
5154 michael 1752 conf_error_report("Server passwords cannot contain spaces");
5155 michael 1647 else
5156     strlcpy(block_state.spass.buf, yylval.string, sizeof(block_state.spass.buf));
5157 michael 913 }
5158 michael 8866 #line 5159 "conf_parser.c" /* yacc.c:1652 */
5159 michael 913 break;
5160    
5161 michael 8866 case 414:
5162     #line 2062 "conf_parser.y" /* yacc.c:1652 */
5163 michael 913 {
5164 michael 1647 if (conf_parser_ctx.pass != 2)
5165     break;
5166 michael 913
5167 michael 8866 if (*yylval.string == ':')
5168 michael 1752 conf_error_report("Server passwords cannot begin with a colon");
5169 michael 8866 else if (strchr(yylval.string, ' '))
5170 michael 1752 conf_error_report("Server passwords cannot contain spaces");
5171 michael 1647 else
5172     strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5173 michael 913 }
5174 michael 8866 #line 5175 "conf_parser.c" /* yacc.c:1652 */
5175 michael 913 break;
5176    
5177 michael 8866 case 415:
5178     #line 2075 "conf_parser.y" /* yacc.c:1652 */
5179 michael 913 {
5180 michael 967 if (conf_parser_ctx.pass == 2)
5181 michael 2229 strlcpy(block_state.cert.buf, yylval.string, sizeof(block_state.cert.buf));
5182 michael 2228 }
5183 michael 8866 #line 5184 "conf_parser.c" /* yacc.c:1652 */
5184 michael 2228 break;
5185    
5186 michael 8866 case 416:
5187     #line 2081 "conf_parser.y" /* yacc.c:1652 */
5188 michael 2228 {
5189     if (conf_parser_ctx.pass == 2)
5190 michael 2473 block_state.port.value = (yyvsp[-1].number);
5191 michael 913 }
5192 michael 8866 #line 5193 "conf_parser.c" /* yacc.c:1652 */
5193 michael 913 break;
5194    
5195 michael 8866 case 417:
5196     #line 2087 "conf_parser.y" /* yacc.c:1652 */
5197 michael 913 {
5198 michael 967 if (conf_parser_ctx.pass == 2)
5199 michael 1647 block_state.aftype.value = AF_INET;
5200 michael 913 }
5201 michael 8866 #line 5202 "conf_parser.c" /* yacc.c:1652 */
5202 michael 913 break;
5203    
5204 michael 8866 case 418:
5205     #line 2091 "conf_parser.y" /* yacc.c:1652 */
5206 michael 913 {
5207 michael 967 if (conf_parser_ctx.pass == 2)
5208 michael 1647 block_state.aftype.value = AF_INET6;
5209 michael 913 }
5210 michael 8866 #line 5211 "conf_parser.c" /* yacc.c:1652 */
5211 michael 913 break;
5212    
5213 michael 8866 case 419:
5214     #line 2097 "conf_parser.y" /* yacc.c:1652 */
5215 michael 913 {
5216 michael 1648 block_state.flags.value &= CONF_FLAGS_ENCRYPTED;
5217 michael 913 }
5218 michael 8866 #line 5219 "conf_parser.c" /* yacc.c:1652 */
5219 michael 913 break;
5220    
5221 michael 8866 case 423:
5222     #line 2103 "conf_parser.y" /* yacc.c:1652 */
5223 michael 913 {
5224 michael 967 if (conf_parser_ctx.pass == 2)
5225 michael 1647 block_state.flags.value |= CONF_FLAGS_ALLOW_AUTO_CONN;
5226 michael 913 }
5227 michael 8866 #line 5228 "conf_parser.c" /* yacc.c:1652 */
5228 michael 913 break;
5229    
5230 michael 8866 case 424:
5231     #line 2107 "conf_parser.y" /* yacc.c:1652 */
5232 michael 913 {
5233 michael 967 if (conf_parser_ctx.pass == 2)
5234 michael 1647 block_state.flags.value |= CONF_FLAGS_SSL;
5235 michael 913 }
5236 michael 8866 #line 5237 "conf_parser.c" /* yacc.c:1652 */
5237 michael 913 break;
5238    
5239 michael 8866 case 425:
5240     #line 2113 "conf_parser.y" /* yacc.c:1652 */
5241 michael 913 {
5242 michael 967 if (conf_parser_ctx.pass == 2)
5243 michael 913 {
5244     if (yylval.number)
5245 michael 1647 block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
5246 michael 913 else
5247 michael 1647 block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
5248 michael 913 }
5249     }
5250 michael 8866 #line 5251 "conf_parser.c" /* yacc.c:1652 */
5251 michael 913 break;
5252    
5253 michael 8866 case 426:
5254     #line 2124 "conf_parser.y" /* yacc.c:1652 */
5255 michael 913 {
5256 michael 967 if (conf_parser_ctx.pass == 2)
5257 michael 1647 dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.hub.list);
5258 michael 913 }
5259 michael 8866 #line 5260 "conf_parser.c" /* yacc.c:1652 */
5260 michael 913 break;
5261    
5262 michael 8866 case 427:
5263     #line 2130 "conf_parser.y" /* yacc.c:1652 */
5264 michael 913 {
5265 michael 967 if (conf_parser_ctx.pass == 2)
5266 michael 1647 dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.leaf.list);
5267 michael 913 }
5268 michael 8866 #line 5269 "conf_parser.c" /* yacc.c:1652 */
5269 michael 913 break;
5270    
5271 michael 8866 case 428:
5272     #line 2136 "conf_parser.y" /* yacc.c:1652 */
5273 michael 913 {
5274 michael 967 if (conf_parser_ctx.pass == 2)
5275 michael 1647 strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
5276 michael 913 }
5277 michael 8866 #line 5278 "conf_parser.c" /* yacc.c:1652 */
5278 michael 913 break;
5279    
5280 michael 8866 case 429:
5281     #line 2142 "conf_parser.y" /* yacc.c:1652 */
5282 michael 913 {
5283 michael 7109 #ifdef HAVE_TLS
5284 michael 967 if (conf_parser_ctx.pass == 2)
5285 michael 1647 strlcpy(block_state.ciph.buf, yylval.string, sizeof(block_state.ciph.buf));
5286 michael 1306 #else
5287     if (conf_parser_ctx.pass == 2)
5288 michael 7109 conf_error_report("Ignoring connect::ciphers -- no TLS support");
5289 michael 1306 #endif
5290     }
5291 michael 8866 #line 5292 "conf_parser.c" /* yacc.c:1652 */
5292 michael 1306 break;
5293    
5294 michael 8866 case 430:
5295     #line 2157 "conf_parser.y" /* yacc.c:1652 */
5296 michael 1306 {
5297     if (conf_parser_ctx.pass == 2)
5298 michael 1647 reset_block_state();
5299 michael 913 }
5300 michael 8866 #line 5301 "conf_parser.c" /* yacc.c:1652 */
5301 michael 913 break;
5302    
5303 michael 8866 case 431:
5304     #line 2161 "conf_parser.y" /* yacc.c:1652 */
5305 michael 913 {
5306 michael 1647 if (conf_parser_ctx.pass != 2)
5307     break;
5308    
5309     if (!block_state.user.buf[0] ||
5310     !block_state.host.buf[0])
5311     break;
5312    
5313 michael 8866 struct MaskItem *conf = conf_make(CONF_KLINE);
5314 michael 1921 conf->user = xstrdup(block_state.user.buf);
5315     conf->host = xstrdup(block_state.host.buf);
5316 michael 1647
5317 michael 1921 if (block_state.rpass.buf[0])
5318     conf->reason = xstrdup(block_state.rpass.buf);
5319 michael 1647 else
5320 michael 1921 conf->reason = xstrdup(CONF_NOREASON);
5321     add_conf_by_address(CONF_KLINE, conf);
5322 michael 913 }
5323 michael 8866 #line 5324 "conf_parser.c" /* yacc.c:1652 */
5324 michael 913 break;
5325    
5326 michael 8866 case 437:
5327     #line 2184 "conf_parser.y" /* yacc.c:1652 */
5328 michael 913 {
5329    
5330 michael 967 if (conf_parser_ctx.pass == 2)
5331 michael 913 {
5332     struct split_nuh_item nuh;
5333    
5334     nuh.nuhmask = yylval.string;
5335     nuh.nickptr = NULL;
5336 michael 1647 nuh.userptr = block_state.user.buf;
5337     nuh.hostptr = block_state.host.buf;
5338 michael 913
5339     nuh.nicksize = 0;
5340 michael 1647 nuh.usersize = sizeof(block_state.user.buf);
5341     nuh.hostsize = sizeof(block_state.host.buf);
5342 michael 913
5343     split_nuh(&nuh);
5344     }
5345     }
5346 michael 8866 #line 5347 "conf_parser.c" /* yacc.c:1652 */
5347 michael 913 break;
5348    
5349 michael 8866 case 438:
5350     #line 2204 "conf_parser.y" /* yacc.c:1652 */
5351 michael 913 {
5352 michael 967 if (conf_parser_ctx.pass == 2)
5353 michael 1647 strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5354 michael 913 }
5355 michael 8866 #line 5356 "conf_parser.c" /* yacc.c:1652 */
5356 michael 913 break;
5357    
5358 michael 8866 case 439:
5359     #line 2214 "conf_parser.y" /* yacc.c:1652 */
5360 michael 913 {
5361 michael 967 if (conf_parser_ctx.pass == 2)
5362 michael 1646 reset_block_state();
5363 michael 913 }
5364 michael 8866 #line 5365 "conf_parser.c" /* yacc.c:1652 */
5365 michael 913 break;
5366    
5367 michael 8866 case 440:
5368     #line 2218 "conf_parser.y" /* yacc.c:1652 */
5369 michael 913 {
5370 michael 1646 if (conf_parser_ctx.pass != 2)
5371     break;
5372    
5373     if (!block_state.addr.buf[0])
5374     break;
5375    
5376     if (parse_netmask(block_state.addr.buf, NULL, NULL) != HM_HOST)
5377 michael 913 {
5378 michael 8866 struct MaskItem *conf = conf_make(CONF_DLINE);
5379 michael 1646 conf->host = xstrdup(block_state.addr.buf);
5380 michael 1005
5381 michael 1647 if (block_state.rpass.buf[0])
5382     conf->reason = xstrdup(block_state.rpass.buf);
5383 michael 1646 else
5384     conf->reason = xstrdup(CONF_NOREASON);
5385     add_conf_by_address(CONF_DLINE, conf);
5386 michael 913 }
5387     }
5388 michael 8866 #line 5389 "conf_parser.c" /* yacc.c:1652 */
5389 michael 913 break;
5390    
5391 michael 8866 case 446:
5392     #line 2242 "conf_parser.y" /* yacc.c:1652 */
5393 michael 913 {
5394 michael 967 if (conf_parser_ctx.pass == 2)
5395 michael 1646 strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
5396 michael 913 }
5397 michael 8866 #line 5398 "conf_parser.c" /* yacc.c:1652 */
5398 michael 913 break;
5399    
5400 michael 8866 case 447:
5401     #line 2248 "conf_parser.y" /* yacc.c:1652 */
5402 michael 913 {
5403 michael 967 if (conf_parser_ctx.pass == 2)
5404 michael 1647 strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5405 michael 913 }
5406 michael 8866 #line 5407 "conf_parser.c" /* yacc.c:1652 */
5407 michael 913 break;
5408    
5409 michael 8866 case 453:
5410     #line 2263 "conf_parser.y" /* yacc.c:1652 */
5411 michael 913 {
5412 michael 967 if (conf_parser_ctx.pass == 2)
5413 michael 913 {
5414 michael 6671 if (*yylval.string && parse_netmask(yylval.string, NULL, NULL) != HM_HOST)
5415 michael 913 {
5416 michael 1646 struct MaskItem *conf = conf_make(CONF_EXEMPT);
5417     conf->host = xstrdup(yylval.string);
5418 michael 913
5419 michael 1646 add_conf_by_address(CONF_EXEMPT, conf);
5420 michael 913 }
5421     }
5422     }
5423 michael 8866 #line 5424 "conf_parser.c" /* yacc.c:1652 */
5424 michael 913 break;
5425    
5426 michael 8866 case 454:
5427     #line 2280 "conf_parser.y" /* yacc.c:1652 */
5428 michael 913 {
5429 michael 967 if (conf_parser_ctx.pass == 2)
5430 michael 1646 reset_block_state();
5431 michael 913 }
5432 michael 8866 #line 5433 "conf_parser.c" /* yacc.c:1652 */
5433 michael 913 break;
5434    
5435 michael 8866 case 455:
5436     #line 2284 "conf_parser.y" /* yacc.c:1652 */
5437 michael 913 {
5438 michael 1646 if (conf_parser_ctx.pass != 2)
5439     break;
5440    
5441     if (!block_state.name.buf[0])
5442     break;
5443    
5444 michael 7308 struct GecosItem *gecos = gecos_make();
5445     gecos->mask = xstrdup(block_state.name.buf);
5446 michael 913
5447 michael 1647 if (block_state.rpass.buf[0])
5448 michael 7308 gecos->reason = xstrdup(block_state.rpass.buf);
5449 michael 1646 else
5450 michael 7308 gecos->reason = xstrdup(CONF_NOREASON);
5451 michael 913 }
5452 michael 8866 #line 5453 "conf_parser.c" /* yacc.c:1652 */
5453 michael 913 break;
5454    
5455 michael 8866 case 461:
5456     #line 2304 "conf_parser.y" /* yacc.c:1652 */
5457 michael 913 {
5458 michael 1646 if (conf_parser_ctx.pass == 2)
5459     strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5460 michael 913 }
5461 michael 8866 #line 5462 "conf_parser.c" /* yacc.c:1652 */
5462 michael 913 break;
5463    
5464 michael 8866 case 462:
5465     #line 2310 "conf_parser.y" /* yacc.c:1652 */
5466 michael 913 {
5467 michael 967 if (conf_parser_ctx.pass == 2)
5468 michael 1647 strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5469 michael 913 }
5470 michael 8866 #line 5471 "conf_parser.c" /* yacc.c:1652 */
5471 michael 1118 break;
5472    
5473 michael 8866 case 513:
5474     #line 2372 "conf_parser.y" /* yacc.c:1652 */
5475 michael 8497 {
5476     ConfigGeneral.away_count = (yyvsp[-1].number);
5477     }
5478 michael 8866 #line 5479 "conf_parser.c" /* yacc.c:1652 */
5479 michael 8497 break;
5480    
5481 michael 8866 case 514:
5482     #line 2377 "conf_parser.y" /* yacc.c:1652 */
5483 michael 8497 {
5484     ConfigGeneral.away_time = (yyvsp[-1].number);
5485     }
5486 michael 8866 #line 5487 "conf_parser.c" /* yacc.c:1652 */
5487 michael 8497 break;
5488    
5489 michael 8866 case 515:
5490     #line 2382 "conf_parser.y" /* yacc.c:1652 */
5491 michael 2283 {
5492 michael 8497 ConfigGeneral.max_watch = (yyvsp[-1].number);
5493 michael 1459 }
5494 michael 8866 #line 5495 "conf_parser.c" /* yacc.c:1652 */
5495 michael 1459 break;
5496    
5497 michael 8866 case 516:
5498     #line 2387 "conf_parser.y" /* yacc.c:1652 */
5499 michael 1459 {
5500 michael 8497 ConfigGeneral.whowas_history_length = (yyvsp[-1].number);
5501 michael 1459 }
5502 michael 8866 #line 5503 "conf_parser.c" /* yacc.c:1652 */
5503 michael 1459 break;
5504    
5505 michael 8866 case 517:
5506     #line 2392 "conf_parser.y" /* yacc.c:1652 */
5507 michael 1459 {
5508 michael 8866 ConfigGeneral.cycle_on_host_change = yylval.number;
5509 michael 1459 }
5510 michael 8866 #line 5511 "conf_parser.c" /* yacc.c:1652 */
5511 michael 2185 break;
5512    
5513 michael 8866 case 518:
5514     #line 2397 "conf_parser.y" /* yacc.c:1652 */
5515 michael 913 {
5516 michael 8497 ConfigGeneral.dline_min_cidr = (yyvsp[-1].number);
5517 michael 7445 }
5518 michael 8866 #line 5519 "conf_parser.c" /* yacc.c:1652 */
5519 michael 7445 break;
5520    
5521 michael 8866 case 519:
5522     #line 2402 "conf_parser.y" /* yacc.c:1652 */
5523 michael 7445 {
5524 michael 8497 ConfigGeneral.dline_min_cidr6 = (yyvsp[-1].number);
5525 michael 913 }
5526 michael 8866 #line 5527 "conf_parser.c" /* yacc.c:1652 */
5527 michael 913 break;
5528    
5529 michael 8866 case 520:
5530     #line 2407 "conf_parser.y" /* yacc.c:1652 */
5531 michael 913 {
5532 michael 8497 ConfigGeneral.kline_min_cidr = (yyvsp[-1].number);
5533 michael 913 }
5534 michael 8866 #line 5535 "conf_parser.c" /* yacc.c:1652 */
5535 michael 913 break;
5536    
5537 michael 8866 case 521:
5538     #line 2412 "conf_parser.y" /* yacc.c:1652 */
5539 michael 913 {
5540 michael 8497 ConfigGeneral.kline_min_cidr6 = (yyvsp[-1].number);
5541 michael 913 }
5542 michael 8866 #line 5543 "conf_parser.c" /* yacc.c:1652 */
5543 michael 913 break;
5544    
5545 michael 8866 case 522:
5546     #line 2417 "conf_parser.y" /* yacc.c:1652 */
5547 michael 913 {
5548 michael 8497 ConfigGeneral.tkline_expire_notices = yylval.number;
5549 michael 913 }
5550 michael 8866 #line 5551 "conf_parser.c" /* yacc.c:1652 */
5551 michael 913 break;
5552    
5553 michael 8866 case 523:
5554     #line 2422 "conf_parser.y" /* yacc.c:1652 */
5555 michael 913 {
5556 michael 8497 ConfigGeneral.kill_chase_time_limit = (yyvsp[-1].number);
5557 michael 913 }
5558 michael 8866 #line 5559 "conf_parser.c" /* yacc.c:1652 */
5559 michael 913 break;
5560    
5561 michael 8866 case 524:
5562     #line 2427 "conf_parser.y" /* yacc.c:1652 */
5563 michael 913 {
5564 michael 8497 ConfigGeneral.failed_oper_notice = yylval.number;
5565 michael 913 }
5566 michael 8866 #line 5567 "conf_parser.c" /* yacc.c:1652 */
5567 michael 913 break;
5568    
5569 michael 8866 case 525:
5570     #line 2432 "conf_parser.y" /* yacc.c:1652 */
5571 michael 913 {
5572 michael 8497 ConfigGeneral.anti_nick_flood = yylval.number;
5573 michael 913 }
5574 michael 8866 #line 5575 "conf_parser.c" /* yacc.c:1652 */
5575 michael 913 break;
5576    
5577 michael 8866 case 526:
5578     #line 2437 "conf_parser.y" /* yacc.c:1652 */
5579 michael 913 {
5580 michael 8497 ConfigGeneral.max_nick_time = (yyvsp[-1].number);
5581 michael 913 }
5582 michael 8866 #line 5583 "conf_parser.c" /* yacc.c:1652 */
5583 michael 913 break;
5584    
5585 michael 8866 case 527:
5586     #line 2442 "conf_parser.y" /* yacc.c:1652 */
5587 michael 913 {
5588 michael 8497 ConfigGeneral.max_nick_changes = (yyvsp[-1].number);
5589 michael 2853 }
5590 michael 8866 #line 5591 "conf_parser.c" /* yacc.c:1652 */
5591 michael 2853 break;
5592    
5593 michael 8866 case 528:
5594     #line 2447 "conf_parser.y" /* yacc.c:1652 */
5595 michael 2853 {
5596 michael 8497 ConfigGeneral.max_accept = (yyvsp[-1].number);
5597 michael 3506 }
5598 michael 8866 #line 5599 "conf_parser.c" /* yacc.c:1652 */
5599 michael 3506 break;
5600    
5601 michael 8866 case 529:
5602     #line 2452 "conf_parser.y" /* yacc.c:1652 */
5603 michael 3506 {
5604 michael 8497 ConfigGeneral.anti_spam_exit_message_time = (yyvsp[-1].number);
5605 michael 3513 }
5606 michael 8866 #line 5607 "conf_parser.c" /* yacc.c:1652 */
5607 michael 3513 break;
5608    
5609 michael 8866 case 530:
5610     #line 2457 "conf_parser.y" /* yacc.c:1652 */
5611 michael 3513 {
5612 michael 8497 ConfigGeneral.ts_warn_delta = (yyvsp[-1].number);
5613 michael 5004 }
5614 michael 8866 #line 5615 "conf_parser.c" /* yacc.c:1652 */
5615 michael 5004 break;
5616    
5617 michael 8866 case 531:
5618     #line 2462 "conf_parser.y" /* yacc.c:1652 */
5619 michael 5004 {
5620 michael 8866 ConfigGeneral.ts_max_delta = (yyvsp[-1].number);
5621 michael 913 }
5622 michael 8866 #line 5623 "conf_parser.c" /* yacc.c:1652 */
5623 michael 913 break;
5624    
5625 michael 8866 case 532:
5626     #line 2467 "conf_parser.y" /* yacc.c:1652 */
5627 michael 913 {
5628 michael 8497 ConfigGeneral.invisible_on_connect = yylval.number;
5629 michael 913 }
5630 michael 8866 #line 5631 "conf_parser.c" /* yacc.c:1652 */
5631 michael 913 break;
5632    
5633 michael 8866 case 533:
5634     #line 2472 "conf_parser.y" /* yacc.c:1652 */
5635 michael 913 {
5636 michael 8497 ConfigGeneral.warn_no_connect_block = yylval.number;
5637 michael 2269 }
5638 michael 8866 #line 5639 "conf_parser.c" /* yacc.c:1652 */
5639 michael 2269 break;
5640    
5641 michael 8866 case 534:
5642     #line 2477 "conf_parser.y" /* yacc.c:1652 */
5643 michael 2269 {
5644 michael 8497 ConfigGeneral.stats_e_disabled = yylval.number;
5645 michael 913 }
5646 michael 8866 #line 5647 "conf_parser.c" /* yacc.c:1652 */
5647 michael 913 break;
5648    
5649 michael 8866 case 535:
5650     #line 2482 "conf_parser.y" /* yacc.c:1652 */
5651 michael 913 {
5652 michael 8497 ConfigGeneral.stats_m_oper_only = yylval.number;
5653 michael 5025 }
5654 michael 8866 #line 5655 "conf_parser.c" /* yacc.c:1652 */
5655 michael 5025 break;
5656    
5657 michael 8866 case 536:
5658     #line 2487 "conf_parser.y" /* yacc.c:1652 */
5659 michael 5025 {
5660 michael 8497 ConfigGeneral.stats_o_oper_only = yylval.number;
5661 michael 913 }
5662 michael 8866 #line 5663 "conf_parser.c" /* yacc.c:1652 */
5663 michael 913 break;
5664    
5665 michael 8866 case 537:
5666     #line 2492 "conf_parser.y" /* yacc.c:1652 */
5667 michael 913 {
5668 michael 8497 ConfigGeneral.stats_P_oper_only = yylval.number;
5669 michael 913 }
5670 michael 8866 #line 5671 "conf_parser.c" /* yacc.c:1652 */
5671 michael 913 break;
5672    
5673 michael 8866 case 538:
5674     #line 2497 "conf_parser.y" /* yacc.c:1652 */
5675 michael 913 {
5676 michael 8497 ConfigGeneral.stats_u_oper_only = yylval.number;
5677 michael 913 }
5678 michael 8866 #line 5679 "conf_parser.c" /* yacc.c:1652 */
5679 michael 913 break;
5680    
5681 michael 8866 case 539:
5682     #line 2502 "conf_parser.y" /* yacc.c:1652 */
5683 michael 913 {
5684 michael 8497 ConfigGeneral.stats_k_oper_only = 2 * yylval.number;
5685 michael 913 }
5686 michael 8866 #line 5687 "conf_parser.c" /* yacc.c:1652 */
5687 michael 913 break;
5688    
5689 michael 8866 case 540:
5690     #line 2505 "conf_parser.y" /* yacc.c:1652 */
5691 michael 913 {
5692 michael 8497 ConfigGeneral.stats_k_oper_only = 1;
5693 michael 913 }
5694 michael 8866 #line 5695 "conf_parser.c" /* yacc.c:1652 */
5695 michael 913 break;
5696    
5697 michael 8866 case 541:
5698     #line 2510 "conf_parser.y" /* yacc.c:1652 */
5699 michael 913 {
5700 michael 8497 ConfigGeneral.stats_i_oper_only = 2 * yylval.number;
5701 michael 913 }
5702 michael 8866 #line 5703 "conf_parser.c" /* yacc.c:1652 */
5703 michael 913 break;
5704    
5705 michael 8866 case 542:
5706     #line 2513 "conf_parser.y" /* yacc.c:1652 */
5707 michael 913 {
5708 michael 8497 ConfigGeneral.stats_i_oper_only = 1;
5709 michael 913 }
5710 michael 8866 #line 5711 "conf_parser.c" /* yacc.c:1652 */
5711 michael 913 break;
5712    
5713 michael 8866 case 543:
5714     #line 2518 "conf_parser.y" /* yacc.c:1652 */
5715 michael 913 {
5716 michael 8497 ConfigGeneral.pace_wait = (yyvsp[-1].number);
5717 michael 913 }
5718 michael 8866 #line 5719 "conf_parser.c" /* yacc.c:1652 */
5719 michael 913 break;
5720    
5721 michael 8866 case 544:
5722     #line 2523 "conf_parser.y" /* yacc.c:1652 */
5723 michael 913 {
5724 michael 8497 ConfigGeneral.caller_id_wait = (yyvsp[-1].number);
5725 michael 913 }
5726 michael 8866 #line 5727 "conf_parser.c" /* yacc.c:1652 */
5727 michael 913 break;
5728    
5729 michael 8866 case 545:
5730     #line 2528 "conf_parser.y" /* yacc.c:1652 */
5731 michael 913 {
5732 michael 8497 ConfigGeneral.opers_bypass_callerid = yylval.number;
5733 michael 913 }
5734 michael 8866 #line 5735 "conf_parser.c" /* yacc.c:1652 */
5735 michael 913 break;
5736    
5737 michael 8866 case 546:
5738     #line 2533 "conf_parser.y" /* yacc.c:1652 */
5739 michael 913 {
5740 michael 8497 ConfigGeneral.pace_wait_simple = (yyvsp[-1].number);
5741 michael 913 }
5742 michael 8866 #line 5743 "conf_parser.c" /* yacc.c:1652 */
5743 michael 913 break;
5744    
5745 michael 8866 case 547:
5746     #line 2538 "conf_parser.y" /* yacc.c:1652 */
5747 michael 913 {
5748 michael 8497 ConfigGeneral.short_motd = yylval.number;
5749 michael 1715 }
5750 michael 8866 #line 5751 "conf_parser.c" /* yacc.c:1652 */
5751 michael 1715 break;
5752    
5753 michael 8866 case 548:
5754     #line 2543 "conf_parser.y" /* yacc.c:1652 */
5755 michael 1715 {
5756 michael 8497 ConfigGeneral.no_oper_flood = yylval.number;
5757 michael 913 }
5758 michael 8866 #line 5759 "conf_parser.c" /* yacc.c:1652 */
5759 michael 913 break;
5760    
5761 michael 8866 case 549:
5762     #line 2548 "conf_parser.y" /* yacc.c:1652 */
5763 michael 913 {
5764 michael 8497 ConfigGeneral.dots_in_ident = (yyvsp[-1].number);
5765 michael 2853 }
5766 michael 8866 #line 5767 "conf_parser.c" /* yacc.c:1652 */
5767 michael 2853 break;
5768    
5769 michael 8866 case 550:
5770     #line 2553 "conf_parser.y" /* yacc.c:1652 */
5771 michael 4254 {
5772 michael 8497 ConfigGeneral.max_targets = (yyvsp[-1].number);
5773 michael 4254 }
5774 michael 8866 #line 5775 "conf_parser.c" /* yacc.c:1652 */
5775 michael 4254 break;
5776    
5777 michael 8866 case 551:
5778     #line 2558 "conf_parser.y" /* yacc.c:1652 */
5779 michael 3506 {
5780 michael 8497 ConfigGeneral.ping_cookie = yylval.number;
5781 michael 3513 }
5782 michael 8866 #line 5783 "conf_parser.c" /* yacc.c:1652 */
5783 michael 3513 break;
5784    
5785 michael 8866 case 552:
5786     #line 2563 "conf_parser.y" /* yacc.c:1652 */
5787 michael 3513 {
5788 michael 8497 ConfigGeneral.disable_auth = yylval.number;
5789 michael 913 }
5790 michael 8866 #line 5791 "conf_parser.c" /* yacc.c:1652 */
5791 michael 913 break;
5792    
5793 michael 8866 case 553:
5794     #line 2568 "conf_parser.y" /* yacc.c:1652 */
5795 michael 913 {
5796 michael 8497 ConfigGeneral.throttle_count = (yyvsp[-1].number);
5797 michael 1157 }
5798 michael 8866 #line 5799 "conf_parser.c" /* yacc.c:1652 */
5799 michael 913 break;
5800    
5801 michael 8866 case 554:
5802     #line 2573 "conf_parser.y" /* yacc.c:1652 */
5803 michael 913 {
5804 michael 8497 ConfigGeneral.throttle_time = (yyvsp[-1].number);
5805 michael 913 }
5806 michael 8866 #line 5807 "conf_parser.c" /* yacc.c:1652 */
5807 michael 913 break;
5808    
5809 michael 8866 case 555:
5810     #line 2578 "conf_parser.y" /* yacc.c:1652 */
5811 michael 4967 {
5812 michael 8497 ConfigGeneral.oper_umodes = 0;
5813 michael 4967 }
5814 michael 8866 #line 5815 "conf_parser.c" /* yacc.c:1652 */
5815 michael 4967 break;
5816    
5817 michael 8866 case 559:
5818     #line 2584 "conf_parser.y" /* yacc.c:1652 */
5819 michael 4967 {
5820 michael 8497 ConfigGeneral.oper_umodes |= UMODE_BOTS;
5821 michael 4967 }
5822 michael 8866 #line 5823 "conf_parser.c" /* yacc.c:1652 */
5823 michael 4967 break;
5824    
5825 michael 8866 case 560:
5826     #line 2587 "conf_parser.y" /* yacc.c:1652 */
5827 michael 913 {
5828 michael 8497 ConfigGeneral.oper_umodes |= UMODE_CCONN;
5829 michael 913 }
5830 michael 8866 #line 5831 "conf_parser.c" /* yacc.c:1652 */
5831 michael 913 break;
5832    
5833 michael 8866 case 561:
5834     #line 2590 "conf_parser.y" /* yacc.c:1652 */
5835 michael 2196 {
5836 michael 8497 ConfigGeneral.oper_umodes |= UMODE_DEAF;
5837 michael 3877 }
5838 michael 8866 #line 5839 "conf_parser.c" /* yacc.c:1652 */
5839 michael 3877 break;
5840    
5841 michael 8866 case 562:
5842     #line 2593 "conf_parser.y" /* yacc.c:1652 */
5843 michael 3877 {
5844 michael 8497 ConfigGeneral.oper_umodes |= UMODE_DEBUG;
5845 michael 2196 }
5846 michael 8866 #line 5847 "conf_parser.c" /* yacc.c:1652 */
5847 michael 2196 break;
5848    
5849 michael 8866 case 563:
5850     #line 2596 "conf_parser.y" /* yacc.c:1652 */
5851 michael 2196 {
5852 michael 8497 ConfigGeneral.oper_umodes |= UMODE_FULL;
5853 michael 2196 }
5854 michael 8866 #line 5855 "conf_parser.c" /* yacc.c:1652 */
5855 michael 2196 break;
5856    
5857 michael 8866 case 564:
5858     #line 2599 "conf_parser.y" /* yacc.c:1652 */
5859 michael 1547 {
5860 michael 8497 ConfigGeneral.oper_umodes |= UMODE_HIDDEN;
5861 michael 1547 }
5862 michael 8866 #line 5863 "conf_parser.c" /* yacc.c:1652 */
5863 michael 1547 break;
5864    
5865 michael 8866 case 565:
5866     #line 2602 "conf_parser.y" /* yacc.c:1652 */
5867 michael 1547 {
5868 michael 8497 ConfigGeneral.oper_umodes |= UMODE_HIDECHANS;
5869 michael 1547 }
5870 michael 8866 #line 5871 "conf_parser.c" /* yacc.c:1652 */
5871 michael 1547 break;
5872    
5873 michael 8866 case 566:
5874     #line 2605 "conf_parser.y" /* yacc.c:1652 */
5875 michael 913 {
5876 michael 8497 ConfigGeneral.oper_umodes |= UMODE_HIDEIDLE;
5877 michael 913 }
5878 michael 8866 #line 5879 "conf_parser.c" /* yacc.c:1652 */
5879 michael 913 break;
5880    
5881 michael 8866 case 567:
5882     #line 2608 "conf_parser.y" /* yacc.c:1652 */
5883 michael 913 {
5884 michael 8497 ConfigGeneral.oper_umodes |= UMODE_SKILL;
5885 michael 913 }
5886 michael 8866 #line 5887 "conf_parser.c" /* yacc.c:1652 */
5887 michael 913 break;
5888    
5889 michael 8866 case 568:
5890     #line 2611 "conf_parser.y" /* yacc.c:1652 */
5891 michael 913 {
5892 michael 8497 ConfigGeneral.oper_umodes |= UMODE_NCHANGE;
5893 michael 913 }
5894 michael 8866 #line 5895 "conf_parser.c" /* yacc.c:1652 */
5895 michael 913 break;
5896    
5897 michael 8866 case 569:
5898     #line 2614 "conf_parser.y" /* yacc.c:1652 */
5899 michael 913 {
5900 michael 8497 ConfigGeneral.oper_umodes |= UMODE_REJ;
5901 michael 3506 }
5902 michael 8866 #line 5903 "conf_parser.c" /* yacc.c:1652 */
5903 michael 3506 break;
5904    
5905 michael 8866 case 570:
5906     #line 2617 "conf_parser.y" /* yacc.c:1652 */
5907 michael 3506 {
5908 michael 8497 ConfigGeneral.oper_umodes |= UMODE_UNAUTH;
5909 michael 913 }
5910 michael 8866 #line 5911 "conf_parser.c" /* yacc.c:1652 */
5911 michael 913 break;
5912    
5913 michael 8866 case 571:
5914     #line 2620 "conf_parser.y" /* yacc.c:1652 */
5915 michael 913 {
5916 michael 8497 ConfigGeneral.oper_umodes |= UMODE_SPY;
5917 michael 913 }
5918 michael 8866 #line 5919 "conf_parser.c" /* yacc.c:1652 */
5919 michael 913 break;
5920    
5921 michael 8866 case 572:
5922     #line 2623 "conf_parser.y" /* yacc.c:1652 */
5923 michael 1294 {
5924 michael 8497 ConfigGeneral.oper_umodes |= UMODE_EXTERNAL;
5925 michael 1294 }
5926 michael 8866 #line 5927 "conf_parser.c" /* yacc.c:1652 */
5927 michael 1294 break;
5928    
5929 michael 8866 case 573:
5930     #line 2626 "conf_parser.y" /* yacc.c:1652 */
5931 michael 913 {
5932 michael 8497 ConfigGeneral.oper_umodes |= UMODE_SERVNOTICE;
5933 michael 913 }
5934 michael 8866 #line 5935 "conf_parser.c" /* yacc.c:1652 */
5935 michael 913 break;
5936    
5937 michael 8866 case 574:
5938     #line 2629 "conf_parser.y" /* yacc.c:1652 */
5939 michael 913 {
5940 michael 8497 ConfigGeneral.oper_umodes |= UMODE_INVISIBLE;
5941 michael 913 }
5942 michael 8866 #line 5943 "conf_parser.c" /* yacc.c:1652 */
5943 michael 913 break;
5944    
5945 michael 8866 case 575:
5946     #line 2632 "conf_parser.y" /* yacc.c:1652 */
5947 michael 913 {
5948 michael 8497 ConfigGeneral.oper_umodes |= UMODE_WALLOP;
5949 michael 913 }
5950 michael 8866 #line 5951 "conf_parser.c" /* yacc.c:1652 */
5951 michael 913 break;
5952    
5953 michael 8866 case 576:
5954     #line 2635 "conf_parser.y" /* yacc.c:1652 */
5955 michael 913 {
5956 michael 8497 ConfigGeneral.oper_umodes |= UMODE_SOFTCALLERID;
5957 michael 913 }
5958 michael 8866 #line 5959 "conf_parser.c" /* yacc.c:1652 */
5959 michael 913 break;
5960    
5961 michael 8866 case 577:
5962     #line 2638 "conf_parser.y" /* yacc.c:1652 */
5963 michael 913 {
5964 michael 8497 ConfigGeneral.oper_umodes |= UMODE_CALLERID;
5965 michael 913 }
5966 michael 8866 #line 5967 "conf_parser.c" /* yacc.c:1652 */
5967 michael 913 break;
5968    
5969 michael 8866 case 578:
5970     #line 2641 "conf_parser.y" /* yacc.c:1652 */
5971 michael 913 {
5972 michael 8497 ConfigGeneral.oper_umodes |= UMODE_LOCOPS;
5973 michael 913 }
5974 michael 8866 #line 5975 "conf_parser.c" /* yacc.c:1652 */
5975 michael 913 break;
5976    
5977 michael 8866 case 579:
5978     #line 2644 "conf_parser.y" /* yacc.c:1652 */
5979 michael 913 {
5980 michael 8497 ConfigGeneral.oper_umodes |= UMODE_REGONLY;
5981 michael 913 }
5982 michael 8866 #line 5983 "conf_parser.c" /* yacc.c:1652 */
5983 michael 913 break;
5984    
5985 michael 8866 case 580:
5986     #line 2647 "conf_parser.y" /* yacc.c:1652 */
5987 michael 913 {
5988 michael 8497 ConfigGeneral.oper_umodes |= UMODE_FARCONNECT;
5989 michael 913 }
5990 michael 8866 #line 5991 "conf_parser.c" /* yacc.c:1652 */
5991 michael 913 break;
5992    
5993 michael 8866 case 581:
5994     #line 2652 "conf_parser.y" /* yacc.c:1652 */
5995 michael 913 {
5996 michael 8497 ConfigGeneral.oper_only_umodes = 0;
5997 michael 913 }
5998 michael 8866 #line 5999 "conf_parser.c" /* yacc.c:1652 */
5999 michael 913 break;
6000    
6001 michael 8866 case 585:
6002     #line 2658 "conf_parser.y" /* yacc.c:1652 */
6003 michael 913 {
6004 michael 8497 ConfigGeneral.oper_only_umodes |= UMODE_BOTS;
6005 michael 913 }
6006 michael 8866 #line 6007 "conf_parser.c" /* yacc.c:1652 */
6007 michael 913 break;
6008    
6009 michael 8866 case 586:
6010     #line 2661 "conf_parser.y" /* yacc.c:1652 */
6011 michael 913 {
6012 michael 8497 ConfigGeneral.oper_only_umodes |= UMODE_CCONN;
6013 michael 913 }
6014 michael 8866 #line 6015 "conf_parser.c" /* yacc.c:1652 */
6015 michael 913 break;
6016    
6017 michael 8866 case 587:
6018     #line 2664 "conf_parser.y" /* yacc.c:1652 */
6019 michael 913 {
6020 michael 8497 ConfigGeneral.oper_only_umodes |= UMODE_DEAF;
6021 michael 913 }
6022 michael 8866 #line 6023 "conf_parser.c" /* yacc.c:1652 */
6023 michael 913 break;
6024    
6025 michael 8866 case 588:
6026     #line 2667 "conf_parser.y" /* yacc.c:1652 */
6027 michael 913 {
6028 michael 8497 ConfigGeneral.oper_only_umodes |= UMODE_DEBUG;
6029 michael 1981 }
6030 michael 8866 #line 6031 "conf_parser.c" /* yacc.c:1652 */
6031 michael 1981 break;
6032    
6033 michael 8866 case 589:
6034     #line 2670 "conf_parser.y" /* yacc.c:1652 */
6035 michael 1981 {
6036 michael 8497 ConfigGeneral.oper_only_umodes |= UMODE_FULL;
6037 michael 1981 }
6038 michael 8866 #line 6039 "conf_parser.c" /* yacc.c:1652 */
6039 michael 1981 break;
6040    
6041 michael 8866 case 590:
6042     #line 2673 "conf_parser.y" /* yacc.c:1652 */
6043 michael 1981 {
6044 michael 8497 ConfigGeneral.oper_only_umodes |= UMODE_SKILL;
6045 michael 913 }
6046 michael 8866 #line 6047 "conf_parser.c" /* yacc.c:1652 */
6047 michael 913 break;
6048    
6049 michael 8866 case 591:
6050     #line 2676 "conf_parser.y" /* yacc.c:1652 */
6051 michael 913 {
6052 michael 8497 ConfigGeneral.oper_only_umodes |= UMODE_HIDDEN;
6053 michael 913 }
6054 michael 8866 #line 6055 "conf_parser.c" /* yacc.c:1652 */
6055 michael 913 break;
6056    
6057 michael 8866 case 592:
6058     #line 2679 "conf_parser.y" /* yacc.c:1652 */
6059 michael 2853 {
6060 michael 8497 ConfigGeneral.oper_only_umodes |= UMODE_NCHANGE;
6061 michael 913 }
6062 michael 8866 #line 6063 "conf_parser.c" /* yacc.c:1652 */
6063 michael 913 break;
6064    
6065 michael 8866 case 593:
6066     #line 2682 "conf_parser.y" /* yacc.c:1652 */
6067 michael 3229 {
6068 michael 8497 ConfigGeneral.oper_only_umodes |= UMODE_REJ;
6069 michael 913 }
6070 michael 8866 #line 6071 "conf_parser.c" /* yacc.c:1652 */
6071 michael 913 break;
6072    
6073 michael 8866 case 594:
6074     #line 2685 "conf_parser.y" /* yacc.c:1652 */
6075 michael 2196 {
6076 michael 8497 ConfigGeneral.oper_only_umodes |= UMODE_UNAUTH;
6077 michael 913 }
6078 michael 8866 #line 6079 "conf_parser.c" /* yacc.c:1652 */
6079 michael 913 break;
6080    
6081 michael 8866 case 595:
6082     #line 2688 "conf_parser.y" /* yacc.c:1652 */
6083 michael 913 {
6084 michael 8497 ConfigGeneral.oper_only_umodes |= UMODE_SPY;
6085 michael 913 }
6086 michael 8866 #line 6087 "conf_parser.c" /* yacc.c:1652 */
6087 michael 913 break;
6088    
6089 michael 8866 case 596:
6090     #line 2691 "conf_parser.y" /* yacc.c:1652 */
6091 michael 1547 {
6092 michael 8497 ConfigGeneral.oper_only_umodes |= UMODE_EXTERNAL;
6093 michael 913 }
6094 michael 8866 #line 6095 "conf_parser.c" /* yacc.c:1652 */
6095 michael 913 break;
6096    
6097 michael 8866 case 597:
6098     #line 2694 "conf_parser.y" /* yacc.c:1652 */
6099 michael 913 {
6100 michael 8497 ConfigGeneral.oper_only_umodes |= UMODE_SERVNOTICE;
6101 michael 913 }
6102 michael 8866 #line 6103 "conf_parser.c" /* yacc.c:1652 */
6103 michael 913 break;
6104    
6105 michael 8866 case 598:
6106     #line 2697 "conf_parser.y" /* yacc.c:1652 */
6107 michael 1294 {
6108 michael 8497 ConfigGeneral.oper_only_umodes |= UMODE_INVISIBLE;
6109 michael 1294 }
6110 michael 8866 #line 6111 "conf_parser.c" /* yacc.c:1652 */
6111 michael 1294 break;
6112    
6113 michael 8866 case 599:
6114     #line 2700 "conf_parser.y" /* yacc.c:1652 */
6115 michael 913 {
6116 michael 8497 ConfigGeneral.oper_only_umodes |= UMODE_WALLOP;
6117 michael 913 }
6118 michael 8866 #line 6119 "conf_parser.c" /* yacc.c:1652 */
6119 michael 913 break;
6120    
6121 michael 8866 case 600:
6122     #line 2703 "conf_parser.y" /* yacc.c:1652 */
6123 michael 913 {
6124 michael 8497 ConfigGeneral.oper_only_umodes |= UMODE_SOFTCALLERID;
6125 michael 913 }
6126 michael 8866 #line 6127 "conf_parser.c" /* yacc.c:1652 */
6127 michael 913 break;
6128    
6129 michael 8866 case 601:
6130     #line 2706 "conf_parser.y" /* yacc.c:1652 */
6131 michael 913 {
6132 michael 8497 ConfigGeneral.oper_only_umodes |= UMODE_CALLERID;
6133 michael 913 }
6134 michael 8866 #line 6135 "conf_parser.c" /* yacc.c:1652 */
6135 michael 913 break;
6136    
6137 michael 8866 case 602:
6138     #line 2709 "conf_parser.y" /* yacc.c:1652 */
6139 michael 913 {
6140 michael 8497 ConfigGeneral.oper_only_umodes |= UMODE_LOCOPS;
6141 michael 913 }
6142 michael 8866 #line 6143 "conf_parser.c" /* yacc.c:1652 */
6143 michael 913 break;
6144    
6145 michael 8866 case 603:
6146     #line 2712 "conf_parser.y" /* yacc.c:1652 */
6147 michael 913 {
6148 michael 8497 ConfigGeneral.oper_only_umodes |= UMODE_REGONLY;
6149 michael 913 }
6150 michael 8866 #line 6151 "conf_parser.c" /* yacc.c:1652 */
6151 michael 913 break;
6152    
6153 michael 8866 case 604:
6154     #line 2715 "conf_parser.y" /* yacc.c:1652 */
6155 michael 913 {
6156 michael 8497 ConfigGeneral.oper_only_umodes |= UMODE_FARCONNECT;
6157 michael 913 }
6158 michael 8866 #line 6159 "conf_parser.c" /* yacc.c:1652 */
6159 michael 913 break;
6160    
6161 michael 8866 case 605:
6162     #line 2720 "conf_parser.y" /* yacc.c:1652 */
6163 michael 913 {
6164 michael 8497 ConfigGeneral.min_nonwildcard = (yyvsp[-1].number);
6165 michael 913 }
6166 michael 8866 #line 6167 "conf_parser.c" /* yacc.c:1652 */
6167 michael 913 break;
6168    
6169 michael 8866 case 606:
6170     #line 2725 "conf_parser.y" /* yacc.c:1652 */
6171 michael 913 {
6172 michael 8497 ConfigGeneral.min_nonwildcard_simple = (yyvsp[-1].number);
6173 michael 1855 }
6174 michael 8866 #line 6175 "conf_parser.c" /* yacc.c:1652 */
6175 michael 1855 break;
6176    
6177 michael 8866 case 607:
6178     #line 2730 "conf_parser.y" /* yacc.c:1652 */
6179 michael 1855 {
6180 michael 8497 ConfigGeneral.default_floodcount = (yyvsp[-1].number);
6181 michael 913 }
6182 michael 8866 #line 6183 "conf_parser.c" /* yacc.c:1652 */
6183 michael 913 break;
6184    
6185 michael 8866 case 608:
6186     #line 2735 "conf_parser.y" /* yacc.c:1652 */
6187 michael 913 {
6188 michael 8497 ConfigGeneral.default_floodtime = (yyvsp[-1].number);
6189 michael 913 }
6190 michael 8866 #line 6191 "conf_parser.c" /* yacc.c:1652 */
6191 michael 913 break;
6192    
6193 michael 8866 case 627:
6194     #line 2763 "conf_parser.y" /* yacc.c:1652 */
6195 michael 1519 {
6196 michael 8497 ConfigChannel.disable_fake_channels = yylval.number;
6197 michael 1519 }
6198 michael 8866 #line 6199 "conf_parser.c" /* yacc.c:1652 */
6199 michael 1519 break;
6200    
6201 michael 8866 case 628:
6202     #line 2768 "conf_parser.y" /* yacc.c:1652 */
6203 michael 1118 {
6204 michael 8497 ConfigChannel.invite_client_count = (yyvsp[-1].number);
6205 michael 7861 }
6206 michael 8866 #line 6207 "conf_parser.c" /* yacc.c:1652 */
6207 michael 7861 break;
6208    
6209 michael 8866 case 629:
6210     #line 2773 "conf_parser.y" /* yacc.c:1652 */
6211 michael 7861 {
6212 michael 8497 ConfigChannel.invite_client_time = (yyvsp[-1].number);
6213 michael 913 }
6214 michael 8866 #line 6215 "conf_parser.c" /* yacc.c:1652 */
6215 michael 913 break;
6216    
6217 michael 8866 case 630:
6218     #line 2778 "conf_parser.y" /* yacc.c:1652 */
6219 michael 913 {
6220 michael 8497 ConfigChannel.invite_delay_channel = (yyvsp[-1].number);
6221 michael 3762 }
6222 michael 8866 #line 6223 "conf_parser.c" /* yacc.c:1652 */
6223 michael 3762 break;
6224    
6225 michael 8866 case 631:
6226     #line 2783 "conf_parser.y" /* yacc.c:1652 */
6227 michael 3762 {
6228 michael 8497 ConfigChannel.invite_expire_time = (yyvsp[-1].number);
6229 michael 3762 }
6230 michael 8866 #line 6231 "conf_parser.c" /* yacc.c:1652 */
6231 michael 3762 break;
6232    
6233 michael 8866 case 632:
6234     #line 2788 "conf_parser.y" /* yacc.c:1652 */
6235 michael 913 {
6236 michael 8497 ConfigChannel.knock_client_count = (yyvsp[-1].number);
6237 michael 6801 }
6238 michael 8866 #line 6239 "conf_parser.c" /* yacc.c:1652 */
6239 michael 6801 break;
6240    
6241 michael 8866 case 633:
6242     #line 2793 "conf_parser.y" /* yacc.c:1652 */
6243 michael 6801 {
6244 michael 8497 ConfigChannel.knock_client_time = (yyvsp[-1].number);
6245 michael 7795 }
6246 michael 8866 #line 6247 "conf_parser.c" /* yacc.c:1652 */
6247 michael 7795 break;
6248    
6249 michael 8866 case 634:
6250     #line 2798 "conf_parser.y" /* yacc.c:1652 */
6251 michael 7795 {
6252 michael 8497 ConfigChannel.knock_delay_channel = (yyvsp[-1].number);
6253 michael 913 }
6254 michael 8866 #line 6255 "conf_parser.c" /* yacc.c:1652 */
6255 michael 913 break;
6256    
6257 michael 8866 case 635:
6258     #line 2803 "conf_parser.y" /* yacc.c:1652 */
6259 michael 913 {
6260 michael 8497 ConfigChannel.max_channels = (yyvsp[-1].number);
6261 michael 913 }
6262 michael 8866 #line 6263 "conf_parser.c" /* yacc.c:1652 */
6263 michael 913 break;
6264    
6265 michael 8866 case 636:
6266     #line 2808 "conf_parser.y" /* yacc.c:1652 */
6267 michael 913 {
6268 michael 8497 ConfigChannel.max_invites = (yyvsp[-1].number);
6269 michael 913 }
6270 michael 8866 #line 6271 "conf_parser.c" /* yacc.c:1652 */
6271 michael 913 break;
6272    
6273 michael 8866 case 637:
6274     #line 2813 "conf_parser.y" /* yacc.c:1652 */
6275 michael 913 {
6276 michael 8497 ConfigChannel.max_bans = (yyvsp[-1].number);
6277 michael 913 }
6278 michael 8866 #line 6279 "conf_parser.c" /* yacc.c:1652 */
6279 michael 913 break;
6280    
6281 michael 8866 case 638:
6282     #line 2818 "conf_parser.y" /* yacc.c:1652 */
6283 michael 913 {
6284 michael 8497 ConfigChannel.max_bans_large = (yyvsp[-1].number);
6285 michael 7772 }
6286 michael 8866 #line 6287 "conf_parser.c" /* yacc.c:1652 */
6287 michael 7772 break;
6288    
6289 michael 8866 case 639:
6290     #line 2823 "conf_parser.y" /* yacc.c:1652 */
6291 michael 7772 {
6292 michael 8497 ConfigChannel.default_join_flood_count = yylval.number;
6293 michael 5987 }
6294 michael 8866 #line 6295 "conf_parser.c" /* yacc.c:1652 */
6295 michael 5987 break;
6296    
6297 michael 8866 case 640:
6298     #line 2828 "conf_parser.y" /* yacc.c:1652 */
6299 michael 5987 {
6300 michael 5490 ConfigChannel.default_join_flood_time = (yyvsp[-1].number);
6301 michael 3860 }
6302 michael 8866 #line 6303 "conf_parser.c" /* yacc.c:1652 */
6303 michael 3860 break;
6304    
6305 michael 8866 case 654:
6306     #line 2851 "conf_parser.y" /* yacc.c:1652 */
6307 michael 3860 {
6308 michael 2196 if (conf_parser_ctx.pass == 2)
6309     ConfigServerHide.flatten_links = yylval.number;
6310 michael 913 }
6311 michael 8866 #line 6312 "conf_parser.c" /* yacc.c:1652 */
6312 michael 913 break;
6313    
6314 michael 8866 case 655:
6315     #line 2857 "conf_parser.y" /* yacc.c:1652 */
6316 michael 913 {
6317 michael 967 if (conf_parser_ctx.pass == 2)
6318 michael 6637 {
6319     if ((yyvsp[-1].number) > 0)
6320     {
6321     event_write_links_file.when = (yyvsp[-1].number);
6322     event_add(&event_write_links_file, NULL);
6323     }
6324     else
6325     event_delete(&event_write_links_file);
6326    
6327     ConfigServerHide.flatten_links_delay = (yyvsp[-1].number);
6328     }
6329 michael 913 }
6330 michael 8866 #line 6331 "conf_parser.c" /* yacc.c:1652 */
6331 michael 913 break;
6332    
6333 michael 8866 case 656:
6334     #line 2873 "conf_parser.y" /* yacc.c:1652 */
6335 michael 913 {
6336 michael 967 if (conf_parser_ctx.pass == 2)
6337 michael 6637 {
6338 michael 7032 xfree(ConfigServerHide.flatten_links_file);
6339 michael 6637 ConfigServerHide.flatten_links_file = xstrdup(yylval.string);
6340     }
6341 michael 913 }
6342 michael 8866 #line 6343 "conf_parser.c" /* yacc.c:1652 */
6343 michael 913 break;
6344    
6345 michael 8866 case 657:
6346     #line 2882 "conf_parser.y" /* yacc.c:1652 */
6347 michael 913 {
6348 michael 967 if (conf_parser_ctx.pass == 2)
6349 michael 6637 ConfigServerHide.disable_remote_commands = yylval.number;
6350 michael 1851 }
6351 michael 8866 #line 6352 "conf_parser.c" /* yacc.c:1652 */
6352 michael 1851 break;
6353    
6354 michael 8866 case 658:
6355     #line 2888 "conf_parser.y" /* yacc.c:1652 */
6356 michael 1851 {
6357     if (conf_parser_ctx.pass == 2)
6358 michael 6637 ConfigServerHide.hide_servers = yylval.number;
6359 michael 913 }
6360 michael 8866 #line 6361 "conf_parser.c" /* yacc.c:1652 */
6361 michael 913 break;
6362    
6363 michael 8866 case 659:
6364     #line 2894 "conf_parser.y" /* yacc.c:1652 */
6365 michael 913 {
6366 michael 967 if (conf_parser_ctx.pass == 2)
6367 michael 6637 ConfigServerHide.hide_services = yylval.number;
6368 michael 913 }
6369 michael 8866 #line 6370 "conf_parser.c" /* yacc.c:1652 */
6370 michael 913 break;
6371    
6372 michael 8866 case 660:
6373     #line 2900 "conf_parser.y" /* yacc.c:1652 */
6374 michael 913 {
6375 michael 967 if (conf_parser_ctx.pass == 2)
6376 michael 6603 {
6377 michael 7032 xfree(ConfigServerHide.hidden_name);
6378 michael 6637 ConfigServerHide.hidden_name = xstrdup(yylval.string);
6379 michael 6603 }
6380     }
6381 michael 8866 #line 6382 "conf_parser.c" /* yacc.c:1652 */
6382 michael 6603 break;
6383    
6384 michael 8866 case 661:
6385     #line 2909 "conf_parser.y" /* yacc.c:1652 */
6386 michael 6603 {
6387     if (conf_parser_ctx.pass == 2)
6388 michael 913 ConfigServerHide.hidden = yylval.number;
6389     }
6390 michael 8866 #line 6391 "conf_parser.c" /* yacc.c:1652 */
6391 michael 913 break;
6392    
6393 michael 8866 case 662:
6394     #line 2915 "conf_parser.y" /* yacc.c:1652 */
6395 michael 913 {
6396 michael 967 if (conf_parser_ctx.pass == 2)
6397 michael 913 ConfigServerHide.hide_server_ips = yylval.number;
6398     }
6399 michael 8866 #line 6400 "conf_parser.c" /* yacc.c:1652 */
6400 michael 913 break;
6401    
6402    
6403 michael 8866 #line 6404 "conf_parser.c" /* yacc.c:1652 */
6404 michael 913 default: break;
6405     }
6406 michael 1133 /* User semantic actions sometimes alter yychar, and that requires
6407     that yytoken be updated with the new translation. We take the
6408     approach of translating immediately before every use of yytoken.
6409     One alternative is translating here after every semantic action,
6410     but that translation would be missed if the semantic action invokes
6411     YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
6412     if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an
6413     incorrect destructor might then be invoked immediately. In the
6414     case of YYERROR or YYBACKUP, subsequent parser actions might lead
6415     to an incorrect destructor call or verbose syntax error message
6416     before the lookahead is translated. */
6417 michael 913 YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
6418    
6419     YYPOPSTACK (yylen);
6420     yylen = 0;
6421     YY_STACK_PRINT (yyss, yyssp);
6422    
6423     *++yyvsp = yyval;
6424    
6425 michael 2473 /* Now 'shift' the result of the reduction. Determine what state
6426 michael 913 that goes to, based on the state we popped back to and the rule
6427     number reduced by. */
6428 michael 8760 {
6429     const int yylhs = yyr1[yyn] - YYNTOKENS;
6430     const int yyi = yypgoto[yylhs] + *yyssp;
6431     yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp
6432     ? yytable[yyi]
6433     : yydefgoto[yylhs]);
6434     }
6435 michael 913
6436     goto yynewstate;
6437    
6438    
6439 michael 2473 /*--------------------------------------.
6440     | yyerrlab -- here on detecting error. |
6441     `--------------------------------------*/
6442 michael 913 yyerrlab:
6443 michael 1133 /* Make sure we have latest lookahead translation. See comments at
6444     user semantic actions for why this is necessary. */
6445     yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
6446    
6447 michael 913 /* If not already recovering from an error, report this error. */
6448     if (!yyerrstatus)
6449     {
6450     ++yynerrs;
6451     #if ! YYERROR_VERBOSE
6452     yyerror (YY_("syntax error"));
6453     #else
6454 michael 1133 # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
6455     yyssp, yytoken)
6456 michael 913 {
6457 michael 1133 char const *yymsgp = YY_("syntax error");
6458     int yysyntax_error_status;
6459     yysyntax_error_status = YYSYNTAX_ERROR;
6460     if (yysyntax_error_status == 0)
6461     yymsgp = yymsg;
6462     else if (yysyntax_error_status == 1)
6463     {
6464     if (yymsg != yymsgbuf)
6465     YYSTACK_FREE (yymsg);
6466     yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
6467     if (!yymsg)
6468     {
6469     yymsg = yymsgbuf;
6470     yymsg_alloc = sizeof yymsgbuf;
6471     yysyntax_error_status = 2;
6472     }
6473     else
6474     {
6475     yysyntax_error_status = YYSYNTAX_ERROR;
6476     yymsgp = yymsg;
6477     }
6478     }
6479     yyerror (yymsgp);
6480     if (yysyntax_error_status == 2)
6481     goto yyexhaustedlab;
6482 michael 913 }
6483 michael 1133 # undef YYSYNTAX_ERROR
6484 michael 913 #endif
6485     }
6486    
6487    
6488    
6489     if (yyerrstatus == 3)
6490     {
6491 michael 967 /* If just tried and failed to reuse lookahead token after an
6492 michael 2473 error, discard it. */
6493 michael 913
6494     if (yychar <= YYEOF)
6495 michael 2473 {
6496     /* Return failure if at end of input. */
6497     if (yychar == YYEOF)
6498     YYABORT;
6499     }
6500 michael 913 else
6501 michael 2473 {
6502     yydestruct ("Error: discarding",
6503     yytoken, &yylval);
6504     yychar = YYEMPTY;
6505     }
6506 michael 913 }
6507    
6508 michael 967 /* Else will try to reuse lookahead token after shifting the error
6509 michael 913 token. */
6510     goto yyerrlab1;
6511    
6512    
6513     /*---------------------------------------------------.
6514     | yyerrorlab -- error raised explicitly by YYERROR. |
6515     `---------------------------------------------------*/
6516     yyerrorlab:
6517 michael 8866 /* Pacify compilers when the user code never invokes YYERROR and the
6518     label yyerrorlab therefore never appears in user code. */
6519     if (0)
6520     YYERROR;
6521 michael 913
6522 michael 2473 /* Do not reclaim the symbols of the rule whose action triggered
6523 michael 913 this YYERROR. */
6524     YYPOPSTACK (yylen);
6525     yylen = 0;
6526     YY_STACK_PRINT (yyss, yyssp);
6527     yystate = *yyssp;
6528     goto yyerrlab1;
6529    
6530    
6531     /*-------------------------------------------------------------.
6532     | yyerrlab1 -- common code for both syntax error and YYERROR. |
6533     `-------------------------------------------------------------*/
6534     yyerrlab1:
6535 michael 2473 yyerrstatus = 3; /* Each real token shifted decrements this. */
6536 michael 913
6537     for (;;)
6538     {
6539     yyn = yypact[yystate];
6540 michael 1133 if (!yypact_value_is_default (yyn))
6541 michael 2473 {
6542     yyn += YYTERROR;
6543     if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
6544     {
6545     yyn = yytable[yyn];
6546     if (0 < yyn)
6547     break;
6548     }
6549     }
6550 michael 913
6551     /* Pop the current state because it cannot handle the error token. */
6552     if (yyssp == yyss)
6553 michael 2473 YYABORT;
6554 michael 913
6555    
6556     yydestruct ("Error: popping",
6557 michael 2473 yystos[yystate], yyvsp);
6558 michael 913 YYPOPSTACK (1);
6559     yystate = *yyssp;
6560     YY_STACK_PRINT (yyss, yyssp);
6561     }
6562    
6563 michael 1619 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
6564 michael 913 *++yyvsp = yylval;
6565 michael 1619 YY_IGNORE_MAYBE_UNINITIALIZED_END
6566 michael 913
6567    
6568     /* Shift the error token. */
6569     YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
6570    
6571     yystate = yyn;
6572     goto yynewstate;
6573    
6574    
6575     /*-------------------------------------.
6576     | yyacceptlab -- YYACCEPT comes here. |
6577     `-------------------------------------*/
6578     yyacceptlab:
6579     yyresult = 0;
6580     goto yyreturn;
6581    
6582 michael 8866
6583 michael 913 /*-----------------------------------.
6584     | yyabortlab -- YYABORT comes here. |
6585     `-----------------------------------*/
6586     yyabortlab:
6587     yyresult = 1;
6588     goto yyreturn;
6589    
6590 michael 8866
6591 michael 1425 #if !defined yyoverflow || YYERROR_VERBOSE
6592 michael 913 /*-------------------------------------------------.
6593     | yyexhaustedlab -- memory exhaustion comes here. |
6594     `-------------------------------------------------*/
6595     yyexhaustedlab:
6596     yyerror (YY_("memory exhausted"));
6597     yyresult = 2;
6598     /* Fall through. */
6599     #endif
6600    
6601 michael 8866
6602     /*-----------------------------------------------------.
6603     | yyreturn -- parsing is finished, return the result. |
6604     `-----------------------------------------------------*/
6605 michael 913 yyreturn:
6606 michael 967 if (yychar != YYEMPTY)
6607 michael 1133 {
6608     /* Make sure we have latest lookahead translation. See comments at
6609     user semantic actions for why this is necessary. */
6610     yytoken = YYTRANSLATE (yychar);
6611     yydestruct ("Cleanup: discarding lookahead",
6612     yytoken, &yylval);
6613     }
6614 michael 2473 /* Do not reclaim the symbols of the rule whose action triggered
6615 michael 913 this YYABORT or YYACCEPT. */
6616     YYPOPSTACK (yylen);
6617     YY_STACK_PRINT (yyss, yyssp);
6618     while (yyssp != yyss)
6619     {
6620     yydestruct ("Cleanup: popping",
6621 michael 2473 yystos[*yyssp], yyvsp);
6622 michael 913 YYPOPSTACK (1);
6623     }
6624     #ifndef yyoverflow
6625     if (yyss != yyssa)
6626     YYSTACK_FREE (yyss);
6627     #endif
6628     #if YYERROR_VERBOSE
6629     if (yymsg != yymsgbuf)
6630     YYSTACK_FREE (yymsg);
6631     #endif
6632 michael 2473 return yyresult;
6633 michael 913 }

Properties

Name Value
svn:eol-style native