ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/svn/ircd-hybrid/trunk/src/conf_parser.c
Revision: 1981
Committed: Wed May 8 20:20:27 2013 UTC (12 years, 3 months ago) by michael
Content type: text/x-csrc
File size: 220878 byte(s)
Log Message:
- regenerate parser/lexer

File Contents

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

Properties

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