ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/svn/ircd-hybrid/trunk/src/conf_parser.c
Revision: 1736
Committed: Sun Jan 13 09:31:46 2013 UTC (13 years, 7 months ago) by michael
Content type: text/x-csrc
File size: 216912 byte(s)
Log Message:
- Forward-port -r1732 [Dropped support for linux rt signals]

File Contents

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

Properties

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