ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/svn/ircd-hybrid/trunk/src/conf_parser.c
Revision: 2106
Committed: Thu May 23 19:21:53 2013 UTC (12 years, 3 months ago) by michael
Content type: text/x-csrc
File size: 222378 byte(s)
Log Message:
- conf_parser.y: match() takes care of multiple globs. no need to run collapse()

File Contents

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

Properties

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