ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/svn/ircd-hybrid/trunk/src/conf_parser.c
Revision: 1921
Committed: Tue Apr 30 14:54:20 2013 UTC (12 years, 4 months ago) by michael
Content type: text/x-csrc
File size: 219802 byte(s)
Log Message:
- Forward-port -r1920 [Dropped PCRE support]

File Contents

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

Properties

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