ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/svn/ircd-hybrid/trunk/src/conf_parser.c
Revision: 2129
Committed: Wed May 29 13:12:15 2013 UTC (12 years, 3 months ago) by michael
Content type: text/x-csrc
File size: 222163 byte(s)
Log Message:
- conf_parser.l, conf_parser.y: style corrections

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

Properties

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