ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/svn/ircd-hybrid/trunk/src/conf_parser.c
Revision: 7308
Committed: Wed Feb 10 10:48:15 2016 UTC (9 years, 6 months ago) by michael
Content type: text/x-csrc
File size: 222741 byte(s)
Log Message:
- autoreconf
- re-create parser files

File Contents

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

Properties

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