ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/svn/ircd-hybrid/trunk/src/conf_parser.c
Revision: 1680
Committed: Tue Dec 18 18:06:32 2012 UTC (13 years, 9 months ago) by michael
Content type: text/x-csrc
File size: 217233 byte(s)
Log Message:
- bison 2.7 & automake 1.12.6
- Update configure.ac

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

Properties

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