ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/svn/ircd-hybrid/trunk/src/conf_parser.c
Revision: 2150
Committed: Fri May 31 18:39:43 2013 UTC (12 years, 2 months ago) by michael
Content type: text/x-csrc
File size: 225663 byte(s)
Log Message:
- Implement motd{} configuration blocks based on ircu's implementation

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

Properties

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