ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/svn/ircd-hybrid/trunk/src/conf_parser.c
Revision: 1904
Committed: Sat Apr 27 21:16:22 2013 UTC (13 years, 5 months ago) by michael
Content type: text/x-csrc
File size: 223928 byte(s)
Log Message:
- Removed operflag 'nick_changes'. Operators can now set +n at will

File Contents

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

Properties

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