ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/svn/ircd-hybrid/trunk/src/conf_parser.c
Revision: 2196
Committed: Tue Jun 4 18:30:12 2013 UTC (13 years, 4 months ago) by michael
Content type: text/x-csrc
File size: 223858 byte(s)
Log Message:
- Moved disable_remote_command configuration directive from
  general{} block to serverhide{] block

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 2196 #define YYLAST 1225
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 2196 1452, 1457, 1462, 1467, 1472, 1477, 1482, 1487, 1492, 1497,
1058     1502, 1507, 1512, 1517, 1522, 1527, 1532, 1537, 1542, 1547,
1059     1552, 1557, 1562, 1567, 1572, 1577, 1582, 1587, 1592, 1597,
1060     1602, 1607, 1612, 1617, 1622, 1627, 1632, 1637, 1642, 1647,
1061     1652, 1657, 1662, 1667, 1672, 1673, 1679, 1683, 1685, 1687,
1062     1689, 1691, 1693, 1695, 1697, 1699, 1701, 1703, 1705, 1707,
1063     1709, 1711, 1713, 1715, 1717, 1719, 1721, 1723, 1725, 1727,
1064     1728, 1734, 1738, 1740, 1742, 1744, 1746, 1748, 1750, 1752,
1065     1754, 1756, 1758, 1760, 1762, 1764, 1766, 1768, 1770, 1772,
1066     1774, 1776, 1778, 1780, 1782, 1787, 1792, 1797, 1803, 1806,
1067     1808, 1810, 1812, 1814, 1816, 1818, 1820, 1822, 1824, 1826,
1068     1828, 1830, 1832, 1834, 1839, 1844, 1849, 1854, 1859, 1864,
1069     1869, 1874, 1879, 1884, 1889, 1894, 1900, 1903, 1905, 1907,
1070     1909, 1911, 1913, 1915, 1917, 1919, 1921, 1923, 1928, 1933,
1071 michael 2185 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 michael 2196 -1, 291, -1, 489, -1, 309, -1, 332, -1, 346,
1079     -1, 241, -1, 504, -1, 361, -1, 368, -1, 372,
1080 michael 2185 -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 michael 2196 446, -1, 447, -1, 448, -1, 449, -1, 450, -1,
1214     451, -1, 452, -1, 453, -1, 443, -1, 455, -1,
1215     456, -1, 470, -1, 458, -1, 460, -1, 462, -1,
1216     461, -1, 465, -1, 459, -1, 466, -1, 467, -1,
1217     468, -1, 469, -1, 482, -1, 471, -1, 472, -1,
1218     473, -1, 478, -1, 463, -1, 464, -1, 488, -1,
1219     486, -1, 487, -1, 477, -1, 454, -1, 475, -1,
1220     476, -1, 442, -1, 437, -1, 438, -1, 439, -1,
1221     440, -1, 441, -1, 457, -1, 436, -1, 474, -1,
1222     1, -1, 90, 226, 107, 223, -1, 41, 226, 206,
1223     223, -1, 40, 226, 233, 223, -1, 45, 226, 233,
1224     223, -1, 43, 226, 107, 223, -1, 44, 226, 107,
1225     223, -1, 208, 226, 206, 223, -1, 67, 226, 233,
1226     223, -1, 54, 226, 206, 223, -1, 58, 226, 206,
1227     223, -1, 35, 226, 206, 223, -1, 6, 226, 206,
1228     223, -1, 86, 226, 233, 223, -1, 84, 226, 107,
1229     223, -1, 76, 226, 107, 223, -1, 7, 226, 233,
1230     223, -1, 212, 226, 233, 223, -1, 211, 226, 233,
1231     223, -1, 47, 226, 107, 223, -1, 59, 226, 206,
1232     223, -1, 221, 226, 206, 223, -1, 151, 226, 206,
1233     223, -1, 154, 226, 206, 223, -1, 155, 226, 206,
1234     223, -1, 153, 226, 206, 223, -1, 153, 226, 209,
1235     223, -1, 152, 226, 206, 223, -1, 152, 226, 209,
1236     223, -1, 115, 226, 233, 223, -1, 12, 226, 233,
1237     223, -1, 114, 226, 206, 223, -1, 116, 226, 233,
1238     223, -1, 145, 226, 206, 223, -1, 105, 226, 206,
1239     223, -1, 210, 226, 206, 223, -1, 111, 226, 206,
1240     223, -1, 29, 226, 107, 223, -1, 88, 226, 107,
1241     223, -1, 216, 226, 206, 223, -1, 30, 226, 122,
1242     223, -1, 183, 226, 122, 223, -1, 119, 226, 206,
1243     223, -1, 26, 226, 206, 223, -1, 207, 226, 233,
1244     223, -1, -1, 112, 479, 226, 480, 223, -1, 480,
1245     227, 481, -1, 481, -1, 157, -1, 159, -1, 161,
1246     -1, 162, -1, 167, -1, 48, -1, 188, -1, 175,
1247     -1, 179, -1, 198, -1, 190, -1, 164, -1, 177,
1248     -1, 184, -1, 169, -1, 203, -1, 189, -1, 158,
1249     -1, 172, -1, 176, -1, 165, -1, -1, 110, 483,
1250     226, 484, 223, -1, 484, 227, 485, -1, 485, -1,
1251     157, -1, 159, -1, 161, -1, 162, -1, 167, -1,
1252     188, -1, 48, -1, 175, -1, 179, -1, 198, -1,
1253     190, -1, 164, -1, 177, -1, 184, -1, 169, -1,
1254     203, -1, 189, -1, 158, -1, 172, -1, 176, -1,
1255     165, -1, 92, 226, 107, 223, -1, 93, 226, 107,
1256     223, -1, 20, 226, 107, 223, -1, 14, 225, 490,
1257     224, 223, -1, 490, 491, -1, 491, -1, 497, -1,
1258     493, -1, 494, -1, 495, -1, 496, -1, 498, -1,
1259     499, -1, 500, -1, 501, -1, 502, -1, 503, -1,
1260     492, -1, 1, -1, 27, 226, 206, 223, -1, 70,
1261     226, 233, 223, -1, 71, 226, 233, 223, -1, 79,
1262     226, 107, 223, -1, 78, 226, 107, 223, -1, 77,
1263     226, 107, 223, -1, 22, 226, 107, 223, -1, 21,
1264     226, 107, 223, -1, 103, 226, 206, 223, -1, 104,
1265     226, 206, 223, -1, 64, 226, 107, 223, -1, 65,
1266     226, 233, 223, -1, 143, 225, 505, 224, 223, -1,
1267     505, 506, -1, 506, -1, 507, -1, 508, -1, 509,
1268     -1, 510, -1, 512, -1, 513, -1, 511, -1, 514,
1269     -1, 1, -1, 36, 226, 206, 223, -1, 28, 226,
1270 michael 2185 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 michael 2196 2392, 2392, 2393, 2393, 2394, 2394, 2395, 2395, 2396, 2397,
1328     2398, 2398, 2399, 2399, 2400, 2401, 2402, 2403, 2403, 2404,
1329     2407, 2412, 2418, 2424, 2430, 2435, 2440, 2445, 2450, 2455,
1330     2460, 2465, 2470, 2475, 2480, 2485, 2490, 2495, 2501, 2512,
1331     2517, 2522, 2527, 2532, 2537, 2540, 2545, 2548, 2553, 2558,
1332     2563, 2568, 2573, 2578, 2583, 2588, 2593, 2598, 2603, 2608,
1333     2617, 2626, 2631, 2636, 2642, 2641, 2646, 2646, 2647, 2650,
1334 michael 2185 2653, 2656, 2659, 2662, 2665, 2668, 2671, 2674, 2677, 2680,
1335 michael 2196 2683, 2686, 2689, 2692, 2695, 2698, 2701, 2704, 2707, 2713,
1336     2712, 2717, 2717, 2718, 2721, 2724, 2727, 2730, 2733, 2736,
1337 michael 2185 2739, 2742, 2745, 2748, 2751, 2754, 2757, 2760, 2763, 2766,
1338 michael 2196 2769, 2772, 2775, 2778, 2783, 2788, 2793, 2802, 2805, 2805,
1339     2806, 2807, 2807, 2808, 2808, 2809, 2810, 2811, 2812, 2813,
1340     2813, 2814, 2814, 2816, 2821, 2826, 2831, 2836, 2841, 2846,
1341     2851, 2856, 2861, 2866, 2871, 2879, 2882, 2882, 2883, 2883,
1342     2884, 2885, 2886, 2887, 2887, 2888, 2889, 2891, 2897, 2903,
1343     2909, 2915, 2924, 2938, 2944
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 michael 2196 "general_ignore_bogus_ts", "general_failed_oper_notice",
1461     "general_anti_nick_flood", "general_max_nick_time",
1462     "general_max_nick_changes", "general_max_accept",
1463     "general_anti_spam_exit_message_time", "general_ts_warn_delta",
1464     "general_ts_max_delta", "general_havent_read_conf",
1465     "general_invisible_on_connect", "general_warn_no_nline",
1466     "general_stats_e_disabled", "general_stats_o_oper_only",
1467     "general_stats_P_oper_only", "general_stats_k_oper_only",
1468     "general_stats_i_oper_only", "general_pace_wait",
1469     "general_caller_id_wait", "general_opers_bypass_callerid",
1470     "general_pace_wait_simple", "general_short_motd",
1471     "general_no_oper_flood", "general_true_no_oper_flood",
1472     "general_oper_pass_resv", "general_dots_in_ident", "general_max_targets",
1473     "general_use_egd", "general_egdpool_path", "general_services_name",
1474     "general_ping_cookie", "general_disable_auth", "general_throttle_time",
1475     "general_oper_umodes", "$@24", "umode_oitems", "umode_oitem",
1476     "general_oper_only_umodes", "$@25", "umode_items", "umode_item",
1477     "general_min_nonwildcard", "general_min_nonwildcard_simple",
1478     "general_default_floodcount", "channel_entry", "channel_items",
1479     "channel_item", "channel_disable_fake_channels", "channel_knock_delay",
1480 michael 1858 "channel_knock_delay_channel", "channel_max_chans_per_user",
1481 michael 1946 "channel_max_chans_per_oper", "channel_max_bans",
1482 michael 913 "channel_default_split_user_count", "channel_default_split_server_count",
1483     "channel_no_create_on_split", "channel_no_join_on_split",
1484 michael 1401 "channel_jflood_count", "channel_jflood_time", "serverhide_entry",
1485     "serverhide_items", "serverhide_item", "serverhide_flatten_links",
1486 michael 2196 "serverhide_disable_remote_commands", "serverhide_hide_servers",
1487     "serverhide_hide_services", "serverhide_hidden_name",
1488     "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 michael 2196 436, 437, 438, 439, 440, 441, 442, 443, 444, 445,
1578     446, 447, 448, 449, 450, 451, 452, 453, 454, 455,
1579     456, 457, 458, 459, 460, 460, 461, 461, 462, 463,
1580     464, 465, 466, 467, 468, 469, 470, 471, 472, 473,
1581     474, 475, 476, 477, 479, 478, 480, 480, 481, 481,
1582     481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
1583     481, 481, 481, 481, 481, 481, 481, 481, 481, 483,
1584     482, 484, 484, 485, 485, 485, 485, 485, 485, 485,
1585     485, 485, 485, 485, 485, 485, 485, 485, 485, 485,
1586     485, 485, 485, 485, 486, 487, 488, 489, 490, 490,
1587     491, 491, 491, 491, 491, 491, 491, 491, 491, 491,
1588     491, 491, 491, 492, 493, 494, 495, 496, 497, 498,
1589     499, 500, 501, 502, 503, 504, 505, 505, 506, 506,
1590     506, 506, 506, 506, 506, 506, 506, 507, 508, 509,
1591 michael 2185 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 913 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
1648     4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
1649     4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
1650 michael 2196 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
1651     4, 4, 4, 4, 0, 5, 3, 1, 1, 1,
1652 michael 913 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1653 michael 2196 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
1654     5, 3, 1, 1, 1, 1, 1, 1, 1, 1,
1655 michael 1519 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1656 michael 2196 1, 1, 1, 1, 4, 4, 4, 5, 2, 1,
1657 michael 1751 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1658 michael 2196 1, 1, 1, 4, 4, 4, 4, 4, 4, 4,
1659     4, 4, 4, 4, 4, 5, 2, 1, 1, 1,
1660     1, 1, 1, 1, 1, 1, 1, 4, 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 2196 0, 0, 0, 0, 0, 99, 100, 102, 101, 612,
1677 michael 913 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1678 michael 2196 0, 0, 0, 599, 611, 601, 602, 603, 604, 600,
1679     605, 606, 607, 608, 609, 610, 0, 0, 0, 438,
1680     0, 0, 436, 437, 0, 499, 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 2196 0, 0, 569, 0, 544, 0, 0, 0, 0, 0,
1684 michael 913 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1685 michael 2196 0, 0, 0, 0, 451, 497, 491, 492, 493, 494,
1686     495, 490, 462, 452, 453, 454, 455, 456, 457, 458,
1687     459, 460, 461, 487, 463, 464, 496, 466, 471, 467,
1688     469, 468, 481, 482, 470, 472, 473, 474, 475, 465,
1689     477, 478, 479, 498, 488, 489, 486, 480, 476, 484,
1690     485, 483, 0, 0, 0, 0, 0, 0, 0, 45,
1691     46, 47, 0, 0, 0, 636, 0, 0, 0, 0,
1692     0, 0, 0, 0, 0, 627, 628, 629, 630, 631,
1693     634, 632, 633, 635, 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 2196 0, 0, 0, 0, 598, 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 2196 0, 0, 0, 0, 450, 0, 0, 0, 299, 0,
1714     0, 0, 0, 0, 0, 285, 286, 287, 288, 293,
1715     289, 290, 291, 292, 422, 0, 0, 0, 419, 420,
1716     421, 0, 0, 0, 260, 0, 270, 0, 268, 269,
1717     271, 272, 48, 0, 0, 0, 44, 0, 0, 0,
1718     0, 110, 111, 112, 0, 0, 0, 189, 0, 0,
1719     0, 164, 0, 0, 148, 149, 150, 151, 154, 155,
1720     153, 152, 156, 0, 0, 0, 0, 0, 319, 320,
1721     321, 322, 0, 0, 0, 0, 0, 0, 0, 0,
1722     0, 626, 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 2196 0, 0, 0, 597, 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 2196 0, 0, 0, 0, 0, 0, 0, 0, 449, 294,
1738     0, 0, 0, 0, 0, 0, 0, 0, 0, 284,
1739     0, 0, 0, 418, 273, 0, 0, 0, 0, 0,
1740     267, 0, 0, 43, 113, 0, 0, 0, 109, 157,
1741     0, 0, 0, 0, 0, 0, 0, 0, 0, 147,
1742     323, 0, 0, 0, 0, 318, 0, 0, 0, 0,
1743     0, 0, 0, 0, 625, 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 michael 2196 0, 0, 0, 0, 335, 106, 105, 104, 620, 619,
1748     613, 623, 27, 27, 27, 27, 27, 27, 27, 29,
1749     28, 624, 614, 615, 618, 617, 616, 621, 622, 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 2196 0, 380, 0, 0, 426, 439, 0, 0, 441, 511,
1754     515, 529, 596, 542, 536, 539, 510, 502, 501, 504,
1755     505, 503, 518, 508, 509, 519, 507, 514, 513, 512,
1756     537, 500, 594, 595, 533, 579, 573, 590, 574, 575,
1757     576, 584, 593, 577, 587, 591, 580, 592, 585, 581,
1758     586, 578, 589, 583, 582, 588, 0, 572, 535, 553,
1759     548, 565, 549, 550, 551, 559, 568, 552, 562, 566,
1760     555, 567, 560, 556, 561, 554, 564, 558, 557, 563,
1761     0, 547, 530, 528, 531, 541, 532, 521, 526, 527,
1762     524, 525, 522, 523, 540, 543, 506, 534, 517, 516,
1763     538, 520, 0, 0, 0, 0, 0, 0, 0, 0,
1764     283, 0, 0, 417, 0, 0, 0, 278, 274, 277,
1765     259, 49, 50, 0, 0, 108, 0, 0, 0, 0,
1766     0, 0, 0, 0, 146, 0, 0, 0, 317, 638,
1767     637, 643, 641, 644, 639, 640, 642, 88, 96, 87,
1768 michael 2185 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 michael 2196 415, 399, 432, 433, 447, 448, 570, 0, 545, 0,
1777 michael 2185 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 michael 2196 346, 342, 253, 0, 40, 41, 42, 406, 0, 571,
1790     546, 300, 0, 261, 0, 279, 276, 275, 0, 0,
1791 michael 2185 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 2196 -1, 1, 25, 799, 800, 1051, 1052, 26, 218, 219,
1801     220, 221, 27, 262, 263, 264, 265, 760, 761, 764,
1802 michael 2150 765, 266, 267, 268, 269, 270, 271, 272, 273, 274,
1803     275, 276, 277, 278, 279, 280, 28, 74, 75, 76,
1804 michael 2196 77, 78, 29, 61, 490, 491, 492, 493, 30, 284,
1805 michael 2185 285, 286, 287, 288, 1014, 1015, 1016, 1017, 1018, 1185,
1806 michael 2196 1254, 1255, 31, 62, 503, 504, 505, 506, 507, 508,
1807     509, 510, 511, 726, 1161, 1162, 512, 722, 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 2196 598, 1036, 1037, 33, 59, 476, 707, 1106, 1107, 477,
1811     478, 479, 1110, 958, 959, 480, 481, 34, 57, 454,
1812     455, 456, 457, 458, 459, 460, 692, 1092, 1093, 461,
1813     462, 463, 35, 63, 517, 518, 519, 520, 521, 36,
1814 michael 2150 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 2196 377, 378, 40, 58, 467, 468, 469, 470, 41, 53,
1819 michael 2150 382, 383, 384, 385, 42, 111, 112, 113, 43, 55,
1820 michael 2196 392, 393, 394, 395, 44, 163, 164, 165, 166, 167,
1821     168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
1822     178, 179, 180, 181, 182, 183, 184, 185, 186, 187,
1823     188, 189, 190, 191, 192, 193, 194, 195, 196, 197,
1824     198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
1825     424, 920, 921, 208, 422, 896, 897, 209, 210, 211,
1826     45, 92, 93, 94, 95, 96, 97, 98, 99, 100,
1827     101, 102, 103, 104, 105, 46, 234, 235, 236, 237,
1828 michael 2150 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 2196 #define YYPACT_NINF -984
1834 michael 913 static const yytype_int16 yypact[] =
1835     {
1836 michael 2196 -984, 637, -984, -186, -182, -165, -984, -984, -984, -148,
1837     -984, -135, -984, -984, -984, -127, -984, -984, -984, -118,
1838     -64, -984, -56, -50, -984, -984, -984, -984, -984, -984,
1839     -984, -984, -984, -984, -984, -984, -984, -984, -984, -984,
1840     -984, -984, -984, -984, -984, -984, -984, -984, -984, 331,
1841     826, -48, -45, -11, 28, 36, 366, 39, 40, 41,
1842     60, 46, 58, 62, 721, 334, 65, 35, 24, 72,
1843     -195, -66, -21, 66, 17, -984, -984, -984, -984, -984,
1844     92, 96, 97, 99, 108, 110, 111, 118, 119, 124,
1845     125, 133, 5, -984, -984, -984, -984, -984, -984, -984,
1846     -984, -984, -984, -984, -984, -984, 657, 440, 14, -984,
1847     134, 12, -984, -984, 29, -984, 135, 137, 138, 143,
1848     145, 149, 150, 153, 155, 157, 158, 162, 163, 174,
1849     176, 177, 178, 182, 186, 189, 190, 192, 195, 196,
1850     200, 201, -984, 203, -984, 204, 206, 210, 211, 214,
1851     221, 222, 225, 235, 236, 237, 238, 239, 242, 243,
1852     244, 249, 253, 105, -984, -984, -984, -984, -984, -984,
1853     -984, -984, -984, -984, -984, -984, -984, -984, -984, -984,
1854     -984, -984, -984, -984, -984, -984, -984, -984, -984, -984,
1855     -984, -984, -984, -984, -984, -984, -984, -984, -984, -984,
1856     -984, -984, -984, -984, -984, -984, -984, -984, -984, -984,
1857     -984, -984, 268, 19, 212, 16, 261, 262, 38, -984,
1858     -984, -984, 165, 472, 274, -984, 264, 266, 270, 272,
1859     273, 279, 280, 281, 6, -984, -984, -984, -984, -984,
1860     -984, -984, -984, -984, 32, 284, 287, 288, 290, 296,
1861     297, 298, 299, 304, 305, 306, 307, 316, 317, 319,
1862     320, 321, 146, -984, -984, -984, -984, -984, -984, -984,
1863     -984, -984, -984, -984, -984, -984, -984, -984, -984, -984,
1864     -984, 70, 87, 322, 10, -984, -984, -984, 180, -984,
1865     324, 95, -984, -984, 173, -984, 232, 260, 277, 215,
1866     -984, 387, 444, 349, 449, 450, 450, 450, 451, 453,
1867     456, 359, 360, 344, -984, 347, 346, 353, 354, -984,
1868     358, 362, 364, 365, 367, 369, 371, 373, 376, 380,
1869     383, 384, 103, -984, -984, -984, -984, -984, -984, -984,
1870     -984, -984, -984, -984, -984, -984, -984, -984, -984, -984,
1871     363, 385, 388, 390, 391, 392, 393, -984, 402, 403,
1872     404, 405, 409, 410, 30, -984, -984, -984, -984, -984,
1873     -984, -984, -984, -984, -984, -984, -984, -984, -984, -984,
1874     414, 426, 4, -984, -984, -984, 463, 381, -984, -984,
1875     427, 430, 44, -984, -984, -984, 386, 450, 450, 506,
1876     455, 555, 541, 458, 450, 459, 559, 561, 450, 563,
1877     474, 477, 480, 450, 581, 584, 450, 586, 587, 593,
1878     594, 496, 479, 500, 486, 507, 450, 450, 508, 510,
1879     511, -197, -192, 514, 515, 602, 450, 519, 521, 450,
1880     450, 522, 524, 503, -984, 512, 505, 516, -984, 517,
1881     525, 526, 527, 530, 231, -984, -984, -984, -984, -984,
1882     -984, -984, -984, -984, -984, 533, 534, 20, -984, -984,
1883     -984, 513, 535, 537, -984, 538, -984, 18, -984, -984,
1884     -984, -984, -984, 612, 619, 523, -984, 545, 549, 550,
1885     67, -984, -984, -984, 556, 552, 557, -984, 558, 560,
1886     562, -984, 564, 156, -984, -984, -984, -984, -984, -984,
1887     -984, -984, -984, 566, 565, 567, 569, 55, -984, -984,
1888     -984, -984, 539, 576, 579, 625, 590, 596, 597, 450,
1889     582, -984, -984, 665, 598, 670, 699, 700, 686, 687,
1890     689, 690, 691, 693, 709, 695, -144, -96, 696, 698,
1891     607, -984, 610, 611, -984, 128, -984, -984, -984, -984,
1892     616, 615, -984, 620, 718, 618, -984, 626, 624, -984,
1893     628, 85, -984, -984, -984, -984, 629, 635, 636, -984,
1894     638, 639, 640, 641, 487, 643, 650, 653, 655, 658,
1895     660, 661, 669, -984, -984, 753, 773, 450, 662, 786,
1896     788, 450, 794, 795, 450, 784, 800, 802, 450, 803,
1897     803, 688, -984, -984, 790, -55, 792, 711, 793, 796,
1898     694, 797, 799, 809, 801, 804, 805, 701, -984, 806,
1899     810, 702, -984, 708, -984, 811, 812, 712, -984, 713,
1900     714, 715, 716, 717, 719, 720, 722, 723, 724, 725,
1901     726, 727, 728, 729, 730, 731, 732, 733, 734, 735,
1902     736, 737, 738, 739, 740, 520, 741, 667, 742, 743,
1903     744, 745, 746, 747, 748, 749, 750, 751, 752, 754,
1904     755, 756, 757, 758, 759, 760, 761, 762, -984, -984,
1905     819, 770, 763, 822, 815, 864, 865, 866, 767, -984,
1906     869, 870, 771, -984, -984, 871, 873, 772, 889, 774,
1907     -984, 776, 777, -984, -984, 879, 880, 780, -984, -984,
1908     882, 807, 779, 884, 885, 886, 783, 888, 789, -984,
1909     -984, 892, 893, 894, 798, -984, 808, 813, 814, 816,
1910     817, 818, 820, 821, -984, 823, 824, 825, 827, 828,
1911     829, 830, 831, 832, 833, 834, 835, 836, -984, -984,
1912     -183, -984, -984, -984, -177, -984, 837, 838, -984, -984,
1913     895, 785, 839, -984, 840, -984, 154, 841, -984, -984,
1914     896, 842, 897, 843, -984, -984, -984, -984, -984, -984,
1915     -984, -984, 450, 450, 450, 450, 450, 450, 450, -984,
1916     -984, -984, -984, -984, -984, -984, -984, -984, -984, 844,
1917     846, 847, -42, 848, 849, 850, 851, 852, 853, 854,
1918     855, 856, 857, 13, 858, 859, -984, 860, 861, 862,
1919     863, 867, 868, 872, 8, 874, 875, 876, 877, 878,
1920     881, -984, 883, 887, -984, -984, 890, 891, -984, -984,
1921     -984, -984, -984, -984, -984, -984, -984, -984, -984, -984,
1922     -984, -984, -984, -984, -984, -984, -984, -984, -984, -984,
1923     -984, -984, -984, -984, -984, -984, -984, -984, -984, -984,
1924     -984, -984, -984, -984, -984, -984, -984, -984, -984, -984,
1925     -984, -984, -984, -984, -984, -984, -174, -984, -984, -984,
1926     -984, -984, -984, -984, -984, -984, -984, -984, -984, -984,
1927     -984, -984, -984, -984, -984, -984, -984, -984, -984, -984,
1928     -130, -984, -984, -984, -984, -984, -984, -984, -984, -984,
1929     -984, -984, -984, -984, -984, -984, -984, -984, -984, -984,
1930     -984, -984, 898, 899, 502, 900, 901, 902, 903, 904,
1931     -984, 905, 906, -984, 907, 908, 15, 919, 909, -984,
1932     -984, -984, -984, 910, 911, -984, 912, 914, 435, 915,
1933     916, 917, 710, 918, -984, 920, 921, 922, -984, -984,
1934     -984, -984, -984, -984, -984, -984, -984, -984, -984, -984,
1935     -984, -984, -984, -984, -984, -984, -984, -984, -984, -984,
1936     -984, -144, -984, -96, -984, -984, 923, 337, -984, -984,
1937     924, 925, 926, -984, 90, -984, -984, -984, -984, -984,
1938     927, 599, 930, -984, -984, -984, -984, -984, -984, -984,
1939     -984, -984, -984, -984, -984, -984, -65, -984, -984, -984,
1940     -984, -984, -984, -984, -984, -984, -984, -984, 803, 803,
1941     803, -984, -984, -984, -984, -984, -984, -984, -984, -984,
1942     -984, -984, -984, -984, -20, -984, -984, -984, -984, -984,
1943     -984, -984, -984, -984, -984, -984, -984, 520, -984, 667,
1944     -984, -984, -984, -984, -984, -984, -984, -984, -984, -984,
1945     -984, -984, -19, -984, -984, -984, -984, -984, -984, -984,
1946     -984, -984, -984, -984, -984, -984, 53, -984, 913, 889,
1947     931, -984, -984, -984, -984, -984, 928, -984, -984, 929,
1948     -984, -984, -984, -984, 932, -984, -984, -984, -984, -984,
1949     -984, -984, -984, -984, -984, 59, -984, -984, -984, -984,
1950     -984, -984, -984, -984, -984, -984, -984, -984, -984, -984,
1951     -984, -984, -984, -984, -984, -984, -984, -984, -984, -984,
1952     -984, 79, -984, -984, -984, -984, -984, -984, -984, -984,
1953     -984, -984, -984, -984, -984, -984, -984, -984, -984, -984,
1954     84, -984, -984, 943, -97, 933, 935, -984, -984, -984,
1955     -984, -984, -984, -984, -984, -984, -984, -984, -984, 101,
1956     -984, -984, -984, -42, -984, -984, -984, -984, 8, -984,
1957     -984, -984, 502, -984, 15, -984, -984, -984, 959, 960,
1958     961, -984, 435, -984, 710, -984, 337, 938, 939, 940,
1959     378, -984, -984, 599, -984, -984, -984, -984, -984, -984,
1960     -984, -984, -984, -984, -984, -984, -984, -984, -984, -984,
1961     -984, -984, -984, -984, 120, -984, -984, -984, 378, -984
1962 michael 913 };
1963    
1964     /* YYPGOTO[NTERM-NUM]. */
1965     static const yytype_int16 yypgoto[] =
1966     {
1967 michael 2196 -984, -984, -984, -150, -303, -983, -609, -984, -984, 937,
1968     -984, -984, -984, -984, 764, -984, -984, -984, 21, -984,
1969     22, -984, -984, -984, -984, -984, -984, -984, -984, -984,
1970     -984, -984, -984, -984, -984, -984, -984, -984, 949, -984,
1971     -984, -984, -984, -984, -984, 540, -984, -984, -984, -984,
1972     765, -984, -984, -984, -984, 31, -984, -984, -984, -984,
1973     -984, -234, -984, -984, -984, 529, -984, -984, -984, -984,
1974     -984, -984, -984, -984, -984, -196, -984, -984, -984, -193,
1975     -984, -984, -984, 703, -984, -984, -984, -984, -984, -984,
1976     -984, -984, -984, -984, -984, -984, -984, -984, -984, -984,
1977     -984, -984, -176, -984, -984, -984, -984, -984, -181, -984,
1978     617, -984, -984, -984, -75, -984, -984, -984, -984, -984,
1979     588, -984, -984, -984, -984, -984, -984, -984, -120, -984,
1980     -984, -984, -984, -984, -984, 585, -984, -984, -984, -984,
1981     -984, 934, -984, -984, -984, -984, 467, -984, -984, -984,
1982     -984, -984, -140, -984, -984, -984, 548, -984, -984, -984,
1983     -984, -121, -984, -984, -984, 778, -984, -984, -984, -984,
1984     -984, -984, -984, -984, -984, -984, -112, -984, -984, -984,
1985     -984, -984, -984, -984, -984, 642, -984, -984, -984, -984,
1986     -984, 766, -984, -984, -984, -984, 996, -984, -984, -984,
1987     -984, 775, -984, -984, -984, -984, 945, -984, -984, -984,
1988     -984, -984, -984, -984, -984, -984, -984, -984, -984, -984,
1989     -984, -984, -984, -984, -984, -984, -984, -984, -984, -984,
1990     -984, -984, -984, -984, -984, -984, -984, -984, -984, -984,
1991     -984, -984, -984, -984, -984, -984, -984, -984, -984, -984,
1992     -984, -984, 33, -984, -984, -984, 34, -984, -984, -984,
1993     -984, -984, 1023, -984, -984, -984, -984, -984, -984, -984,
1994     -984, -984, -984, -984, -984, -984, -984, 936, -984, -984,
1995     -984, -984, -984, -984, -984, -984
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 2196 824, 825, 585, 586, 587, 379, 79, 225, 1034, 674,
2005     823, 282, 675, 109, 676, 379, 1062, 677, 70, 471,
2006     464, 464, 1048, 1049, 1050, 289, 80, 81, 295, 109,
2007     389, 350, 82, 351, 226, 352, 282, 47, 48, 215,
2008     1000, 71, 227, 49, 1001, 389, 1002, 353, 72, 1076,
2009     1003, 758, 759, 1077, 228, 229, 513, 230, 231, 232,
2010     50, 215, 354, 1103, 380, 1204, 1205, 1206, 487, 83,
2011     84, 552, 110, 472, 380, 85, 86, 54, 473, 233,
2012     474, 1035, 87, 88, 89, 355, 567, 356, 110, 514,
2013     56, 1010, 357, 1078, 640, 641, 289, 1079, 60, 762,
2014     763, 647, 358, 1228, 315, 651, 115, 64, 90, 91,
2015     656, 116, 117, 659, 73, 828, 829, 118, 316, 317,
2016     823, 290, 318, 669, 670, 119, 390, 359, 381, 552,
2017     515, 120, 216, 681, 121, 122, 684, 685, 381, 475,
2018     123, 390, 488, 465, 465, 124, 125, 244, 126, 127,
2019     128, 360, 129, 391, 216, 1010, 217, 494, 1202, 130,
2020     296, 65, 1203, 131, 132, 319, 487, 553, 391, 67,
2021     245, 361, 133, 495, 567, 68, -123, 106, 217, 516,
2022     107, 134, 568, 320, 321, 322, 323, 1011, 496, 135,
2023     324, 136, 290, 137, 325, 138, 1104, 139, 140, 1063,
2024     326, -123, 246, 1207, 1211, 297, 1105, 1208, 1212, 247,
2025     141, 327, 328, 471, 108, 142, 143, 144, 497, 145,
2026     146, 147, 362, 329, 148, 553, 743, 283, 631, 313,
2027     530, 248, 445, 489, 561, 249, 387, 466, 466, 482,
2028     488, 299, 709, 250, 702, 330, 251, 252, 446, 363,
2029     149, 1011, 283, 498, 627, 532, 150, 151, 152, 153,
2030     154, 114, 485, 447, 212, 213, 214, 472, 637, 445,
2031     568, 222, 473, 499, 474, 513, 1213, 1012, 253, 734,
2032     1214, 331, 1221, 223, 554, 446, 1222, 224, 155, 500,
2033     281, 717, 298, 448, 811, 254, 255, 294, 815, 569,
2034     447, 818, 1223, 570, 1013, 822, 1224, 1225, 514, 783,
2035     559, 1226, 156, 157, 1186, 158, 159, 160, 301, 565,
2036     256, 161, 302, 303, 1232, 304, 162, 611, 1233, 443,
2037     448, 489, 70, 475, 305, 244, 306, 307, 257, 258,
2038     259, 1012, 554, 1257, 308, 309, 563, 1258, 449, 515,
2039     310, 311, 772, 501, 576, 71, 450, 451, 245, 312,
2040     386, 396, 72, 397, 398, 260, 261, 115, 1013, 399,
2041     550, 400, 116, 117, 502, 401, 402, 452, 118, 403,
2042     728, 404, 577, 405, 406, 449, 119, 569, 407, 408,
2043     246, 570, 120, 450, 451, 121, 122, 247, 516, 578,
2044     409, 123, 410, 411, 412, 1170, 124, 125, 413, 126,
2045     127, 128, 414, 129, 452, 415, 416, 1247, 417, 248,
2046     130, 418, 419, 249, 131, 132, 420, 421, 73, 423,
2047     425, 250, 426, 133, 251, 252, 427, 428, 579, 1115,
2048     429, 350, 134, 351, 1248, 352, 1249, 430, 431, 453,
2049     135, 432, 136, 1116, 137, 698, 138, 353, 139, 140,
2050     1117, 433, 434, 435, 436, 437, 253, 1171, 438, 439,
2051     440, 141, 354, 494, 1118, 441, 142, 143, 144, 442,
2052     145, 146, 147, 254, 255, 148, 453, 483, 484, 495,
2053     522, 1250, 523, 1172, 580, 355, 524, 356, 525, 526,
2054     1173, 1119, 357, 1120, 496, 527, 528, 529, 256, 1174,
2055     533, 149, 358, 534, 535, 1082, 536, 150, 151, 152,
2056     153, 154, 537, 538, 539, 540, 257, 258, 259, 1121,
2057     541, 542, 543, 544, 497, 1083, 1175, 359, 1176, 1177,
2058     1251, 1252, 545, 546, 1084, 547, 548, 549, 560, 155,
2059     564, 581, 1178, 260, 261, 582, 583, 584, 588, 1179,
2060     589, 360, 1122, 590, 1123, 591, 592, 593, 875, 498,
2061     594, 1085, 595, 156, 157, 1229, 158, 159, 160, 596,
2062     597, 361, 161, 1124, 599, 633, 613, 162, 600, 499,
2063     601, 602, 639, 603, 584, 604, 1253, 605, 1125, 606,
2064     1086, 1087, 607, 1126, 634, 500, 608, 1127, 1088, 609,
2065     610, 614, 1128, 642, 615, 1129, 616, 617, 618, 619,
2066     1130, 792, 793, 794, 795, 796, 797, 798, 621, 622,
2067     623, 624, 362, 1089, 1131, 625, 626, 2, 3, 1132,
2068     629, 4, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1090,
2069     1133, 5, 630, 635, 6, 7, 636, 1134, 315, 363,
2070     8, 643, 644, 645, 646, 648, 649, 1189, 650, 501,
2071     652, 9, 316, 317, 10, 11, 318, 876, 877, 878,
2072     653, 879, 880, 654, 881, 882, 655, 883, 657, 884,
2073     502, 658, 885, 660, 661, 886, 887, 888, 12, 889,
2074     662, 663, 664, 13, 890, 665, 666, 1091, 891, 892,
2075     893, 14, 667, 668, 671, 899, 672, 673, 894, 319,
2076     678, 679, 225, 895, 680, 682, 688, 683, 686, 1190,
2077     687, 690, 15, 16, 711, 689, 704, 320, 321, 322,
2078     323, 712, 691, 693, 324, 736, 713, 739, 325, 226,
2079     17, 694, 695, 696, 326, 1191, 697, 227, 1140, 700,
2080     701, 705, 1192, 706, 708, 327, 328, 18, 714, 228,
2081     229, 1193, 230, 231, 232, 715, 716, 329, 720, 719,
2082     19, 20, 737, 721, 723, 738, 724, 745, 725, 730,
2083     727, 731, 747, 732, 233, 733, 740, 21, 1194, 330,
2084     1195, 1196, 741, 742, 746, 744, 748, 749, 750, 751,
2085     22, 752, 753, 754, 1197, 755, 756, 757, 766, 23,
2086     767, 1198, 774, 24, 900, 901, 902, 79, 903, 904,
2087     768, 905, 906, 769, 907, 331, 908, 770, 775, 909,
2088     777, 778, 910, 911, 912, 776, 913, 80, 81, 779,
2089     780, 914, 785, 82, 782, 915, 916, 917, 786, 787,
2090     809, 788, 789, 790, 791, 918, 801, 1141, 1142, 1143,
2091     919, 1144, 1145, 802, 1146, 1147, 803, 1148, 804, 1149,
2092     810, 805, 1150, 806, 807, 1151, 1152, 1153, 812, 1154,
2093     83, 84, 808, 813, 1155, 814, 85, 86, 1156, 1157,
2094     1158, 816, 817, 87, 88, 89, 819, 820, 1159, 821,
2095     823, 826, 827, 1160, 830, 832, 837, 831, 833, 835,
2096     834, 836, 946, 838, 841, 844, 839, 840, 842, 90,
2097     91, 845, 843, 846, 847, 848, 849, 850, 851, 852,
2098     853, 942, 854, 855, 945, 856, 857, 858, 859, 860,
2099     861, 862, 863, 864, 865, 866, 867, 868, 869, 870,
2100     871, 872, 873, 874, 898, 922, 923, 924, 925, 926,
2101     927, 928, 929, 930, 931, 932, 943, 933, 934, 935,
2102     936, 937, 938, 939, 940, 941, 947, 948, 949, 944,
2103     950, 951, 952, 954, 953, 955, 957, 960, 956, 961,
2104     962, 963, 964, 965, 966, 968, 969, 970, 971, 972,
2105     973, 1007, 974, 967, 975, 976, 977, 1006, 1020, 1022,
2106     1215, 978, 1167, 300, 1259, 1168, 551, 1234, 1242, 1241,
2107     718, 979, 729, 1237, 1216, 612, 980, 981, 784, 982,
2108     983, 984, 699, 985, 986, 1187, 987, 988, 989, 562,
2109 michael 2185 990, 991, 992, 993, 994, 995, 996, 997, 998, 999,
2110 michael 2196 1004, 1005, 1008, 1009, 1019, 1227, 1023, 1031, 1021, 1032,
2111     1033, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046,
2112     1047, 1053, 1054, 1055, 1056, 1057, 1058, 1238, 1239, 1240,
2113     1059, 1060, 1236, 1256, 710, 1061, 1235, 1066, 1067, 1068,
2114     1069, 1070, 735, 773, 1071, 1243, 1072, 388, 444, 703,
2115     1073, 1209, 1210, 1074, 1075, 314, 0, 0, 0, 0,
2116     0, 1080, 1081, 1094, 1095, 1096, 1097, 1098, 1099, 1100,
2117 michael 2185 1101, 1102, 1108, 1111, 1112, 1113, 1109, 1114, 1137, 1138,
2118 michael 2196 1139, 1163, 628, 1164, 1165, 1166, 1169, 1182, 632, 0,
2119     1188, 1183, 1184, 1201, 1217, 486, 1218, 1219, 1231, 1230,
2120     1220, 1244, 1245, 1246, 0, 0, 0, 638, 0, 0,
2121     531, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2122 michael 1855 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2123 michael 2150 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2124     0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2125 michael 2196 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2126     0, 0, 0, 0, 0, 566
2127 michael 913 };
2128    
2129 michael 1619 #define yypact_value_is_default(Yystate) \
2130 michael 2196 (!!((Yystate) == (-984)))
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 2196 609, 610, 305, 306, 307, 1, 1, 1, 50, 206,
2138     107, 1, 209, 1, 206, 1, 8, 209, 1, 1,
2139     1, 1, 9, 10, 11, 1, 21, 22, 223, 1,
2140     1, 1, 27, 3, 28, 5, 1, 223, 224, 1,
2141     223, 24, 36, 225, 227, 1, 223, 17, 31, 223,
2142     227, 195, 196, 227, 48, 49, 1, 51, 52, 53,
2143     225, 1, 32, 48, 60, 1048, 1049, 1050, 1, 64,
2144     65, 1, 60, 55, 60, 70, 71, 225, 60, 73,
2145     62, 123, 77, 78, 79, 55, 1, 57, 60, 34,
2146     225, 1, 62, 223, 397, 398, 1, 227, 225, 195,
2147     196, 404, 72, 200, 1, 408, 1, 225, 103, 104,
2148     413, 6, 7, 416, 97, 170, 171, 12, 15, 16,
2149     107, 97, 19, 426, 427, 20, 97, 97, 124, 1,
2150     75, 26, 94, 436, 29, 30, 439, 440, 124, 121,
2151     35, 97, 75, 124, 124, 40, 41, 1, 43, 44,
2152     45, 121, 47, 124, 94, 1, 118, 1, 223, 54,
2153     226, 225, 227, 58, 59, 62, 1, 97, 124, 225,
2154     24, 141, 67, 17, 1, 225, 166, 225, 118, 124,
2155     225, 76, 97, 80, 81, 82, 83, 97, 32, 84,
2156     87, 86, 97, 88, 91, 90, 181, 92, 93, 191,
2157     97, 166, 56, 223, 223, 226, 191, 227, 227, 63,
2158     105, 108, 109, 1, 225, 110, 111, 112, 62, 114,
2159     115, 116, 192, 120, 119, 97, 529, 217, 224, 224,
2160     224, 85, 1, 166, 224, 89, 224, 218, 218, 223,
2161     75, 224, 224, 97, 224, 142, 100, 101, 17, 219,
2162     145, 97, 217, 97, 224, 223, 151, 152, 153, 154,
2163     155, 225, 224, 32, 225, 225, 225, 55, 224, 1,
2164     97, 225, 60, 117, 62, 1, 223, 187, 132, 224,
2165     227, 178, 223, 225, 214, 17, 227, 225, 183, 133,
2166     225, 224, 226, 62, 597, 149, 150, 225, 601, 214,
2167     32, 604, 223, 218, 214, 608, 227, 223, 34, 224,
2168     223, 227, 207, 208, 224, 210, 211, 212, 226, 224,
2169     174, 216, 226, 226, 223, 226, 221, 224, 227, 224,
2170     62, 166, 1, 121, 226, 1, 226, 226, 192, 193,
2171     194, 187, 214, 223, 226, 226, 166, 227, 117, 75,
2172     226, 226, 224, 197, 122, 24, 125, 126, 24, 226,
2173     226, 226, 31, 226, 226, 219, 220, 1, 214, 226,
2174     224, 226, 6, 7, 218, 226, 226, 146, 12, 226,
2175     224, 226, 122, 226, 226, 117, 20, 214, 226, 226,
2176     56, 218, 26, 125, 126, 29, 30, 63, 124, 122,
2177     226, 35, 226, 226, 226, 68, 40, 41, 226, 43,
2178     44, 45, 226, 47, 146, 226, 226, 39, 226, 85,
2179     54, 226, 226, 89, 58, 59, 226, 226, 97, 226,
2180     226, 97, 226, 67, 100, 101, 226, 226, 223, 4,
2181     226, 1, 76, 3, 66, 5, 68, 226, 226, 218,
2182     84, 226, 86, 18, 88, 224, 90, 17, 92, 93,
2183     25, 226, 226, 226, 226, 226, 132, 130, 226, 226,
2184     226, 105, 32, 1, 39, 226, 110, 111, 112, 226,
2185     114, 115, 116, 149, 150, 119, 218, 226, 226, 17,
2186     226, 113, 226, 156, 107, 55, 226, 57, 226, 226,
2187     163, 66, 62, 68, 32, 226, 226, 226, 174, 172,
2188     226, 145, 72, 226, 226, 13, 226, 151, 152, 153,
2189     154, 155, 226, 226, 226, 226, 192, 193, 194, 94,
2190     226, 226, 226, 226, 62, 33, 199, 97, 201, 202,
2191     162, 163, 226, 226, 42, 226, 226, 226, 226, 183,
2192     226, 107, 215, 219, 220, 206, 107, 107, 107, 222,
2193     107, 121, 127, 107, 129, 206, 206, 223, 48, 97,
2194     223, 69, 226, 207, 208, 1184, 210, 211, 212, 226,
2195     226, 141, 216, 148, 226, 122, 223, 221, 226, 117,
2196     226, 226, 206, 226, 107, 226, 218, 226, 163, 226,
2197     98, 99, 226, 168, 223, 133, 226, 172, 106, 226,
2198     226, 226, 177, 107, 226, 180, 226, 226, 226, 226,
2199     185, 134, 135, 136, 137, 138, 139, 140, 226, 226,
2200     226, 226, 192, 131, 199, 226, 226, 0, 1, 204,
2201     226, 4, 792, 793, 794, 795, 796, 797, 798, 147,
2202     215, 14, 226, 226, 17, 18, 226, 222, 1, 219,
2203     23, 206, 107, 122, 206, 206, 107, 68, 107, 197,
2204     107, 34, 15, 16, 37, 38, 19, 157, 158, 159,
2205     206, 161, 162, 206, 164, 165, 206, 167, 107, 169,
2206     218, 107, 172, 107, 107, 175, 176, 177, 61, 179,
2207     107, 107, 206, 66, 184, 226, 206, 205, 188, 189,
2208     190, 74, 226, 206, 206, 48, 206, 206, 198, 62,
2209     206, 206, 1, 203, 122, 206, 223, 206, 206, 130,
2210     206, 226, 95, 96, 122, 223, 223, 80, 81, 82,
2211     83, 122, 226, 226, 87, 206, 223, 122, 91, 28,
2212     113, 226, 226, 226, 97, 156, 226, 36, 48, 226,
2213     226, 226, 163, 226, 226, 108, 109, 130, 223, 48,
2214     49, 172, 51, 52, 53, 226, 226, 120, 226, 223,
2215     143, 144, 206, 226, 226, 206, 226, 122, 226, 223,
2216     226, 226, 122, 226, 73, 226, 206, 160, 199, 142,
2217     201, 202, 206, 206, 206, 223, 107, 107, 122, 122,
2218     173, 122, 122, 122, 215, 122, 107, 122, 122, 182,
2219     122, 222, 206, 186, 157, 158, 159, 1, 161, 162,
2220     223, 164, 165, 223, 167, 178, 169, 226, 223, 172,
2221     122, 223, 175, 176, 177, 225, 179, 21, 22, 223,
2222     226, 184, 223, 27, 226, 188, 189, 190, 223, 223,
2223     107, 223, 223, 223, 223, 198, 223, 157, 158, 159,
2224     203, 161, 162, 223, 164, 165, 223, 167, 223, 169,
2225     107, 223, 172, 223, 223, 175, 176, 177, 226, 179,
2226     64, 65, 223, 107, 184, 107, 70, 71, 188, 189,
2227     190, 107, 107, 77, 78, 79, 122, 107, 198, 107,
2228     107, 223, 122, 203, 122, 122, 107, 206, 122, 122,
2229     226, 122, 107, 122, 223, 223, 122, 122, 122, 103,
2230     104, 223, 122, 122, 122, 223, 223, 223, 223, 223,
2231     223, 122, 223, 223, 122, 223, 223, 223, 223, 223,
2232 michael 2185 223, 223, 223, 223, 223, 223, 223, 223, 223, 223,
2233     223, 223, 223, 223, 223, 223, 223, 223, 223, 223,
2234 michael 2196 223, 223, 223, 223, 223, 223, 206, 223, 223, 223,
2235     223, 223, 223, 223, 223, 223, 122, 122, 122, 226,
2236     223, 122, 122, 122, 223, 122, 107, 223, 226, 223,
2237     223, 122, 122, 223, 122, 226, 122, 122, 122, 226,
2238     122, 226, 223, 206, 122, 122, 122, 122, 122, 122,
2239     107, 223, 1001, 74, 1258, 1003, 262, 1203, 1224, 1222,
2240     490, 223, 503, 1214, 1109, 332, 223, 223, 571, 223,
2241     223, 223, 454, 223, 223, 1014, 223, 223, 223, 284,
2242 michael 2185 223, 223, 223, 223, 223, 223, 223, 223, 223, 223,
2243 michael 2196 223, 223, 223, 223, 223, 122, 223, 223, 226, 223,
2244 michael 2185 223, 223, 223, 223, 223, 223, 223, 223, 223, 223,
2245 michael 2196 223, 223, 223, 223, 223, 223, 223, 128, 128, 128,
2246     223, 223, 1212, 1233, 477, 223, 1208, 223, 223, 223,
2247     223, 223, 517, 555, 223, 1226, 223, 111, 163, 467,
2248     223, 1077, 1079, 223, 223, 92, -1, -1, -1, -1,
2249     -1, 223, 223, 223, 223, 223, 223, 223, 223, 223,
2250 michael 2185 223, 223, 213, 223, 223, 223, 227, 223, 223, 223,
2251 michael 2196 223, 223, 364, 223, 223, 223, 223, 223, 382, -1,
2252     223, 226, 226, 223, 223, 218, 228, 228, 223, 226,
2253     228, 223, 223, 223, -1, -1, -1, 392, -1, -1,
2254     234, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2255 michael 1855 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2256 michael 2150 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2257     -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2258 michael 2196 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2259     -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 michael 2196 411, 417, 423, 427, 433, 489, 504, 223, 224, 225,
2271 michael 2185 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 2196 103, 104, 490, 491, 492, 493, 494, 495, 496, 497,
2276     498, 499, 500, 501, 502, 503, 225, 225, 225, 1,
2277 michael 2185 60, 424, 425, 426, 225, 1, 6, 7, 12, 20,
2278 michael 2196 26, 29, 30, 35, 40, 41, 43, 44, 45, 47,
2279     54, 58, 59, 67, 76, 84, 86, 88, 90, 92,
2280     93, 105, 110, 111, 112, 114, 115, 116, 119, 145,
2281     151, 152, 153, 154, 155, 183, 207, 208, 210, 211,
2282     212, 216, 221, 434, 435, 436, 437, 438, 439, 440,
2283     441, 442, 443, 444, 445, 446, 447, 448, 449, 450,
2284     451, 452, 453, 454, 455, 456, 457, 458, 459, 460,
2285     461, 462, 463, 464, 465, 466, 467, 468, 469, 470,
2286     471, 472, 473, 474, 475, 476, 477, 478, 482, 486,
2287     487, 488, 225, 225, 225, 1, 94, 118, 237, 238,
2288     239, 240, 225, 225, 225, 1, 28, 36, 48, 49,
2289     51, 52, 53, 73, 505, 506, 507, 508, 509, 510,
2290 michael 2185 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 michael 2196 226, 226, 226, 224, 491, 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 michael 2196 226, 226, 483, 226, 479, 226, 226, 226, 226, 226,
2309 michael 2185 226, 226, 226, 226, 226, 226, 226, 226, 226, 226,
2310 michael 2196 226, 226, 226, 224, 435, 1, 17, 32, 62, 117,
2311     125, 126, 146, 218, 348, 349, 350, 351, 352, 353,
2312     354, 358, 359, 360, 1, 124, 218, 413, 414, 415,
2313     416, 1, 55, 60, 62, 121, 334, 338, 339, 340,
2314     344, 345, 223, 226, 226, 224, 238, 1, 75, 166,
2315     273, 274, 275, 276, 1, 17, 32, 62, 97, 117,
2316     133, 197, 218, 293, 294, 295, 296, 297, 298, 299,
2317     300, 301, 305, 1, 34, 75, 124, 363, 364, 365,
2318     366, 367, 226, 226, 226, 226, 226, 226, 226, 226,
2319     224, 506, 223, 226, 226, 226, 226, 226, 226, 226,
2320 michael 2185 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 michael 2196 233, 233, 107, 206, 107, 122, 206, 233, 206, 107,
2331     107, 233, 107, 206, 206, 206, 233, 107, 107, 233,
2332     107, 107, 107, 107, 206, 226, 206, 226, 206, 233,
2333     233, 206, 206, 206, 206, 209, 206, 209, 206, 206,
2334     122, 233, 206, 206, 233, 233, 206, 206, 223, 223,
2335     226, 226, 355, 226, 226, 226, 226, 226, 224, 349,
2336     226, 226, 224, 414, 223, 226, 226, 335, 226, 224,
2337     339, 122, 122, 223, 223, 226, 226, 224, 274, 223,
2338     226, 226, 306, 226, 226, 226, 302, 226, 224, 294,
2339     223, 226, 226, 226, 224, 364, 206, 206, 206, 122,
2340 michael 2185 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 michael 2196 223, 223, 223, 223, 223, 48, 157, 158, 159, 161,
2354     162, 164, 165, 167, 169, 172, 175, 176, 177, 179,
2355     184, 188, 189, 190, 198, 203, 484, 485, 223, 48,
2356     157, 158, 159, 161, 162, 164, 165, 167, 169, 172,
2357     175, 176, 177, 179, 184, 188, 189, 190, 198, 203,
2358     480, 481, 223, 223, 223, 223, 223, 223, 223, 223,
2359 michael 2185 223, 223, 223, 223, 223, 223, 223, 223, 223, 223,
2360 michael 2196 223, 223, 122, 206, 226, 122, 107, 122, 122, 122,
2361     223, 122, 122, 223, 122, 122, 226, 107, 342, 343,
2362     223, 223, 223, 122, 122, 223, 122, 206, 226, 122,
2363     122, 122, 226, 122, 223, 122, 122, 122, 223, 223,
2364 michael 2185 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 michael 2196 381, 223, 223, 227, 234, 234, 234, 223, 227, 485,
2387     481, 223, 227, 223, 227, 107, 343, 223, 228, 228,
2388 michael 2185 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 2196 case 500:
5862 michael 1835 /* Line 1787 of yacc.c */
5863 michael 2196 #line 2408 "conf_parser.y"
5864 michael 1118 {
5865     ConfigFileEntry.max_watch = (yyvsp[(3) - (4)].number);
5866     }
5867     break;
5868    
5869 michael 2196 case 501:
5870 michael 1835 /* Line 1787 of yacc.c */
5871 michael 2196 #line 2413 "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 2196 case 502:
5879 michael 1835 /* Line 1787 of yacc.c */
5880 michael 2196 #line 2419 "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 2196 case 503:
5888 michael 1835 /* Line 1787 of yacc.c */
5889 michael 2196 #line 2425 "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 2196 case 504:
5897 michael 2185 /* Line 1787 of yacc.c */
5898 michael 2196 #line 2431 "conf_parser.y"
5899 michael 2185 {
5900     ConfigFileEntry.gline_min_cidr = (yyvsp[(3) - (4)].number);
5901     }
5902     break;
5903    
5904 michael 2196 case 505:
5905 michael 1992 /* Line 1787 of yacc.c */
5906 michael 2196 #line 2436 "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 2196 case 506:
5913 michael 1835 /* Line 1787 of yacc.c */
5914 michael 2196 #line 2441 "conf_parser.y"
5915 michael 913 {
5916 michael 2185 ConfigFileEntry.tkline_expire_notices = yylval.number;
5917 michael 913 }
5918     break;
5919    
5920 michael 2196 case 507:
5921 michael 1835 /* Line 1787 of yacc.c */
5922 michael 2196 #line 2446 "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 2196 case 508:
5929 michael 1835 /* Line 1787 of yacc.c */
5930 michael 2196 #line 2451 "conf_parser.y"
5931 michael 913 {
5932 michael 2185 ConfigFileEntry.hide_spoof_ips = yylval.number;
5933 michael 913 }
5934     break;
5935    
5936 michael 2196 case 509:
5937 michael 1835 /* Line 1787 of yacc.c */
5938 michael 2196 #line 2456 "conf_parser.y"
5939 michael 913 {
5940 michael 2185 ConfigFileEntry.ignore_bogus_ts = yylval.number;
5941 michael 913 }
5942     break;
5943    
5944 michael 2196 case 510:
5945 michael 1835 /* Line 1787 of yacc.c */
5946 michael 2196 #line 2461 "conf_parser.y"
5947 michael 913 {
5948 michael 2185 ConfigFileEntry.failed_oper_notice = yylval.number;
5949 michael 913 }
5950     break;
5951    
5952 michael 2196 case 511:
5953 michael 1835 /* Line 1787 of yacc.c */
5954 michael 2196 #line 2466 "conf_parser.y"
5955 michael 913 {
5956 michael 2185 ConfigFileEntry.anti_nick_flood = yylval.number;
5957 michael 913 }
5958     break;
5959    
5960 michael 2196 case 512:
5961 michael 1835 /* Line 1787 of yacc.c */
5962 michael 2196 #line 2471 "conf_parser.y"
5963 michael 913 {
5964 michael 2185 ConfigFileEntry.max_nick_time = (yyvsp[(3) - (4)].number);
5965 michael 913 }
5966     break;
5967    
5968 michael 2196 case 513:
5969 michael 1835 /* Line 1787 of yacc.c */
5970 michael 2196 #line 2476 "conf_parser.y"
5971 michael 913 {
5972 michael 2185 ConfigFileEntry.max_nick_changes = (yyvsp[(3) - (4)].number);
5973 michael 913 }
5974     break;
5975    
5976 michael 2196 case 514:
5977 michael 1835 /* Line 1787 of yacc.c */
5978 michael 2196 #line 2481 "conf_parser.y"
5979 michael 913 {
5980 michael 2185 ConfigFileEntry.max_accept = (yyvsp[(3) - (4)].number);
5981 michael 913 }
5982     break;
5983    
5984 michael 2196 case 515:
5985 michael 1835 /* Line 1787 of yacc.c */
5986 michael 2196 #line 2486 "conf_parser.y"
5987 michael 913 {
5988 michael 2185 ConfigFileEntry.anti_spam_exit_message_time = (yyvsp[(3) - (4)].number);
5989 michael 913 }
5990     break;
5991    
5992 michael 2196 case 516:
5993 michael 1835 /* Line 1787 of yacc.c */
5994 michael 2196 #line 2491 "conf_parser.y"
5995 michael 913 {
5996 michael 2185 ConfigFileEntry.ts_warn_delta = (yyvsp[(3) - (4)].number);
5997 michael 913 }
5998     break;
5999    
6000 michael 2196 case 517:
6001 michael 1835 /* Line 1787 of yacc.c */
6002 michael 2196 #line 2496 "conf_parser.y"
6003 michael 913 {
6004 michael 1519 if (conf_parser_ctx.pass == 2)
6005     ConfigFileEntry.ts_max_delta = (yyvsp[(3) - (4)].number);
6006 michael 913 }
6007     break;
6008    
6009 michael 2196 case 518:
6010 michael 1835 /* Line 1787 of yacc.c */
6011 michael 2196 #line 2502 "conf_parser.y"
6012 michael 913 {
6013 michael 1519 if (((yyvsp[(3) - (4)].number) > 0) && conf_parser_ctx.pass == 1)
6014     {
6015     ilog(LOG_TYPE_IRCD, "You haven't read your config file properly.");
6016     ilog(LOG_TYPE_IRCD, "There is a line in the example conf that will kill your server if not removed.");
6017     ilog(LOG_TYPE_IRCD, "Consider actually reading/editing the conf file, and removing this line.");
6018     exit(0);
6019     }
6020 michael 1460 }
6021     break;
6022    
6023 michael 2196 case 519:
6024 michael 2185 /* Line 1787 of yacc.c */
6025 michael 2196 #line 2513 "conf_parser.y"
6026 michael 2185 {
6027     ConfigFileEntry.invisible_on_connect = yylval.number;
6028     }
6029     break;
6030    
6031 michael 2196 case 520:
6032 michael 1992 /* Line 1787 of yacc.c */
6033 michael 2196 #line 2518 "conf_parser.y"
6034 michael 1992 {
6035 michael 2185 ConfigFileEntry.warn_no_nline = yylval.number;
6036 michael 1992 }
6037     break;
6038    
6039 michael 2196 case 521:
6040 michael 1835 /* Line 1787 of yacc.c */
6041 michael 2196 #line 2523 "conf_parser.y"
6042 michael 913 {
6043 michael 2185 ConfigFileEntry.stats_e_disabled = yylval.number;
6044 michael 913 }
6045     break;
6046    
6047 michael 2196 case 522:
6048 michael 1835 /* Line 1787 of yacc.c */
6049 michael 2196 #line 2528 "conf_parser.y"
6050 michael 913 {
6051 michael 2185 ConfigFileEntry.stats_o_oper_only = yylval.number;
6052 michael 913 }
6053     break;
6054    
6055 michael 2196 case 523:
6056 michael 1835 /* Line 1787 of yacc.c */
6057 michael 2196 #line 2533 "conf_parser.y"
6058 michael 913 {
6059 michael 2185 ConfigFileEntry.stats_P_oper_only = yylval.number;
6060 michael 913 }
6061     break;
6062    
6063 michael 2196 case 524:
6064 michael 1835 /* Line 1787 of yacc.c */
6065 michael 2196 #line 2538 "conf_parser.y"
6066 michael 913 {
6067 michael 2185 ConfigFileEntry.stats_k_oper_only = 2 * yylval.number;
6068 michael 913 }
6069     break;
6070    
6071 michael 2196 case 525:
6072 michael 1835 /* Line 1787 of yacc.c */
6073 michael 2196 #line 2541 "conf_parser.y"
6074 michael 913 {
6075 michael 2185 ConfigFileEntry.stats_k_oper_only = 1;
6076 michael 913 }
6077     break;
6078    
6079 michael 2196 case 526:
6080 michael 1835 /* Line 1787 of yacc.c */
6081 michael 2196 #line 2546 "conf_parser.y"
6082 michael 913 {
6083 michael 2185 ConfigFileEntry.stats_i_oper_only = 2 * yylval.number;
6084 michael 913 }
6085     break;
6086    
6087 michael 2196 case 527:
6088 michael 1835 /* Line 1787 of yacc.c */
6089 michael 2196 #line 2549 "conf_parser.y"
6090 michael 913 {
6091 michael 2185 ConfigFileEntry.stats_i_oper_only = 1;
6092 michael 913 }
6093     break;
6094    
6095 michael 2196 case 528:
6096 michael 1835 /* Line 1787 of yacc.c */
6097 michael 2196 #line 2554 "conf_parser.y"
6098 michael 913 {
6099 michael 2185 ConfigFileEntry.pace_wait = (yyvsp[(3) - (4)].number);
6100 michael 913 }
6101     break;
6102    
6103 michael 2196 case 529:
6104 michael 1835 /* Line 1787 of yacc.c */
6105 michael 2196 #line 2559 "conf_parser.y"
6106 michael 913 {
6107 michael 2185 ConfigFileEntry.caller_id_wait = (yyvsp[(3) - (4)].number);
6108 michael 913 }
6109     break;
6110    
6111 michael 2196 case 530:
6112 michael 1835 /* Line 1787 of yacc.c */
6113 michael 2196 #line 2564 "conf_parser.y"
6114 michael 913 {
6115 michael 2185 ConfigFileEntry.opers_bypass_callerid = yylval.number;
6116 michael 913 }
6117     break;
6118    
6119 michael 2196 case 531:
6120 michael 1835 /* Line 1787 of yacc.c */
6121 michael 2196 #line 2569 "conf_parser.y"
6122 michael 913 {
6123 michael 2185 ConfigFileEntry.pace_wait_simple = (yyvsp[(3) - (4)].number);
6124 michael 913 }
6125     break;
6126    
6127 michael 2196 case 532:
6128 michael 1835 /* Line 1787 of yacc.c */
6129 michael 2196 #line 2574 "conf_parser.y"
6130 michael 913 {
6131 michael 2185 ConfigFileEntry.short_motd = yylval.number;
6132 michael 913 }
6133     break;
6134    
6135 michael 2196 case 533:
6136 michael 1835 /* Line 1787 of yacc.c */
6137 michael 2196 #line 2579 "conf_parser.y"
6138 michael 913 {
6139 michael 2185 ConfigFileEntry.no_oper_flood = yylval.number;
6140 michael 913 }
6141     break;
6142    
6143 michael 2196 case 534:
6144 michael 1835 /* Line 1787 of yacc.c */
6145 michael 2196 #line 2584 "conf_parser.y"
6146 michael 913 {
6147 michael 2185 ConfigFileEntry.true_no_oper_flood = yylval.number;
6148 michael 913 }
6149     break;
6150    
6151 michael 2196 case 535:
6152 michael 1835 /* Line 1787 of yacc.c */
6153 michael 2196 #line 2589 "conf_parser.y"
6154 michael 913 {
6155 michael 2185 ConfigFileEntry.oper_pass_resv = yylval.number;
6156 michael 913 }
6157     break;
6158    
6159 michael 2196 case 536:
6160 michael 1835 /* Line 1787 of yacc.c */
6161 michael 2196 #line 2594 "conf_parser.y"
6162 michael 913 {
6163 michael 2185 ConfigFileEntry.dots_in_ident = (yyvsp[(3) - (4)].number);
6164 michael 1715 }
6165     break;
6166    
6167 michael 2196 case 537:
6168 michael 1835 /* Line 1787 of yacc.c */
6169 michael 2196 #line 2599 "conf_parser.y"
6170 michael 1715 {
6171 michael 2185 ConfigFileEntry.max_targets = (yyvsp[(3) - (4)].number);
6172 michael 913 }
6173     break;
6174    
6175 michael 2196 case 538:
6176 michael 1835 /* Line 1787 of yacc.c */
6177 michael 2196 #line 2604 "conf_parser.y"
6178 michael 913 {
6179 michael 2185 ConfigFileEntry.use_egd = yylval.number;
6180 michael 913 }
6181     break;
6182    
6183 michael 2196 case 539:
6184 michael 1835 /* Line 1787 of yacc.c */
6185 michael 2196 #line 2609 "conf_parser.y"
6186 michael 913 {
6187 michael 967 if (conf_parser_ctx.pass == 2)
6188 michael 913 {
6189     MyFree(ConfigFileEntry.egdpool_path);
6190 michael 1646 ConfigFileEntry.egdpool_path = xstrdup(yylval.string);
6191 michael 913 }
6192     }
6193     break;
6194    
6195 michael 2196 case 540:
6196 michael 1835 /* Line 1787 of yacc.c */
6197 michael 2196 #line 2618 "conf_parser.y"
6198 michael 913 {
6199 michael 1176 if (conf_parser_ctx.pass == 2 && valid_servname(yylval.string))
6200 michael 1157 {
6201     MyFree(ConfigFileEntry.service_name);
6202 michael 1646 ConfigFileEntry.service_name = xstrdup(yylval.string);
6203 michael 1157 }
6204     }
6205     break;
6206    
6207 michael 2196 case 541:
6208 michael 1835 /* Line 1787 of yacc.c */
6209 michael 2196 #line 2627 "conf_parser.y"
6210 michael 1157 {
6211 michael 913 ConfigFileEntry.ping_cookie = yylval.number;
6212     }
6213     break;
6214    
6215 michael 2196 case 542:
6216 michael 1835 /* Line 1787 of yacc.c */
6217 michael 2196 #line 2632 "conf_parser.y"
6218 michael 913 {
6219     ConfigFileEntry.disable_auth = yylval.number;
6220     }
6221     break;
6222    
6223 michael 2196 case 543:
6224 michael 1835 /* Line 1787 of yacc.c */
6225 michael 2196 #line 2637 "conf_parser.y"
6226 michael 913 {
6227     ConfigFileEntry.throttle_time = yylval.number;
6228     }
6229     break;
6230    
6231 michael 2196 case 544:
6232 michael 1835 /* Line 1787 of yacc.c */
6233 michael 2196 #line 2642 "conf_parser.y"
6234 michael 913 {
6235     ConfigFileEntry.oper_umodes = 0;
6236     }
6237     break;
6238    
6239 michael 2196 case 548:
6240     /* Line 1787 of yacc.c */
6241     #line 2648 "conf_parser.y"
6242     {
6243     ConfigFileEntry.oper_umodes |= UMODE_BOTS;
6244     }
6245     break;
6246    
6247     case 549:
6248     /* Line 1787 of yacc.c */
6249     #line 2651 "conf_parser.y"
6250     {
6251     ConfigFileEntry.oper_umodes |= UMODE_CCONN;
6252     }
6253     break;
6254    
6255 michael 2185 case 550:
6256 michael 1835 /* Line 1787 of yacc.c */
6257 michael 2185 #line 2654 "conf_parser.y"
6258 michael 1547 {
6259 michael 2196 ConfigFileEntry.oper_umodes |= UMODE_DEAF;
6260 michael 1547 }
6261     break;
6262    
6263 michael 2185 case 551:
6264 michael 1835 /* Line 1787 of yacc.c */
6265 michael 2185 #line 2657 "conf_parser.y"
6266 michael 1547 {
6267 michael 2196 ConfigFileEntry.oper_umodes |= UMODE_DEBUG;
6268 michael 1547 }
6269     break;
6270    
6271 michael 2185 case 552:
6272 michael 1835 /* Line 1787 of yacc.c */
6273 michael 2185 #line 2660 "conf_parser.y"
6274 michael 913 {
6275 michael 2196 ConfigFileEntry.oper_umodes |= UMODE_FULL;
6276 michael 913 }
6277     break;
6278    
6279 michael 2185 case 553:
6280 michael 1835 /* Line 1787 of yacc.c */
6281 michael 2185 #line 2663 "conf_parser.y"
6282 michael 913 {
6283 michael 2196 ConfigFileEntry.oper_umodes |= UMODE_HIDDEN;
6284 michael 913 }
6285     break;
6286    
6287 michael 2185 case 554:
6288 michael 1835 /* Line 1787 of yacc.c */
6289 michael 2185 #line 2666 "conf_parser.y"
6290 michael 913 {
6291 michael 2196 ConfigFileEntry.oper_umodes |= UMODE_SKILL;
6292 michael 913 }
6293     break;
6294    
6295 michael 2185 case 555:
6296 michael 1835 /* Line 1787 of yacc.c */
6297 michael 2185 #line 2669 "conf_parser.y"
6298 michael 913 {
6299 michael 2196 ConfigFileEntry.oper_umodes |= UMODE_NCHANGE;
6300 michael 913 }
6301     break;
6302    
6303 michael 2185 case 556:
6304 michael 1835 /* Line 1787 of yacc.c */
6305 michael 2185 #line 2672 "conf_parser.y"
6306 michael 913 {
6307 michael 2196 ConfigFileEntry.oper_umodes |= UMODE_REJ;
6308 michael 913 }
6309     break;
6310    
6311 michael 2185 case 557:
6312 michael 1835 /* Line 1787 of yacc.c */
6313 michael 2185 #line 2675 "conf_parser.y"
6314 michael 1294 {
6315 michael 2196 ConfigFileEntry.oper_umodes |= UMODE_UNAUTH;
6316 michael 1294 }
6317     break;
6318    
6319 michael 2185 case 558:
6320 michael 1835 /* Line 1787 of yacc.c */
6321 michael 2185 #line 2678 "conf_parser.y"
6322 michael 913 {
6323 michael 2196 ConfigFileEntry.oper_umodes |= UMODE_SPY;
6324 michael 913 }
6325     break;
6326    
6327 michael 2185 case 559:
6328 michael 1835 /* Line 1787 of yacc.c */
6329 michael 2185 #line 2681 "conf_parser.y"
6330 michael 913 {
6331 michael 2196 ConfigFileEntry.oper_umodes |= UMODE_EXTERNAL;
6332 michael 913 }
6333     break;
6334    
6335 michael 2185 case 560:
6336 michael 1835 /* Line 1787 of yacc.c */
6337 michael 2185 #line 2684 "conf_parser.y"
6338 michael 913 {
6339 michael 2196 ConfigFileEntry.oper_umodes |= UMODE_OPERWALL;
6340 michael 913 }
6341     break;
6342    
6343 michael 2185 case 561:
6344 michael 1835 /* Line 1787 of yacc.c */
6345 michael 2185 #line 2687 "conf_parser.y"
6346 michael 913 {
6347 michael 2196 ConfigFileEntry.oper_umodes |= UMODE_SERVNOTICE;
6348 michael 913 }
6349     break;
6350    
6351 michael 2185 case 562:
6352 michael 1835 /* Line 1787 of yacc.c */
6353 michael 2185 #line 2690 "conf_parser.y"
6354 michael 913 {
6355 michael 2196 ConfigFileEntry.oper_umodes |= UMODE_INVISIBLE;
6356 michael 913 }
6357     break;
6358    
6359 michael 2185 case 563:
6360 michael 1835 /* Line 1787 of yacc.c */
6361 michael 2185 #line 2693 "conf_parser.y"
6362 michael 913 {
6363 michael 2196 ConfigFileEntry.oper_umodes |= UMODE_WALLOP;
6364 michael 913 }
6365     break;
6366    
6367 michael 2185 case 564:
6368 michael 1835 /* Line 1787 of yacc.c */
6369 michael 2185 #line 2696 "conf_parser.y"
6370 michael 913 {
6371 michael 2196 ConfigFileEntry.oper_umodes |= UMODE_SOFTCALLERID;
6372 michael 913 }
6373     break;
6374    
6375 michael 2185 case 565:
6376 michael 1835 /* Line 1787 of yacc.c */
6377 michael 2185 #line 2699 "conf_parser.y"
6378 michael 913 {
6379 michael 2196 ConfigFileEntry.oper_umodes |= UMODE_CALLERID;
6380 michael 913 }
6381     break;
6382    
6383 michael 2185 case 566:
6384 michael 1835 /* Line 1787 of yacc.c */
6385 michael 2185 #line 2702 "conf_parser.y"
6386 michael 913 {
6387 michael 2196 ConfigFileEntry.oper_umodes |= UMODE_LOCOPS;
6388 michael 913 }
6389     break;
6390    
6391 michael 2185 case 567:
6392 michael 1835 /* Line 1787 of yacc.c */
6393 michael 2185 #line 2705 "conf_parser.y"
6394 michael 913 {
6395 michael 2196 ConfigFileEntry.oper_umodes |= UMODE_REGONLY;
6396 michael 913 }
6397     break;
6398    
6399 michael 2185 case 568:
6400 michael 1835 /* Line 1787 of yacc.c */
6401 michael 2185 #line 2708 "conf_parser.y"
6402 michael 913 {
6403 michael 2196 ConfigFileEntry.oper_umodes |= UMODE_FARCONNECT;
6404 michael 913 }
6405     break;
6406    
6407 michael 2185 case 569:
6408 michael 1835 /* Line 1787 of yacc.c */
6409 michael 2196 #line 2713 "conf_parser.y"
6410 michael 913 {
6411 michael 2196 ConfigFileEntry.oper_only_umodes = 0;
6412 michael 913 }
6413     break;
6414    
6415 michael 2196 case 573:
6416 michael 1835 /* Line 1787 of yacc.c */
6417 michael 2196 #line 2719 "conf_parser.y"
6418 michael 913 {
6419 michael 2196 ConfigFileEntry.oper_only_umodes |= UMODE_BOTS;
6420 michael 1981 }
6421     break;
6422    
6423 michael 2196 case 574:
6424 michael 1981 /* Line 1787 of yacc.c */
6425 michael 2196 #line 2722 "conf_parser.y"
6426 michael 1981 {
6427 michael 2196 ConfigFileEntry.oper_only_umodes |= UMODE_CCONN;
6428 michael 1981 }
6429     break;
6430    
6431 michael 2185 case 575:
6432 michael 1981 /* Line 1787 of yacc.c */
6433 michael 2185 #line 2725 "conf_parser.y"
6434 michael 1981 {
6435 michael 2196 ConfigFileEntry.oper_only_umodes |= UMODE_DEAF;
6436 michael 913 }
6437     break;
6438    
6439 michael 2185 case 576:
6440 michael 1835 /* Line 1787 of yacc.c */
6441 michael 2185 #line 2728 "conf_parser.y"
6442 michael 913 {
6443 michael 2196 ConfigFileEntry.oper_only_umodes |= UMODE_DEBUG;
6444 michael 913 }
6445     break;
6446    
6447 michael 2185 case 577:
6448 michael 1835 /* Line 1787 of yacc.c */
6449 michael 2185 #line 2731 "conf_parser.y"
6450 michael 2196 {
6451     ConfigFileEntry.oper_only_umodes |= UMODE_FULL;
6452 michael 913 }
6453     break;
6454    
6455 michael 2185 case 578:
6456 michael 1835 /* Line 1787 of yacc.c */
6457 michael 2185 #line 2734 "conf_parser.y"
6458 michael 913 {
6459 michael 2196 ConfigFileEntry.oper_only_umodes |= UMODE_SKILL;
6460 michael 913 }
6461     break;
6462    
6463 michael 2185 case 579:
6464 michael 1835 /* Line 1787 of yacc.c */
6465 michael 2185 #line 2737 "conf_parser.y"
6466 michael 2196 {
6467     ConfigFileEntry.oper_only_umodes |= UMODE_HIDDEN;
6468 michael 913 }
6469     break;
6470    
6471 michael 2185 case 580:
6472 michael 1835 /* Line 1787 of yacc.c */
6473 michael 2185 #line 2740 "conf_parser.y"
6474 michael 913 {
6475 michael 2196 ConfigFileEntry.oper_only_umodes |= UMODE_NCHANGE;
6476 michael 913 }
6477     break;
6478    
6479 michael 2185 case 581:
6480 michael 1835 /* Line 1787 of yacc.c */
6481 michael 2185 #line 2743 "conf_parser.y"
6482 michael 1547 {
6483 michael 2196 ConfigFileEntry.oper_only_umodes |= UMODE_REJ;
6484 michael 913 }
6485     break;
6486    
6487 michael 2185 case 582:
6488 michael 1835 /* Line 1787 of yacc.c */
6489 michael 2185 #line 2746 "conf_parser.y"
6490 michael 913 {
6491 michael 2196 ConfigFileEntry.oper_only_umodes |= UMODE_UNAUTH;
6492 michael 913 }
6493     break;
6494    
6495 michael 2185 case 583:
6496 michael 1835 /* Line 1787 of yacc.c */
6497 michael 2185 #line 2749 "conf_parser.y"
6498 michael 1294 {
6499 michael 2196 ConfigFileEntry.oper_only_umodes |= UMODE_SPY;
6500 michael 1294 }
6501     break;
6502    
6503 michael 2185 case 584:
6504 michael 1835 /* Line 1787 of yacc.c */
6505 michael 2185 #line 2752 "conf_parser.y"
6506 michael 913 {
6507 michael 2196 ConfigFileEntry.oper_only_umodes |= UMODE_EXTERNAL;
6508 michael 913 }
6509     break;
6510    
6511 michael 2185 case 585:
6512 michael 1835 /* Line 1787 of yacc.c */
6513 michael 2185 #line 2755 "conf_parser.y"
6514 michael 913 {
6515 michael 2196 ConfigFileEntry.oper_only_umodes |= UMODE_OPERWALL;
6516 michael 913 }
6517     break;
6518    
6519 michael 2185 case 586:
6520 michael 1835 /* Line 1787 of yacc.c */
6521 michael 2185 #line 2758 "conf_parser.y"
6522 michael 913 {
6523 michael 2196 ConfigFileEntry.oper_only_umodes |= UMODE_SERVNOTICE;
6524 michael 913 }
6525     break;
6526    
6527 michael 2185 case 587:
6528 michael 1835 /* Line 1787 of yacc.c */
6529 michael 2185 #line 2761 "conf_parser.y"
6530 michael 913 {
6531 michael 2196 ConfigFileEntry.oper_only_umodes |= UMODE_INVISIBLE;
6532 michael 913 }
6533     break;
6534    
6535 michael 2185 case 588:
6536 michael 1835 /* Line 1787 of yacc.c */
6537 michael 2185 #line 2764 "conf_parser.y"
6538 michael 913 {
6539 michael 2196 ConfigFileEntry.oper_only_umodes |= UMODE_WALLOP;
6540 michael 913 }
6541     break;
6542    
6543 michael 2185 case 589:
6544 michael 1835 /* Line 1787 of yacc.c */
6545 michael 2185 #line 2767 "conf_parser.y"
6546 michael 913 {
6547 michael 2196 ConfigFileEntry.oper_only_umodes |= UMODE_SOFTCALLERID;
6548 michael 913 }
6549     break;
6550    
6551 michael 2185 case 590:
6552 michael 1835 /* Line 1787 of yacc.c */
6553 michael 2185 #line 2770 "conf_parser.y"
6554 michael 913 {
6555 michael 2196 ConfigFileEntry.oper_only_umodes |= UMODE_CALLERID;
6556 michael 913 }
6557     break;
6558    
6559 michael 2185 case 591:
6560 michael 1835 /* Line 1787 of yacc.c */
6561 michael 2185 #line 2773 "conf_parser.y"
6562 michael 913 {
6563 michael 2196 ConfigFileEntry.oper_only_umodes |= UMODE_LOCOPS;
6564 michael 913 }
6565     break;
6566    
6567 michael 2185 case 592:
6568 michael 1835 /* Line 1787 of yacc.c */
6569 michael 2185 #line 2776 "conf_parser.y"
6570 michael 913 {
6571 michael 2196 ConfigFileEntry.oper_only_umodes |= UMODE_REGONLY;
6572 michael 913 }
6573     break;
6574    
6575 michael 2185 case 593:
6576 michael 1835 /* Line 1787 of yacc.c */
6577 michael 2185 #line 2779 "conf_parser.y"
6578 michael 913 {
6579 michael 2196 ConfigFileEntry.oper_only_umodes |= UMODE_FARCONNECT;
6580 michael 913 }
6581     break;
6582    
6583 michael 2185 case 594:
6584 michael 1904 /* Line 1787 of yacc.c */
6585 michael 2196 #line 2784 "conf_parser.y"
6586 michael 1904 {
6587 michael 2196 ConfigFileEntry.min_nonwildcard = (yyvsp[(3) - (4)].number);
6588 michael 1904 }
6589     break;
6590    
6591 michael 2185 case 595:
6592 michael 1992 /* Line 1787 of yacc.c */
6593 michael 2196 #line 2789 "conf_parser.y"
6594 michael 1992 {
6595 michael 2196 ConfigFileEntry.min_nonwildcard_simple = (yyvsp[(3) - (4)].number);
6596 michael 1992 }
6597     break;
6598    
6599 michael 2185 case 596:
6600 michael 1835 /* Line 1787 of yacc.c */
6601 michael 2196 #line 2794 "conf_parser.y"
6602 michael 913 {
6603 michael 2196 ConfigFileEntry.default_floodcount = (yyvsp[(3) - (4)].number);
6604 michael 1981 }
6605     break;
6606    
6607 michael 2196 case 613:
6608 michael 1981 /* Line 1787 of yacc.c */
6609 michael 2196 #line 2817 "conf_parser.y"
6610 michael 1981 {
6611 michael 2196 ConfigChannel.disable_fake_channels = yylval.number;
6612 michael 1855 }
6613     break;
6614    
6615 michael 2196 case 614:
6616 michael 1855 /* Line 1787 of yacc.c */
6617 michael 2196 #line 2822 "conf_parser.y"
6618 michael 1855 {
6619 michael 2196 ConfigChannel.knock_delay = (yyvsp[(3) - (4)].number);
6620 michael 913 }
6621     break;
6622    
6623 michael 2185 case 615:
6624 michael 1835 /* Line 1787 of yacc.c */
6625 michael 2196 #line 2827 "conf_parser.y"
6626 michael 913 {
6627 michael 2196 ConfigChannel.knock_delay_channel = (yyvsp[(3) - (4)].number);
6628 michael 913 }
6629     break;
6630    
6631 michael 2185 case 616:
6632 michael 1835 /* Line 1787 of yacc.c */
6633 michael 2196 #line 2832 "conf_parser.y"
6634 michael 1519 {
6635 michael 2196 ConfigChannel.max_chans_per_user = (yyvsp[(3) - (4)].number);
6636 michael 1519 }
6637     break;
6638    
6639 michael 2185 case 617:
6640 michael 1835 /* Line 1787 of yacc.c */
6641 michael 2196 #line 2837 "conf_parser.y"
6642 michael 1519 {
6643 michael 2196 ConfigChannel.max_chans_per_oper = (yyvsp[(3) - (4)].number);
6644 michael 1519 }
6645     break;
6646    
6647 michael 2185 case 618:
6648 michael 1835 /* Line 1787 of yacc.c */
6649 michael 2196 #line 2842 "conf_parser.y"
6650 michael 1118 {
6651 michael 2196 ConfigChannel.max_bans = (yyvsp[(3) - (4)].number);
6652 michael 913 }
6653     break;
6654    
6655 michael 2185 case 619:
6656 michael 1835 /* Line 1787 of yacc.c */
6657 michael 2196 #line 2847 "conf_parser.y"
6658 michael 913 {
6659 michael 2196 ConfigChannel.default_split_user_count = (yyvsp[(3) - (4)].number);
6660 michael 913 }
6661     break;
6662    
6663 michael 2185 case 620:
6664 michael 1835 /* Line 1787 of yacc.c */
6665 michael 2196 #line 2852 "conf_parser.y"
6666 michael 913 {
6667 michael 2196 ConfigChannel.default_split_server_count = (yyvsp[(3) - (4)].number);
6668 michael 913 }
6669     break;
6670    
6671 michael 2185 case 621:
6672 michael 1835 /* Line 1787 of yacc.c */
6673 michael 2196 #line 2857 "conf_parser.y"
6674 michael 913 {
6675 michael 2196 ConfigChannel.no_create_on_split = yylval.number;
6676 michael 913 }
6677     break;
6678    
6679 michael 2185 case 622:
6680 michael 1835 /* Line 1787 of yacc.c */
6681 michael 2196 #line 2862 "conf_parser.y"
6682 michael 913 {
6683 michael 2196 ConfigChannel.no_join_on_split = yylval.number;
6684 michael 913 }
6685     break;
6686    
6687 michael 2185 case 623:
6688 michael 1835 /* Line 1787 of yacc.c */
6689 michael 2196 #line 2867 "conf_parser.y"
6690 michael 913 {
6691 michael 2196 GlobalSetOptions.joinfloodcount = yylval.number;
6692 michael 913 }
6693     break;
6694    
6695 michael 2185 case 624:
6696 michael 1835 /* Line 1787 of yacc.c */
6697 michael 2196 #line 2872 "conf_parser.y"
6698 michael 913 {
6699 michael 2196 GlobalSetOptions.joinfloodtime = yylval.number;
6700 michael 913 }
6701     break;
6702    
6703 michael 2196 case 637:
6704 michael 1835 /* Line 1787 of yacc.c */
6705 michael 2196 #line 2892 "conf_parser.y"
6706 michael 913 {
6707 michael 2196 if (conf_parser_ctx.pass == 2)
6708     ConfigServerHide.flatten_links = yylval.number;
6709 michael 913 }
6710     break;
6711    
6712 michael 2185 case 638:
6713 michael 1835 /* Line 1787 of yacc.c */
6714 michael 2196 #line 2898 "conf_parser.y"
6715 michael 913 {
6716 michael 967 if (conf_parser_ctx.pass == 2)
6717 michael 2196 ConfigServerHide.disable_remote_commands = yylval.number;
6718 michael 913 }
6719     break;
6720    
6721 michael 2185 case 639:
6722 michael 1835 /* Line 1787 of yacc.c */
6723 michael 2196 #line 2904 "conf_parser.y"
6724 michael 913 {
6725 michael 967 if (conf_parser_ctx.pass == 2)
6726 michael 913 ConfigServerHide.hide_servers = yylval.number;
6727     }
6728     break;
6729    
6730 michael 2185 case 640:
6731 michael 1835 /* Line 1787 of yacc.c */
6732 michael 2196 #line 2910 "conf_parser.y"
6733 michael 913 {
6734 michael 967 if (conf_parser_ctx.pass == 2)
6735 michael 1851 ConfigServerHide.hide_services = yylval.number;
6736     }
6737     break;
6738    
6739 michael 2185 case 641:
6740 michael 1851 /* Line 1787 of yacc.c */
6741 michael 2196 #line 2916 "conf_parser.y"
6742 michael 1851 {
6743     if (conf_parser_ctx.pass == 2)
6744 michael 913 {
6745     MyFree(ConfigServerHide.hidden_name);
6746 michael 1646 ConfigServerHide.hidden_name = xstrdup(yylval.string);
6747 michael 913 }
6748     }
6749     break;
6750    
6751 michael 2185 case 642:
6752 michael 1835 /* Line 1787 of yacc.c */
6753 michael 2196 #line 2925 "conf_parser.y"
6754 michael 913 {
6755 michael 967 if (conf_parser_ctx.pass == 2)
6756 michael 913 {
6757     if (((yyvsp[(3) - (4)].number) > 0) && ConfigServerHide.links_disabled == 1)
6758     {
6759     eventAddIsh("write_links_file", write_links_file, NULL, (yyvsp[(3) - (4)].number));
6760     ConfigServerHide.links_disabled = 0;
6761     }
6762    
6763     ConfigServerHide.links_delay = (yyvsp[(3) - (4)].number);
6764     }
6765     }
6766     break;
6767    
6768 michael 2185 case 643:
6769 michael 1835 /* Line 1787 of yacc.c */
6770 michael 2196 #line 2939 "conf_parser.y"
6771 michael 913 {
6772 michael 967 if (conf_parser_ctx.pass == 2)
6773 michael 913 ConfigServerHide.hidden = yylval.number;
6774     }
6775     break;
6776    
6777 michael 2185 case 644:
6778 michael 1835 /* Line 1787 of yacc.c */
6779 michael 2196 #line 2945 "conf_parser.y"
6780 michael 913 {
6781 michael 967 if (conf_parser_ctx.pass == 2)
6782 michael 913 ConfigServerHide.hide_server_ips = yylval.number;
6783     }
6784     break;
6785    
6786    
6787 michael 1835 /* Line 1787 of yacc.c */
6788 michael 2196 #line 6789 "conf_parser.c"
6789 michael 913 default: break;
6790     }
6791 michael 1133 /* User semantic actions sometimes alter yychar, and that requires
6792     that yytoken be updated with the new translation. We take the
6793     approach of translating immediately before every use of yytoken.
6794     One alternative is translating here after every semantic action,
6795     but that translation would be missed if the semantic action invokes
6796     YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
6797     if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an
6798     incorrect destructor might then be invoked immediately. In the
6799     case of YYERROR or YYBACKUP, subsequent parser actions might lead
6800     to an incorrect destructor call or verbose syntax error message
6801     before the lookahead is translated. */
6802 michael 913 YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
6803    
6804     YYPOPSTACK (yylen);
6805     yylen = 0;
6806     YY_STACK_PRINT (yyss, yyssp);
6807    
6808     *++yyvsp = yyval;
6809    
6810     /* Now `shift' the result of the reduction. Determine what state
6811     that goes to, based on the state we popped back to and the rule
6812     number reduced by. */
6813    
6814     yyn = yyr1[yyn];
6815    
6816     yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
6817     if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
6818     yystate = yytable[yystate];
6819     else
6820     yystate = yydefgoto[yyn - YYNTOKENS];
6821    
6822     goto yynewstate;
6823    
6824    
6825     /*------------------------------------.
6826     | yyerrlab -- here on detecting error |
6827     `------------------------------------*/
6828     yyerrlab:
6829 michael 1133 /* Make sure we have latest lookahead translation. See comments at
6830     user semantic actions for why this is necessary. */
6831     yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
6832    
6833 michael 913 /* If not already recovering from an error, report this error. */
6834     if (!yyerrstatus)
6835     {
6836     ++yynerrs;
6837     #if ! YYERROR_VERBOSE
6838     yyerror (YY_("syntax error"));
6839     #else
6840 michael 1133 # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
6841     yyssp, yytoken)
6842 michael 913 {
6843 michael 1133 char const *yymsgp = YY_("syntax error");
6844     int yysyntax_error_status;
6845     yysyntax_error_status = YYSYNTAX_ERROR;
6846     if (yysyntax_error_status == 0)
6847     yymsgp = yymsg;
6848     else if (yysyntax_error_status == 1)
6849     {
6850     if (yymsg != yymsgbuf)
6851     YYSTACK_FREE (yymsg);
6852     yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
6853     if (!yymsg)
6854     {
6855     yymsg = yymsgbuf;
6856     yymsg_alloc = sizeof yymsgbuf;
6857     yysyntax_error_status = 2;
6858     }
6859     else
6860     {
6861     yysyntax_error_status = YYSYNTAX_ERROR;
6862     yymsgp = yymsg;
6863     }
6864     }
6865     yyerror (yymsgp);
6866     if (yysyntax_error_status == 2)
6867     goto yyexhaustedlab;
6868 michael 913 }
6869 michael 1133 # undef YYSYNTAX_ERROR
6870 michael 913 #endif
6871     }
6872    
6873    
6874    
6875     if (yyerrstatus == 3)
6876     {
6877 michael 967 /* If just tried and failed to reuse lookahead token after an
6878 michael 913 error, discard it. */
6879    
6880     if (yychar <= YYEOF)
6881     {
6882     /* Return failure if at end of input. */
6883     if (yychar == YYEOF)
6884     YYABORT;
6885     }
6886     else
6887     {
6888     yydestruct ("Error: discarding",
6889     yytoken, &yylval);
6890     yychar = YYEMPTY;
6891     }
6892     }
6893    
6894 michael 967 /* Else will try to reuse lookahead token after shifting the error
6895 michael 913 token. */
6896     goto yyerrlab1;
6897    
6898    
6899     /*---------------------------------------------------.
6900     | yyerrorlab -- error raised explicitly by YYERROR. |
6901     `---------------------------------------------------*/
6902     yyerrorlab:
6903    
6904     /* Pacify compilers like GCC when the user code never invokes
6905     YYERROR and the label yyerrorlab therefore never appears in user
6906     code. */
6907     if (/*CONSTCOND*/ 0)
6908     goto yyerrorlab;
6909    
6910     /* Do not reclaim the symbols of the rule which action triggered
6911     this YYERROR. */
6912     YYPOPSTACK (yylen);
6913     yylen = 0;
6914     YY_STACK_PRINT (yyss, yyssp);
6915     yystate = *yyssp;
6916     goto yyerrlab1;
6917    
6918    
6919     /*-------------------------------------------------------------.
6920     | yyerrlab1 -- common code for both syntax error and YYERROR. |
6921     `-------------------------------------------------------------*/
6922     yyerrlab1:
6923     yyerrstatus = 3; /* Each real token shifted decrements this. */
6924    
6925     for (;;)
6926     {
6927     yyn = yypact[yystate];
6928 michael 1133 if (!yypact_value_is_default (yyn))
6929 michael 913 {
6930     yyn += YYTERROR;
6931     if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
6932     {
6933     yyn = yytable[yyn];
6934     if (0 < yyn)
6935     break;
6936     }
6937     }
6938    
6939     /* Pop the current state because it cannot handle the error token. */
6940     if (yyssp == yyss)
6941     YYABORT;
6942    
6943    
6944     yydestruct ("Error: popping",
6945     yystos[yystate], yyvsp);
6946     YYPOPSTACK (1);
6947     yystate = *yyssp;
6948     YY_STACK_PRINT (yyss, yyssp);
6949     }
6950    
6951 michael 1619 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
6952 michael 913 *++yyvsp = yylval;
6953 michael 1619 YY_IGNORE_MAYBE_UNINITIALIZED_END
6954 michael 913
6955    
6956     /* Shift the error token. */
6957     YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
6958    
6959     yystate = yyn;
6960     goto yynewstate;
6961    
6962    
6963     /*-------------------------------------.
6964     | yyacceptlab -- YYACCEPT comes here. |
6965     `-------------------------------------*/
6966     yyacceptlab:
6967     yyresult = 0;
6968     goto yyreturn;
6969    
6970     /*-----------------------------------.
6971     | yyabortlab -- YYABORT comes here. |
6972     `-----------------------------------*/
6973     yyabortlab:
6974     yyresult = 1;
6975     goto yyreturn;
6976    
6977 michael 1425 #if !defined yyoverflow || YYERROR_VERBOSE
6978 michael 913 /*-------------------------------------------------.
6979     | yyexhaustedlab -- memory exhaustion comes here. |
6980     `-------------------------------------------------*/
6981     yyexhaustedlab:
6982     yyerror (YY_("memory exhausted"));
6983     yyresult = 2;
6984     /* Fall through. */
6985     #endif
6986    
6987     yyreturn:
6988 michael 967 if (yychar != YYEMPTY)
6989 michael 1133 {
6990     /* Make sure we have latest lookahead translation. See comments at
6991     user semantic actions for why this is necessary. */
6992     yytoken = YYTRANSLATE (yychar);
6993     yydestruct ("Cleanup: discarding lookahead",
6994     yytoken, &yylval);
6995     }
6996 michael 913 /* Do not reclaim the symbols of the rule which action triggered
6997     this YYABORT or YYACCEPT. */
6998     YYPOPSTACK (yylen);
6999     YY_STACK_PRINT (yyss, yyssp);
7000     while (yyssp != yyss)
7001     {
7002     yydestruct ("Cleanup: popping",
7003     yystos[*yyssp], yyvsp);
7004     YYPOPSTACK (1);
7005     }
7006     #ifndef yyoverflow
7007     if (yyss != yyssa)
7008     YYSTACK_FREE (yyss);
7009     #endif
7010     #if YYERROR_VERBOSE
7011     if (yymsg != yymsgbuf)
7012     YYSTACK_FREE (yymsg);
7013     #endif
7014     /* Make sure YYID is used. */
7015     return YYID (yyresult);
7016     }
7017    
7018    

Properties

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