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

Properties

Name Value
svn:eol-style native