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

Properties

Name Value
svn:eol-style native