ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/svn/ircd-hybrid/trunk/src/conf_parser.c
Revision: 8047
Committed: Sat Mar 18 18:09:01 2017 UTC (8 years, 5 months ago) by michael
Content type: text/x-csrc
File size: 224836 byte(s)
Log Message:
- Rebuilt configuration parser files

File Contents

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

Properties

Name Value
svn:eol-style native