ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/svn/ircd-hybrid/trunk/src/conf_parser.c
Revision: 1833
Committed: Fri Apr 19 19:19:46 2013 UTC (12 years, 4 months ago) by michael
Content type: text/x-csrc
File size: 223569 byte(s)
Log Message:
- bison 2.7.1

File Contents

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

Properties

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