ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/svn/ircd-hybrid/trunk/src/conf_parser.c
Revision: 7131
Committed: Mon Jan 25 19:12:25 2016 UTC (9 years, 7 months ago) by michael
Content type: text/x-csrc
File size: 218208 byte(s)
Log Message:
- Re-create parser files

File Contents

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

Properties

Name Value
svn:eol-style native
svn:keywords Id Revision