ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/svn/ircd-hybrid/trunk/src/conf_parser.c
Revision: 2185
Committed: Tue Jun 4 12:29:18 2013 UTC (12 years, 2 months ago) by michael
Content type: text/x-csrc
File size: 223854 byte(s)
Log Message:
- Removed usermode +C

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

Properties

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