ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/svn/ircd-hybrid/trunk/src/conf_parser.c
Revision: 1992
Committed: Fri May 10 18:32:26 2013 UTC (12 years, 3 months ago) by michael
Content type: text/x-csrc
File size: 220611 byte(s)
Log Message:
- Removed unused OFLAG_OPER_SPY definition

File Contents

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

Properties

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