ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/svn/ircd-hybrid/trunk/src/conf_parser.c
Revision: 1749
Committed: Tue Jan 15 19:01:16 2013 UTC (12 years, 7 months ago) by michael
Content type: text/x-csrc
File size: 216881 byte(s)
Log Message:
- Rebuilt conf_parser.c
- Minor logic fixes to recently added away-notify capability

File Contents

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