ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/svn/ircd-hybrid/trunk/src/conf_parser.c
Revision: 2248
Committed: Sun Jun 16 11:28:30 2013 UTC (12 years, 2 months ago) by michael
Content type: text/x-csrc
File size: 225729 byte(s)
Log Message:
- Add operator::ssl_connection_required configuration option

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 michael 2228 cert,
123 michael 1647 rpass,
124     spass,
125 michael 1646 class;
126    
127     struct {
128     unsigned int value;
129     } flags,
130     modes,
131 michael 1647 size,
132     type,
133 michael 1646 port,
134 michael 1647 aftype,
135 michael 1646 ping_freq,
136     max_perip,
137     con_freq,
138 michael 1783 min_idle,
139     max_idle,
140 michael 1646 max_total,
141     max_global,
142     max_local,
143     max_ident,
144     max_sendq,
145     max_recvq,
146     cidr_bitlen_ipv4,
147     cidr_bitlen_ipv6,
148     number_per_cidr;
149     } block_state;
150    
151 michael 967 static void
152 michael 1646 reset_block_state(void)
153 michael 967 {
154 michael 1646 dlink_node *ptr = NULL, *ptr_next = NULL;
155    
156     DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.mask.list.head)
157     {
158     MyFree(ptr->data);
159     dlinkDelete(ptr, &block_state.mask.list);
160     free_dlink_node(ptr);
161     }
162    
163     DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.leaf.list.head)
164     {
165     MyFree(ptr->data);
166     dlinkDelete(ptr, &block_state.leaf.list);
167     free_dlink_node(ptr);
168     }
169    
170     DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.hub.list.head)
171     {
172     MyFree(ptr->data);
173     dlinkDelete(ptr, &block_state.hub.list);
174     free_dlink_node(ptr);
175     }
176    
177     memset(&block_state, 0, sizeof(block_state));
178 michael 967 }
179    
180    
181 michael 1680 /* Line 371 of yacc.c */
182 michael 2228 #line 183 "conf_parser.c"
183 michael 967
184 michael 1425 # ifndef YY_NULL
185     # if defined __cplusplus && 201103L <= __cplusplus
186     # define YY_NULL nullptr
187     # else
188     # define YY_NULL 0
189     # endif
190     # endif
191    
192 michael 967 /* Enabling verbose error messages. */
193     #ifdef YYERROR_VERBOSE
194     # undef YYERROR_VERBOSE
195     # define YYERROR_VERBOSE 1
196     #else
197     # define YYERROR_VERBOSE 0
198     #endif
199    
200 michael 1466 /* In a future release of Bison, this section will be replaced
201     by #include "y.tab.h". */
202 michael 1736 #ifndef YY_YY_CONF_PARSER_H_INCLUDED
203     # define YY_YY_CONF_PARSER_H_INCLUDED
204 michael 1466 /* Enabling traces. */
205     #ifndef YYDEBUG
206     # define YYDEBUG 0
207 michael 967 #endif
208 michael 1466 #if YYDEBUG
209     extern int yydebug;
210     #endif
211 michael 967
212 michael 913 /* Tokens. */
213     #ifndef YYTOKENTYPE
214     # define YYTOKENTYPE
215     /* Put the tokens into the symbol table, so that GDB and other debuggers
216     know about them. */
217     enum yytokentype {
218     ACCEPT_PASSWORD = 258,
219 michael 1520 ADMIN = 259,
220     AFTYPE = 260,
221     ANTI_NICK_FLOOD = 261,
222     ANTI_SPAM_EXIT_MESSAGE_TIME = 262,
223     AUTOCONN = 263,
224     BYTES = 264,
225     KBYTES = 265,
226     MBYTES = 266,
227     CALLER_ID_WAIT = 267,
228     CAN_FLOOD = 268,
229     CHANNEL = 269,
230     CIDR_BITLEN_IPV4 = 270,
231     CIDR_BITLEN_IPV6 = 271,
232     CLASS = 272,
233     CONNECT = 273,
234     CONNECTFREQ = 274,
235     DEFAULT_FLOODCOUNT = 275,
236     DEFAULT_SPLIT_SERVER_COUNT = 276,
237     DEFAULT_SPLIT_USER_COUNT = 277,
238     DENY = 278,
239     DESCRIPTION = 279,
240     DIE = 280,
241     DISABLE_AUTH = 281,
242     DISABLE_FAKE_CHANNELS = 282,
243     DISABLE_REMOTE_COMMANDS = 283,
244     DOTS_IN_IDENT = 284,
245     EGDPOOL_PATH = 285,
246     EMAIL = 286,
247     ENCRYPTED = 287,
248     EXCEED_LIMIT = 288,
249     EXEMPT = 289,
250     FAILED_OPER_NOTICE = 290,
251 michael 2129 FLATTEN_LINKS = 291,
252     GECOS = 292,
253     GENERAL = 293,
254     GLINE = 294,
255     GLINE_DURATION = 295,
256     GLINE_ENABLE = 296,
257     GLINE_EXEMPT = 297,
258     GLINE_MIN_CIDR = 298,
259     GLINE_MIN_CIDR6 = 299,
260     GLINE_REQUEST_DURATION = 300,
261     GLOBAL_KILL = 301,
262     HAVENT_READ_CONF = 302,
263     HIDDEN = 303,
264     HIDDEN_NAME = 304,
265     HIDE_IDLE_FROM_OPERS = 305,
266     HIDE_SERVER_IPS = 306,
267     HIDE_SERVERS = 307,
268     HIDE_SERVICES = 308,
269     HIDE_SPOOF_IPS = 309,
270     HOST = 310,
271     HUB = 311,
272     HUB_MASK = 312,
273     IGNORE_BOGUS_TS = 313,
274     INVISIBLE_ON_CONNECT = 314,
275     IP = 315,
276     IRCD_AUTH = 316,
277     IRCD_FLAGS = 317,
278     IRCD_SID = 318,
279     JOIN_FLOOD_COUNT = 319,
280     JOIN_FLOOD_TIME = 320,
281     KILL = 321,
282     KILL_CHASE_TIME_LIMIT = 322,
283     KLINE = 323,
284     KLINE_EXEMPT = 324,
285     KNOCK_DELAY = 325,
286     KNOCK_DELAY_CHANNEL = 326,
287     LEAF_MASK = 327,
288     LINKS_DELAY = 328,
289     LISTEN = 329,
290     MASK = 330,
291     MAX_ACCEPT = 331,
292     MAX_BANS = 332,
293     MAX_CHANS_PER_OPER = 333,
294     MAX_CHANS_PER_USER = 334,
295     MAX_GLOBAL = 335,
296     MAX_IDENT = 336,
297     MAX_IDLE = 337,
298     MAX_LOCAL = 338,
299     MAX_NICK_CHANGES = 339,
300     MAX_NICK_LENGTH = 340,
301     MAX_NICK_TIME = 341,
302     MAX_NUMBER = 342,
303     MAX_TARGETS = 343,
304     MAX_TOPIC_LENGTH = 344,
305     MAX_WATCH = 345,
306     MIN_IDLE = 346,
307     MIN_NONWILDCARD = 347,
308     MIN_NONWILDCARD_SIMPLE = 348,
309 michael 1858 MODULE = 349,
310     MODULES = 350,
311 michael 2150 MOTD = 351,
312     NAME = 352,
313     NEED_IDENT = 353,
314     NEED_PASSWORD = 354,
315     NETWORK_DESC = 355,
316     NETWORK_NAME = 356,
317     NICK = 357,
318     NO_CREATE_ON_SPLIT = 358,
319     NO_JOIN_ON_SPLIT = 359,
320     NO_OPER_FLOOD = 360,
321     NO_TILDE = 361,
322     NUMBER = 362,
323     NUMBER_PER_CIDR = 363,
324     NUMBER_PER_IP = 364,
325     OPER_ONLY_UMODES = 365,
326     OPER_PASS_RESV = 366,
327     OPER_UMODES = 367,
328     OPERATOR = 368,
329     OPERS_BYPASS_CALLERID = 369,
330     PACE_WAIT = 370,
331     PACE_WAIT_SIMPLE = 371,
332     PASSWORD = 372,
333     PATH = 373,
334     PING_COOKIE = 374,
335     PING_TIME = 375,
336     PORT = 376,
337     QSTRING = 377,
338     RANDOM_IDLE = 378,
339     REASON = 379,
340     REDIRPORT = 380,
341     REDIRSERV = 381,
342     REHASH = 382,
343     REMOTE = 383,
344     REMOTEBAN = 384,
345     RESV = 385,
346     RESV_EXEMPT = 386,
347     RSA_PRIVATE_KEY_FILE = 387,
348     RSA_PUBLIC_KEY_FILE = 388,
349     SECONDS = 389,
350     MINUTES = 390,
351     HOURS = 391,
352     DAYS = 392,
353     WEEKS = 393,
354     MONTHS = 394,
355     YEARS = 395,
356     SEND_PASSWORD = 396,
357     SENDQ = 397,
358     SERVERHIDE = 398,
359     SERVERINFO = 399,
360     SHORT_MOTD = 400,
361     SPOOF = 401,
362     SPOOF_NOTICE = 402,
363     SQUIT = 403,
364     SSL_CERTIFICATE_FILE = 404,
365 michael 2244 SSL_CERTIFICATE_FINGERPRINT = 405,
366 michael 2248 SSL_CONNECTION_REQUIRED = 406,
367     SSL_DH_PARAM_FILE = 407,
368     STATS_E_DISABLED = 408,
369     STATS_I_OPER_ONLY = 409,
370     STATS_K_OPER_ONLY = 410,
371     STATS_O_OPER_ONLY = 411,
372     STATS_P_OPER_ONLY = 412,
373     T_ALL = 413,
374     T_BOTS = 414,
375     T_CALLERID = 415,
376     T_CCONN = 416,
377     T_CLUSTER = 417,
378     T_DEAF = 418,
379     T_DEBUG = 419,
380     T_DLINE = 420,
381     T_EXTERNAL = 421,
382     T_FARCONNECT = 422,
383     T_FILE = 423,
384     T_FULL = 424,
385     T_GLOBOPS = 425,
386     T_INVISIBLE = 426,
387     T_IPV4 = 427,
388     T_IPV6 = 428,
389     T_LOCOPS = 429,
390     T_LOG = 430,
391     T_MAX_CLIENTS = 431,
392     T_NCHANGE = 432,
393     T_NONONREG = 433,
394     T_OPERWALL = 434,
395     T_RECVQ = 435,
396     T_REJ = 436,
397     T_RESTART = 437,
398     T_SERVER = 438,
399     T_SERVICE = 439,
400     T_SERVICES_NAME = 440,
401     T_SERVNOTICE = 441,
402     T_SET = 442,
403     T_SHARED = 443,
404     T_SIZE = 444,
405     T_SKILL = 445,
406     T_SOFTCALLERID = 446,
407     T_SPY = 447,
408     T_SSL = 448,
409     T_SSL_CIPHER_LIST = 449,
410     T_SSL_CLIENT_METHOD = 450,
411     T_SSL_SERVER_METHOD = 451,
412     T_SSLV3 = 452,
413     T_TLSV1 = 453,
414     T_UMODES = 454,
415     T_UNAUTH = 455,
416     T_UNDLINE = 456,
417     T_UNLIMITED = 457,
418     T_UNRESV = 458,
419     T_UNXLINE = 459,
420     T_WALLOP = 460,
421     T_WALLOPS = 461,
422     T_WEBIRC = 462,
423     TBOOL = 463,
424     THROTTLE_TIME = 464,
425     TKLINE_EXPIRE_NOTICES = 465,
426     TMASKED = 466,
427     TRUE_NO_OPER_FLOOD = 467,
428     TS_MAX_DELTA = 468,
429     TS_WARN_DELTA = 469,
430     TWODOTS = 470,
431     TYPE = 471,
432     UNKLINE = 472,
433     USE_EGD = 473,
434     USE_LOGGING = 474,
435     USER = 475,
436     VHOST = 476,
437     VHOST6 = 477,
438     WARN_NO_NLINE = 478,
439     XLINE = 479
440 michael 913 };
441     #endif
442     /* Tokens. */
443     #define ACCEPT_PASSWORD 258
444 michael 1520 #define ADMIN 259
445     #define AFTYPE 260
446     #define ANTI_NICK_FLOOD 261
447     #define ANTI_SPAM_EXIT_MESSAGE_TIME 262
448     #define AUTOCONN 263
449     #define BYTES 264
450     #define KBYTES 265
451     #define MBYTES 266
452     #define CALLER_ID_WAIT 267
453     #define CAN_FLOOD 268
454     #define CHANNEL 269
455     #define CIDR_BITLEN_IPV4 270
456     #define CIDR_BITLEN_IPV6 271
457     #define CLASS 272
458     #define CONNECT 273
459     #define CONNECTFREQ 274
460     #define DEFAULT_FLOODCOUNT 275
461     #define DEFAULT_SPLIT_SERVER_COUNT 276
462     #define DEFAULT_SPLIT_USER_COUNT 277
463     #define DENY 278
464     #define DESCRIPTION 279
465     #define DIE 280
466     #define DISABLE_AUTH 281
467     #define DISABLE_FAKE_CHANNELS 282
468     #define DISABLE_REMOTE_COMMANDS 283
469     #define DOTS_IN_IDENT 284
470     #define EGDPOOL_PATH 285
471     #define EMAIL 286
472     #define ENCRYPTED 287
473     #define EXCEED_LIMIT 288
474     #define EXEMPT 289
475     #define FAILED_OPER_NOTICE 290
476 michael 2129 #define FLATTEN_LINKS 291
477     #define GECOS 292
478     #define GENERAL 293
479     #define GLINE 294
480     #define GLINE_DURATION 295
481     #define GLINE_ENABLE 296
482     #define GLINE_EXEMPT 297
483     #define GLINE_MIN_CIDR 298
484     #define GLINE_MIN_CIDR6 299
485     #define GLINE_REQUEST_DURATION 300
486     #define GLOBAL_KILL 301
487     #define HAVENT_READ_CONF 302
488     #define HIDDEN 303
489     #define HIDDEN_NAME 304
490     #define HIDE_IDLE_FROM_OPERS 305
491     #define HIDE_SERVER_IPS 306
492     #define HIDE_SERVERS 307
493     #define HIDE_SERVICES 308
494     #define HIDE_SPOOF_IPS 309
495     #define HOST 310
496     #define HUB 311
497     #define HUB_MASK 312
498     #define IGNORE_BOGUS_TS 313
499     #define INVISIBLE_ON_CONNECT 314
500     #define IP 315
501     #define IRCD_AUTH 316
502     #define IRCD_FLAGS 317
503     #define IRCD_SID 318
504     #define JOIN_FLOOD_COUNT 319
505     #define JOIN_FLOOD_TIME 320
506     #define KILL 321
507     #define KILL_CHASE_TIME_LIMIT 322
508     #define KLINE 323
509     #define KLINE_EXEMPT 324
510     #define KNOCK_DELAY 325
511     #define KNOCK_DELAY_CHANNEL 326
512     #define LEAF_MASK 327
513     #define LINKS_DELAY 328
514     #define LISTEN 329
515     #define MASK 330
516     #define MAX_ACCEPT 331
517     #define MAX_BANS 332
518     #define MAX_CHANS_PER_OPER 333
519     #define MAX_CHANS_PER_USER 334
520     #define MAX_GLOBAL 335
521     #define MAX_IDENT 336
522     #define MAX_IDLE 337
523     #define MAX_LOCAL 338
524     #define MAX_NICK_CHANGES 339
525     #define MAX_NICK_LENGTH 340
526     #define MAX_NICK_TIME 341
527     #define MAX_NUMBER 342
528     #define MAX_TARGETS 343
529     #define MAX_TOPIC_LENGTH 344
530     #define MAX_WATCH 345
531     #define MIN_IDLE 346
532     #define MIN_NONWILDCARD 347
533     #define MIN_NONWILDCARD_SIMPLE 348
534 michael 1858 #define MODULE 349
535     #define MODULES 350
536 michael 2150 #define MOTD 351
537     #define NAME 352
538     #define NEED_IDENT 353
539     #define NEED_PASSWORD 354
540     #define NETWORK_DESC 355
541     #define NETWORK_NAME 356
542     #define NICK 357
543     #define NO_CREATE_ON_SPLIT 358
544     #define NO_JOIN_ON_SPLIT 359
545     #define NO_OPER_FLOOD 360
546     #define NO_TILDE 361
547     #define NUMBER 362
548     #define NUMBER_PER_CIDR 363
549     #define NUMBER_PER_IP 364
550     #define OPER_ONLY_UMODES 365
551     #define OPER_PASS_RESV 366
552     #define OPER_UMODES 367
553     #define OPERATOR 368
554     #define OPERS_BYPASS_CALLERID 369
555     #define PACE_WAIT 370
556     #define PACE_WAIT_SIMPLE 371
557     #define PASSWORD 372
558     #define PATH 373
559     #define PING_COOKIE 374
560     #define PING_TIME 375
561     #define PORT 376
562     #define QSTRING 377
563     #define RANDOM_IDLE 378
564     #define REASON 379
565     #define REDIRPORT 380
566     #define REDIRSERV 381
567     #define REHASH 382
568     #define REMOTE 383
569     #define REMOTEBAN 384
570     #define RESV 385
571     #define RESV_EXEMPT 386
572     #define RSA_PRIVATE_KEY_FILE 387
573     #define RSA_PUBLIC_KEY_FILE 388
574     #define SECONDS 389
575     #define MINUTES 390
576     #define HOURS 391
577     #define DAYS 392
578     #define WEEKS 393
579     #define MONTHS 394
580     #define YEARS 395
581     #define SEND_PASSWORD 396
582     #define SENDQ 397
583     #define SERVERHIDE 398
584     #define SERVERINFO 399
585     #define SHORT_MOTD 400
586     #define SPOOF 401
587     #define SPOOF_NOTICE 402
588     #define SQUIT 403
589     #define SSL_CERTIFICATE_FILE 404
590 michael 2244 #define SSL_CERTIFICATE_FINGERPRINT 405
591 michael 2248 #define SSL_CONNECTION_REQUIRED 406
592     #define SSL_DH_PARAM_FILE 407
593     #define STATS_E_DISABLED 408
594     #define STATS_I_OPER_ONLY 409
595     #define STATS_K_OPER_ONLY 410
596     #define STATS_O_OPER_ONLY 411
597     #define STATS_P_OPER_ONLY 412
598     #define T_ALL 413
599     #define T_BOTS 414
600     #define T_CALLERID 415
601     #define T_CCONN 416
602     #define T_CLUSTER 417
603     #define T_DEAF 418
604     #define T_DEBUG 419
605     #define T_DLINE 420
606     #define T_EXTERNAL 421
607     #define T_FARCONNECT 422
608     #define T_FILE 423
609     #define T_FULL 424
610     #define T_GLOBOPS 425
611     #define T_INVISIBLE 426
612     #define T_IPV4 427
613     #define T_IPV6 428
614     #define T_LOCOPS 429
615     #define T_LOG 430
616     #define T_MAX_CLIENTS 431
617     #define T_NCHANGE 432
618     #define T_NONONREG 433
619     #define T_OPERWALL 434
620     #define T_RECVQ 435
621     #define T_REJ 436
622     #define T_RESTART 437
623     #define T_SERVER 438
624     #define T_SERVICE 439
625     #define T_SERVICES_NAME 440
626     #define T_SERVNOTICE 441
627     #define T_SET 442
628     #define T_SHARED 443
629     #define T_SIZE 444
630     #define T_SKILL 445
631     #define T_SOFTCALLERID 446
632     #define T_SPY 447
633     #define T_SSL 448
634     #define T_SSL_CIPHER_LIST 449
635     #define T_SSL_CLIENT_METHOD 450
636     #define T_SSL_SERVER_METHOD 451
637     #define T_SSLV3 452
638     #define T_TLSV1 453
639     #define T_UMODES 454
640     #define T_UNAUTH 455
641     #define T_UNDLINE 456
642     #define T_UNLIMITED 457
643     #define T_UNRESV 458
644     #define T_UNXLINE 459
645     #define T_WALLOP 460
646     #define T_WALLOPS 461
647     #define T_WEBIRC 462
648     #define TBOOL 463
649     #define THROTTLE_TIME 464
650     #define TKLINE_EXPIRE_NOTICES 465
651     #define TMASKED 466
652     #define TRUE_NO_OPER_FLOOD 467
653     #define TS_MAX_DELTA 468
654     #define TS_WARN_DELTA 469
655     #define TWODOTS 470
656     #define TYPE 471
657     #define UNKLINE 472
658     #define USE_EGD 473
659     #define USE_LOGGING 474
660     #define USER 475
661     #define VHOST 476
662     #define VHOST6 477
663     #define WARN_NO_NLINE 478
664     #define XLINE 479
665 michael 913
666    
667    
668 michael 967 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
669     typedef union YYSTYPE
670 michael 913 {
671 michael 1680 /* Line 387 of yacc.c */
672 michael 2228 #line 140 "conf_parser.y"
673 michael 913
674 michael 967 int number;
675     char *string;
676 michael 913
677    
678 michael 1680 /* Line 387 of yacc.c */
679 michael 2248 #line 680 "conf_parser.c"
680 michael 967 } YYSTYPE;
681     # define YYSTYPE_IS_TRIVIAL 1
682 michael 913 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
683     # define YYSTYPE_IS_DECLARED 1
684     #endif
685    
686 michael 1466 extern YYSTYPE yylval;
687 michael 913
688 michael 1466 #ifdef YYPARSE_PARAM
689     #if defined __STDC__ || defined __cplusplus
690     int yyparse (void *YYPARSE_PARAM);
691     #else
692     int yyparse ();
693     #endif
694     #else /* ! YYPARSE_PARAM */
695     #if defined __STDC__ || defined __cplusplus
696     int yyparse (void);
697     #else
698     int yyparse ();
699     #endif
700     #endif /* ! YYPARSE_PARAM */
701    
702 michael 1736 #endif /* !YY_YY_CONF_PARSER_H_INCLUDED */
703 michael 1466
704 michael 913 /* Copy the second part of user declarations. */
705    
706 michael 1680 /* Line 390 of yacc.c */
707 michael 2248 #line 708 "conf_parser.c"
708 michael 913
709     #ifdef short
710     # undef short
711     #endif
712    
713     #ifdef YYTYPE_UINT8
714     typedef YYTYPE_UINT8 yytype_uint8;
715     #else
716     typedef unsigned char yytype_uint8;
717     #endif
718    
719     #ifdef YYTYPE_INT8
720     typedef YYTYPE_INT8 yytype_int8;
721     #elif (defined __STDC__ || defined __C99__FUNC__ \
722     || defined __cplusplus || defined _MSC_VER)
723     typedef signed char yytype_int8;
724     #else
725     typedef short int yytype_int8;
726     #endif
727    
728     #ifdef YYTYPE_UINT16
729     typedef YYTYPE_UINT16 yytype_uint16;
730     #else
731     typedef unsigned short int yytype_uint16;
732     #endif
733    
734     #ifdef YYTYPE_INT16
735     typedef YYTYPE_INT16 yytype_int16;
736     #else
737     typedef short int yytype_int16;
738     #endif
739    
740     #ifndef YYSIZE_T
741     # ifdef __SIZE_TYPE__
742     # define YYSIZE_T __SIZE_TYPE__
743     # elif defined size_t
744     # define YYSIZE_T size_t
745     # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
746     || defined __cplusplus || defined _MSC_VER)
747     # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
748     # define YYSIZE_T size_t
749     # else
750     # define YYSIZE_T unsigned int
751     # endif
752     #endif
753    
754     #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
755    
756     #ifndef YY_
757 michael 1089 # if defined YYENABLE_NLS && YYENABLE_NLS
758 michael 913 # if ENABLE_NLS
759     # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
760 michael 1619 # define YY_(Msgid) dgettext ("bison-runtime", Msgid)
761 michael 913 # endif
762     # endif
763     # ifndef YY_
764 michael 1619 # define YY_(Msgid) Msgid
765 michael 913 # endif
766     #endif
767    
768 michael 1835 #ifndef __attribute__
769     /* This feature is available in gcc versions 2.5 and later. */
770     # if (! defined __GNUC__ || __GNUC__ < 2 \
771     || (__GNUC__ == 2 && __GNUC_MINOR__ < 5))
772     # define __attribute__(Spec) /* empty */
773     # endif
774     #endif
775    
776 michael 913 /* Suppress unused-variable warnings by "using" E. */
777     #if ! defined lint || defined __GNUC__
778 michael 1619 # define YYUSE(E) ((void) (E))
779 michael 913 #else
780 michael 1619 # define YYUSE(E) /* empty */
781 michael 913 #endif
782    
783 michael 1835
784 michael 913 /* Identity function, used to suppress warnings about constant conditions. */
785     #ifndef lint
786 michael 1619 # define YYID(N) (N)
787 michael 913 #else
788     #if (defined __STDC__ || defined __C99__FUNC__ \
789     || defined __cplusplus || defined _MSC_VER)
790     static int
791 michael 967 YYID (int yyi)
792 michael 913 #else
793     static int
794 michael 967 YYID (yyi)
795     int yyi;
796 michael 913 #endif
797     {
798 michael 967 return yyi;
799 michael 913 }
800     #endif
801    
802     #if ! defined yyoverflow || YYERROR_VERBOSE
803    
804     /* The parser invokes alloca or malloc; define the necessary symbols. */
805    
806     # ifdef YYSTACK_USE_ALLOCA
807     # if YYSTACK_USE_ALLOCA
808     # ifdef __GNUC__
809     # define YYSTACK_ALLOC __builtin_alloca
810     # elif defined __BUILTIN_VA_ARG_INCR
811     # include <alloca.h> /* INFRINGES ON USER NAME SPACE */
812     # elif defined _AIX
813     # define YYSTACK_ALLOC __alloca
814     # elif defined _MSC_VER
815     # include <malloc.h> /* INFRINGES ON USER NAME SPACE */
816     # define alloca _alloca
817     # else
818     # define YYSTACK_ALLOC alloca
819 michael 1133 # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
820 michael 913 || defined __cplusplus || defined _MSC_VER)
821     # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
822 michael 1425 /* Use EXIT_SUCCESS as a witness for stdlib.h. */
823 michael 1133 # ifndef EXIT_SUCCESS
824     # define EXIT_SUCCESS 0
825 michael 913 # endif
826     # endif
827     # endif
828     # endif
829     # endif
830    
831     # ifdef YYSTACK_ALLOC
832     /* Pacify GCC's `empty if-body' warning. */
833     # define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
834     # ifndef YYSTACK_ALLOC_MAXIMUM
835     /* The OS might guarantee only one guard page at the bottom of the stack,
836     and a page size can be as small as 4096 bytes. So we cannot safely
837     invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
838     to allow for a few compiler-allocated temporary stack slots. */
839     # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
840     # endif
841     # else
842     # define YYSTACK_ALLOC YYMALLOC
843     # define YYSTACK_FREE YYFREE
844     # ifndef YYSTACK_ALLOC_MAXIMUM
845     # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
846     # endif
847 michael 1133 # if (defined __cplusplus && ! defined EXIT_SUCCESS \
848 michael 913 && ! ((defined YYMALLOC || defined malloc) \
849     && (defined YYFREE || defined free)))
850     # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
851 michael 1133 # ifndef EXIT_SUCCESS
852     # define EXIT_SUCCESS 0
853 michael 913 # endif
854     # endif
855     # ifndef YYMALLOC
856     # define YYMALLOC malloc
857 michael 1133 # if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
858 michael 913 || defined __cplusplus || defined _MSC_VER)
859     void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
860     # endif
861     # endif
862     # ifndef YYFREE
863     # define YYFREE free
864 michael 1133 # if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
865 michael 913 || defined __cplusplus || defined _MSC_VER)
866     void free (void *); /* INFRINGES ON USER NAME SPACE */
867     # endif
868     # endif
869     # endif
870     #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
871    
872    
873     #if (! defined yyoverflow \
874     && (! defined __cplusplus \
875     || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
876    
877     /* A type that is properly aligned for any stack member. */
878     union yyalloc
879     {
880 michael 967 yytype_int16 yyss_alloc;
881     YYSTYPE yyvs_alloc;
882     };
883 michael 913
884     /* The size of the maximum gap between one aligned stack and the next. */
885     # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
886    
887     /* The size of an array large to enough to hold all stacks, each with
888     N elements. */
889     # define YYSTACK_BYTES(N) \
890     ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
891     + YYSTACK_GAP_MAXIMUM)
892    
893 michael 1133 # define YYCOPY_NEEDED 1
894 michael 913
895     /* Relocate STACK from its old location to the new one. The
896     local variables YYSIZE and YYSTACKSIZE give the old and new number of
897     elements in the stack, and YYPTR gives the new location of the
898     stack. Advance YYPTR to a properly aligned location for the next
899     stack. */
900 michael 967 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \
901 michael 913 do \
902     { \
903     YYSIZE_T yynewbytes; \
904 michael 967 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
905     Stack = &yyptr->Stack_alloc; \
906 michael 913 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
907     yyptr += yynewbytes / sizeof (*yyptr); \
908     } \
909     while (YYID (0))
910    
911     #endif
912    
913 michael 1133 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
914 michael 1425 /* Copy COUNT objects from SRC to DST. The source and destination do
915 michael 1133 not overlap. */
916     # ifndef YYCOPY
917     # if defined __GNUC__ && 1 < __GNUC__
918 michael 1425 # define YYCOPY(Dst, Src, Count) \
919     __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
920 michael 1133 # else
921 michael 1425 # define YYCOPY(Dst, Src, Count) \
922     do \
923     { \
924     YYSIZE_T yyi; \
925     for (yyi = 0; yyi < (Count); yyi++) \
926     (Dst)[yyi] = (Src)[yyi]; \
927     } \
928 michael 1133 while (YYID (0))
929     # endif
930     # endif
931     #endif /* !YYCOPY_NEEDED */
932    
933 michael 913 /* YYFINAL -- State number of the termination state. */
934     #define YYFINAL 2
935     /* YYLAST -- Last index in YYTABLE. */
936 michael 2248 #define YYLAST 1223
937 michael 913
938     /* YYNTOKENS -- Number of terminals. */
939 michael 2248 #define YYNTOKENS 231
940 michael 913 /* YYNNTS -- Number of nonterminals. */
941 michael 2248 #define YYNNTS 289
942 michael 913 /* YYNRULES -- Number of rules. */
943 michael 2248 #define YYNRULES 650
944 michael 913 /* YYNRULES -- Number of states. */
945 michael 2248 #define YYNSTATES 1275
946 michael 913
947     /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
948     #define YYUNDEFTOK 2
949 michael 2248 #define YYMAXUTOK 479
950 michael 913
951     #define YYTRANSLATE(YYX) \
952     ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
953    
954     /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
955 michael 1247 static const yytype_uint8 yytranslate[] =
956 michael 913 {
957     0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
958     2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
959     2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
960     2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
961 michael 2248 2, 2, 2, 2, 229, 2, 2, 2, 2, 2,
962     2, 2, 2, 2, 2, 2, 2, 2, 230, 225,
963     2, 228, 2, 2, 2, 2, 2, 2, 2, 2,
964 michael 913 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
965     2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
966     2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
967     2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
968     2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
969 michael 2248 2, 2, 2, 227, 2, 226, 2, 2, 2, 2,
970 michael 913 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, 2, 2, 2, 2,
980     2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
981     2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
982     2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
983     5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
984     15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
985     25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
986     35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
987     45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
988     55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
989     65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
990     75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
991     85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
992     95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
993     105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
994     115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
995     125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
996     135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
997     145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
998     155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
999     165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
1000     175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
1001     185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
1002     195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
1003 michael 1751 205, 206, 207, 208, 209, 210, 211, 212, 213, 214,
1004 michael 2248 215, 216, 217, 218, 219, 220, 221, 222, 223, 224
1005 michael 913 };
1006    
1007     #if YYDEBUG
1008     /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
1009     YYRHS. */
1010     static const yytype_uint16 yyprhs[] =
1011     {
1012     0, 0, 3, 4, 7, 9, 11, 13, 15, 17,
1013     19, 21, 23, 25, 27, 29, 31, 33, 35, 37,
1014 michael 2150 39, 41, 43, 45, 47, 49, 52, 55, 56, 58,
1015     61, 65, 69, 73, 77, 81, 85, 89, 90, 92,
1016     95, 99, 103, 107, 113, 116, 118, 120, 122, 125,
1017     130, 135, 141, 144, 146, 148, 150, 152, 154, 156,
1018 michael 1783 158, 160, 162, 164, 166, 168, 170, 172, 174, 176,
1019 michael 2150 178, 180, 183, 188, 193, 197, 199, 201, 203, 207,
1020     209, 211, 213, 218, 223, 228, 233, 238, 243, 248,
1021     253, 258, 263, 268, 273, 278, 283, 288, 294, 297,
1022     299, 301, 303, 305, 308, 313, 318, 323, 324, 331,
1023     334, 336, 338, 340, 343, 348, 353, 359, 362, 364,
1024     366, 368, 371, 376, 377, 384, 387, 389, 391, 393,
1025     395, 398, 403, 408, 413, 414, 420, 424, 426, 428,
1026     430, 432, 434, 436, 438, 440, 441, 448, 451, 453,
1027 michael 2248 455, 457, 459, 461, 463, 465, 467, 469, 471, 473,
1028     476, 481, 486, 491, 496, 501, 506, 511, 516, 517,
1029     523, 527, 529, 531, 533, 535, 537, 539, 541, 543,
1030     545, 547, 549, 551, 553, 555, 557, 559, 561, 563,
1031     565, 567, 569, 571, 572, 578, 582, 584, 588, 590,
1032     594, 596, 600, 602, 604, 606, 608, 610, 612, 614,
1033     616, 618, 620, 622, 624, 626, 628, 630, 632, 634,
1034     636, 637, 644, 647, 649, 651, 653, 655, 657, 659,
1035     661, 663, 665, 667, 669, 671, 673, 675, 677, 679,
1036     681, 684, 689, 694, 699, 704, 709, 714, 719, 724,
1037     729, 734, 739, 744, 749, 754, 759, 760, 766, 770,
1038     772, 774, 776, 777, 784, 785, 791, 795, 797, 799,
1039     801, 803, 806, 808, 810, 812, 814, 816, 819, 820,
1040     826, 830, 832, 834, 838, 843, 848, 849, 856, 859,
1041     861, 863, 865, 867, 869, 871, 873, 875, 877, 880,
1042     885, 890, 895, 900, 901, 907, 911, 913, 915, 917,
1043     919, 921, 923, 925, 927, 929, 931, 933, 938, 943,
1044     948, 949, 956, 959, 961, 963, 965, 967, 970, 975,
1045     980, 985, 991, 994, 996, 998, 1000, 1005, 1006, 1013,
1046     1016, 1018, 1020, 1022, 1024, 1027, 1032, 1037, 1038, 1044,
1047     1048, 1050, 1052, 1054, 1056, 1058, 1060, 1062, 1064, 1066,
1048     1068, 1070, 1071, 1078, 1081, 1083, 1085, 1087, 1090, 1095,
1049     1096, 1102, 1106, 1108, 1110, 1112, 1114, 1116, 1118, 1120,
1050     1122, 1124, 1126, 1128, 1129, 1136, 1139, 1141, 1143, 1145,
1051     1147, 1149, 1151, 1153, 1155, 1157, 1159, 1161, 1163, 1165,
1052     1167, 1169, 1172, 1177, 1182, 1187, 1192, 1197, 1202, 1207,
1053     1212, 1217, 1218, 1224, 1228, 1230, 1232, 1234, 1239, 1244,
1054     1249, 1254, 1259, 1260, 1267, 1270, 1272, 1274, 1276, 1278,
1055     1283, 1288, 1289, 1296, 1299, 1301, 1303, 1305, 1307, 1312,
1056     1317, 1323, 1326, 1328, 1330, 1332, 1337, 1338, 1345, 1348,
1057     1350, 1352, 1354, 1356, 1361, 1366, 1372, 1375, 1377, 1379,
1058     1381, 1383, 1385, 1387, 1389, 1391, 1393, 1395, 1397, 1399,
1059     1401, 1403, 1405, 1407, 1409, 1411, 1413, 1415, 1417, 1419,
1060     1421, 1423, 1425, 1427, 1429, 1431, 1433, 1435, 1437, 1439,
1061     1441, 1443, 1445, 1447, 1449, 1451, 1453, 1455, 1457, 1459,
1062     1461, 1463, 1465, 1467, 1469, 1471, 1473, 1478, 1483, 1488,
1063     1493, 1498, 1503, 1508, 1513, 1518, 1523, 1528, 1533, 1538,
1064     1543, 1548, 1553, 1558, 1563, 1568, 1573, 1578, 1583, 1588,
1065     1593, 1598, 1603, 1608, 1613, 1618, 1623, 1628, 1633, 1638,
1066     1643, 1648, 1653, 1658, 1663, 1668, 1673, 1678, 1683, 1688,
1067     1693, 1694, 1700, 1704, 1706, 1708, 1710, 1712, 1714, 1716,
1068     1718, 1720, 1722, 1724, 1726, 1728, 1730, 1732, 1734, 1736,
1069     1738, 1740, 1742, 1744, 1746, 1748, 1749, 1755, 1759, 1761,
1070     1763, 1765, 1767, 1769, 1771, 1773, 1775, 1777, 1779, 1781,
1071     1783, 1785, 1787, 1789, 1791, 1793, 1795, 1797, 1799, 1801,
1072     1803, 1808, 1813, 1818, 1824, 1827, 1829, 1831, 1833, 1835,
1073     1837, 1839, 1841, 1843, 1845, 1847, 1849, 1851, 1853, 1855,
1074     1860, 1865, 1870, 1875, 1880, 1885, 1890, 1895, 1900, 1905,
1075     1910, 1915, 1921, 1924, 1926, 1928, 1930, 1932, 1934, 1936,
1076     1938, 1940, 1942, 1944, 1949, 1954, 1959, 1964, 1969, 1974,
1077     1979
1078 michael 913 };
1079    
1080     /* YYRHS -- A `-1'-separated list of the rules' RHS. */
1081     static const yytype_int16 yyrhs[] =
1082     {
1083 michael 2248 232, 0, -1, -1, 232, 233, -1, 267, -1, 279,
1084     -1, 293, -1, 494, -1, 313, -1, 336, -1, 350,
1085     -1, 243, -1, 509, -1, 365, -1, 372, -1, 376,
1086     -1, 386, -1, 395, -1, 416, -1, 422, -1, 428,
1087     -1, 438, -1, 432, -1, 238, -1, 273, -1, 1,
1088     225, -1, 1, 226, -1, -1, 235, -1, 107, 234,
1089     -1, 107, 134, 234, -1, 107, 135, 234, -1, 107,
1090     136, 234, -1, 107, 137, 234, -1, 107, 138, 234,
1091     -1, 107, 139, 234, -1, 107, 140, 234, -1, -1,
1092     237, -1, 107, 236, -1, 107, 9, 236, -1, 107,
1093     10, 236, -1, 107, 11, 236, -1, 95, 227, 239,
1094     226, 225, -1, 239, 240, -1, 240, -1, 241, -1,
1095     242, -1, 1, 225, -1, 94, 228, 122, 225, -1,
1096     118, 228, 122, 225, -1, 144, 227, 244, 226, 225,
1097     -1, 244, 245, -1, 245, -1, 256, -1, 261, -1,
1098     266, -1, 258, -1, 259, -1, 260, -1, 263, -1,
1099     264, -1, 265, -1, 254, -1, 253, -1, 262, -1,
1100     257, -1, 252, -1, 246, -1, 247, -1, 255, -1,
1101     1, 225, -1, 195, 228, 248, 225, -1, 196, 228,
1102     250, 225, -1, 248, 229, 249, -1, 249, -1, 197,
1103     -1, 198, -1, 250, 229, 251, -1, 251, -1, 197,
1104     -1, 198, -1, 149, 228, 122, 225, -1, 132, 228,
1105     122, 225, -1, 152, 228, 122, 225, -1, 194, 228,
1106     122, 225, -1, 97, 228, 122, 225, -1, 63, 228,
1107     122, 225, -1, 24, 228, 122, 225, -1, 101, 228,
1108     122, 225, -1, 100, 228, 122, 225, -1, 221, 228,
1109     122, 225, -1, 222, 228, 122, 225, -1, 176, 228,
1110     107, 225, -1, 85, 228, 107, 225, -1, 89, 228,
1111     107, 225, -1, 56, 228, 208, 225, -1, 4, 227,
1112     268, 226, 225, -1, 268, 269, -1, 269, -1, 270,
1113     -1, 272, -1, 271, -1, 1, 225, -1, 97, 228,
1114     122, 225, -1, 31, 228, 122, 225, -1, 24, 228,
1115     122, 225, -1, -1, 96, 274, 227, 275, 226, 225,
1116     -1, 275, 276, -1, 276, -1, 277, -1, 278, -1,
1117     1, 225, -1, 75, 228, 122, 225, -1, 168, 228,
1118     122, 225, -1, 175, 227, 280, 226, 225, -1, 280,
1119     281, -1, 281, -1, 282, -1, 283, -1, 1, 225,
1120     -1, 219, 228, 208, 225, -1, -1, 284, 168, 227,
1121     285, 226, 225, -1, 285, 286, -1, 286, -1, 287,
1122     -1, 289, -1, 288, -1, 1, 225, -1, 97, 228,
1123     122, 225, -1, 189, 228, 237, 225, -1, 189, 228,
1124     202, 225, -1, -1, 216, 290, 228, 291, 225, -1,
1125     291, 229, 292, -1, 292, -1, 220, -1, 113, -1,
1126     39, -1, 165, -1, 68, -1, 66, -1, 164, -1,
1127     -1, 113, 294, 227, 295, 226, 225, -1, 295, 296,
1128     -1, 296, -1, 297, -1, 298, -1, 299, -1, 305,
1129     -1, 304, -1, 300, -1, 301, -1, 302, -1, 303,
1130     -1, 309, -1, 1, 225, -1, 97, 228, 122, 225,
1131     -1, 220, 228, 122, 225, -1, 117, 228, 122, 225,
1132     -1, 32, 228, 208, 225, -1, 133, 228, 122, 225,
1133     -1, 150, 228, 122, 225, -1, 151, 228, 208, 225,
1134     -1, 17, 228, 122, 225, -1, -1, 199, 306, 228,
1135     307, 225, -1, 307, 229, 308, -1, 308, -1, 159,
1136     -1, 161, -1, 163, -1, 164, -1, 169, -1, 48,
1137     -1, 190, -1, 177, -1, 181, -1, 200, -1, 192,
1138     -1, 166, -1, 179, -1, 186, -1, 171, -1, 205,
1139     -1, 191, -1, 160, -1, 174, -1, 178, -1, 167,
1140     -1, -1, 62, 310, 228, 311, 225, -1, 311, 229,
1141     312, -1, 312, -1, 66, 230, 128, -1, 66, -1,
1142     18, 230, 128, -1, 18, -1, 148, 230, 128, -1,
1143     148, -1, 68, -1, 217, -1, 165, -1, 201, -1,
1144     224, -1, 39, -1, 25, -1, 182, -1, 127, -1,
1145     4, -1, 179, -1, 170, -1, 206, -1, 174, -1,
1146     129, -1, 187, -1, 94, -1, -1, 17, 314, 227,
1147     315, 226, 225, -1, 315, 316, -1, 316, -1, 317,
1148     -1, 327, -1, 328, -1, 318, -1, 329, -1, 319,
1149     -1, 320, -1, 321, -1, 322, -1, 323, -1, 324,
1150     -1, 325, -1, 326, -1, 330, -1, 331, -1, 332,
1151     -1, 1, 225, -1, 97, 228, 122, 225, -1, 120,
1152     228, 235, 225, -1, 109, 228, 107, 225, -1, 19,
1153     228, 235, 225, -1, 87, 228, 107, 225, -1, 80,
1154     228, 107, 225, -1, 83, 228, 107, 225, -1, 81,
1155     228, 107, 225, -1, 142, 228, 237, 225, -1, 180,
1156     228, 237, 225, -1, 15, 228, 107, 225, -1, 16,
1157     228, 107, 225, -1, 108, 228, 107, 225, -1, 91,
1158     228, 235, 225, -1, 82, 228, 235, 225, -1, -1,
1159     62, 333, 228, 334, 225, -1, 334, 229, 335, -1,
1160     335, -1, 123, -1, 50, -1, -1, 74, 337, 227,
1161     342, 226, 225, -1, -1, 62, 339, 228, 340, 225,
1162     -1, 340, 229, 341, -1, 341, -1, 193, -1, 48,
1163     -1, 183, -1, 342, 343, -1, 343, -1, 344, -1,
1164     338, -1, 348, -1, 349, -1, 1, 225, -1, -1,
1165     121, 228, 346, 345, 225, -1, 346, 229, 347, -1,
1166     347, -1, 107, -1, 107, 215, 107, -1, 60, 228,
1167     122, 225, -1, 55, 228, 122, 225, -1, -1, 61,
1168     351, 227, 352, 226, 225, -1, 352, 353, -1, 353,
1169     -1, 354, -1, 355, -1, 356, -1, 358, -1, 362,
1170     -1, 363, -1, 364, -1, 357, -1, 1, 225, -1,
1171     220, 228, 122, 225, -1, 117, 228, 122, 225, -1,
1172     17, 228, 122, 225, -1, 32, 228, 208, 225, -1,
1173     -1, 62, 359, 228, 360, 225, -1, 360, 229, 361,
1174     -1, 361, -1, 147, -1, 33, -1, 69, -1, 98,
1175     -1, 13, -1, 106, -1, 42, -1, 131, -1, 207,
1176     -1, 99, -1, 146, 228, 122, 225, -1, 126, 228,
1177     122, 225, -1, 125, 228, 107, 225, -1, -1, 130,
1178     366, 227, 367, 226, 225, -1, 367, 368, -1, 368,
1179     -1, 369, -1, 370, -1, 371, -1, 1, 225, -1,
1180     75, 228, 122, 225, -1, 124, 228, 122, 225, -1,
1181     34, 228, 122, 225, -1, 184, 227, 373, 226, 225,
1182     -1, 373, 374, -1, 374, -1, 375, -1, 1, -1,
1183     97, 228, 122, 225, -1, -1, 188, 377, 227, 378,
1184     226, 225, -1, 378, 379, -1, 379, -1, 380, -1,
1185     381, -1, 382, -1, 1, 225, -1, 97, 228, 122,
1186     225, -1, 220, 228, 122, 225, -1, -1, 216, 383,
1187     228, 384, 225, -1, 384, 229, 385, -1, 385, -1,
1188     68, -1, 217, -1, 165, -1, 201, -1, 224, -1,
1189     204, -1, 130, -1, 203, -1, 174, -1, 158, -1,
1190     -1, 162, 387, 227, 388, 226, 225, -1, 388, 389,
1191     -1, 389, -1, 390, -1, 391, -1, 1, 225, -1,
1192     97, 228, 122, 225, -1, -1, 216, 392, 228, 393,
1193     225, -1, 393, 229, 394, -1, 394, -1, 68, -1,
1194     217, -1, 165, -1, 201, -1, 224, -1, 204, -1,
1195     130, -1, 203, -1, 174, -1, 158, -1, -1, 18,
1196     396, 227, 397, 226, 225, -1, 397, 398, -1, 398,
1197     -1, 399, -1, 400, -1, 401, -1, 402, -1, 403,
1198     -1, 404, -1, 406, -1, 405, -1, 415, -1, 407,
1199     -1, 412, -1, 413, -1, 414, -1, 411, -1, 1,
1200     225, -1, 97, 228, 122, 225, -1, 55, 228, 122,
1201     225, -1, 221, 228, 122, 225, -1, 141, 228, 122,
1202     225, -1, 3, 228, 122, 225, -1, 150, 228, 122,
1203     225, -1, 121, 228, 107, 225, -1, 5, 228, 172,
1204     225, -1, 5, 228, 173, 225, -1, -1, 62, 408,
1205     228, 409, 225, -1, 409, 229, 410, -1, 410, -1,
1206     8, -1, 193, -1, 32, 228, 208, 225, -1, 57,
1207     228, 122, 225, -1, 72, 228, 122, 225, -1, 17,
1208     228, 122, 225, -1, 194, 228, 122, 225, -1, -1,
1209     66, 417, 227, 418, 226, 225, -1, 418, 419, -1,
1210     419, -1, 420, -1, 421, -1, 1, -1, 220, 228,
1211     122, 225, -1, 124, 228, 122, 225, -1, -1, 23,
1212     423, 227, 424, 226, 225, -1, 424, 425, -1, 425,
1213     -1, 426, -1, 427, -1, 1, -1, 60, 228, 122,
1214     225, -1, 124, 228, 122, 225, -1, 34, 227, 429,
1215     226, 225, -1, 429, 430, -1, 430, -1, 431, -1,
1216     1, -1, 60, 228, 122, 225, -1, -1, 37, 433,
1217     227, 434, 226, 225, -1, 434, 435, -1, 435, -1,
1218     436, -1, 437, -1, 1, -1, 97, 228, 122, 225,
1219     -1, 124, 228, 122, 225, -1, 38, 227, 439, 226,
1220     225, -1, 439, 440, -1, 440, -1, 449, -1, 450,
1221     -1, 451, -1, 452, -1, 453, -1, 454, -1, 455,
1222     -1, 456, -1, 457, -1, 458, -1, 448, -1, 460,
1223     -1, 461, -1, 475, -1, 463, -1, 465, -1, 467,
1224     -1, 466, -1, 470, -1, 464, -1, 471, -1, 472,
1225     -1, 473, -1, 474, -1, 487, -1, 476, -1, 477,
1226     -1, 478, -1, 483, -1, 468, -1, 469, -1, 493,
1227     -1, 491, -1, 492, -1, 482, -1, 459, -1, 480,
1228     -1, 481, -1, 447, -1, 442, -1, 443, -1, 444,
1229     -1, 445, -1, 446, -1, 462, -1, 441, -1, 479,
1230     -1, 1, -1, 90, 228, 107, 225, -1, 41, 228,
1231     208, 225, -1, 40, 228, 235, 225, -1, 45, 228,
1232     235, 225, -1, 43, 228, 107, 225, -1, 44, 228,
1233     107, 225, -1, 210, 228, 208, 225, -1, 67, 228,
1234     235, 225, -1, 54, 228, 208, 225, -1, 58, 228,
1235     208, 225, -1, 35, 228, 208, 225, -1, 6, 228,
1236     208, 225, -1, 86, 228, 235, 225, -1, 84, 228,
1237     107, 225, -1, 76, 228, 107, 225, -1, 7, 228,
1238     235, 225, -1, 214, 228, 235, 225, -1, 213, 228,
1239     235, 225, -1, 47, 228, 107, 225, -1, 59, 228,
1240     208, 225, -1, 223, 228, 208, 225, -1, 153, 228,
1241     208, 225, -1, 156, 228, 208, 225, -1, 157, 228,
1242     208, 225, -1, 155, 228, 208, 225, -1, 155, 228,
1243     211, 225, -1, 154, 228, 208, 225, -1, 154, 228,
1244     211, 225, -1, 115, 228, 235, 225, -1, 12, 228,
1245     235, 225, -1, 114, 228, 208, 225, -1, 116, 228,
1246     235, 225, -1, 145, 228, 208, 225, -1, 105, 228,
1247     208, 225, -1, 212, 228, 208, 225, -1, 111, 228,
1248     208, 225, -1, 29, 228, 107, 225, -1, 88, 228,
1249     107, 225, -1, 218, 228, 208, 225, -1, 30, 228,
1250     122, 225, -1, 185, 228, 122, 225, -1, 119, 228,
1251     208, 225, -1, 26, 228, 208, 225, -1, 209, 228,
1252     235, 225, -1, -1, 112, 484, 228, 485, 225, -1,
1253     485, 229, 486, -1, 486, -1, 159, -1, 161, -1,
1254     163, -1, 164, -1, 169, -1, 48, -1, 190, -1,
1255     177, -1, 181, -1, 200, -1, 192, -1, 166, -1,
1256     179, -1, 186, -1, 171, -1, 205, -1, 191, -1,
1257     160, -1, 174, -1, 178, -1, 167, -1, -1, 110,
1258     488, 228, 489, 225, -1, 489, 229, 490, -1, 490,
1259     -1, 159, -1, 161, -1, 163, -1, 164, -1, 169,
1260     -1, 190, -1, 48, -1, 177, -1, 181, -1, 200,
1261     -1, 192, -1, 166, -1, 179, -1, 186, -1, 171,
1262     -1, 205, -1, 191, -1, 160, -1, 174, -1, 178,
1263     -1, 167, -1, 92, 228, 107, 225, -1, 93, 228,
1264     107, 225, -1, 20, 228, 107, 225, -1, 14, 227,
1265     495, 226, 225, -1, 495, 496, -1, 496, -1, 502,
1266     -1, 498, -1, 499, -1, 500, -1, 501, -1, 503,
1267     -1, 504, -1, 505, -1, 506, -1, 507, -1, 508,
1268     -1, 497, -1, 1, -1, 27, 228, 208, 225, -1,
1269     70, 228, 235, 225, -1, 71, 228, 235, 225, -1,
1270     79, 228, 107, 225, -1, 78, 228, 107, 225, -1,
1271     77, 228, 107, 225, -1, 22, 228, 107, 225, -1,
1272     21, 228, 107, 225, -1, 103, 228, 208, 225, -1,
1273     104, 228, 208, 225, -1, 64, 228, 107, 225, -1,
1274     65, 228, 235, 225, -1, 143, 227, 510, 226, 225,
1275     -1, 510, 511, -1, 511, -1, 512, -1, 513, -1,
1276     514, -1, 515, -1, 517, -1, 518, -1, 516, -1,
1277     519, -1, 1, -1, 36, 228, 208, 225, -1, 28,
1278     228, 208, 225, -1, 52, 228, 208, 225, -1, 53,
1279     228, 208, 225, -1, 49, 228, 122, 225, -1, 73,
1280     228, 235, 225, -1, 48, 228, 208, 225, -1, 51,
1281     228, 208, 225, -1
1282 michael 913 };
1283    
1284     /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
1285     static const yytype_uint16 yyrline[] =
1286     {
1287 michael 2248 0, 368, 368, 369, 372, 373, 374, 375, 376, 377,
1288     378, 379, 380, 381, 382, 383, 384, 385, 386, 387,
1289     388, 389, 390, 391, 392, 393, 394, 398, 398, 399,
1290     403, 407, 411, 415, 419, 423, 427, 433, 433, 434,
1291     435, 436, 437, 444, 447, 447, 448, 448, 448, 450,
1292     456, 463, 465, 465, 466, 466, 467, 467, 468, 468,
1293     469, 469, 470, 470, 471, 471, 472, 472, 473, 473,
1294     474, 475, 478, 479, 481, 481, 482, 488, 496, 496,
1295     497, 503, 511, 553, 612, 640, 648, 663, 678, 687,
1296     701, 710, 738, 768, 793, 815, 837, 846, 848, 848,
1297     849, 849, 850, 850, 852, 861, 870, 883, 882, 900,
1298     900, 901, 901, 901, 903, 909, 918, 919, 919, 921,
1299     921, 922, 924, 931, 931, 944, 945, 947, 947, 948,
1300     948, 950, 958, 961, 967, 966, 972, 972, 973, 977,
1301     981, 985, 989, 993, 997, 1008, 1007, 1087, 1087, 1088,
1302     1088, 1088, 1089, 1089, 1089, 1090, 1090, 1091, 1092, 1092,
1303     1094, 1100, 1106, 1112, 1123, 1129, 1135, 1146, 1153, 1152,
1304     1158, 1158, 1159, 1163, 1167, 1171, 1175, 1179, 1183, 1187,
1305     1191, 1195, 1199, 1203, 1207, 1211, 1215, 1219, 1223, 1227,
1306     1231, 1235, 1239, 1246, 1245, 1251, 1251, 1252, 1256, 1260,
1307     1264, 1268, 1272, 1276, 1280, 1284, 1288, 1292, 1296, 1300,
1308     1304, 1308, 1312, 1316, 1320, 1324, 1328, 1332, 1336, 1340,
1309     1351, 1350, 1411, 1411, 1412, 1413, 1413, 1414, 1415, 1416,
1310     1417, 1418, 1419, 1420, 1421, 1422, 1422, 1423, 1424, 1425,
1311     1426, 1428, 1434, 1440, 1446, 1452, 1458, 1464, 1470, 1476,
1312     1482, 1489, 1495, 1501, 1507, 1516, 1526, 1525, 1531, 1531,
1313     1532, 1536, 1547, 1546, 1553, 1552, 1557, 1557, 1558, 1562,
1314     1566, 1572, 1572, 1573, 1573, 1573, 1573, 1573, 1575, 1575,
1315     1577, 1577, 1579, 1593, 1613, 1619, 1629, 1628, 1670, 1670,
1316     1671, 1671, 1671, 1671, 1672, 1672, 1672, 1673, 1673, 1675,
1317     1681, 1687, 1693, 1705, 1704, 1710, 1710, 1711, 1715, 1719,
1318     1723, 1727, 1731, 1735, 1739, 1743, 1747, 1753, 1767, 1776,
1319     1790, 1789, 1804, 1804, 1805, 1805, 1805, 1805, 1807, 1813,
1320     1819, 1829, 1831, 1831, 1832, 1832, 1834, 1850, 1849, 1874,
1321     1874, 1875, 1875, 1875, 1875, 1877, 1883, 1903, 1902, 1908,
1322     1908, 1909, 1913, 1917, 1921, 1925, 1929, 1933, 1937, 1941,
1323     1945, 1955, 1954, 1975, 1975, 1976, 1976, 1976, 1978, 1985,
1324     1984, 1990, 1990, 1991, 1995, 1999, 2003, 2007, 2011, 2015,
1325     2019, 2023, 2027, 2037, 2036, 2106, 2106, 2107, 2107, 2107,
1326     2108, 2108, 2109, 2110, 2110, 2110, 2111, 2111, 2111, 2112,
1327     2112, 2113, 2115, 2121, 2127, 2133, 2146, 2159, 2165, 2171,
1328     2175, 2184, 2183, 2188, 2188, 2189, 2193, 2199, 2210, 2216,
1329     2222, 2228, 2244, 2243, 2269, 2269, 2270, 2270, 2270, 2272,
1330     2292, 2302, 2301, 2328, 2328, 2329, 2329, 2329, 2331, 2337,
1331     2346, 2348, 2348, 2349, 2349, 2351, 2369, 2368, 2391, 2391,
1332     2392, 2392, 2392, 2394, 2400, 2409, 2412, 2412, 2413, 2413,
1333     2414, 2414, 2415, 2415, 2416, 2416, 2417, 2417, 2418, 2419,
1334     2420, 2420, 2421, 2421, 2422, 2422, 2423, 2423, 2424, 2424,
1335     2425, 2425, 2426, 2426, 2427, 2427, 2428, 2428, 2429, 2429,
1336     2430, 2430, 2431, 2431, 2432, 2433, 2434, 2434, 2435, 2435,
1337     2436, 2437, 2438, 2439, 2439, 2440, 2443, 2448, 2454, 2460,
1338     2466, 2471, 2476, 2481, 2486, 2491, 2496, 2501, 2506, 2511,
1339     2516, 2521, 2526, 2531, 2537, 2548, 2553, 2558, 2563, 2568,
1340     2573, 2576, 2581, 2584, 2589, 2594, 2599, 2604, 2609, 2614,
1341     2619, 2624, 2629, 2634, 2639, 2644, 2653, 2662, 2667, 2672,
1342     2678, 2677, 2682, 2682, 2683, 2686, 2689, 2692, 2695, 2698,
1343     2701, 2704, 2707, 2710, 2713, 2716, 2719, 2722, 2725, 2728,
1344     2731, 2734, 2737, 2740, 2743, 2749, 2748, 2753, 2753, 2754,
1345     2757, 2760, 2763, 2766, 2769, 2772, 2775, 2778, 2781, 2784,
1346     2787, 2790, 2793, 2796, 2799, 2802, 2805, 2808, 2811, 2814,
1347     2819, 2824, 2829, 2838, 2841, 2841, 2842, 2843, 2843, 2844,
1348     2844, 2845, 2846, 2847, 2848, 2849, 2849, 2850, 2850, 2852,
1349     2857, 2862, 2867, 2872, 2877, 2882, 2887, 2892, 2897, 2902,
1350     2907, 2915, 2918, 2918, 2919, 2919, 2920, 2921, 2922, 2923,
1351     2923, 2924, 2925, 2927, 2933, 2939, 2945, 2951, 2960, 2974,
1352     2980
1353 michael 913 };
1354     #endif
1355    
1356 michael 1466 #if YYDEBUG || YYERROR_VERBOSE || 0
1357 michael 913 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
1358     First, the terminals, then, starting at YYNTOKENS, nonterminals. */
1359     static const char *const yytname[] =
1360     {
1361 michael 1520 "$end", "error", "$undefined", "ACCEPT_PASSWORD", "ADMIN", "AFTYPE",
1362     "ANTI_NICK_FLOOD", "ANTI_SPAM_EXIT_MESSAGE_TIME", "AUTOCONN", "BYTES",
1363     "KBYTES", "MBYTES", "CALLER_ID_WAIT", "CAN_FLOOD", "CHANNEL",
1364     "CIDR_BITLEN_IPV4", "CIDR_BITLEN_IPV6", "CLASS", "CONNECT",
1365     "CONNECTFREQ", "DEFAULT_FLOODCOUNT", "DEFAULT_SPLIT_SERVER_COUNT",
1366 michael 1302 "DEFAULT_SPLIT_USER_COUNT", "DENY", "DESCRIPTION", "DIE", "DISABLE_AUTH",
1367 michael 1490 "DISABLE_FAKE_CHANNELS", "DISABLE_REMOTE_COMMANDS", "DOTS_IN_IDENT",
1368 michael 1520 "EGDPOOL_PATH", "EMAIL", "ENCRYPTED", "EXCEED_LIMIT", "EXEMPT",
1369 michael 2129 "FAILED_OPER_NOTICE", "FLATTEN_LINKS", "GECOS", "GENERAL", "GLINE",
1370     "GLINE_DURATION", "GLINE_ENABLE", "GLINE_EXEMPT", "GLINE_MIN_CIDR",
1371     "GLINE_MIN_CIDR6", "GLINE_REQUEST_DURATION", "GLOBAL_KILL",
1372     "HAVENT_READ_CONF", "HIDDEN", "HIDDEN_NAME", "HIDE_IDLE_FROM_OPERS",
1373     "HIDE_SERVER_IPS", "HIDE_SERVERS", "HIDE_SERVICES", "HIDE_SPOOF_IPS",
1374     "HOST", "HUB", "HUB_MASK", "IGNORE_BOGUS_TS", "INVISIBLE_ON_CONNECT",
1375     "IP", "IRCD_AUTH", "IRCD_FLAGS", "IRCD_SID", "JOIN_FLOOD_COUNT",
1376     "JOIN_FLOOD_TIME", "KILL", "KILL_CHASE_TIME_LIMIT", "KLINE",
1377 michael 1851 "KLINE_EXEMPT", "KNOCK_DELAY", "KNOCK_DELAY_CHANNEL", "LEAF_MASK",
1378 michael 2129 "LINKS_DELAY", "LISTEN", "MASK", "MAX_ACCEPT", "MAX_BANS",
1379 michael 1851 "MAX_CHANS_PER_OPER", "MAX_CHANS_PER_USER", "MAX_GLOBAL", "MAX_IDENT",
1380 michael 2129 "MAX_IDLE", "MAX_LOCAL", "MAX_NICK_CHANGES", "MAX_NICK_LENGTH",
1381     "MAX_NICK_TIME", "MAX_NUMBER", "MAX_TARGETS", "MAX_TOPIC_LENGTH",
1382     "MAX_WATCH", "MIN_IDLE", "MIN_NONWILDCARD", "MIN_NONWILDCARD_SIMPLE",
1383 michael 2150 "MODULE", "MODULES", "MOTD", "NAME", "NEED_IDENT", "NEED_PASSWORD",
1384 michael 2129 "NETWORK_DESC", "NETWORK_NAME", "NICK", "NO_CREATE_ON_SPLIT",
1385     "NO_JOIN_ON_SPLIT", "NO_OPER_FLOOD", "NO_TILDE", "NUMBER",
1386     "NUMBER_PER_CIDR", "NUMBER_PER_IP", "OPER_ONLY_UMODES", "OPER_PASS_RESV",
1387     "OPER_UMODES", "OPERATOR", "OPERS_BYPASS_CALLERID", "PACE_WAIT",
1388 michael 1992 "PACE_WAIT_SIMPLE", "PASSWORD", "PATH", "PING_COOKIE", "PING_TIME",
1389 michael 2129 "PORT", "QSTRING", "RANDOM_IDLE", "REASON", "REDIRPORT", "REDIRSERV",
1390     "REHASH", "REMOTE", "REMOTEBAN", "RESV", "RESV_EXEMPT",
1391     "RSA_PRIVATE_KEY_FILE", "RSA_PUBLIC_KEY_FILE", "SECONDS", "MINUTES",
1392     "HOURS", "DAYS", "WEEKS", "MONTHS", "YEARS", "SEND_PASSWORD", "SENDQ",
1393     "SERVERHIDE", "SERVERINFO", "SHORT_MOTD", "SPOOF", "SPOOF_NOTICE",
1394 michael 2244 "SQUIT", "SSL_CERTIFICATE_FILE", "SSL_CERTIFICATE_FINGERPRINT",
1395 michael 2248 "SSL_CONNECTION_REQUIRED", "SSL_DH_PARAM_FILE", "STATS_E_DISABLED",
1396     "STATS_I_OPER_ONLY", "STATS_K_OPER_ONLY", "STATS_O_OPER_ONLY",
1397     "STATS_P_OPER_ONLY", "T_ALL", "T_BOTS", "T_CALLERID", "T_CCONN",
1398     "T_CLUSTER", "T_DEAF", "T_DEBUG", "T_DLINE", "T_EXTERNAL",
1399     "T_FARCONNECT", "T_FILE", "T_FULL", "T_GLOBOPS", "T_INVISIBLE", "T_IPV4",
1400     "T_IPV6", "T_LOCOPS", "T_LOG", "T_MAX_CLIENTS", "T_NCHANGE",
1401     "T_NONONREG", "T_OPERWALL", "T_RECVQ", "T_REJ", "T_RESTART", "T_SERVER",
1402     "T_SERVICE", "T_SERVICES_NAME", "T_SERVNOTICE", "T_SET", "T_SHARED",
1403     "T_SIZE", "T_SKILL", "T_SOFTCALLERID", "T_SPY", "T_SSL",
1404 michael 2129 "T_SSL_CIPHER_LIST", "T_SSL_CLIENT_METHOD", "T_SSL_SERVER_METHOD",
1405     "T_SSLV3", "T_TLSV1", "T_UMODES", "T_UNAUTH", "T_UNDLINE", "T_UNLIMITED",
1406     "T_UNRESV", "T_UNXLINE", "T_WALLOP", "T_WALLOPS", "T_WEBIRC", "TBOOL",
1407     "THROTTLE_TIME", "TKLINE_EXPIRE_NOTICES", "TMASKED",
1408     "TRUE_NO_OPER_FLOOD", "TS_MAX_DELTA", "TS_WARN_DELTA", "TWODOTS", "TYPE",
1409     "UNKLINE", "USE_EGD", "USE_LOGGING", "USER", "VHOST", "VHOST6",
1410     "WARN_NO_NLINE", "XLINE", "';'", "'}'", "'{'", "'='", "','", "':'",
1411     "$accept", "conf", "conf_item", "timespec_", "timespec", "sizespec_",
1412     "sizespec", "modules_entry", "modules_items", "modules_item",
1413     "modules_module", "modules_path", "serverinfo_entry", "serverinfo_items",
1414 michael 2038 "serverinfo_item", "serverinfo_ssl_client_method",
1415     "serverinfo_ssl_server_method", "client_method_types",
1416     "client_method_type_item", "server_method_types",
1417 michael 1316 "server_method_type_item", "serverinfo_ssl_certificate_file",
1418 michael 1306 "serverinfo_rsa_private_key_file", "serverinfo_ssl_dh_param_file",
1419     "serverinfo_ssl_cipher_list", "serverinfo_name", "serverinfo_sid",
1420 michael 913 "serverinfo_description", "serverinfo_network_name",
1421     "serverinfo_network_desc", "serverinfo_vhost", "serverinfo_vhost6",
1422 michael 1751 "serverinfo_max_clients", "serverinfo_max_nick_length",
1423     "serverinfo_max_topic_length", "serverinfo_hub", "admin_entry",
1424     "admin_items", "admin_item", "admin_name", "admin_email",
1425 michael 2150 "admin_description", "motd_entry", "$@1", "motd_items", "motd_item",
1426     "motd_mask", "motd_file", "logging_entry", "logging_items",
1427     "logging_item", "logging_use_logging", "logging_file_entry", "$@2",
1428     "logging_file_items", "logging_file_item", "logging_file_name",
1429     "logging_file_size", "logging_file_type", "$@3",
1430     "logging_file_type_items", "logging_file_type_item", "oper_entry", "$@4",
1431     "oper_items", "oper_item", "oper_name", "oper_user", "oper_password",
1432 michael 2244 "oper_encrypted", "oper_rsa_public_key_file",
1433 michael 2248 "oper_ssl_certificate_fingerprint", "oper_ssl_connection_required",
1434     "oper_class", "oper_umodes", "$@5", "oper_umodes_items",
1435     "oper_umodes_item", "oper_flags", "$@6", "oper_flags_items",
1436     "oper_flags_item", "class_entry", "$@7", "class_items", "class_item",
1437     "class_name", "class_ping_time", "class_number_per_ip",
1438     "class_connectfreq", "class_max_number", "class_max_global",
1439     "class_max_local", "class_max_ident", "class_sendq", "class_recvq",
1440     "class_cidr_bitlen_ipv4", "class_cidr_bitlen_ipv6",
1441 michael 1783 "class_number_per_cidr", "class_min_idle", "class_max_idle",
1442 michael 2150 "class_flags", "$@8", "class_flags_items", "class_flags_item",
1443     "listen_entry", "$@9", "listen_flags", "$@10", "listen_flags_items",
1444 michael 1783 "listen_flags_item", "listen_items", "listen_item", "listen_port",
1445 michael 2150 "$@11", "port_items", "port_item", "listen_address", "listen_host",
1446     "auth_entry", "$@12", "auth_items", "auth_item", "auth_user",
1447     "auth_passwd", "auth_class", "auth_encrypted", "auth_flags", "$@13",
1448 michael 1783 "auth_flags_items", "auth_flags_item", "auth_spoof", "auth_redir_serv",
1449 michael 2150 "auth_redir_port", "resv_entry", "$@14", "resv_items", "resv_item",
1450 michael 1858 "resv_mask", "resv_reason", "resv_exempt", "service_entry",
1451 michael 2150 "service_items", "service_item", "service_name", "shared_entry", "$@15",
1452 michael 1783 "shared_items", "shared_item", "shared_name", "shared_user",
1453 michael 2150 "shared_type", "$@16", "shared_types", "shared_type_item",
1454     "cluster_entry", "$@17", "cluster_items", "cluster_item", "cluster_name",
1455     "cluster_type", "$@18", "cluster_types", "cluster_type_item",
1456     "connect_entry", "$@19", "connect_items", "connect_item", "connect_name",
1457 michael 1324 "connect_host", "connect_vhost", "connect_send_password",
1458 michael 2244 "connect_accept_password", "connect_ssl_certificate_fingerprint",
1459     "connect_port", "connect_aftype", "connect_flags", "$@20",
1460     "connect_flags_items", "connect_flags_item", "connect_encrypted",
1461     "connect_hub_mask", "connect_leaf_mask", "connect_class",
1462     "connect_ssl_cipher_list", "kill_entry", "$@21", "kill_items",
1463     "kill_item", "kill_user", "kill_reason", "deny_entry", "$@22",
1464     "deny_items", "deny_item", "deny_ip", "deny_reason", "exempt_entry",
1465     "exempt_items", "exempt_item", "exempt_ip", "gecos_entry", "$@23",
1466     "gecos_items", "gecos_item", "gecos_name", "gecos_reason",
1467     "general_entry", "general_items", "general_item", "general_max_watch",
1468     "general_gline_enable", "general_gline_duration",
1469     "general_gline_request_duration", "general_gline_min_cidr",
1470     "general_gline_min_cidr6", "general_tkline_expire_notices",
1471     "general_kill_chase_time_limit", "general_hide_spoof_ips",
1472     "general_ignore_bogus_ts", "general_failed_oper_notice",
1473     "general_anti_nick_flood", "general_max_nick_time",
1474     "general_max_nick_changes", "general_max_accept",
1475     "general_anti_spam_exit_message_time", "general_ts_warn_delta",
1476     "general_ts_max_delta", "general_havent_read_conf",
1477     "general_invisible_on_connect", "general_warn_no_nline",
1478     "general_stats_e_disabled", "general_stats_o_oper_only",
1479     "general_stats_P_oper_only", "general_stats_k_oper_only",
1480     "general_stats_i_oper_only", "general_pace_wait",
1481     "general_caller_id_wait", "general_opers_bypass_callerid",
1482     "general_pace_wait_simple", "general_short_motd",
1483     "general_no_oper_flood", "general_true_no_oper_flood",
1484     "general_oper_pass_resv", "general_dots_in_ident", "general_max_targets",
1485     "general_use_egd", "general_egdpool_path", "general_services_name",
1486     "general_ping_cookie", "general_disable_auth", "general_throttle_time",
1487     "general_oper_umodes", "$@24", "umode_oitems", "umode_oitem",
1488     "general_oper_only_umodes", "$@25", "umode_items", "umode_item",
1489     "general_min_nonwildcard", "general_min_nonwildcard_simple",
1490     "general_default_floodcount", "channel_entry", "channel_items",
1491     "channel_item", "channel_disable_fake_channels", "channel_knock_delay",
1492 michael 1858 "channel_knock_delay_channel", "channel_max_chans_per_user",
1493 michael 1946 "channel_max_chans_per_oper", "channel_max_bans",
1494 michael 913 "channel_default_split_user_count", "channel_default_split_server_count",
1495     "channel_no_create_on_split", "channel_no_join_on_split",
1496 michael 1401 "channel_jflood_count", "channel_jflood_time", "serverhide_entry",
1497     "serverhide_items", "serverhide_item", "serverhide_flatten_links",
1498 michael 2196 "serverhide_disable_remote_commands", "serverhide_hide_servers",
1499     "serverhide_hide_services", "serverhide_hidden_name",
1500     "serverhide_links_delay", "serverhide_hidden",
1501 michael 1490 "serverhide_hide_server_ips", YY_NULL
1502 michael 913 };
1503     #endif
1504    
1505     # ifdef YYPRINT
1506     /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
1507     token YYLEX-NUM. */
1508     static const yytype_uint16 yytoknum[] =
1509     {
1510     0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
1511     265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
1512     275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
1513     285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
1514     295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
1515     305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
1516     315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
1517     325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
1518     335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
1519     345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
1520     355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
1521     365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
1522     375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
1523     385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
1524     395, 396, 397, 398, 399, 400, 401, 402, 403, 404,
1525     405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
1526     415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
1527     425, 426, 427, 428, 429, 430, 431, 432, 433, 434,
1528     435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
1529     445, 446, 447, 448, 449, 450, 451, 452, 453, 454,
1530     455, 456, 457, 458, 459, 460, 461, 462, 463, 464,
1531 michael 1783 465, 466, 467, 468, 469, 470, 471, 472, 473, 474,
1532 michael 2248 475, 476, 477, 478, 479, 59, 125, 123, 61, 44,
1533     58
1534 michael 913 };
1535     # endif
1536    
1537     /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
1538     static const yytype_uint16 yyr1[] =
1539     {
1540 michael 2248 0, 231, 232, 232, 233, 233, 233, 233, 233, 233,
1541     233, 233, 233, 233, 233, 233, 233, 233, 233, 233,
1542     233, 233, 233, 233, 233, 233, 233, 234, 234, 235,
1543     235, 235, 235, 235, 235, 235, 235, 236, 236, 237,
1544     237, 237, 237, 238, 239, 239, 240, 240, 240, 241,
1545     242, 243, 244, 244, 245, 245, 245, 245, 245, 245,
1546     245, 245, 245, 245, 245, 245, 245, 245, 245, 245,
1547     245, 245, 246, 247, 248, 248, 249, 249, 250, 250,
1548     251, 251, 252, 253, 254, 255, 256, 257, 258, 259,
1549     260, 261, 262, 263, 264, 265, 266, 267, 268, 268,
1550     269, 269, 269, 269, 270, 271, 272, 274, 273, 275,
1551     275, 276, 276, 276, 277, 278, 279, 280, 280, 281,
1552     281, 281, 282, 284, 283, 285, 285, 286, 286, 286,
1553     286, 287, 288, 288, 290, 289, 291, 291, 292, 292,
1554     292, 292, 292, 292, 292, 294, 293, 295, 295, 296,
1555     296, 296, 296, 296, 296, 296, 296, 296, 296, 296,
1556     297, 298, 299, 300, 301, 302, 303, 304, 306, 305,
1557     307, 307, 308, 308, 308, 308, 308, 308, 308, 308,
1558     308, 308, 308, 308, 308, 308, 308, 308, 308, 308,
1559     308, 308, 308, 310, 309, 311, 311, 312, 312, 312,
1560     312, 312, 312, 312, 312, 312, 312, 312, 312, 312,
1561     312, 312, 312, 312, 312, 312, 312, 312, 312, 312,
1562     314, 313, 315, 315, 316, 316, 316, 316, 316, 316,
1563     316, 316, 316, 316, 316, 316, 316, 316, 316, 316,
1564 michael 2150 316, 317, 318, 319, 320, 321, 322, 323, 324, 325,
1565 michael 2248 326, 327, 328, 329, 330, 331, 333, 332, 334, 334,
1566     335, 335, 337, 336, 339, 338, 340, 340, 341, 341,
1567     341, 342, 342, 343, 343, 343, 343, 343, 345, 344,
1568     346, 346, 347, 347, 348, 349, 351, 350, 352, 352,
1569     353, 353, 353, 353, 353, 353, 353, 353, 353, 354,
1570     355, 356, 357, 359, 358, 360, 360, 361, 361, 361,
1571     361, 361, 361, 361, 361, 361, 361, 362, 363, 364,
1572     366, 365, 367, 367, 368, 368, 368, 368, 369, 370,
1573     371, 372, 373, 373, 374, 374, 375, 377, 376, 378,
1574     378, 379, 379, 379, 379, 380, 381, 383, 382, 384,
1575     384, 385, 385, 385, 385, 385, 385, 385, 385, 385,
1576     385, 387, 386, 388, 388, 389, 389, 389, 390, 392,
1577     391, 393, 393, 394, 394, 394, 394, 394, 394, 394,
1578     394, 394, 394, 396, 395, 397, 397, 398, 398, 398,
1579     398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
1580     398, 398, 399, 400, 401, 402, 403, 404, 405, 406,
1581     406, 408, 407, 409, 409, 410, 410, 411, 412, 413,
1582     414, 415, 417, 416, 418, 418, 419, 419, 419, 420,
1583     421, 423, 422, 424, 424, 425, 425, 425, 426, 427,
1584     428, 429, 429, 430, 430, 431, 433, 432, 434, 434,
1585     435, 435, 435, 436, 437, 438, 439, 439, 440, 440,
1586     440, 440, 440, 440, 440, 440, 440, 440, 440, 440,
1587     440, 440, 440, 440, 440, 440, 440, 440, 440, 440,
1588     440, 440, 440, 440, 440, 440, 440, 440, 440, 440,
1589     440, 440, 440, 440, 440, 440, 440, 440, 440, 440,
1590     440, 440, 440, 440, 440, 440, 441, 442, 443, 444,
1591 michael 2228 445, 446, 447, 448, 449, 450, 451, 452, 453, 454,
1592 michael 2248 455, 456, 457, 458, 459, 460, 461, 462, 463, 464,
1593     465, 465, 466, 466, 467, 468, 469, 470, 471, 472,
1594     473, 474, 475, 476, 477, 478, 479, 480, 481, 482,
1595     484, 483, 485, 485, 486, 486, 486, 486, 486, 486,
1596     486, 486, 486, 486, 486, 486, 486, 486, 486, 486,
1597     486, 486, 486, 486, 486, 488, 487, 489, 489, 490,
1598     490, 490, 490, 490, 490, 490, 490, 490, 490, 490,
1599     490, 490, 490, 490, 490, 490, 490, 490, 490, 490,
1600     491, 492, 493, 494, 495, 495, 496, 496, 496, 496,
1601     496, 496, 496, 496, 496, 496, 496, 496, 496, 497,
1602 michael 2228 498, 499, 500, 501, 502, 503, 504, 505, 506, 507,
1603 michael 2248 508, 509, 510, 510, 511, 511, 511, 511, 511, 511,
1604     511, 511, 511, 512, 513, 514, 515, 516, 517, 518,
1605     519
1606 michael 913 };
1607    
1608     /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
1609     static const yytype_uint8 yyr2[] =
1610     {
1611     0, 2, 0, 2, 1, 1, 1, 1, 1, 1,
1612     1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1613 michael 2150 1, 1, 1, 1, 1, 2, 2, 0, 1, 2,
1614     3, 3, 3, 3, 3, 3, 3, 0, 1, 2,
1615     3, 3, 3, 5, 2, 1, 1, 1, 2, 4,
1616     4, 5, 2, 1, 1, 1, 1, 1, 1, 1,
1617 michael 1459 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1618 michael 2150 1, 2, 4, 4, 3, 1, 1, 1, 3, 1,
1619     1, 1, 4, 4, 4, 4, 4, 4, 4, 4,
1620     4, 4, 4, 4, 4, 4, 4, 5, 2, 1,
1621     1, 1, 1, 2, 4, 4, 4, 0, 6, 2,
1622     1, 1, 1, 2, 4, 4, 5, 2, 1, 1,
1623 michael 1783 1, 2, 4, 0, 6, 2, 1, 1, 1, 1,
1624     2, 4, 4, 4, 0, 5, 3, 1, 1, 1,
1625     1, 1, 1, 1, 1, 0, 6, 2, 1, 1,
1626 michael 2248 1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
1627     4, 4, 4, 4, 4, 4, 4, 4, 0, 5,
1628     3, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1629 michael 913 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1630 michael 2248 1, 1, 1, 0, 5, 3, 1, 3, 1, 3,
1631     1, 3, 1, 1, 1, 1, 1, 1, 1, 1,
1632 michael 967 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1633 michael 2248 0, 6, 2, 1, 1, 1, 1, 1, 1, 1,
1634 michael 1324 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1635 michael 2248 2, 4, 4, 4, 4, 4, 4, 4, 4, 4,
1636     4, 4, 4, 4, 4, 4, 0, 5, 3, 1,
1637     1, 1, 0, 6, 0, 5, 3, 1, 1, 1,
1638     1, 2, 1, 1, 1, 1, 1, 2, 0, 5,
1639     3, 1, 1, 3, 4, 4, 0, 6, 2, 1,
1640 michael 2228 1, 1, 1, 1, 1, 1, 1, 1, 2, 4,
1641 michael 2248 4, 4, 4, 0, 5, 3, 1, 1, 1, 1,
1642     1, 1, 1, 1, 1, 1, 1, 4, 4, 4,
1643     0, 6, 2, 1, 1, 1, 1, 2, 4, 4,
1644     4, 5, 2, 1, 1, 1, 4, 0, 6, 2,
1645     1, 1, 1, 1, 2, 4, 4, 0, 5, 3,
1646 michael 1981 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1647 michael 2248 1, 0, 6, 2, 1, 1, 1, 2, 4, 0,
1648     5, 3, 1, 1, 1, 1, 1, 1, 1, 1,
1649     1, 1, 1, 0, 6, 2, 1, 1, 1, 1,
1650 michael 1981 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1651 michael 2248 1, 2, 4, 4, 4, 4, 4, 4, 4, 4,
1652     4, 0, 5, 3, 1, 1, 1, 4, 4, 4,
1653     4, 4, 0, 6, 2, 1, 1, 1, 1, 4,
1654     4, 0, 6, 2, 1, 1, 1, 1, 4, 4,
1655     5, 2, 1, 1, 1, 4, 0, 6, 2, 1,
1656     1, 1, 1, 4, 4, 5, 2, 1, 1, 1,
1657 michael 1247 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1658 michael 1306 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1659 michael 2228 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1660 michael 2248 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1661     1, 1, 1, 1, 1, 1, 4, 4, 4, 4,
1662 michael 913 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
1663     4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
1664     4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
1665 michael 2248 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
1666     0, 5, 3, 1, 1, 1, 1, 1, 1, 1,
1667 michael 913 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1668 michael 2248 1, 1, 1, 1, 1, 0, 5, 3, 1, 1,
1669 michael 1519 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1670 michael 2248 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1671     4, 4, 4, 5, 2, 1, 1, 1, 1, 1,
1672     1, 1, 1, 1, 1, 1, 1, 1, 1, 4,
1673     4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
1674 michael 2228 4, 5, 2, 1, 1, 1, 1, 1, 1, 1,
1675 michael 2248 1, 1, 1, 4, 4, 4, 4, 4, 4, 4,
1676     4
1677 michael 913 };
1678    
1679 michael 1133 /* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
1680     Performed when YYTABLE doesn't specify something else to do. Zero
1681 michael 913 means the default is an error. */
1682     static const yytype_uint16 yydefact[] =
1683     {
1684 michael 2248 2, 0, 1, 0, 0, 0, 220, 383, 431, 0,
1685     446, 0, 286, 422, 262, 0, 107, 145, 320, 0,
1686     0, 361, 0, 0, 337, 3, 23, 11, 4, 24,
1687 michael 2150 5, 6, 8, 9, 10, 13, 14, 15, 16, 17,
1688     18, 19, 20, 22, 21, 7, 12, 25, 26, 0,
1689 michael 913 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1690     0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1691 michael 2248 0, 0, 0, 0, 0, 99, 100, 102, 101, 618,
1692 michael 913 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1693 michael 2248 0, 0, 0, 605, 617, 607, 608, 609, 610, 606,
1694     611, 612, 613, 614, 615, 616, 0, 0, 0, 444,
1695     0, 0, 442, 443, 0, 505, 0, 0, 0, 0,
1696 michael 913 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1697     0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1698 michael 2248 0, 0, 575, 0, 550, 0, 0, 0, 0, 0,
1699 michael 913 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1700 michael 2248 0, 0, 0, 0, 457, 503, 497, 498, 499, 500,
1701     501, 496, 468, 458, 459, 460, 461, 462, 463, 464,
1702     465, 466, 467, 493, 469, 470, 502, 472, 477, 473,
1703     475, 474, 487, 488, 476, 478, 479, 480, 481, 471,
1704     483, 484, 485, 504, 494, 495, 492, 486, 482, 490,
1705     491, 489, 0, 0, 0, 0, 0, 0, 0, 45,
1706     46, 47, 0, 0, 0, 642, 0, 0, 0, 0,
1707     0, 0, 0, 0, 0, 633, 634, 635, 636, 637,
1708     640, 638, 639, 641, 0, 0, 0, 0, 0, 0,
1709 michael 913 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1710 michael 2150 0, 0, 0, 53, 68, 69, 67, 64, 63, 70,
1711     54, 66, 57, 58, 59, 55, 65, 60, 61, 62,
1712 michael 2248 56, 0, 0, 0, 0, 118, 119, 120, 0, 335,
1713     0, 0, 333, 334, 0, 103, 0, 0, 0, 0,
1714 michael 2150 98, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1715 michael 2248 0, 0, 0, 0, 604, 0, 0, 0, 0, 256,
1716 michael 913 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1717 michael 2248 0, 0, 0, 223, 224, 227, 229, 230, 231, 232,
1718     233, 234, 235, 236, 225, 226, 228, 237, 238, 239,
1719     0, 0, 0, 0, 0, 0, 0, 411, 0, 0,
1720     0, 0, 0, 0, 0, 0, 386, 387, 388, 389,
1721     390, 391, 392, 394, 393, 396, 400, 397, 398, 399,
1722     395, 437, 0, 0, 0, 434, 435, 436, 0, 0,
1723     441, 452, 0, 0, 0, 449, 450, 451, 0, 0,
1724 michael 913 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1725 michael 1285 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1726     0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1727     0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1728 michael 2248 0, 0, 0, 0, 0, 0, 456, 0, 0, 0,
1729     303, 0, 0, 0, 0, 0, 0, 289, 290, 291,
1730     292, 297, 293, 294, 295, 296, 428, 0, 0, 0,
1731     425, 426, 427, 0, 0, 0, 264, 0, 274, 0,
1732     272, 273, 275, 276, 48, 0, 0, 0, 44, 0,
1733     0, 0, 0, 110, 111, 112, 0, 0, 0, 193,
1734     0, 0, 0, 0, 0, 168, 0, 0, 148, 149,
1735     150, 151, 154, 155, 156, 157, 153, 152, 158, 0,
1736     0, 0, 0, 0, 323, 324, 325, 326, 0, 0,
1737     0, 0, 0, 0, 0, 0, 0, 632, 71, 0,
1738 michael 1285 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1739 michael 2248 0, 0, 0, 0, 0, 0, 0, 52, 0, 0,
1740     369, 0, 364, 365, 366, 121, 0, 0, 117, 0,
1741     0, 0, 332, 0, 0, 347, 0, 0, 340, 341,
1742     342, 343, 0, 0, 0, 97, 0, 0, 0, 0,
1743     27, 0, 0, 0, 0, 0, 0, 0, 0, 603,
1744     240, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1745     0, 0, 0, 0, 0, 0, 0, 0, 222, 401,
1746 michael 913 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1747 michael 2248 0, 0, 0, 0, 0, 385, 0, 0, 0, 433,
1748     0, 440, 0, 0, 0, 448, 0, 0, 0, 0,
1749 michael 913 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1750     0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1751     0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1752 michael 1516 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1753 michael 2248 0, 0, 0, 0, 0, 455, 298, 0, 0, 0,
1754     0, 0, 0, 0, 0, 0, 288, 0, 0, 0,
1755     424, 277, 0, 0, 0, 0, 0, 271, 0, 0,
1756     43, 113, 0, 0, 0, 109, 159, 0, 0, 0,
1757     0, 0, 0, 0, 0, 0, 0, 0, 147, 327,
1758     0, 0, 0, 0, 322, 0, 0, 0, 0, 0,
1759     0, 0, 0, 631, 0, 0, 0, 0, 0, 0,
1760     0, 0, 0, 0, 0, 0, 0, 76, 77, 0,
1761     75, 80, 81, 0, 79, 0, 0, 51, 367, 0,
1762     0, 0, 363, 0, 116, 0, 0, 331, 344, 0,
1763     0, 0, 0, 339, 106, 105, 104, 626, 625, 619,
1764     629, 27, 27, 27, 27, 27, 27, 27, 29, 28,
1765     630, 620, 621, 624, 623, 622, 627, 628, 0, 0,
1766 michael 2129 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1767 michael 2248 0, 0, 37, 0, 0, 221, 0, 0, 0, 0,
1768     0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1769     0, 384, 0, 0, 432, 445, 0, 0, 447, 517,
1770     521, 535, 602, 548, 542, 545, 516, 508, 507, 510,
1771     511, 509, 524, 514, 515, 525, 513, 520, 519, 518,
1772     543, 506, 600, 601, 539, 585, 579, 596, 580, 581,
1773     582, 590, 599, 583, 593, 597, 586, 598, 591, 587,
1774     592, 584, 595, 589, 588, 594, 0, 578, 541, 559,
1775     554, 571, 555, 556, 557, 565, 574, 558, 568, 572,
1776     561, 573, 566, 562, 567, 560, 570, 564, 563, 569,
1777     0, 553, 536, 534, 537, 547, 538, 527, 532, 533,
1778     530, 531, 528, 529, 546, 549, 512, 540, 523, 522,
1779     544, 526, 0, 0, 0, 0, 0, 0, 0, 0,
1780     287, 0, 0, 423, 0, 0, 0, 282, 278, 281,
1781     263, 49, 50, 0, 0, 108, 0, 0, 0, 0,
1782     0, 0, 0, 0, 0, 0, 146, 0, 0, 0,
1783     321, 644, 643, 649, 647, 650, 645, 646, 648, 88,
1784     96, 87, 94, 95, 86, 90, 89, 83, 82, 84,
1785     93, 85, 72, 0, 73, 0, 91, 92, 0, 0,
1786     362, 122, 0, 0, 0, 134, 0, 126, 127, 129,
1787     128, 336, 0, 0, 0, 338, 30, 31, 32, 33,
1788     34, 35, 36, 251, 252, 244, 261, 260, 0, 259,
1789     246, 248, 255, 247, 245, 254, 241, 253, 243, 242,
1790     37, 37, 37, 39, 38, 249, 250, 406, 409, 410,
1791     420, 417, 403, 418, 415, 416, 0, 414, 419, 402,
1792     408, 405, 407, 421, 404, 438, 439, 453, 454, 576,
1793     0, 551, 0, 301, 302, 311, 308, 313, 309, 310,
1794     316, 312, 314, 307, 315, 0, 306, 300, 319, 318,
1795     317, 299, 430, 429, 285, 284, 269, 270, 268, 0,
1796     267, 0, 0, 0, 114, 115, 167, 163, 212, 200,
1797     209, 208, 198, 203, 219, 211, 217, 202, 205, 214,
1798     216, 213, 210, 218, 206, 215, 204, 207, 0, 196,
1799     160, 162, 164, 165, 166, 177, 172, 189, 173, 174,
1800     175, 183, 192, 176, 186, 190, 179, 191, 184, 180,
1801     185, 178, 188, 182, 181, 187, 0, 171, 161, 330,
1802     328, 329, 74, 78, 368, 373, 379, 382, 375, 381,
1803     376, 380, 378, 374, 377, 0, 372, 130, 0, 0,
1804     0, 0, 125, 345, 351, 357, 360, 353, 359, 354,
1805     358, 356, 352, 355, 0, 350, 346, 257, 0, 40,
1806     41, 42, 412, 0, 577, 552, 304, 0, 265, 0,
1807     283, 280, 279, 0, 0, 0, 194, 0, 169, 0,
1808     370, 0, 0, 0, 0, 0, 124, 348, 0, 258,
1809     413, 305, 266, 199, 197, 201, 195, 170, 371, 131,
1810     133, 132, 140, 143, 142, 139, 144, 141, 138, 0,
1811     137, 349, 135, 0, 136
1812 michael 913 };
1813    
1814     /* YYDEFGOTO[NTERM-NUM]. */
1815     static const yytype_int16 yydefgoto[] =
1816     {
1817 michael 2248 -1, 1, 25, 808, 809, 1063, 1064, 26, 218, 219,
1818     220, 221, 27, 262, 263, 264, 265, 769, 770, 773,
1819     774, 266, 267, 268, 269, 270, 271, 272, 273, 274,
1820 michael 2150 275, 276, 277, 278, 279, 280, 28, 74, 75, 76,
1821 michael 2228 77, 78, 29, 61, 492, 493, 494, 495, 30, 284,
1822 michael 2248 285, 286, 287, 288, 1026, 1027, 1028, 1029, 1030, 1200,
1823     1269, 1270, 31, 62, 507, 508, 509, 510, 511, 512,
1824     513, 514, 515, 516, 517, 735, 1176, 1177, 518, 729,
1825     1148, 1149, 32, 51, 332, 333, 334, 335, 336, 337,
1826     338, 339, 340, 341, 342, 343, 344, 345, 346, 347,
1827     348, 349, 604, 1048, 1049, 33, 59, 478, 714, 1119,
1828     1120, 479, 480, 481, 1123, 968, 969, 482, 483, 34,
1829     57, 456, 457, 458, 459, 460, 461, 462, 699, 1105,
1830     1106, 463, 464, 465, 35, 63, 523, 524, 525, 526,
1831     527, 36, 291, 292, 293, 37, 69, 577, 578, 579,
1832     580, 581, 790, 1214, 1215, 38, 66, 561, 562, 563,
1833     564, 780, 1195, 1196, 39, 52, 365, 366, 367, 368,
1834     369, 370, 371, 372, 373, 374, 375, 626, 1076, 1077,
1835     376, 377, 378, 379, 380, 40, 58, 469, 470, 471,
1836     472, 41, 53, 384, 385, 386, 387, 42, 111, 112,
1837     113, 43, 55, 394, 395, 396, 397, 44, 163, 164,
1838     165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
1839     175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
1840     185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
1841     195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
1842     205, 206, 207, 426, 930, 931, 208, 424, 906, 907,
1843     209, 210, 211, 45, 92, 93, 94, 95, 96, 97,
1844     98, 99, 100, 101, 102, 103, 104, 105, 46, 234,
1845     235, 236, 237, 238, 239, 240, 241, 242, 243
1846 michael 913 };
1847    
1848     /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1849     STATE-NUM. */
1850 michael 2248 #define YYPACT_NINF -1050
1851 michael 913 static const yytype_int16 yypact[] =
1852     {
1853 michael 2248 -1050, 656, -1050, -170, -181, -163, -1050, -1050, -1050, -158,
1854     -1050, -151, -1050, -1050, -1050, -111, -1050, -1050, -1050, -93,
1855     -87, -1050, -69, -58, -1050, -1050, -1050, -1050, -1050, -1050,
1856     -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050,
1857     -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, 20,
1858     926, -33, -3, 0, 30, 11, 387, 39, 62, 74,
1859     197, 81, 82, 83, 685, 428, 87, 40, 60, 91,
1860     -176, 29, 43, 66, 8, -1050, -1050, -1050, -1050, -1050,
1861     94, 95, 109, 111, 112, 113, 115, 116, 117, 118,
1862     122, 123, 7, -1050, -1050, -1050, -1050, -1050, -1050, -1050,
1863     -1050, -1050, -1050, -1050, -1050, -1050, 683, 364, 35, -1050,
1864     124, 23, -1050, -1050, 200, -1050, 125, 127, 129, 130,
1865     132, 133, 135, 136, 138, 142, 143, 144, 145, 149,
1866     150, 151, 152, 155, 156, 157, 159, 161, 162, 164,
1867     172, 175, -1050, 176, -1050, 177, 181, 182, 183, 184,
1868     186, 187, 190, 192, 195, 205, 209, 210, 212, 215,
1869     216, 219, 220, 107, -1050, -1050, -1050, -1050, -1050, -1050,
1870     -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050,
1871     -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050,
1872     -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050,
1873     -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050,
1874     -1050, -1050, 449, 19, 287, -47, 221, 223, 5, -1050,
1875     -1050, -1050, 16, 438, 6, -1050, 225, 228, 229, 230,
1876     231, 232, 236, 237, 14, -1050, -1050, -1050, -1050, -1050,
1877     -1050, -1050, -1050, -1050, 110, 240, 244, 246, 248, 250,
1878     254, 258, 259, 260, 261, 267, 268, 279, 280, 281,
1879     282, 284, 180, -1050, -1050, -1050, -1050, -1050, -1050, -1050,
1880     -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050,
1881     -1050, 34, 173, 288, 9, -1050, -1050, -1050, 119, -1050,
1882     298, 44, -1050, -1050, 59, -1050, 214, 303, 393, 302,
1883     -1050, 423, 427, 328, 430, 431, 431, 431, 432, 439,
1884     441, 337, 342, 326, -1050, 327, 325, 333, 334, -1050,
1885     335, 336, 340, 341, 345, 350, 351, 353, 354, 355,
1886     358, 362, 105, -1050, -1050, -1050, -1050, -1050, -1050, -1050,
1887     -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050,
1888     331, 363, 365, 370, 374, 378, 379, -1050, 380, 381,
1889     383, 384, 397, 399, 400, 241, -1050, -1050, -1050, -1050,
1890     -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050,
1891     -1050, -1050, 401, 403, 22, -1050, -1050, -1050, 435, 396,
1892     -1050, -1050, 406, 408, 58, -1050, -1050, -1050, 346, 431,
1893     431, 458, 433, 463, 516, 434, 431, 437, 536, 539,
1894     431, 541, 443, 445, 446, 431, 548, 552, 431, 554,
1895     555, 556, 557, 459, 440, 464, 447, 468, 431, 431,
1896     469, 470, 472, -189, -178, 475, 477, 569, 431, 484,
1897     487, 431, 431, 488, 489, 476, -1050, 478, 479, 481,
1898     -1050, 482, 483, 486, 490, 491, 128, -1050, -1050, -1050,
1899     -1050, -1050, -1050, -1050, -1050, -1050, -1050, 492, 496, 79,
1900     -1050, -1050, -1050, 500, 498, 499, -1050, 501, -1050, 108,
1901     -1050, -1050, -1050, -1050, -1050, 578, 582, 503, -1050, 506,
1902     511, 512, 69, -1050, -1050, -1050, 517, 515, 518, -1050,
1903     519, 520, 522, 525, 526, -1050, 527, 56, -1050, -1050,
1904     -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, 531,
1905     529, 532, 540, 4, -1050, -1050, -1050, -1050, 497, 504,
1906     507, 584, 559, 563, 564, 431, 551, -1050, -1050, 586,
1907     565, 622, 672, 674, 661, 663, 665, 666, 667, 668,
1908     688, 675, -123, -105, 676, 679, 571, -1050, 577, 566,
1909     -1050, 25, -1050, -1050, -1050, -1050, 596, 580, -1050, 579,
1910     686, 585, -1050, 587, 581, -1050, 583, 52, -1050, -1050,
1911     -1050, -1050, 589, 590, 591, -1050, 592, 594, 599, 601,
1912     480, 602, 603, 604, 605, 607, 608, 609, 610, -1050,
1913     -1050, 700, 714, 431, 611, 731, 734, 431, 735, 738,
1914     431, 715, 742, 745, 431, 748, 748, 632, -1050, -1050,
1915     737, -71, 740, 652, 747, 749, 639, 750, 752, 763,
1916     753, 754, 758, 759, 657, -1050, 761, 762, 660, -1050,
1917     670, -1050, 764, 766, 673, -1050, 677, 678, 680, 681,
1918     689, 690, 692, 693, 694, 698, 708, 712, 713, 716,
1919     720, 724, 725, 727, 729, 733, 736, 739, 741, 743,
1920     744, 746, 687, 751, 730, 755, 756, 757, 760, 767,
1921     768, 769, 770, 773, 774, 775, 776, 777, 781, 782,
1922     783, 784, 785, 786, 787, -1050, -1050, 778, 702, 684,
1923     791, 833, 837, 838, 840, 788, -1050, 841, 845, 789,
1924     -1050, -1050, 850, 851, 790, 867, 792, -1050, 794, 795,
1925     -1050, -1050, 853, 855, 796, -1050, -1050, 856, 771, 797,
1926     861, 862, 864, 865, 780, 798, 893, 799, -1050, -1050,
1927     894, 900, 901, 802, -1050, 803, 806, 807, 808, 809,
1928     810, 811, 812, -1050, 813, 814, 815, 816, 817, 818,
1929     819, 820, 821, 822, 823, 824, 825, -1050, -1050, -211,
1930     -1050, -1050, -1050, -182, -1050, 826, 827, -1050, -1050, 931,
1931     828, 829, -1050, 830, -1050, 170, 832, -1050, -1050, 936,
1932     831, 938, 836, -1050, -1050, -1050, -1050, -1050, -1050, -1050,
1933     -1050, 431, 431, 431, 431, 431, 431, 431, -1050, -1050,
1934     -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, 839, 842,
1935     843, -34, 844, 846, 847, 848, 849, 852, 854, 857,
1936     858, 859, 317, 860, 863, -1050, 866, 868, 869, 870,
1937     871, 872, 873, 17, 874, 875, 876, 877, 878, 879,
1938     880, -1050, 881, 882, -1050, -1050, 883, 884, -1050, -1050,
1939     -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050,
1940     -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050,
1941     -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050,
1942     -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050,
1943     -1050, -1050, -1050, -1050, -1050, -1050, -177, -1050, -1050, -1050,
1944     -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050,
1945     -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050,
1946     -171, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050,
1947     -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050,
1948     -1050, -1050, 885, 886, 534, 887, 888, 889, 890, 891,
1949     -1050, 892, 895, -1050, 896, 897, -21, 903, 834, -1050,
1950     -1050, -1050, -1050, 898, 899, -1050, 902, 904, 465, 905,
1951     906, 907, 908, 909, 765, 910, -1050, 911, 912, 913,
1952     -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050,
1953     -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050,
1954     -1050, -1050, -1050, -123, -1050, -105, -1050, -1050, 914, 558,
1955     -1050, -1050, 915, 916, 917, -1050, 67, -1050, -1050, -1050,
1956     -1050, -1050, 918, 619, 921, -1050, -1050, -1050, -1050, -1050,
1957     -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -131, -1050,
1958     -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050,
1959     748, 748, 748, -1050, -1050, -1050, -1050, -1050, -1050, -1050,
1960     -1050, -1050, -1050, -1050, -1050, -1050, -125, -1050, -1050, -1050,
1961     -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050,
1962     687, -1050, 730, -1050, -1050, -1050, -1050, -1050, -1050, -1050,
1963     -1050, -1050, -1050, -1050, -1050, -50, -1050, -1050, -1050, -1050,
1964     -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -49,
1965     -1050, 955, 867, 922, -1050, -1050, -1050, -1050, -1050, 835,
1966     -1050, -1050, 919, -1050, -1050, -1050, -1050, 920, -1050, -1050,
1967     -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -20, -1050,
1968     -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050,
1969     -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050,
1970     -1050, -1050, -1050, -1050, -1050, -1050, -14, -1050, -1050, -1050,
1971     -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050,
1972     -1050, -1050, -1050, -1050, -1050, -9, -1050, -1050, 944, -70,
1973     923, 927, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050,
1974     -1050, -1050, -1050, -1050, 61, -1050, -1050, -1050, -34, -1050,
1975     -1050, -1050, -1050, 17, -1050, -1050, -1050, 534, -1050, -21,
1976     -1050, -1050, -1050, 942, 947, 948, -1050, 465, -1050, 765,
1977     -1050, 558, 928, 929, 930, 329, -1050, -1050, 619, -1050,
1978     -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050,
1979     -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, 77,
1980     -1050, -1050, -1050, 329, -1050
1981 michael 913 };
1982    
1983     /* YYPGOTO[NTERM-NUM]. */
1984     static const yytype_int16 yypgoto[] =
1985     {
1986 michael 2248 -1050, -1050, -1050, -283, -303, -1049, -615, -1050, -1050, 924,
1987     -1050, -1050, -1050, -1050, 925, -1050, -1050, -1050, -24, -1050,
1988     63, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050,
1989     -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, 1006, -1050,
1990     -1050, -1050, -1050, -1050, -1050, 595, -1050, -1050, -1050, -1050,
1991     805, -1050, -1050, -1050, -1050, 55, -1050, -1050, -1050, -1050,
1992     -1050, -187, -1050, -1050, -1050, 612, -1050, -1050, -1050, -1050,
1993     -1050, -1050, -1050, -1050, -1050, -1050, -1050, -149, -1050, -1050,
1994     -1050, -145, -1050, -1050, -1050, 793, -1050, -1050, -1050, -1050,
1995     -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050,
1996     -1050, -1050, -1050, -1050, -92, -1050, -1050, -1050, -1050, -1050,
1997     -101, -1050, 662, -1050, -1050, -1050, 26, -1050, -1050, -1050,
1998     -1050, -1050, 701, -1050, -1050, -1050, -1050, -1050, -1050, -1050,
1999     -68, -1050, -1050, -1050, -1050, -1050, -1050, 633, -1050, -1050,
2000     -1050, -1050, -1050, 932, -1050, -1050, -1050, -1050, 588, -1050,
2001     -1050, -1050, -1050, -1050, -90, -1050, -1050, -1050, 600, -1050,
2002     -1050, -1050, -1050, -81, -1050, -1050, -1050, 801, -1050, -1050,
2003     -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -61,
2004     -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, 695, -1050,
2005     -1050, -1050, -1050, -1050, 779, -1050, -1050, -1050, -1050, 1056,
2006     -1050, -1050, -1050, -1050, 800, -1050, -1050, -1050, -1050, 1005,
2007     -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050,
2008     -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050,
2009     -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050,
2010     -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050,
2011     -1050, -1050, -1050, -1050, -1050, 78, -1050, -1050, -1050, 84,
2012     -1050, -1050, -1050, -1050, -1050, 1077, -1050, -1050, -1050, -1050,
2013     -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050,
2014     937, -1050, -1050, -1050, -1050, -1050, -1050, -1050, -1050
2015 michael 913 };
2016    
2017     /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
2018     positive, shift that token. If negative, reduce the rule which
2019 michael 1133 number is the opposite. If YYTABLE_NINF, syntax error. */
2020 michael 2150 #define YYTABLE_NINF -124
2021 michael 1247 static const yytype_int16 yytable[] =
2022 michael 913 {
2023 michael 2248 833, 834, 591, 592, 593, 519, 215, 519, 79, 70,
2024     282, 1219, 1220, 1221, 1012, 225, 1046, 489, 1013, 681,
2025     466, 70, 682, 381, 109, 1074, 558, 1116, 80, 81,
2026     683, 109, 71, 684, 82, 558, 381, 832, 520, 72,
2027     520, 282, 226, 1014, 71, 289, 49, 1015, 1089, 295,
2028     227, 72, 1090, 573, 1091, 47, 48, 496, 1092, 391,
2029     573, 289, 228, 229, 50, 230, 231, 232, 1022, 54,
2030     489, 83, 84, 497, 767, 768, 56, 85, 86, 521,
2031     466, 521, 382, 110, 87, 88, 89, 233, 498, 1047,
2032     110, 490, 771, 772, 1217, 382, 647, 648, 1218, 216,
2033     1222, 837, 838, 654, 1223, 73, 315, 658, 115, 473,
2034     90, 91, 663, 116, 117, 666, 60, 73, 499, 118,
2035     316, 317, 559, 217, 318, 676, 677, 119, 522, 447,
2036     522, 559, 1243, 120, 64, 688, 121, 122, 691, 692,
2037     65, 290, 123, 467, 490, 448, 383, 124, 125, 574,
2038     126, 127, 128, 500, 129, 392, 574, 290, 67, 383,
2039     449, 130, 1117, 474, 1023, 131, 132, 319, 475, 68,
2040     476, 1022, 1118, 501, 133, 1226, 1228, -123, 484, 1227,
2041     1229, 244, 393, 134, 491, 320, 321, 322, 323, 502,
2042     450, 135, 324, 136, 106, 137, 325, 138, 215, 139,
2043     140, 391, 326, 467, 245, 1236, 503, 504, -123, 1237,
2044     1075, 1238, 141, 327, 328, 1239, 1240, 142, 143, 144,
2045     1241, 145, 146, 147, 107, 329, 148, 108, 283, 477,
2046     743, 487, 752, 313, 299, 567, 246, 491, 114, 468,
2047     536, 560, 350, 247, 351, 451, 352, 330, 638, 389,
2048     560, 781, 149, 452, 453, 505, 1024, 296, 353, 283,
2049     150, 151, 152, 153, 154, 248, 212, 1023, 575, 249,
2050     571, 297, 576, 354, 454, 575, 506, 250, 792, 576,
2051     251, 252, 737, 1025, 644, 331, 1247, 569, 473, 213,
2052     1248, 216, 155, 1201, 298, 724, 355, 392, 356, 468,
2053     820, 214, 1272, 357, 824, 709, 1273, 827, 222, 223,
2054     224, 831, 253, 358, 281, 217, 156, 157, 294, 158,
2055     159, 160, 301, 302, 393, 161, 1060, 1061, 1062, 254,
2056     162, 617, 255, 445, 716, 538, 582, 303, 359, 304,
2057     305, 306, 474, 307, 308, 309, 310, 475, 455, 476,
2058     311, 312, 388, 398, 705, 399, 256, 400, 401, 1024,
2059     402, 403, 360, 404, 405, 350, 406, 351, 1262, 352,
2060     407, 408, 409, 410, 257, 258, 259, 411, 412, 413,
2061     414, 353, 361, 415, 416, 417, 1025, 418, 115, 419,
2062     420, 362, 421, 116, 117, 1263, 354, 1264, 565, 118,
2063     422, 260, 261, 423, 425, 427, 556, 119, 477, 428,
2064     429, 430, 431, 120, 432, 433, 121, 122, 434, 355,
2065     435, 356, 123, 436, 832, 583, 357, 124, 125, 244,
2066     126, 127, 128, 437, 129, 363, 358, 438, 439, 496,
2067     440, 130, 1265, 441, 442, 131, 132, 443, 444, 485,
2068     447, 486, 245, 528, 133, 497, 529, 530, 531, 532,
2069     533, 359, 364, 134, 534, 535, 448, 634, 539, 1128,
2070     498, 135, 540, 136, 541, 137, 542, 138, 543, 139,
2071     140, 449, 544, 1129, 246, 360, 545, 546, 547, 548,
2072     1130, 247, 141, 1266, 1267, 549, 550, 142, 143, 144,
2073     499, 145, 146, 147, 1131, 361, 148, 551, 552, 553,
2074     554, 450, 555, 248, 362, 584, 566, 249, 1036, 1037,
2075     1038, 1039, 1040, 1041, 1042, 250, 570, 585, 251, 252,
2076     586, 1132, 149, 1133, 587, 500, 588, 589, 590, 594,
2077     150, 151, 152, 153, 154, 597, 595, 1095, 596, 1268,
2078     598, 599, 600, 601, 646, 501, 619, 640, 363, 1134,
2079     253, 602, 603, 605, 606, 649, 451, 1096, 607, 608,
2080     651, 502, 155, 609, 452, 453, 1097, 254, 610, 611,
2081     255, 612, 613, 614, 1244, 364, 615, 590, 503, 504,
2082     616, 620, 1135, 621, 1136, 454, 156, 157, 622, 158,
2083     159, 160, 623, 1098, 256, 161, 624, 625, 627, 628,
2084     162, 629, 630, 1137, 801, 802, 803, 804, 805, 806,
2085     807, 641, 257, 258, 259, 631, 1185, 632, 633, 636,
2086     1138, 637, 1099, 1100, 642, 1139, 643, 505, 652, 1140,
2087     1101, 650, 653, 656, 1141, 655, 657, 1142, 659, 260,
2088     261, 660, 1143, 661, 662, 664, 2, 3, 506, 665,
2089     4, 667, 668, 669, 670, 1102, 1144, 671, 672, 455,
2090     5, 1145, 673, 6, 7, 674, 675, 678, 679, 8,
2091     680, 1103, 1146, 685, 315, 686, 225, 1204, 1186, 1147,
2092     9, 687, 689, 10, 11, 690, 693, 694, 316, 317,
2093     718, 695, 318, 696, 719, 745, 748, 697, 754, 698,
2094     700, 701, 746, 226, 702, 747, 1187, 12, 703, 704,
2095     707, 227, 13, 1188, 708, 711, 712, 713, 720, 715,
2096     14, 721, 1189, 228, 229, 885, 230, 231, 232, 722,
2097     723, 1104, 726, 727, 756, 319, 728, 730, 731, 1205,
2098     732, 15, 16, 733, 734, 736, 739, 740, 233, 1190,
2099     741, 1191, 1192, 320, 321, 322, 323, 749, 742, 17,
2100     324, 750, 751, 755, 325, 1193, 753, 1206, 909, 757,
2101     326, 758, 1194, 759, 1207, 760, 18, 761, 762, 763,
2102     764, 327, 328, 1208, 779, 765, 777, 766, 775, 19,
2103     20, 776, 778, 329, 783, 784, 785, 818, 786, 789,
2104     787, 791, 788, 1155, 794, 795, 796, 797, 21, 798,
2105     1209, 819, 1210, 1211, 799, 330, 800, 810, 811, 812,
2106     813, 22, 814, 815, 816, 817, 1212, 828, 822, 821,
2107     23, 823, 825, 1213, 24, 826, 886, 887, 888, 829,
2108     889, 890, 830, 891, 892, 832, 893, 835, 894, 836,
2109     840, 895, 839, 331, 896, 897, 898, 843, 899, 841,
2110     846, 842, 844, 900, 845, 847, 848, 901, 902, 903,
2111     849, 850, 851, 852, 853, 854, 856, 904, 857, 910,
2112     911, 912, 905, 913, 914, 855, 915, 916, 858, 917,
2113     952, 918, 859, 860, 919, 861, 862, 920, 921, 922,
2114     953, 923, 954, 955, 863, 864, 924, 865, 866, 867,
2115     925, 926, 927, 868, 1156, 1157, 1158, 79, 1159, 1160,
2116     928, 1161, 1162, 869, 1163, 929, 1164, 870, 871, 1165,
2117     956, 872, 1166, 1167, 1168, 873, 1169, 80, 81, 874,
2118     875, 1170, 876, 82, 877, 1171, 1172, 1173, 878, 957,
2119     958, 879, 959, 961, 880, 1174, 881, 962, 882, 883,
2120     1175, 884, 964, 965, 967, 973, 908, 974, 976, 977,
2121     932, 933, 934, 979, 980, 935, 981, 982, 983, 1182,
2122     83, 84, 936, 937, 938, 939, 85, 86, 940, 941,
2123     942, 943, 944, 87, 88, 89, 945, 946, 947, 948,
2124     949, 950, 951, 960, 963, 985, 987, 970, 966, 971,
2125     972, 975, 988, 989, 986, 978, 984, 990, 991, 90,
2126     91, 992, 993, 994, 995, 996, 997, 998, 999, 1000,
2127     1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010,
2128     1011, 1016, 1017, 1018, 1020, 1021, 1019, 1031, 1032, 1033,
2129     1034, 1035, 1230, 1122, 1043, 1233, 1242, 1044, 1045, 1050,
2130     1253, 1051, 1052, 1053, 1054, 1254, 1255, 1055, 1183, 1056,
2131     300, 1202, 1057, 1058, 1059, 1065, 1274, 725, 1066, 568,
2132     1257, 1067, 1256, 1068, 1069, 1070, 1071, 1072, 1073, 1078,
2133     1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088,
2134     1093, 1094, 1107, 1108, 1109, 1110, 1111, 1112, 1121, 738,
2135     1113, 1114, 1115, 1124, 1125, 618, 1249, 1126, 1252, 1127,
2136     1150, 1151, 1152, 1153, 1154, 1178, 1179, 1180, 1181, 1184,
2137     1197, 717, 488, 1203, 1198, 1199, 1216, 1232, 1231, 1234,
2138     1235, 1245, 1246, 1259, 1260, 1261, 744, 706, 1271, 1251,
2139     1258, 782, 1250, 639, 710, 793, 635, 390, 446, 314,
2140     1225, 537, 0, 0, 1224, 0, 0, 0, 0, 0,
2141     0, 0, 0, 0, 0, 0, 0, 557, 0, 0,
2142     0, 0, 0, 0, 645, 0, 0, 0, 0, 0,
2143 michael 1855 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2144 michael 2248 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2145     0, 0, 0, 572
2146 michael 913 };
2147    
2148 michael 1619 #define yypact_value_is_default(Yystate) \
2149 michael 2248 (!!((Yystate) == (-1050)))
2150 michael 1133
2151 michael 1619 #define yytable_value_is_error(Yytable_value) \
2152 michael 1133 YYID (0)
2153    
2154 michael 913 static const yytype_int16 yycheck[] =
2155     {
2156 michael 2248 615, 616, 305, 306, 307, 1, 1, 1, 1, 1,
2157     1, 1060, 1061, 1062, 225, 1, 50, 1, 229, 208,
2158     1, 1, 211, 1, 1, 8, 1, 48, 21, 22,
2159     208, 1, 24, 211, 27, 1, 1, 107, 34, 31,
2160     34, 1, 28, 225, 24, 1, 227, 229, 225, 225,
2161     36, 31, 229, 1, 225, 225, 226, 1, 229, 1,
2162     1, 1, 48, 49, 227, 51, 52, 53, 1, 227,
2163     1, 64, 65, 17, 197, 198, 227, 70, 71, 75,
2164     1, 75, 60, 60, 77, 78, 79, 73, 32, 123,
2165     60, 75, 197, 198, 225, 60, 399, 400, 229, 94,
2166     225, 172, 173, 406, 229, 97, 1, 410, 1, 1,
2167     103, 104, 415, 6, 7, 418, 227, 97, 62, 12,
2168     15, 16, 97, 118, 19, 428, 429, 20, 124, 1,
2169     124, 97, 202, 26, 227, 438, 29, 30, 441, 442,
2170     227, 97, 35, 124, 75, 17, 124, 40, 41, 97,
2171     43, 44, 45, 97, 47, 97, 97, 97, 227, 124,
2172     32, 54, 183, 55, 97, 58, 59, 62, 60, 227,
2173     62, 1, 193, 117, 67, 225, 225, 168, 225, 229,
2174     229, 1, 124, 76, 168, 80, 81, 82, 83, 133,
2175     62, 84, 87, 86, 227, 88, 91, 90, 1, 92,
2176     93, 1, 97, 124, 24, 225, 150, 151, 168, 229,
2177     193, 225, 105, 108, 109, 229, 225, 110, 111, 112,
2178     229, 114, 115, 116, 227, 120, 119, 227, 219, 121,
2179     226, 226, 535, 226, 226, 226, 56, 168, 227, 220,
2180     226, 216, 1, 63, 3, 117, 5, 142, 226, 226,
2181     216, 226, 145, 125, 126, 199, 189, 228, 17, 219,
2182     153, 154, 155, 156, 157, 85, 227, 97, 216, 89,
2183     226, 228, 220, 32, 146, 216, 220, 97, 226, 220,
2184     100, 101, 226, 216, 226, 180, 225, 168, 1, 227,
2185     229, 94, 185, 226, 228, 226, 55, 97, 57, 220,
2186     603, 227, 225, 62, 607, 226, 229, 610, 227, 227,
2187     227, 614, 132, 72, 227, 118, 209, 210, 227, 212,
2188     213, 214, 228, 228, 124, 218, 9, 10, 11, 149,
2189     223, 226, 152, 226, 226, 225, 122, 228, 97, 228,
2190     228, 228, 55, 228, 228, 228, 228, 60, 220, 62,
2191     228, 228, 228, 228, 226, 228, 176, 228, 228, 189,
2192     228, 228, 121, 228, 228, 1, 228, 3, 39, 5,
2193     228, 228, 228, 228, 194, 195, 196, 228, 228, 228,
2194     228, 17, 141, 228, 228, 228, 216, 228, 1, 228,
2195     228, 150, 228, 6, 7, 66, 32, 68, 225, 12,
2196     228, 221, 222, 228, 228, 228, 226, 20, 121, 228,
2197     228, 228, 228, 26, 228, 228, 29, 30, 228, 55,
2198     228, 57, 35, 228, 107, 122, 62, 40, 41, 1,
2199     43, 44, 45, 228, 47, 194, 72, 228, 228, 1,
2200     228, 54, 113, 228, 228, 58, 59, 228, 228, 228,
2201     1, 228, 24, 228, 67, 17, 228, 228, 228, 228,
2202     228, 97, 221, 76, 228, 228, 17, 226, 228, 4,
2203     32, 84, 228, 86, 228, 88, 228, 90, 228, 92,
2204     93, 32, 228, 18, 56, 121, 228, 228, 228, 228,
2205     25, 63, 105, 164, 165, 228, 228, 110, 111, 112,
2206     62, 114, 115, 116, 39, 141, 119, 228, 228, 228,
2207     228, 62, 228, 85, 150, 122, 228, 89, 801, 802,
2208     803, 804, 805, 806, 807, 97, 228, 225, 100, 101,
2209     107, 66, 145, 68, 107, 97, 208, 107, 107, 107,
2210     153, 154, 155, 156, 157, 208, 107, 13, 107, 220,
2211     208, 225, 225, 228, 208, 117, 225, 122, 194, 94,
2212     132, 228, 228, 228, 228, 107, 117, 33, 228, 228,
2213     107, 133, 185, 228, 125, 126, 42, 149, 228, 228,
2214     152, 228, 228, 228, 1199, 221, 228, 107, 150, 151,
2215     228, 228, 127, 228, 129, 146, 209, 210, 228, 212,
2216     213, 214, 228, 69, 176, 218, 228, 228, 228, 228,
2217     223, 228, 228, 148, 134, 135, 136, 137, 138, 139,
2218     140, 225, 194, 195, 196, 228, 68, 228, 228, 228,
2219     165, 228, 98, 99, 228, 170, 228, 199, 122, 174,
2220     106, 208, 208, 107, 179, 208, 107, 182, 107, 221,
2221     222, 208, 187, 208, 208, 107, 0, 1, 220, 107,
2222     4, 107, 107, 107, 107, 131, 201, 208, 228, 220,
2223     14, 206, 208, 17, 18, 228, 208, 208, 208, 23,
2224     208, 147, 217, 208, 1, 208, 1, 68, 130, 224,
2225     34, 122, 208, 37, 38, 208, 208, 208, 15, 16,
2226     122, 225, 19, 225, 122, 208, 122, 228, 122, 228,
2227     228, 228, 208, 28, 228, 208, 158, 61, 228, 228,
2228     228, 36, 66, 165, 228, 225, 228, 228, 225, 228,
2229     74, 225, 174, 48, 49, 48, 51, 52, 53, 228,
2230     228, 207, 225, 228, 122, 62, 228, 228, 228, 130,
2231     228, 95, 96, 228, 228, 228, 225, 228, 73, 201,
2232     228, 203, 204, 80, 81, 82, 83, 208, 228, 113,
2233     87, 208, 208, 208, 91, 217, 225, 158, 48, 107,
2234     97, 107, 224, 122, 165, 122, 130, 122, 122, 122,
2235     122, 108, 109, 174, 228, 107, 225, 122, 122, 143,
2236     144, 122, 225, 120, 208, 225, 227, 107, 122, 228,
2237     225, 228, 225, 48, 225, 225, 225, 225, 162, 225,
2238     201, 107, 203, 204, 225, 142, 225, 225, 225, 225,
2239     225, 175, 225, 225, 225, 225, 217, 122, 107, 228,
2240     184, 107, 107, 224, 188, 107, 159, 160, 161, 107,
2241     163, 164, 107, 166, 167, 107, 169, 225, 171, 122,
2242     208, 174, 122, 180, 177, 178, 179, 228, 181, 122,
2243     107, 122, 122, 186, 122, 122, 122, 190, 191, 192,
2244     122, 122, 225, 122, 122, 225, 122, 200, 122, 159,
2245     160, 161, 205, 163, 164, 225, 166, 167, 225, 169,
2246     122, 171, 225, 225, 174, 225, 225, 177, 178, 179,
2247     208, 181, 228, 122, 225, 225, 186, 225, 225, 225,
2248     190, 191, 192, 225, 159, 160, 161, 1, 163, 164,
2249     200, 166, 167, 225, 169, 205, 171, 225, 225, 174,
2250     107, 225, 177, 178, 179, 225, 181, 21, 22, 225,
2251     225, 186, 225, 27, 225, 190, 191, 192, 225, 122,
2252     122, 225, 122, 122, 225, 200, 225, 122, 225, 225,
2253     205, 225, 122, 122, 107, 122, 225, 122, 122, 208,
2254     225, 225, 225, 122, 122, 225, 122, 122, 208, 1013,
2255     64, 65, 225, 225, 225, 225, 70, 71, 225, 225,
2256     225, 225, 225, 77, 78, 79, 225, 225, 225, 225,
2257     225, 225, 225, 225, 225, 122, 122, 225, 228, 225,
2258     225, 225, 122, 122, 225, 228, 228, 225, 225, 103,
2259     104, 225, 225, 225, 225, 225, 225, 225, 225, 225,
2260     225, 225, 225, 225, 225, 225, 225, 225, 225, 225,
2261     225, 225, 225, 122, 225, 225, 228, 225, 122, 228,
2262     122, 225, 107, 229, 225, 230, 122, 225, 225, 225,
2263     128, 225, 225, 225, 225, 128, 128, 225, 1015, 225,
2264     74, 1026, 225, 225, 225, 225, 1273, 492, 225, 284,
2265     1239, 225, 1237, 225, 225, 225, 225, 225, 225, 225,
2266     225, 225, 225, 225, 225, 225, 225, 225, 225, 225,
2267     225, 225, 225, 225, 225, 225, 225, 225, 215, 507,
2268     225, 225, 225, 225, 225, 332, 1218, 225, 1229, 225,
2269     225, 225, 225, 225, 225, 225, 225, 225, 225, 225,
2270     225, 479, 218, 225, 228, 228, 225, 225, 1122, 230,
2271     230, 228, 225, 225, 225, 225, 523, 456, 1248, 1227,
2272     1241, 561, 1223, 384, 469, 577, 365, 111, 163, 92,
2273     1092, 234, -1, -1, 1090, -1, -1, -1, -1, -1,
2274     -1, -1, -1, -1, -1, -1, -1, 262, -1, -1,
2275     -1, -1, -1, -1, 394, -1, -1, -1, -1, -1,
2276 michael 1855 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2277 michael 2248 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2278     -1, -1, -1, 291
2279 michael 913 };
2280    
2281     /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
2282     symbol of state STATE-NUM. */
2283     static const yytype_uint16 yystos[] =
2284     {
2285 michael 2248 0, 232, 0, 1, 4, 14, 17, 18, 23, 34,
2286 michael 2150 37, 38, 61, 66, 74, 95, 96, 113, 130, 143,
2287 michael 2248 144, 162, 175, 184, 188, 233, 238, 243, 267, 273,
2288     279, 293, 313, 336, 350, 365, 372, 376, 386, 395,
2289     416, 422, 428, 432, 438, 494, 509, 225, 226, 227,
2290     227, 314, 396, 423, 227, 433, 227, 351, 417, 337,
2291     227, 274, 294, 366, 227, 227, 387, 227, 227, 377,
2292     1, 24, 31, 97, 268, 269, 270, 271, 272, 1,
2293 michael 2150 21, 22, 27, 64, 65, 70, 71, 77, 78, 79,
2294 michael 2248 103, 104, 495, 496, 497, 498, 499, 500, 501, 502,
2295     503, 504, 505, 506, 507, 508, 227, 227, 227, 1,
2296     60, 429, 430, 431, 227, 1, 6, 7, 12, 20,
2297 michael 2196 26, 29, 30, 35, 40, 41, 43, 44, 45, 47,
2298     54, 58, 59, 67, 76, 84, 86, 88, 90, 92,
2299     93, 105, 110, 111, 112, 114, 115, 116, 119, 145,
2300 michael 2248 153, 154, 155, 156, 157, 185, 209, 210, 212, 213,
2301     214, 218, 223, 439, 440, 441, 442, 443, 444, 445,
2302     446, 447, 448, 449, 450, 451, 452, 453, 454, 455,
2303     456, 457, 458, 459, 460, 461, 462, 463, 464, 465,
2304     466, 467, 468, 469, 470, 471, 472, 473, 474, 475,
2305     476, 477, 478, 479, 480, 481, 482, 483, 487, 491,
2306     492, 493, 227, 227, 227, 1, 94, 118, 239, 240,
2307     241, 242, 227, 227, 227, 1, 28, 36, 48, 49,
2308     51, 52, 53, 73, 510, 511, 512, 513, 514, 515,
2309     516, 517, 518, 519, 1, 24, 56, 63, 85, 89,
2310     97, 100, 101, 132, 149, 152, 176, 194, 195, 196,
2311     221, 222, 244, 245, 246, 247, 252, 253, 254, 255,
2312     256, 257, 258, 259, 260, 261, 262, 263, 264, 265,
2313     266, 227, 1, 219, 280, 281, 282, 283, 284, 1,
2314     97, 373, 374, 375, 227, 225, 228, 228, 228, 226,
2315     269, 228, 228, 228, 228, 228, 228, 228, 228, 228,
2316     228, 228, 228, 226, 496, 1, 15, 16, 19, 62,
2317 michael 2150 80, 81, 82, 83, 87, 91, 97, 108, 109, 120,
2318 michael 2248 142, 180, 315, 316, 317, 318, 319, 320, 321, 322,
2319     323, 324, 325, 326, 327, 328, 329, 330, 331, 332,
2320 michael 2150 1, 3, 5, 17, 32, 55, 57, 62, 72, 97,
2321 michael 2248 121, 141, 150, 194, 221, 397, 398, 399, 400, 401,
2322     402, 403, 404, 405, 406, 407, 411, 412, 413, 414,
2323     415, 1, 60, 124, 424, 425, 426, 427, 228, 226,
2324     430, 1, 97, 124, 434, 435, 436, 437, 228, 228,
2325     228, 228, 228, 228, 228, 228, 228, 228, 228, 228,
2326     228, 228, 228, 228, 228, 228, 228, 228, 228, 228,
2327     228, 228, 228, 228, 488, 228, 484, 228, 228, 228,
2328     228, 228, 228, 228, 228, 228, 228, 228, 228, 228,
2329     228, 228, 228, 228, 228, 226, 440, 1, 17, 32,
2330     62, 117, 125, 126, 146, 220, 352, 353, 354, 355,
2331     356, 357, 358, 362, 363, 364, 1, 124, 220, 418,
2332     419, 420, 421, 1, 55, 60, 62, 121, 338, 342,
2333     343, 344, 348, 349, 225, 228, 228, 226, 240, 1,
2334     75, 168, 275, 276, 277, 278, 1, 17, 32, 62,
2335     97, 117, 133, 150, 151, 199, 220, 295, 296, 297,
2336     298, 299, 300, 301, 302, 303, 304, 305, 309, 1,
2337     34, 75, 124, 367, 368, 369, 370, 371, 228, 228,
2338     228, 228, 228, 228, 228, 228, 226, 511, 225, 228,
2339     228, 228, 228, 228, 228, 228, 228, 228, 228, 228,
2340     228, 228, 228, 228, 228, 228, 226, 245, 1, 97,
2341     216, 388, 389, 390, 391, 225, 228, 226, 281, 168,
2342     228, 226, 374, 1, 97, 216, 220, 378, 379, 380,
2343     381, 382, 122, 122, 122, 225, 107, 107, 208, 107,
2344     107, 235, 235, 235, 107, 107, 107, 208, 208, 225,
2345     225, 228, 228, 228, 333, 228, 228, 228, 228, 228,
2346     228, 228, 228, 228, 228, 228, 228, 226, 316, 225,
2347     228, 228, 228, 228, 228, 228, 408, 228, 228, 228,
2348     228, 228, 228, 228, 226, 398, 228, 228, 226, 425,
2349     122, 225, 228, 228, 226, 435, 208, 235, 235, 107,
2350     208, 107, 122, 208, 235, 208, 107, 107, 235, 107,
2351     208, 208, 208, 235, 107, 107, 235, 107, 107, 107,
2352     107, 208, 228, 208, 228, 208, 235, 235, 208, 208,
2353     208, 208, 211, 208, 211, 208, 208, 122, 235, 208,
2354     208, 235, 235, 208, 208, 225, 225, 228, 228, 359,
2355     228, 228, 228, 228, 228, 226, 353, 228, 228, 226,
2356     419, 225, 228, 228, 339, 228, 226, 343, 122, 122,
2357     225, 225, 228, 228, 226, 276, 225, 228, 228, 310,
2358     228, 228, 228, 228, 228, 306, 228, 226, 296, 225,
2359     228, 228, 228, 226, 368, 208, 208, 208, 122, 208,
2360     208, 208, 235, 225, 122, 208, 122, 107, 107, 122,
2361     122, 122, 122, 122, 122, 107, 122, 197, 198, 248,
2362     249, 197, 198, 250, 251, 122, 122, 225, 225, 228,
2363     392, 226, 389, 208, 225, 227, 122, 225, 225, 228,
2364     383, 228, 226, 379, 225, 225, 225, 225, 225, 225,
2365     225, 134, 135, 136, 137, 138, 139, 140, 234, 235,
2366     225, 225, 225, 225, 225, 225, 225, 225, 107, 107,
2367     235, 228, 107, 107, 235, 107, 107, 235, 122, 107,
2368     107, 235, 107, 237, 237, 225, 122, 172, 173, 122,
2369     208, 122, 122, 228, 122, 122, 107, 122, 122, 122,
2370     122, 225, 122, 122, 225, 225, 122, 122, 225, 225,
2371     225, 225, 225, 225, 225, 225, 225, 225, 225, 225,
2372     225, 225, 225, 225, 225, 225, 225, 225, 225, 225,
2373     225, 225, 225, 225, 225, 48, 159, 160, 161, 163,
2374     164, 166, 167, 169, 171, 174, 177, 178, 179, 181,
2375     186, 190, 191, 192, 200, 205, 489, 490, 225, 48,
2376     159, 160, 161, 163, 164, 166, 167, 169, 171, 174,
2377     177, 178, 179, 181, 186, 190, 191, 192, 200, 205,
2378     485, 486, 225, 225, 225, 225, 225, 225, 225, 225,
2379     225, 225, 225, 225, 225, 225, 225, 225, 225, 225,
2380     225, 225, 122, 208, 228, 122, 107, 122, 122, 122,
2381     225, 122, 122, 225, 122, 122, 228, 107, 346, 347,
2382     225, 225, 225, 122, 122, 225, 122, 208, 228, 122,
2383     122, 122, 122, 208, 228, 122, 225, 122, 122, 122,
2384     225, 225, 225, 225, 225, 225, 225, 225, 225, 225,
2385     225, 225, 225, 225, 225, 225, 225, 225, 225, 225,
2386     225, 225, 225, 229, 225, 229, 225, 225, 122, 228,
2387     225, 225, 1, 97, 189, 216, 285, 286, 287, 288,
2388     289, 225, 122, 228, 122, 225, 234, 234, 234, 234,
2389     234, 234, 234, 225, 225, 225, 50, 123, 334, 335,
2390     225, 225, 225, 225, 225, 225, 225, 225, 225, 225,
2391     9, 10, 11, 236, 237, 225, 225, 225, 225, 225,
2392     225, 225, 225, 225, 8, 193, 409, 410, 225, 225,
2393     225, 225, 225, 225, 225, 225, 225, 225, 225, 225,
2394     229, 225, 229, 225, 225, 13, 33, 42, 69, 98,
2395     99, 106, 131, 147, 207, 360, 361, 225, 225, 225,
2396     225, 225, 225, 225, 225, 225, 48, 183, 193, 340,
2397     341, 215, 229, 345, 225, 225, 225, 225, 4, 18,
2398     25, 39, 66, 68, 94, 127, 129, 148, 165, 170,
2399     174, 179, 182, 187, 201, 206, 217, 224, 311, 312,
2400     225, 225, 225, 225, 225, 48, 159, 160, 161, 163,
2401     164, 166, 167, 169, 171, 174, 177, 178, 179, 181,
2402     186, 190, 191, 192, 200, 205, 307, 308, 225, 225,
2403     225, 225, 249, 251, 225, 68, 130, 158, 165, 174,
2404     201, 203, 204, 217, 224, 393, 394, 225, 228, 228,
2405     290, 226, 286, 225, 68, 130, 158, 165, 174, 201,
2406     203, 204, 217, 224, 384, 385, 225, 225, 229, 236,
2407     236, 236, 225, 229, 490, 486, 225, 229, 225, 229,
2408     107, 347, 225, 230, 230, 230, 225, 229, 225, 229,
2409     225, 229, 122, 202, 237, 228, 225, 225, 229, 335,
2410     410, 361, 341, 128, 128, 128, 312, 308, 394, 225,
2411     225, 225, 39, 66, 68, 113, 164, 165, 220, 291,
2412     292, 385, 225, 229, 292
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 2248 #line 398 "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 2248 #line 400 "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 2248 #line 404 "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 2248 #line 408 "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 2248 #line 412 "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 2248 #line 416 "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 2248 #line 420 "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 2248 #line 424 "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 2248 #line 428 "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 2248 #line 433 "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 2248 #line 434 "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 2248 #line 435 "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 2248 #line 436 "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 2248 #line 437 "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 2248 #line 451 "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 2248 #line 457 "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 2248 #line 483 "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 2248 #line 489 "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 2248 #line 498 "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 2248 #line 504 "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 2248 #line 512 "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 2248 #line 554 "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 2248 #line 613 "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 2248 #line 641 "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 2248 #line 649 "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 2248 #line 664 "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 2248 #line 679 "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 2248 #line 688 "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 2248 #line 702 "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 2248 #line 711 "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 2248 #line 739 "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 2248 #line 769 "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 2248 #line 794 "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 2248 #line 816 "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 2248 #line 838 "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 2248 #line 853 "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 2248 #line 862 "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 2248 #line 871 "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 2248 #line 883 "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 michael 2248 #line 887 "conf_parser.y"
3790 michael 2150 {
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 michael 2248 #line 904 "conf_parser.y"
3807 michael 2150 {
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 michael 2248 #line 910 "conf_parser.y"
3816 michael 2150 {
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 michael 2248 #line 925 "conf_parser.y"
3825 michael 2150 {
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 2248 #line 931 "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 2248 #line 935 "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 2248 #line 951 "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 2248 #line 959 "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 2248 #line 962 "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 2248 #line 967 "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 2248 #line 974 "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 2248 #line 978 "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 2248 #line 982 "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 2248 #line 986 "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 2248 #line 990 "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 2248 #line 994 "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 2248 #line 998 "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 2248 #line 1008 "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 2248 #line 1015 "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 2228 conf = conf_make(CONF_OPER);
3999     conf->name = xstrdup(block_state.name.buf);
4000     conf->user = xstrdup(block_state.user.buf);
4001     conf->host = xstrdup(block_state.host.buf);
4002 michael 1285
4003 michael 2228 if (block_state.cert.buf[0])
4004     conf->certfp = xstrdup(block_state.cert.buf);
4005    
4006 michael 1647 if (block_state.rpass.buf[0])
4007     conf->passwd = xstrdup(block_state.rpass.buf);
4008 michael 1285
4009 michael 1646 conf->flags = block_state.flags.value;
4010     conf->modes = block_state.modes.value;
4011     conf->port = block_state.port.value;
4012     conf->htype = parse_netmask(conf->host, &conf->addr, &conf->bits);
4013 michael 913
4014 michael 1646 conf_add_class_to_conf(conf, block_state.class.buf);
4015    
4016 michael 913 #ifdef HAVE_LIBCRYPTO
4017 michael 1646 if (block_state.file.buf[0])
4018     {
4019     BIO *file = NULL;
4020     RSA *pkey = NULL;
4021    
4022     if ((file = BIO_new_file(block_state.file.buf, "r")) == NULL)
4023 michael 913 {
4024 michael 1752 conf_error_report("Ignoring rsa_public_key_file -- file doesn't exist");
4025 michael 1646 break;
4026 michael 913 }
4027    
4028 michael 1646 if ((pkey = PEM_read_bio_RSA_PUBKEY(file, NULL, 0, NULL)) == NULL)
4029 michael 1752 conf_error_report("Ignoring rsa_public_key_file -- Key invalid; check key syntax.");
4030 michael 913
4031 michael 1646 conf->rsa_public_key = pkey;
4032     BIO_set_close(file, BIO_CLOSE);
4033     BIO_free(file);
4034 michael 913 }
4035 michael 1646 #endif /* HAVE_LIBCRYPTO */
4036 michael 913 }
4037     }
4038     break;
4039    
4040 michael 2248 case 160:
4041 michael 1835 /* Line 1787 of yacc.c */
4042 michael 2248 #line 1095 "conf_parser.y"
4043 michael 913 {
4044 michael 967 if (conf_parser_ctx.pass == 2)
4045 michael 1646 strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4046 michael 913 }
4047     break;
4048    
4049 michael 2248 case 161:
4050 michael 1835 /* Line 1787 of yacc.c */
4051 michael 2248 #line 1101 "conf_parser.y"
4052 michael 913 {
4053 michael 967 if (conf_parser_ctx.pass == 2)
4054 michael 1646 dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
4055 michael 913 }
4056     break;
4057    
4058 michael 2248 case 162:
4059 michael 1835 /* Line 1787 of yacc.c */
4060 michael 2248 #line 1107 "conf_parser.y"
4061 michael 913 {
4062 michael 967 if (conf_parser_ctx.pass == 2)
4063 michael 1647 strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4064 michael 913 }
4065     break;
4066    
4067 michael 2248 case 163:
4068 michael 1835 /* Line 1787 of yacc.c */
4069 michael 2248 #line 1113 "conf_parser.y"
4070 michael 913 {
4071 michael 2129 if (conf_parser_ctx.pass != 2)
4072     break;
4073    
4074     if (yylval.number)
4075     block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
4076     else
4077     block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
4078 michael 913 }
4079     break;
4080    
4081 michael 2248 case 164:
4082 michael 1835 /* Line 1787 of yacc.c */
4083 michael 2248 #line 1124 "conf_parser.y"
4084 michael 913 {
4085 michael 967 if (conf_parser_ctx.pass == 2)
4086 michael 1646 strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
4087 michael 913 }
4088     break;
4089    
4090 michael 2248 case 165:
4091 michael 1835 /* Line 1787 of yacc.c */
4092 michael 2248 #line 1130 "conf_parser.y"
4093 michael 913 {
4094 michael 967 if (conf_parser_ctx.pass == 2)
4095 michael 2229 strlcpy(block_state.cert.buf, yylval.string, sizeof(block_state.cert.buf));
4096 michael 2228 }
4097     break;
4098    
4099 michael 2248 case 166:
4100 michael 2228 /* Line 1787 of yacc.c */
4101 michael 2248 #line 1136 "conf_parser.y"
4102 michael 2228 {
4103 michael 2248 if (conf_parser_ctx.pass != 2)
4104     break;
4105    
4106     if (yylval.number)
4107     block_state.flags.value |= CONF_FLAGS_SSL;
4108     else
4109     block_state.flags.value &= ~CONF_FLAGS_SSL;
4110     }
4111     break;
4112    
4113     case 167:
4114     /* Line 1787 of yacc.c */
4115     #line 1147 "conf_parser.y"
4116     {
4117 michael 2228 if (conf_parser_ctx.pass == 2)
4118 michael 1646 strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4119 michael 913 }
4120     break;
4121    
4122 michael 2248 case 168:
4123 michael 1835 /* Line 1787 of yacc.c */
4124 michael 2248 #line 1153 "conf_parser.y"
4125 michael 913 {
4126 michael 967 if (conf_parser_ctx.pass == 2)
4127 michael 1646 block_state.modes.value = 0;
4128 michael 913 }
4129     break;
4130    
4131 michael 2248 case 172:
4132 michael 1835 /* Line 1787 of yacc.c */
4133 michael 2248 #line 1160 "conf_parser.y"
4134 michael 913 {
4135 michael 967 if (conf_parser_ctx.pass == 2)
4136 michael 1646 block_state.modes.value |= UMODE_BOTS;
4137 michael 913 }
4138     break;
4139    
4140 michael 2248 case 173:
4141 michael 1835 /* Line 1787 of yacc.c */
4142 michael 2248 #line 1164 "conf_parser.y"
4143 michael 913 {
4144 michael 967 if (conf_parser_ctx.pass == 2)
4145 michael 1646 block_state.modes.value |= UMODE_CCONN;
4146 michael 913 }
4147     break;
4148    
4149 michael 2248 case 174:
4150 michael 1835 /* Line 1787 of yacc.c */
4151 michael 2248 #line 1168 "conf_parser.y"
4152 michael 913 {
4153 michael 967 if (conf_parser_ctx.pass == 2)
4154 michael 2185 block_state.modes.value |= UMODE_DEAF;
4155 michael 913 }
4156     break;
4157    
4158 michael 2248 case 175:
4159 michael 1835 /* Line 1787 of yacc.c */
4160 michael 2248 #line 1172 "conf_parser.y"
4161 michael 913 {
4162 michael 967 if (conf_parser_ctx.pass == 2)
4163 michael 2185 block_state.modes.value |= UMODE_DEBUG;
4164 michael 913 }
4165     break;
4166    
4167 michael 2248 case 176:
4168 michael 1835 /* Line 1787 of yacc.c */
4169 michael 2248 #line 1176 "conf_parser.y"
4170 michael 913 {
4171 michael 967 if (conf_parser_ctx.pass == 2)
4172 michael 2185 block_state.modes.value |= UMODE_FULL;
4173 michael 913 }
4174     break;
4175    
4176 michael 2248 case 177:
4177 michael 1835 /* Line 1787 of yacc.c */
4178 michael 2248 #line 1180 "conf_parser.y"
4179 michael 913 {
4180 michael 967 if (conf_parser_ctx.pass == 2)
4181 michael 2185 block_state.modes.value |= UMODE_HIDDEN;
4182 michael 913 }
4183     break;
4184    
4185 michael 2248 case 178:
4186 michael 1835 /* Line 1787 of yacc.c */
4187 michael 2248 #line 1184 "conf_parser.y"
4188 michael 913 {
4189 michael 967 if (conf_parser_ctx.pass == 2)
4190 michael 2185 block_state.modes.value |= UMODE_SKILL;
4191 michael 913 }
4192     break;
4193    
4194 michael 2248 case 179:
4195 michael 1835 /* Line 1787 of yacc.c */
4196 michael 2248 #line 1188 "conf_parser.y"
4197 michael 913 {
4198 michael 967 if (conf_parser_ctx.pass == 2)
4199 michael 2185 block_state.modes.value |= UMODE_NCHANGE;
4200 michael 913 }
4201     break;
4202    
4203 michael 2248 case 180:
4204 michael 1835 /* Line 1787 of yacc.c */
4205 michael 2248 #line 1192 "conf_parser.y"
4206 michael 913 {
4207 michael 967 if (conf_parser_ctx.pass == 2)
4208 michael 2185 block_state.modes.value |= UMODE_REJ;
4209 michael 913 }
4210     break;
4211    
4212 michael 2248 case 181:
4213 michael 1835 /* Line 1787 of yacc.c */
4214 michael 2248 #line 1196 "conf_parser.y"
4215 michael 913 {
4216 michael 967 if (conf_parser_ctx.pass == 2)
4217 michael 2185 block_state.modes.value |= UMODE_UNAUTH;
4218 michael 913 }
4219     break;
4220    
4221 michael 2248 case 182:
4222 michael 1835 /* Line 1787 of yacc.c */
4223 michael 2248 #line 1200 "conf_parser.y"
4224 michael 913 {
4225 michael 967 if (conf_parser_ctx.pass == 2)
4226 michael 2185 block_state.modes.value |= UMODE_SPY;
4227 michael 913 }
4228     break;
4229    
4230 michael 2248 case 183:
4231 michael 1835 /* Line 1787 of yacc.c */
4232 michael 2248 #line 1204 "conf_parser.y"
4233 michael 913 {
4234 michael 967 if (conf_parser_ctx.pass == 2)
4235 michael 2185 block_state.modes.value |= UMODE_EXTERNAL;
4236 michael 913 }
4237     break;
4238    
4239 michael 2248 case 184:
4240 michael 1835 /* Line 1787 of yacc.c */
4241 michael 2248 #line 1208 "conf_parser.y"
4242 michael 913 {
4243 michael 967 if (conf_parser_ctx.pass == 2)
4244 michael 2185 block_state.modes.value |= UMODE_OPERWALL;
4245 michael 913 }
4246     break;
4247    
4248 michael 2248 case 185:
4249 michael 1835 /* Line 1787 of yacc.c */
4250 michael 2248 #line 1212 "conf_parser.y"
4251 michael 913 {
4252 michael 967 if (conf_parser_ctx.pass == 2)
4253 michael 2185 block_state.modes.value |= UMODE_SERVNOTICE;
4254 michael 913 }
4255     break;
4256    
4257 michael 2248 case 186:
4258 michael 1835 /* Line 1787 of yacc.c */
4259 michael 2248 #line 1216 "conf_parser.y"
4260 michael 913 {
4261 michael 967 if (conf_parser_ctx.pass == 2)
4262 michael 2185 block_state.modes.value |= UMODE_INVISIBLE;
4263 michael 913 }
4264     break;
4265    
4266 michael 2248 case 187:
4267 michael 1835 /* Line 1787 of yacc.c */
4268 michael 2248 #line 1220 "conf_parser.y"
4269 michael 913 {
4270 michael 967 if (conf_parser_ctx.pass == 2)
4271 michael 2185 block_state.modes.value |= UMODE_WALLOP;
4272 michael 913 }
4273     break;
4274    
4275 michael 2248 case 188:
4276 michael 1835 /* Line 1787 of yacc.c */
4277 michael 2248 #line 1224 "conf_parser.y"
4278 michael 913 {
4279 michael 967 if (conf_parser_ctx.pass == 2)
4280 michael 2185 block_state.modes.value |= UMODE_SOFTCALLERID;
4281 michael 913 }
4282     break;
4283    
4284 michael 2248 case 189:
4285 michael 1835 /* Line 1787 of yacc.c */
4286 michael 2248 #line 1228 "conf_parser.y"
4287 michael 913 {
4288 michael 967 if (conf_parser_ctx.pass == 2)
4289 michael 2185 block_state.modes.value |= UMODE_CALLERID;
4290 michael 913 }
4291     break;
4292    
4293 michael 2248 case 190:
4294 michael 1835 /* Line 1787 of yacc.c */
4295 michael 2248 #line 1232 "conf_parser.y"
4296 michael 913 {
4297 michael 1228 if (conf_parser_ctx.pass == 2)
4298 michael 2185 block_state.modes.value |= UMODE_LOCOPS;
4299 michael 913 }
4300     break;
4301    
4302 michael 2248 case 191:
4303 michael 1835 /* Line 1787 of yacc.c */
4304 michael 2248 #line 1236 "conf_parser.y"
4305 michael 1228 {
4306     if (conf_parser_ctx.pass == 2)
4307 michael 2185 block_state.modes.value |= UMODE_REGONLY;
4308 michael 1228 }
4309 michael 913 break;
4310    
4311 michael 2248 case 192:
4312 michael 1835 /* Line 1787 of yacc.c */
4313 michael 2248 #line 1240 "conf_parser.y"
4314 michael 913 {
4315 michael 967 if (conf_parser_ctx.pass == 2)
4316 michael 2185 block_state.modes.value |= UMODE_FARCONNECT;
4317 michael 1855 }
4318     break;
4319    
4320 michael 2248 case 193:
4321 michael 1855 /* Line 1787 of yacc.c */
4322 michael 2248 #line 1246 "conf_parser.y"
4323 michael 1855 {
4324     if (conf_parser_ctx.pass == 2)
4325 michael 1646 block_state.port.value = 0;
4326 michael 913 }
4327     break;
4328    
4329 michael 2248 case 197:
4330 michael 1835 /* Line 1787 of yacc.c */
4331 michael 2248 #line 1253 "conf_parser.y"
4332 michael 913 {
4333 michael 967 if (conf_parser_ctx.pass == 2)
4334 michael 2012 block_state.port.value |= OPER_FLAG_KILL_REMOTE;
4335 michael 913 }
4336     break;
4337    
4338 michael 2248 case 198:
4339 michael 1835 /* Line 1787 of yacc.c */
4340 michael 2248 #line 1257 "conf_parser.y"
4341 michael 913 {
4342 michael 967 if (conf_parser_ctx.pass == 2)
4343 michael 2012 block_state.port.value |= OPER_FLAG_KILL;
4344 michael 913 }
4345     break;
4346    
4347 michael 2248 case 199:
4348 michael 1835 /* Line 1787 of yacc.c */
4349 michael 2248 #line 1261 "conf_parser.y"
4350 michael 913 {
4351 michael 967 if (conf_parser_ctx.pass == 2)
4352 michael 2012 block_state.port.value |= OPER_FLAG_CONNECT_REMOTE;
4353 michael 913 }
4354     break;
4355    
4356 michael 2248 case 200:
4357 michael 1835 /* Line 1787 of yacc.c */
4358 michael 2248 #line 1265 "conf_parser.y"
4359 michael 913 {
4360 michael 967 if (conf_parser_ctx.pass == 2)
4361 michael 2012 block_state.port.value |= OPER_FLAG_CONNECT;
4362 michael 913 }
4363     break;
4364    
4365 michael 2248 case 201:
4366 michael 1835 /* Line 1787 of yacc.c */
4367 michael 2248 #line 1269 "conf_parser.y"
4368 michael 913 {
4369 michael 967 if (conf_parser_ctx.pass == 2)
4370 michael 2012 block_state.port.value |= OPER_FLAG_SQUIT_REMOTE;
4371 michael 913 }
4372     break;
4373    
4374 michael 2248 case 202:
4375 michael 1835 /* Line 1787 of yacc.c */
4376 michael 2248 #line 1273 "conf_parser.y"
4377 michael 913 {
4378 michael 967 if (conf_parser_ctx.pass == 2)
4379 michael 2012 block_state.port.value |= OPER_FLAG_SQUIT;
4380 michael 913 }
4381     break;
4382    
4383 michael 2248 case 203:
4384 michael 1835 /* Line 1787 of yacc.c */
4385 michael 2248 #line 1277 "conf_parser.y"
4386 michael 913 {
4387 michael 967 if (conf_parser_ctx.pass == 2)
4388 michael 2012 block_state.port.value |= OPER_FLAG_K;
4389 michael 913 }
4390     break;
4391    
4392 michael 2248 case 204:
4393 michael 1835 /* Line 1787 of yacc.c */
4394 michael 2248 #line 1281 "conf_parser.y"
4395 michael 913 {
4396 michael 967 if (conf_parser_ctx.pass == 2)
4397 michael 2012 block_state.port.value |= OPER_FLAG_UNKLINE;
4398 michael 913 }
4399     break;
4400    
4401 michael 2248 case 205:
4402 michael 1835 /* Line 1787 of yacc.c */
4403 michael 2248 #line 1285 "conf_parser.y"
4404 michael 913 {
4405 michael 967 if (conf_parser_ctx.pass == 2)
4406 michael 2012 block_state.port.value |= OPER_FLAG_DLINE;
4407 michael 913 }
4408     break;
4409    
4410 michael 2248 case 206:
4411 michael 1835 /* Line 1787 of yacc.c */
4412 michael 2248 #line 1289 "conf_parser.y"
4413 michael 913 {
4414 michael 967 if (conf_parser_ctx.pass == 2)
4415 michael 2012 block_state.port.value |= OPER_FLAG_UNDLINE;
4416 michael 913 }
4417     break;
4418    
4419 michael 2248 case 207:
4420 michael 1835 /* Line 1787 of yacc.c */
4421 michael 2248 #line 1293 "conf_parser.y"
4422 michael 913 {
4423 michael 967 if (conf_parser_ctx.pass == 2)
4424 michael 2012 block_state.port.value |= OPER_FLAG_X;
4425 michael 913 }
4426     break;
4427    
4428 michael 2248 case 208:
4429 michael 1835 /* Line 1787 of yacc.c */
4430 michael 2248 #line 1297 "conf_parser.y"
4431 michael 913 {
4432 michael 967 if (conf_parser_ctx.pass == 2)
4433 michael 2012 block_state.port.value |= OPER_FLAG_GLINE;
4434 michael 1216 }
4435     break;
4436    
4437 michael 2248 case 209:
4438 michael 1835 /* Line 1787 of yacc.c */
4439 michael 2248 #line 1301 "conf_parser.y"
4440 michael 1216 {
4441     if (conf_parser_ctx.pass == 2)
4442 michael 2012 block_state.port.value |= OPER_FLAG_DIE;
4443 michael 913 }
4444     break;
4445    
4446 michael 2248 case 210:
4447 michael 1835 /* Line 1787 of yacc.c */
4448 michael 2248 #line 1305 "conf_parser.y"
4449 michael 913 {
4450 michael 967 if (conf_parser_ctx.pass == 2)
4451 michael 2012 block_state.port.value |= OPER_FLAG_RESTART;
4452 michael 913 }
4453     break;
4454    
4455 michael 2248 case 211:
4456 michael 1835 /* Line 1787 of yacc.c */
4457 michael 2248 #line 1309 "conf_parser.y"
4458 michael 913 {
4459 michael 967 if (conf_parser_ctx.pass == 2)
4460 michael 2012 block_state.port.value |= OPER_FLAG_REHASH;
4461 michael 913 }
4462     break;
4463    
4464 michael 2248 case 212:
4465 michael 1835 /* Line 1787 of yacc.c */
4466 michael 2248 #line 1313 "conf_parser.y"
4467 michael 913 {
4468 michael 967 if (conf_parser_ctx.pass == 2)
4469 michael 2012 block_state.port.value |= OPER_FLAG_ADMIN;
4470 michael 913 }
4471     break;
4472    
4473 michael 2248 case 213:
4474 michael 1835 /* Line 1787 of yacc.c */
4475 michael 2248 #line 1317 "conf_parser.y"
4476 michael 913 {
4477 michael 1301 if (conf_parser_ctx.pass == 2)
4478 michael 2012 block_state.port.value |= OPER_FLAG_OPERWALL;
4479 michael 1301 }
4480     break;
4481    
4482 michael 2248 case 214:
4483 michael 1835 /* Line 1787 of yacc.c */
4484 michael 2248 #line 1321 "conf_parser.y"
4485 michael 1301 {
4486 michael 2012 if (conf_parser_ctx.pass == 2)
4487     block_state.port.value |= OPER_FLAG_GLOBOPS;
4488     }
4489     break;
4490    
4491 michael 2248 case 215:
4492 michael 2012 /* Line 1787 of yacc.c */
4493 michael 2248 #line 1325 "conf_parser.y"
4494 michael 2012 {
4495     if (conf_parser_ctx.pass == 2)
4496 michael 2038 block_state.port.value |= OPER_FLAG_WALLOPS;
4497 michael 2012 }
4498     break;
4499    
4500 michael 2248 case 216:
4501 michael 2012 /* Line 1787 of yacc.c */
4502 michael 2248 #line 1329 "conf_parser.y"
4503 michael 2012 {
4504     if (conf_parser_ctx.pass == 2)
4505 michael 2038 block_state.port.value |= OPER_FLAG_LOCOPS;
4506 michael 2012 }
4507     break;
4508    
4509 michael 2248 case 217:
4510 michael 2012 /* Line 1787 of yacc.c */
4511 michael 2248 #line 1333 "conf_parser.y"
4512 michael 2012 {
4513     if (conf_parser_ctx.pass == 2)
4514 michael 2038 block_state.port.value |= OPER_FLAG_REMOTEBAN;
4515 michael 2012 }
4516     break;
4517    
4518 michael 2248 case 218:
4519 michael 2012 /* Line 1787 of yacc.c */
4520 michael 2248 #line 1337 "conf_parser.y"
4521 michael 2012 {
4522 michael 2038 if (conf_parser_ctx.pass == 2)
4523     block_state.port.value |= OPER_FLAG_SET;
4524     }
4525     break;
4526    
4527 michael 2248 case 219:
4528 michael 2038 /* Line 1787 of yacc.c */
4529 michael 2248 #line 1341 "conf_parser.y"
4530 michael 2038 {
4531     if (conf_parser_ctx.pass == 2)
4532     block_state.port.value |= OPER_FLAG_MODULE;
4533     }
4534     break;
4535    
4536 michael 2248 case 220:
4537 michael 2038 /* Line 1787 of yacc.c */
4538 michael 2248 #line 1351 "conf_parser.y"
4539 michael 2038 {
4540 michael 1651 if (conf_parser_ctx.pass != 1)
4541     break;
4542    
4543     reset_block_state();
4544    
4545     block_state.ping_freq.value = DEFAULT_PINGFREQUENCY;
4546     block_state.con_freq.value = DEFAULT_CONNECTFREQUENCY;
4547     block_state.max_total.value = MAXIMUM_LINKS_DEFAULT;
4548     block_state.max_sendq.value = DEFAULT_SENDQ;
4549     block_state.max_recvq.value = DEFAULT_RECVQ;
4550 michael 913 }
4551     break;
4552    
4553 michael 2248 case 221:
4554 michael 1835 /* Line 1787 of yacc.c */
4555 michael 2248 #line 1363 "conf_parser.y"
4556 michael 913 {
4557 michael 1647 struct ClassItem *class = NULL;
4558 michael 913
4559 michael 1647 if (conf_parser_ctx.pass != 1)
4560     break;
4561 michael 913
4562 michael 1647 if (!block_state.class.buf[0])
4563     break;
4564 michael 913
4565 michael 1647 if (!(class = class_find(block_state.class.buf, 0)))
4566     class = class_make();
4567 michael 913
4568 michael 1647 class->active = 1;
4569     MyFree(class->name);
4570     class->name = xstrdup(block_state.class.buf);
4571     class->ping_freq = block_state.ping_freq.value;
4572     class->max_perip = block_state.max_perip.value;
4573     class->con_freq = block_state.con_freq.value;
4574     class->max_total = block_state.max_total.value;
4575     class->max_global = block_state.max_global.value;
4576     class->max_local = block_state.max_local.value;
4577     class->max_ident = block_state.max_ident.value;
4578     class->max_sendq = block_state.max_sendq.value;
4579     class->max_recvq = block_state.max_recvq.value;
4580 michael 913
4581 michael 1785 if (block_state.min_idle.value > block_state.max_idle.value)
4582     {
4583     block_state.min_idle.value = 0;
4584     block_state.max_idle.value = 0;
4585     block_state.flags.value &= ~CLASS_FLAGS_FAKE_IDLE;
4586     }
4587    
4588     class->flags = block_state.flags.value;
4589     class->min_idle = block_state.min_idle.value;
4590     class->max_idle = block_state.max_idle.value;
4591    
4592 michael 1647 if (class->number_per_cidr && block_state.number_per_cidr.value)
4593     if ((class->cidr_bitlen_ipv4 && block_state.cidr_bitlen_ipv4.value) ||
4594     (class->cidr_bitlen_ipv6 && block_state.cidr_bitlen_ipv6.value))
4595     if ((class->cidr_bitlen_ipv4 != block_state.cidr_bitlen_ipv4.value) ||
4596     (class->cidr_bitlen_ipv6 != block_state.cidr_bitlen_ipv6.value))
4597     rebuild_cidr_list(class);
4598 michael 913
4599 michael 1647 class->cidr_bitlen_ipv4 = block_state.cidr_bitlen_ipv4.value;
4600     class->cidr_bitlen_ipv6 = block_state.cidr_bitlen_ipv6.value;
4601     class->number_per_cidr = block_state.number_per_cidr.value;
4602 michael 913 }
4603     break;
4604    
4605 michael 2248 case 241:
4606 michael 1835 /* Line 1787 of yacc.c */
4607 michael 2248 #line 1429 "conf_parser.y"
4608 michael 913 {
4609 michael 967 if (conf_parser_ctx.pass == 1)
4610 michael 1647 strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4611 michael 913 }
4612     break;
4613    
4614 michael 2248 case 242:
4615 michael 1835 /* Line 1787 of yacc.c */
4616 michael 2248 #line 1435 "conf_parser.y"
4617 michael 1294 {
4618     if (conf_parser_ctx.pass == 1)
4619 michael 1647 block_state.ping_freq.value = (yyvsp[(3) - (4)].number);
4620 michael 1294 }
4621     break;
4622    
4623 michael 2248 case 243:
4624 michael 1835 /* Line 1787 of yacc.c */
4625 michael 2248 #line 1441 "conf_parser.y"
4626 michael 913 {
4627 michael 967 if (conf_parser_ctx.pass == 1)
4628 michael 1647 block_state.max_perip.value = (yyvsp[(3) - (4)].number);
4629 michael 913 }
4630     break;
4631    
4632 michael 2248 case 244:
4633 michael 1835 /* Line 1787 of yacc.c */
4634 michael 2248 #line 1447 "conf_parser.y"
4635 michael 913 {
4636 michael 967 if (conf_parser_ctx.pass == 1)
4637 michael 1647 block_state.con_freq.value = (yyvsp[(3) - (4)].number);
4638 michael 913 }
4639     break;
4640    
4641 michael 2248 case 245:
4642 michael 1835 /* Line 1787 of yacc.c */
4643 michael 2248 #line 1453 "conf_parser.y"
4644 michael 913 {
4645 michael 967 if (conf_parser_ctx.pass == 1)
4646 michael 1647 block_state.max_total.value = (yyvsp[(3) - (4)].number);
4647 michael 913 }
4648     break;
4649    
4650 michael 2248 case 246:
4651 michael 1835 /* Line 1787 of yacc.c */
4652 michael 2248 #line 1459 "conf_parser.y"
4653 michael 913 {
4654 michael 967 if (conf_parser_ctx.pass == 1)
4655 michael 1647 block_state.max_global.value = (yyvsp[(3) - (4)].number);
4656 michael 913 }
4657     break;
4658    
4659 michael 2248 case 247:
4660 michael 1835 /* Line 1787 of yacc.c */
4661 michael 2248 #line 1465 "conf_parser.y"
4662 michael 913 {
4663 michael 967 if (conf_parser_ctx.pass == 1)
4664 michael 1647 block_state.max_local.value = (yyvsp[(3) - (4)].number);
4665 michael 913 }
4666     break;
4667    
4668 michael 2248 case 248:
4669 michael 1835 /* Line 1787 of yacc.c */
4670 michael 2248 #line 1471 "conf_parser.y"
4671 michael 913 {
4672 michael 967 if (conf_parser_ctx.pass == 1)
4673 michael 1647 block_state.max_ident.value = (yyvsp[(3) - (4)].number);
4674 michael 913 }
4675     break;
4676    
4677 michael 2248 case 249:
4678 michael 1835 /* Line 1787 of yacc.c */
4679 michael 2248 #line 1477 "conf_parser.y"
4680 michael 913 {
4681 michael 967 if (conf_parser_ctx.pass == 1)
4682 michael 1647 block_state.max_sendq.value = (yyvsp[(3) - (4)].number);
4683 michael 913 }
4684     break;
4685    
4686 michael 2248 case 250:
4687 michael 1835 /* Line 1787 of yacc.c */
4688 michael 2248 #line 1483 "conf_parser.y"
4689 michael 913 {
4690 michael 967 if (conf_parser_ctx.pass == 1)
4691 michael 1516 if ((yyvsp[(3) - (4)].number) >= CLIENT_FLOOD_MIN && (yyvsp[(3) - (4)].number) <= CLIENT_FLOOD_MAX)
4692 michael 1647 block_state.max_recvq.value = (yyvsp[(3) - (4)].number);
4693 michael 1516 }
4694     break;
4695    
4696 michael 2248 case 251:
4697 michael 1835 /* Line 1787 of yacc.c */
4698 michael 2248 #line 1490 "conf_parser.y"
4699 michael 1516 {
4700     if (conf_parser_ctx.pass == 1)
4701 michael 1647 block_state.cidr_bitlen_ipv4.value = (yyvsp[(3) - (4)].number) > 32 ? 32 : (yyvsp[(3) - (4)].number);
4702 michael 913 }
4703     break;
4704    
4705 michael 2248 case 252:
4706 michael 1835 /* Line 1787 of yacc.c */
4707 michael 2248 #line 1496 "conf_parser.y"
4708 michael 913 {
4709 michael 967 if (conf_parser_ctx.pass == 1)
4710 michael 1647 block_state.cidr_bitlen_ipv6.value = (yyvsp[(3) - (4)].number) > 128 ? 128 : (yyvsp[(3) - (4)].number);
4711 michael 913 }
4712     break;
4713    
4714 michael 2248 case 253:
4715 michael 1835 /* Line 1787 of yacc.c */
4716 michael 2248 #line 1502 "conf_parser.y"
4717 michael 913 {
4718 michael 967 if (conf_parser_ctx.pass == 1)
4719 michael 1647 block_state.number_per_cidr.value = (yyvsp[(3) - (4)].number);
4720 michael 913 }
4721     break;
4722    
4723 michael 2248 case 254:
4724 michael 1835 /* Line 1787 of yacc.c */
4725 michael 2248 #line 1508 "conf_parser.y"
4726 michael 913 {
4727 michael 1785 if (conf_parser_ctx.pass != 1)
4728     break;
4729    
4730     block_state.min_idle.value = (yyvsp[(3) - (4)].number);
4731     block_state.flags.value |= CLASS_FLAGS_FAKE_IDLE;
4732 michael 1783 }
4733     break;
4734    
4735 michael 2248 case 255:
4736 michael 1835 /* Line 1787 of yacc.c */
4737 michael 2248 #line 1517 "conf_parser.y"
4738 michael 1783 {
4739 michael 1785 if (conf_parser_ctx.pass != 1)
4740     break;
4741    
4742     block_state.max_idle.value = (yyvsp[(3) - (4)].number);
4743     block_state.flags.value |= CLASS_FLAGS_FAKE_IDLE;
4744 michael 1783 }
4745     break;
4746    
4747 michael 2248 case 256:
4748 michael 1835 /* Line 1787 of yacc.c */
4749 michael 2248 #line 1526 "conf_parser.y"
4750 michael 1783 {
4751     if (conf_parser_ctx.pass == 1)
4752 michael 1785 block_state.flags.value &= CLASS_FLAGS_FAKE_IDLE;
4753 michael 1783 }
4754     break;
4755    
4756 michael 2248 case 260:
4757 michael 1835 /* Line 1787 of yacc.c */
4758 michael 2248 #line 1533 "conf_parser.y"
4759 michael 1783 {
4760     if (conf_parser_ctx.pass == 1)
4761     block_state.flags.value |= CLASS_FLAGS_RANDOM_IDLE;
4762     }
4763     break;
4764    
4765 michael 2248 case 261:
4766 michael 1835 /* Line 1787 of yacc.c */
4767 michael 2248 #line 1537 "conf_parser.y"
4768 michael 1783 {
4769     if (conf_parser_ctx.pass == 1)
4770     block_state.flags.value |= CLASS_FLAGS_HIDE_IDLE_FROM_OPERS;
4771     }
4772     break;
4773    
4774 michael 2248 case 262:
4775 michael 1835 /* Line 1787 of yacc.c */
4776 michael 2248 #line 1547 "conf_parser.y"
4777 michael 1783 {
4778 michael 967 if (conf_parser_ctx.pass == 2)
4779 michael 1646 reset_block_state();
4780 michael 913 }
4781     break;
4782    
4783 michael 2248 case 264:
4784 michael 1835 /* Line 1787 of yacc.c */
4785 michael 2248 #line 1553 "conf_parser.y"
4786 michael 913 {
4787 michael 1646 block_state.flags.value = 0;
4788 michael 913 }
4789     break;
4790    
4791 michael 2248 case 268:
4792 michael 1835 /* Line 1787 of yacc.c */
4793 michael 2248 #line 1559 "conf_parser.y"
4794 michael 913 {
4795 michael 967 if (conf_parser_ctx.pass == 2)
4796 michael 1646 block_state.flags.value |= LISTENER_SSL;
4797 michael 913 }
4798     break;
4799    
4800 michael 2248 case 269:
4801 michael 1835 /* Line 1787 of yacc.c */
4802 michael 2248 #line 1563 "conf_parser.y"
4803 michael 913 {
4804 michael 967 if (conf_parser_ctx.pass == 2)
4805 michael 1647 block_state.flags.value |= LISTENER_HIDDEN;
4806 michael 913 }
4807     break;
4808    
4809 michael 2248 case 270:
4810 michael 1835 /* Line 1787 of yacc.c */
4811 michael 2248 #line 1567 "conf_parser.y"
4812 michael 913 {
4813 michael 967 if (conf_parser_ctx.pass == 2)
4814 michael 1647 block_state.flags.value |= LISTENER_SERVER;
4815 michael 913 }
4816     break;
4817    
4818 michael 2248 case 278:
4819 michael 1835 /* Line 1787 of yacc.c */
4820 michael 2248 #line 1575 "conf_parser.y"
4821 michael 1648 { block_state.flags.value = 0; }
4822 michael 913 break;
4823    
4824 michael 2248 case 282:
4825 michael 1835 /* Line 1787 of yacc.c */
4826 michael 2248 #line 1580 "conf_parser.y"
4827 michael 913 {
4828 michael 967 if (conf_parser_ctx.pass == 2)
4829 michael 913 {
4830 michael 1646 if (block_state.flags.value & LISTENER_SSL)
4831 michael 913 #ifdef HAVE_LIBCRYPTO
4832 michael 967 if (!ServerInfo.server_ctx)
4833 michael 913 #endif
4834     {
4835 michael 1752 conf_error_report("SSL not available - port closed");
4836 michael 913 break;
4837     }
4838 michael 1646 add_listener((yyvsp[(1) - (1)].number), block_state.addr.buf, block_state.flags.value);
4839 michael 913 }
4840     }
4841     break;
4842    
4843 michael 2248 case 283:
4844 michael 1835 /* Line 1787 of yacc.c */
4845 michael 2248 #line 1594 "conf_parser.y"
4846 michael 913 {
4847 michael 967 if (conf_parser_ctx.pass == 2)
4848 michael 913 {
4849     int i;
4850    
4851 michael 1646 if (block_state.flags.value & LISTENER_SSL)
4852 michael 913 #ifdef HAVE_LIBCRYPTO
4853 michael 967 if (!ServerInfo.server_ctx)
4854 michael 913 #endif
4855     {
4856 michael 1752 conf_error_report("SSL not available - port closed");
4857 michael 913 break;
4858     }
4859    
4860     for (i = (yyvsp[(1) - (3)].number); i <= (yyvsp[(3) - (3)].number); ++i)
4861 michael 1646 add_listener(i, block_state.addr.buf, block_state.flags.value);
4862 michael 913 }
4863     }
4864     break;
4865    
4866 michael 2248 case 284:
4867 michael 1835 /* Line 1787 of yacc.c */
4868 michael 2248 #line 1614 "conf_parser.y"
4869 michael 913 {
4870 michael 967 if (conf_parser_ctx.pass == 2)
4871 michael 1646 strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4872 michael 913 }
4873     break;
4874    
4875 michael 2248 case 285:
4876 michael 1835 /* Line 1787 of yacc.c */
4877 michael 2248 #line 1620 "conf_parser.y"
4878 michael 913 {
4879 michael 967 if (conf_parser_ctx.pass == 2)
4880 michael 1646 strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4881 michael 913 }
4882     break;
4883    
4884 michael 2248 case 286:
4885 michael 1835 /* Line 1787 of yacc.c */
4886 michael 2248 #line 1629 "conf_parser.y"
4887 michael 913 {
4888 michael 967 if (conf_parser_ctx.pass == 2)
4889 michael 1646 reset_block_state();
4890 michael 913 }
4891     break;
4892    
4893 michael 2248 case 287:
4894 michael 1835 /* Line 1787 of yacc.c */
4895 michael 2248 #line 1633 "conf_parser.y"
4896 michael 913 {
4897 michael 1646 dlink_node *ptr = NULL;
4898 michael 913
4899 michael 1646 if (conf_parser_ctx.pass != 2)
4900 michael 913 break;
4901    
4902 michael 1646 DLINK_FOREACH(ptr, block_state.mask.list.head)
4903 michael 913 {
4904 michael 1646 struct MaskItem *conf = NULL;
4905 michael 913 struct split_nuh_item nuh;
4906    
4907 michael 1646 nuh.nuhmask = ptr->data;
4908 michael 913 nuh.nickptr = NULL;
4909 michael 1647 nuh.userptr = block_state.user.buf;
4910     nuh.hostptr = block_state.host.buf;
4911 michael 913 nuh.nicksize = 0;
4912 michael 1647 nuh.usersize = sizeof(block_state.user.buf);
4913     nuh.hostsize = sizeof(block_state.host.buf);
4914 michael 913 split_nuh(&nuh);
4915    
4916 michael 1646 conf = conf_make(CONF_CLIENT);
4917 michael 2106 conf->user = xstrdup(block_state.user.buf);
4918     conf->host = xstrdup(block_state.host.buf);
4919 michael 913
4920 michael 1647 if (block_state.rpass.buf[0])
4921     conf->passwd = xstrdup(block_state.rpass.buf);
4922 michael 1646 if (block_state.name.buf[0])
4923 michael 1911 conf->name = xstrdup(block_state.name.buf);
4924 michael 913
4925 michael 1646 conf->flags = block_state.flags.value;
4926     conf->port = block_state.port.value;
4927    
4928     conf_add_class_to_conf(conf, block_state.class.buf);
4929     add_conf_by_address(CONF_CLIENT, conf);
4930 michael 913 }
4931     }
4932     break;
4933    
4934 michael 2248 case 299:
4935 michael 1835 /* Line 1787 of yacc.c */
4936 michael 2248 #line 1676 "conf_parser.y"
4937 michael 1646 {
4938     if (conf_parser_ctx.pass == 2)
4939     dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
4940     }
4941     break;
4942    
4943 michael 2248 case 300:
4944 michael 1835 /* Line 1787 of yacc.c */
4945 michael 2248 #line 1682 "conf_parser.y"
4946 michael 913 {
4947 michael 967 if (conf_parser_ctx.pass == 2)
4948 michael 1647 strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4949 michael 913 }
4950     break;
4951    
4952 michael 2248 case 301:
4953 michael 1835 /* Line 1787 of yacc.c */
4954 michael 2248 #line 1688 "conf_parser.y"
4955 michael 913 {
4956 michael 967 if (conf_parser_ctx.pass == 2)
4957 michael 1646 strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4958 michael 913 }
4959     break;
4960    
4961 michael 2248 case 302:
4962 michael 1835 /* Line 1787 of yacc.c */
4963 michael 2248 #line 1694 "conf_parser.y"
4964 michael 913 {
4965 michael 967 if (conf_parser_ctx.pass == 2)
4966 michael 913 {
4967     if (yylval.number)
4968 michael 1646 block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
4969 michael 913 else
4970 michael 1646 block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
4971 michael 913 }
4972     }
4973     break;
4974    
4975 michael 2248 case 303:
4976 michael 1835 /* Line 1787 of yacc.c */
4977 michael 2248 #line 1705 "conf_parser.y"
4978 michael 913 {
4979 michael 1646 if (conf_parser_ctx.pass == 2)
4980 michael 2093 block_state.flags.value &= (CONF_FLAGS_ENCRYPTED | CONF_FLAGS_SPOOF_IP);
4981 michael 913 }
4982     break;
4983    
4984 michael 2248 case 307:
4985 michael 1835 /* Line 1787 of yacc.c */
4986 michael 2248 #line 1712 "conf_parser.y"
4987 michael 913 {
4988 michael 967 if (conf_parser_ctx.pass == 2)
4989 michael 1646 block_state.flags.value |= CONF_FLAGS_SPOOF_NOTICE;
4990 michael 913 }
4991     break;
4992    
4993 michael 2248 case 308:
4994 michael 1835 /* Line 1787 of yacc.c */
4995 michael 2248 #line 1716 "conf_parser.y"
4996 michael 913 {
4997 michael 967 if (conf_parser_ctx.pass == 2)
4998 michael 1646 block_state.flags.value |= CONF_FLAGS_NOLIMIT;
4999 michael 913 }
5000     break;
5001    
5002 michael 2248 case 309:
5003 michael 1835 /* Line 1787 of yacc.c */
5004 michael 2248 #line 1720 "conf_parser.y"
5005 michael 913 {
5006 michael 967 if (conf_parser_ctx.pass == 2)
5007 michael 1646 block_state.flags.value |= CONF_FLAGS_EXEMPTKLINE;
5008 michael 913 }
5009     break;
5010    
5011 michael 2248 case 310:
5012 michael 1835 /* Line 1787 of yacc.c */
5013 michael 2248 #line 1724 "conf_parser.y"
5014 michael 913 {
5015 michael 967 if (conf_parser_ctx.pass == 2)
5016 michael 1646 block_state.flags.value |= CONF_FLAGS_NEED_IDENTD;
5017 michael 913 }
5018     break;
5019    
5020 michael 2248 case 311:
5021 michael 1835 /* Line 1787 of yacc.c */
5022 michael 2248 #line 1728 "conf_parser.y"
5023 michael 913 {
5024 michael 967 if (conf_parser_ctx.pass == 2)
5025 michael 1646 block_state.flags.value |= CONF_FLAGS_CAN_FLOOD;
5026 michael 913 }
5027     break;
5028    
5029 michael 2248 case 312:
5030 michael 1835 /* Line 1787 of yacc.c */
5031 michael 2248 #line 1732 "conf_parser.y"
5032 michael 913 {
5033 michael 967 if (conf_parser_ctx.pass == 2)
5034 michael 1646 block_state.flags.value |= CONF_FLAGS_NO_TILDE;
5035 michael 913 }
5036     break;
5037    
5038 michael 2248 case 313:
5039 michael 1835 /* Line 1787 of yacc.c */
5040 michael 2248 #line 1736 "conf_parser.y"
5041 michael 913 {
5042 michael 967 if (conf_parser_ctx.pass == 2)
5043 michael 1646 block_state.flags.value |= CONF_FLAGS_EXEMPTGLINE;
5044 michael 913 }
5045     break;
5046    
5047 michael 2248 case 314:
5048 michael 1835 /* Line 1787 of yacc.c */
5049 michael 2248 #line 1740 "conf_parser.y"
5050 michael 913 {
5051 michael 967 if (conf_parser_ctx.pass == 2)
5052 michael 1646 block_state.flags.value |= CONF_FLAGS_EXEMPTRESV;
5053 michael 913 }
5054     break;
5055    
5056 michael 2248 case 315:
5057 michael 1835 /* Line 1787 of yacc.c */
5058 michael 2248 #line 1744 "conf_parser.y"
5059 michael 913 {
5060 michael 967 if (conf_parser_ctx.pass == 2)
5061 michael 1715 block_state.flags.value |= CONF_FLAGS_WEBIRC;
5062 michael 1250 }
5063     break;
5064    
5065 michael 2248 case 316:
5066 michael 1835 /* Line 1787 of yacc.c */
5067 michael 2248 #line 1748 "conf_parser.y"
5068 michael 1250 {
5069 michael 1715 if (conf_parser_ctx.pass == 2)
5070     block_state.flags.value |= CONF_FLAGS_NEED_PASSWORD;
5071     }
5072     break;
5073    
5074 michael 2248 case 317:
5075 michael 1835 /* Line 1787 of yacc.c */
5076 michael 2248 #line 1754 "conf_parser.y"
5077 michael 1715 {
5078 michael 1646 if (conf_parser_ctx.pass != 2)
5079     break;
5080    
5081     if (strlen(yylval.string) <= HOSTLEN && valid_hostname(yylval.string))
5082 michael 913 {
5083 michael 1646 strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5084     block_state.flags.value |= CONF_FLAGS_SPOOF_IP;
5085 michael 913 }
5086 michael 1646 else
5087     ilog(LOG_TYPE_IRCD, "Spoof either is too long or contains invalid characters. Ignoring it.");
5088 michael 913 }
5089     break;
5090    
5091 michael 2248 case 318:
5092 michael 1835 /* Line 1787 of yacc.c */
5093 michael 2248 #line 1768 "conf_parser.y"
5094 michael 913 {
5095 michael 1646 if (conf_parser_ctx.pass != 2)
5096     break;
5097    
5098     strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5099     block_state.flags.value |= CONF_FLAGS_REDIR;
5100 michael 913 }
5101     break;
5102    
5103 michael 2248 case 319:
5104 michael 1835 /* Line 1787 of yacc.c */
5105 michael 2248 #line 1777 "conf_parser.y"
5106 michael 913 {
5107 michael 1646 if (conf_parser_ctx.pass != 2)
5108     break;
5109 michael 1647
5110 michael 1646 block_state.flags.value |= CONF_FLAGS_REDIR;
5111     block_state.port.value = (yyvsp[(3) - (4)].number);
5112 michael 913 }
5113     break;
5114    
5115 michael 2248 case 320:
5116 michael 1835 /* Line 1787 of yacc.c */
5117 michael 2248 #line 1790 "conf_parser.y"
5118 michael 913 {
5119 michael 1647 if (conf_parser_ctx.pass != 2)
5120 michael 913 break;
5121    
5122 michael 1647 reset_block_state();
5123     strlcpy(block_state.rpass.buf, CONF_NOREASON, sizeof(block_state.rpass.buf));
5124 michael 913 }
5125     break;
5126    
5127 michael 2248 case 321:
5128 michael 1835 /* Line 1787 of yacc.c */
5129 michael 2248 #line 1797 "conf_parser.y"
5130 michael 1823 {
5131 michael 1858 if (conf_parser_ctx.pass != 2)
5132     break;
5133    
5134     create_resv(block_state.name.buf, block_state.rpass.buf, &block_state.mask.list);
5135 michael 1823 }
5136     break;
5137    
5138 michael 2248 case 328:
5139 michael 1835 /* Line 1787 of yacc.c */
5140 michael 2248 #line 1808 "conf_parser.y"
5141 michael 913 {
5142 michael 967 if (conf_parser_ctx.pass == 2)
5143 michael 1858 strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5144 michael 913 }
5145     break;
5146    
5147 michael 2248 case 329:
5148 michael 1835 /* Line 1787 of yacc.c */
5149 michael 2248 #line 1814 "conf_parser.y"
5150 michael 913 {
5151 michael 1823 if (conf_parser_ctx.pass == 2)
5152 michael 1858 strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5153 michael 913 }
5154     break;
5155    
5156 michael 2248 case 330:
5157 michael 1835 /* Line 1787 of yacc.c */
5158 michael 2248 #line 1820 "conf_parser.y"
5159 michael 913 {
5160 michael 967 if (conf_parser_ctx.pass == 2)
5161 michael 1858 dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
5162 michael 913 }
5163     break;
5164    
5165 michael 2248 case 336:
5166 michael 1835 /* Line 1787 of yacc.c */
5167 michael 2248 #line 1835 "conf_parser.y"
5168 michael 913 {
5169 michael 2129 if (conf_parser_ctx.pass != 2)
5170     break;
5171    
5172     if (valid_servname(yylval.string))
5173 michael 913 {
5174 michael 2129 struct MaskItem *conf = conf_make(CONF_SERVICE);
5175     conf->name = xstrdup(yylval.string);
5176 michael 1157 }
5177     }
5178     break;
5179    
5180 michael 2248 case 337:
5181 michael 1835 /* Line 1787 of yacc.c */
5182 michael 2248 #line 1850 "conf_parser.y"
5183 michael 1157 {
5184 michael 1647 if (conf_parser_ctx.pass != 2)
5185     break;
5186    
5187     reset_block_state();
5188    
5189     strlcpy(block_state.name.buf, "*", sizeof(block_state.name.buf));
5190     strlcpy(block_state.user.buf, "*", sizeof(block_state.user.buf));
5191     strlcpy(block_state.host.buf, "*", sizeof(block_state.host.buf));
5192     block_state.flags.value = SHARED_ALL;
5193 michael 913 }
5194     break;
5195    
5196 michael 2248 case 338:
5197 michael 1835 /* Line 1787 of yacc.c */
5198 michael 2248 #line 1861 "conf_parser.y"
5199 michael 913 {
5200 michael 1647 struct MaskItem *conf = NULL;
5201    
5202     if (conf_parser_ctx.pass != 2)
5203     break;
5204    
5205     conf = conf_make(CONF_ULINE);
5206     conf->flags = block_state.flags.value;
5207     conf->name = xstrdup(block_state.name.buf);
5208     conf->user = xstrdup(block_state.user.buf);
5209 michael 1911 conf->host = xstrdup(block_state.host.buf);
5210 michael 913 }
5211     break;
5212    
5213 michael 2248 case 345:
5214 michael 1835 /* Line 1787 of yacc.c */
5215 michael 2248 #line 1878 "conf_parser.y"
5216 michael 913 {
5217 michael 967 if (conf_parser_ctx.pass == 2)
5218 michael 1647 strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5219 michael 913 }
5220     break;
5221    
5222 michael 2248 case 346:
5223 michael 1835 /* Line 1787 of yacc.c */
5224 michael 2248 #line 1884 "conf_parser.y"
5225 michael 913 {
5226 michael 967 if (conf_parser_ctx.pass == 2)
5227 michael 913 {
5228     struct split_nuh_item nuh;
5229    
5230     nuh.nuhmask = yylval.string;
5231     nuh.nickptr = NULL;
5232 michael 1647 nuh.userptr = block_state.user.buf;
5233     nuh.hostptr = block_state.host.buf;
5234 michael 913
5235     nuh.nicksize = 0;
5236 michael 1647 nuh.usersize = sizeof(block_state.user.buf);
5237     nuh.hostsize = sizeof(block_state.host.buf);
5238 michael 913
5239     split_nuh(&nuh);
5240     }
5241     }
5242     break;
5243    
5244 michael 2248 case 347:
5245 michael 1835 /* Line 1787 of yacc.c */
5246 michael 2248 #line 1903 "conf_parser.y"
5247 michael 913 {
5248 michael 967 if (conf_parser_ctx.pass == 2)
5249 michael 1647 block_state.flags.value = 0;
5250 michael 913 }
5251     break;
5252    
5253 michael 2248 case 351:
5254 michael 1835 /* Line 1787 of yacc.c */
5255 michael 2248 #line 1910 "conf_parser.y"
5256 michael 1644 {
5257     if (conf_parser_ctx.pass == 2)
5258 michael 1647 block_state.flags.value |= SHARED_KLINE;
5259 michael 1644 }
5260     break;
5261    
5262 michael 2248 case 352:
5263 michael 1835 /* Line 1787 of yacc.c */
5264 michael 2248 #line 1914 "conf_parser.y"
5265 michael 1644 {
5266     if (conf_parser_ctx.pass == 2)
5267 michael 1647 block_state.flags.value |= SHARED_UNKLINE;
5268 michael 1644 }
5269     break;
5270    
5271 michael 2248 case 353:
5272 michael 1835 /* Line 1787 of yacc.c */
5273 michael 2248 #line 1918 "conf_parser.y"
5274 michael 913 {
5275 michael 967 if (conf_parser_ctx.pass == 2)
5276 michael 1647 block_state.flags.value |= SHARED_DLINE;
5277 michael 913 }
5278     break;
5279    
5280 michael 2248 case 354:
5281 michael 1835 /* Line 1787 of yacc.c */
5282 michael 2248 #line 1922 "conf_parser.y"
5283 michael 913 {
5284 michael 967 if (conf_parser_ctx.pass == 2)
5285 michael 1647 block_state.flags.value |= SHARED_UNDLINE;
5286 michael 913 }
5287     break;
5288    
5289 michael 2248 case 355:
5290 michael 1835 /* Line 1787 of yacc.c */
5291 michael 2248 #line 1926 "conf_parser.y"
5292 michael 913 {
5293 michael 967 if (conf_parser_ctx.pass == 2)
5294 michael 1647 block_state.flags.value |= SHARED_XLINE;
5295 michael 913 }
5296     break;
5297    
5298 michael 2248 case 356:
5299 michael 1835 /* Line 1787 of yacc.c */
5300 michael 2248 #line 1930 "conf_parser.y"
5301 michael 913 {
5302 michael 967 if (conf_parser_ctx.pass == 2)
5303 michael 1647 block_state.flags.value |= SHARED_UNXLINE;
5304 michael 913 }
5305     break;
5306    
5307 michael 2248 case 357:
5308 michael 1835 /* Line 1787 of yacc.c */
5309 michael 2248 #line 1934 "conf_parser.y"
5310 michael 913 {
5311 michael 967 if (conf_parser_ctx.pass == 2)
5312 michael 1647 block_state.flags.value |= SHARED_RESV;
5313 michael 913 }
5314     break;
5315    
5316 michael 2248 case 358:
5317 michael 1835 /* Line 1787 of yacc.c */
5318 michael 2248 #line 1938 "conf_parser.y"
5319 michael 913 {
5320 michael 967 if (conf_parser_ctx.pass == 2)
5321 michael 1647 block_state.flags.value |= SHARED_UNRESV;
5322 michael 913 }
5323     break;
5324    
5325 michael 2248 case 359:
5326 michael 1835 /* Line 1787 of yacc.c */
5327 michael 2248 #line 1942 "conf_parser.y"
5328 michael 913 {
5329 michael 967 if (conf_parser_ctx.pass == 2)
5330 michael 1647 block_state.flags.value |= SHARED_LOCOPS;
5331 michael 913 }
5332     break;
5333    
5334 michael 2248 case 360:
5335 michael 1835 /* Line 1787 of yacc.c */
5336 michael 2248 #line 1946 "conf_parser.y"
5337 michael 913 {
5338 michael 967 if (conf_parser_ctx.pass == 2)
5339 michael 1647 block_state.flags.value = SHARED_ALL;
5340 michael 913 }
5341     break;
5342    
5343 michael 2248 case 361:
5344 michael 1835 /* Line 1787 of yacc.c */
5345 michael 2248 #line 1955 "conf_parser.y"
5346 michael 913 {
5347 michael 1647 if (conf_parser_ctx.pass != 2)
5348     break;
5349    
5350     reset_block_state();
5351    
5352     strlcpy(block_state.name.buf, "*", sizeof(block_state.name.buf));
5353     block_state.flags.value = SHARED_ALL;
5354 michael 913 }
5355     break;
5356    
5357 michael 2248 case 362:
5358 michael 1835 /* Line 1787 of yacc.c */
5359 michael 2248 #line 1964 "conf_parser.y"
5360 michael 913 {
5361 michael 1647 struct MaskItem *conf = NULL;
5362    
5363     if (conf_parser_ctx.pass != 2)
5364     break;
5365    
5366     conf = conf_make(CONF_CLUSTER);
5367     conf->flags = block_state.flags.value;
5368     conf->name = xstrdup(block_state.name.buf);
5369 michael 913 }
5370     break;
5371    
5372 michael 2248 case 368:
5373 michael 1835 /* Line 1787 of yacc.c */
5374 michael 2248 #line 1979 "conf_parser.y"
5375 michael 913 {
5376 michael 967 if (conf_parser_ctx.pass == 2)
5377 michael 1647 strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5378 michael 913 }
5379     break;
5380    
5381 michael 2248 case 369:
5382 michael 1835 /* Line 1787 of yacc.c */
5383 michael 2248 #line 1985 "conf_parser.y"
5384 michael 913 {
5385 michael 967 if (conf_parser_ctx.pass == 2)
5386 michael 1647 block_state.flags.value = 0;
5387 michael 913 }
5388     break;
5389    
5390 michael 2248 case 373:
5391 michael 1835 /* Line 1787 of yacc.c */
5392 michael 2248 #line 1992 "conf_parser.y"
5393 michael 913 {
5394 michael 967 if (conf_parser_ctx.pass == 2)
5395 michael 1647 block_state.flags.value |= SHARED_KLINE;
5396 michael 913 }
5397     break;
5398    
5399 michael 2248 case 374:
5400 michael 1835 /* Line 1787 of yacc.c */
5401 michael 2248 #line 1996 "conf_parser.y"
5402 michael 913 {
5403 michael 967 if (conf_parser_ctx.pass == 2)
5404 michael 1647 block_state.flags.value |= SHARED_UNKLINE;
5405 michael 913 }
5406     break;
5407    
5408 michael 2248 case 375:
5409 michael 1835 /* Line 1787 of yacc.c */
5410 michael 2248 #line 2000 "conf_parser.y"
5411 michael 913 {
5412 michael 967 if (conf_parser_ctx.pass == 2)
5413 michael 1647 block_state.flags.value |= SHARED_DLINE;
5414 michael 913 }
5415     break;
5416    
5417 michael 2248 case 376:
5418 michael 1835 /* Line 1787 of yacc.c */
5419 michael 2248 #line 2004 "conf_parser.y"
5420 michael 913 {
5421 michael 967 if (conf_parser_ctx.pass == 2)
5422 michael 1647 block_state.flags.value |= SHARED_UNDLINE;
5423 michael 913 }
5424     break;
5425    
5426 michael 2248 case 377:
5427 michael 1835 /* Line 1787 of yacc.c */
5428 michael 2248 #line 2008 "conf_parser.y"
5429 michael 913 {
5430 michael 967 if (conf_parser_ctx.pass == 2)
5431 michael 1647 block_state.flags.value |= SHARED_XLINE;
5432 michael 913 }
5433     break;
5434    
5435 michael 2248 case 378:
5436 michael 1835 /* Line 1787 of yacc.c */
5437 michael 2248 #line 2012 "conf_parser.y"
5438 michael 913 {
5439 michael 967 if (conf_parser_ctx.pass == 2)
5440 michael 1647 block_state.flags.value |= SHARED_UNXLINE;
5441 michael 913 }
5442     break;
5443    
5444 michael 2248 case 379:
5445 michael 1835 /* Line 1787 of yacc.c */
5446 michael 2248 #line 2016 "conf_parser.y"
5447 michael 913 {
5448 michael 967 if (conf_parser_ctx.pass == 2)
5449 michael 1647 block_state.flags.value |= SHARED_RESV;
5450 michael 913 }
5451     break;
5452    
5453 michael 2248 case 380:
5454 michael 1835 /* Line 1787 of yacc.c */
5455 michael 2248 #line 2020 "conf_parser.y"
5456 michael 913 {
5457 michael 967 if (conf_parser_ctx.pass == 2)
5458 michael 1647 block_state.flags.value |= SHARED_UNRESV;
5459 michael 913 }
5460     break;
5461    
5462 michael 2248 case 381:
5463 michael 1835 /* Line 1787 of yacc.c */
5464 michael 2248 #line 2024 "conf_parser.y"
5465 michael 913 {
5466 michael 967 if (conf_parser_ctx.pass == 2)
5467 michael 1647 block_state.flags.value |= SHARED_LOCOPS;
5468 michael 913 }
5469     break;
5470    
5471 michael 2248 case 382:
5472 michael 1835 /* Line 1787 of yacc.c */
5473 michael 2248 #line 2028 "conf_parser.y"
5474 michael 913 {
5475 michael 967 if (conf_parser_ctx.pass == 2)
5476 michael 1647 block_state.flags.value = SHARED_ALL;
5477 michael 1250 }
5478     break;
5479    
5480 michael 2248 case 383:
5481 michael 1835 /* Line 1787 of yacc.c */
5482 michael 2248 #line 2037 "conf_parser.y"
5483 michael 1250 {
5484 michael 1285
5485 michael 1647 if (conf_parser_ctx.pass != 2)
5486     break;
5487    
5488     reset_block_state();
5489     block_state.port.value = PORTNUM;
5490 michael 913 }
5491     break;
5492    
5493 michael 2248 case 384:
5494 michael 1835 /* Line 1787 of yacc.c */
5495 michael 2248 #line 2045 "conf_parser.y"
5496 michael 913 {
5497 michael 1647 struct MaskItem *conf = NULL;
5498     struct addrinfo hints, *res;
5499    
5500     if (conf_parser_ctx.pass != 2)
5501     break;
5502    
5503 michael 1648 if (!block_state.name.buf[0] ||
5504     !block_state.host.buf[0])
5505 michael 1647 break;
5506    
5507 michael 2126 if (!block_state.rpass.buf[0] ||
5508     !block_state.spass.buf[0])
5509 michael 1647 break;
5510    
5511     if (has_wildcards(block_state.name.buf) ||
5512     has_wildcards(block_state.host.buf))
5513     break;
5514    
5515     conf = conf_make(CONF_SERVER);
5516     conf->port = block_state.port.value;
5517     conf->flags = block_state.flags.value;
5518     conf->aftype = block_state.aftype.value;
5519     conf->host = xstrdup(block_state.host.buf);
5520     conf->name = xstrdup(block_state.name.buf);
5521     conf->passwd = xstrdup(block_state.rpass.buf);
5522     conf->spasswd = xstrdup(block_state.spass.buf);
5523 michael 2228
5524     if (block_state.cert.buf[0])
5525     conf->certfp = xstrdup(block_state.cert.buf);
5526    
5527 michael 1647 conf->cipher_list = xstrdup(block_state.ciph.buf);
5528    
5529     dlinkMoveList(&block_state.leaf.list, &conf->leaf_list);
5530     dlinkMoveList(&block_state.hub.list, &conf->hub_list);
5531    
5532     if (block_state.bind.buf[0])
5533 michael 913 {
5534 michael 1647 memset(&hints, 0, sizeof(hints));
5535    
5536     hints.ai_family = AF_UNSPEC;
5537     hints.ai_socktype = SOCK_STREAM;
5538     hints.ai_flags = AI_PASSIVE | AI_NUMERICHOST;
5539    
5540     if (getaddrinfo(block_state.bind.buf, NULL, &hints, &res))
5541     ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost(%s)", block_state.bind.buf);
5542 michael 1302 else
5543     {
5544 michael 1647 assert(res != NULL);
5545 michael 913
5546 michael 1647 memcpy(&conf->bind, res->ai_addr, res->ai_addrlen);
5547     conf->bind.ss.ss_family = res->ai_family;
5548     conf->bind.ss_len = res->ai_addrlen;
5549     freeaddrinfo(res);
5550 michael 1302 }
5551 michael 1647 }
5552 michael 913
5553 michael 1647 conf_add_class_to_conf(conf, block_state.class.buf);
5554     lookup_confhost(conf);
5555 michael 913 }
5556     break;
5557    
5558 michael 2248 case 402:
5559 michael 1835 /* Line 1787 of yacc.c */
5560 michael 2248 #line 2116 "conf_parser.y"
5561 michael 913 {
5562 michael 967 if (conf_parser_ctx.pass == 2)
5563 michael 1647 strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5564 michael 913 }
5565     break;
5566    
5567 michael 2248 case 403:
5568 michael 1835 /* Line 1787 of yacc.c */
5569 michael 2248 #line 2122 "conf_parser.y"
5570 michael 913 {
5571 michael 967 if (conf_parser_ctx.pass == 2)
5572 michael 1647 strlcpy(block_state.host.buf, yylval.string, sizeof(block_state.host.buf));
5573 michael 913 }
5574     break;
5575    
5576 michael 2248 case 404:
5577 michael 1835 /* Line 1787 of yacc.c */
5578 michael 2248 #line 2128 "conf_parser.y"
5579 michael 913 {
5580 michael 967 if (conf_parser_ctx.pass == 2)
5581 michael 1647 strlcpy(block_state.bind.buf, yylval.string, sizeof(block_state.bind.buf));
5582 michael 913 }
5583     break;
5584    
5585 michael 2248 case 405:
5586 michael 1835 /* Line 1787 of yacc.c */
5587 michael 2248 #line 2134 "conf_parser.y"
5588 michael 913 {
5589 michael 1647 if (conf_parser_ctx.pass != 2)
5590     break;
5591 michael 913
5592 michael 1647 if ((yyvsp[(3) - (4)].string)[0] == ':')
5593 michael 1752 conf_error_report("Server passwords cannot begin with a colon");
5594 michael 1647 else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
5595 michael 1752 conf_error_report("Server passwords cannot contain spaces");
5596 michael 1647 else
5597     strlcpy(block_state.spass.buf, yylval.string, sizeof(block_state.spass.buf));
5598 michael 913 }
5599     break;
5600    
5601 michael 2248 case 406:
5602 michael 1835 /* Line 1787 of yacc.c */
5603 michael 2248 #line 2147 "conf_parser.y"
5604 michael 913 {
5605 michael 1647 if (conf_parser_ctx.pass != 2)
5606     break;
5607 michael 913
5608 michael 1647 if ((yyvsp[(3) - (4)].string)[0] == ':')
5609 michael 1752 conf_error_report("Server passwords cannot begin with a colon");
5610 michael 1647 else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
5611 michael 1752 conf_error_report("Server passwords cannot contain spaces");
5612 michael 1647 else
5613     strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5614 michael 913 }
5615     break;
5616    
5617 michael 2248 case 407:
5618 michael 1835 /* Line 1787 of yacc.c */
5619 michael 2248 #line 2160 "conf_parser.y"
5620 michael 913 {
5621 michael 967 if (conf_parser_ctx.pass == 2)
5622 michael 2229 strlcpy(block_state.cert.buf, yylval.string, sizeof(block_state.cert.buf));
5623 michael 2228 }
5624     break;
5625    
5626 michael 2248 case 408:
5627 michael 2228 /* Line 1787 of yacc.c */
5628 michael 2248 #line 2166 "conf_parser.y"
5629 michael 2228 {
5630     if (conf_parser_ctx.pass == 2)
5631 michael 1647 block_state.port.value = (yyvsp[(3) - (4)].number);
5632 michael 913 }
5633     break;
5634    
5635 michael 2248 case 409:
5636 michael 1835 /* Line 1787 of yacc.c */
5637 michael 2248 #line 2172 "conf_parser.y"
5638 michael 913 {
5639 michael 967 if (conf_parser_ctx.pass == 2)
5640 michael 1647 block_state.aftype.value = AF_INET;
5641 michael 913 }
5642     break;
5643    
5644 michael 2248 case 410:
5645 michael 1835 /* Line 1787 of yacc.c */
5646 michael 2248 #line 2176 "conf_parser.y"
5647 michael 913 {
5648     #ifdef IPV6
5649 michael 967 if (conf_parser_ctx.pass == 2)
5650 michael 1647 block_state.aftype.value = AF_INET6;
5651 michael 913 #endif
5652     }
5653     break;
5654    
5655 michael 2248 case 411:
5656 michael 1835 /* Line 1787 of yacc.c */
5657 michael 2248 #line 2184 "conf_parser.y"
5658 michael 913 {
5659 michael 1648 block_state.flags.value &= CONF_FLAGS_ENCRYPTED;
5660 michael 913 }
5661     break;
5662    
5663 michael 2248 case 415:
5664 michael 1835 /* Line 1787 of yacc.c */
5665 michael 2248 #line 2190 "conf_parser.y"
5666 michael 913 {
5667 michael 967 if (conf_parser_ctx.pass == 2)
5668 michael 1647 block_state.flags.value |= CONF_FLAGS_ALLOW_AUTO_CONN;
5669 michael 913 }
5670     break;
5671    
5672 michael 2248 case 416:
5673 michael 1835 /* Line 1787 of yacc.c */
5674 michael 2248 #line 2194 "conf_parser.y"
5675 michael 913 {
5676 michael 967 if (conf_parser_ctx.pass == 2)
5677 michael 1647 block_state.flags.value |= CONF_FLAGS_SSL;
5678 michael 913 }
5679     break;
5680    
5681 michael 2248 case 417:
5682 michael 1835 /* Line 1787 of yacc.c */
5683 michael 2248 #line 2200 "conf_parser.y"
5684 michael 913 {
5685 michael 967 if (conf_parser_ctx.pass == 2)
5686 michael 913 {
5687     if (yylval.number)
5688 michael 1647 block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
5689 michael 913 else
5690 michael 1647 block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
5691 michael 913 }
5692     }
5693     break;
5694    
5695 michael 2248 case 418:
5696 michael 1835 /* Line 1787 of yacc.c */
5697 michael 2248 #line 2211 "conf_parser.y"
5698 michael 913 {
5699 michael 967 if (conf_parser_ctx.pass == 2)
5700 michael 1647 dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.hub.list);
5701 michael 913 }
5702     break;
5703    
5704 michael 2248 case 419:
5705 michael 1835 /* Line 1787 of yacc.c */
5706 michael 2248 #line 2217 "conf_parser.y"
5707 michael 913 {
5708 michael 967 if (conf_parser_ctx.pass == 2)
5709 michael 1647 dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.leaf.list);
5710 michael 913 }
5711     break;
5712    
5713 michael 2248 case 420:
5714 michael 1835 /* Line 1787 of yacc.c */
5715 michael 2248 #line 2223 "conf_parser.y"
5716 michael 913 {
5717 michael 967 if (conf_parser_ctx.pass == 2)
5718 michael 1647 strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
5719 michael 913 }
5720     break;
5721    
5722 michael 2248 case 421:
5723 michael 1835 /* Line 1787 of yacc.c */
5724 michael 2248 #line 2229 "conf_parser.y"
5725 michael 913 {
5726 michael 1306 #ifdef HAVE_LIBCRYPTO
5727 michael 967 if (conf_parser_ctx.pass == 2)
5728 michael 1647 strlcpy(block_state.ciph.buf, yylval.string, sizeof(block_state.ciph.buf));
5729 michael 1306 #else
5730     if (conf_parser_ctx.pass == 2)
5731 michael 1752 conf_error_report("Ignoring connect::ciphers -- no OpenSSL support");
5732 michael 1306 #endif
5733     }
5734     break;
5735    
5736 michael 2248 case 422:
5737 michael 1835 /* Line 1787 of yacc.c */
5738 michael 2248 #line 2244 "conf_parser.y"
5739 michael 1306 {
5740     if (conf_parser_ctx.pass == 2)
5741 michael 1647 reset_block_state();
5742 michael 913 }
5743     break;
5744    
5745 michael 2248 case 423:
5746 michael 1835 /* Line 1787 of yacc.c */
5747 michael 2248 #line 2248 "conf_parser.y"
5748 michael 913 {
5749 michael 1647 struct MaskItem *conf = NULL;
5750    
5751     if (conf_parser_ctx.pass != 2)
5752     break;
5753    
5754     if (!block_state.user.buf[0] ||
5755     !block_state.host.buf[0])
5756     break;
5757    
5758 michael 1921 conf = conf_make(CONF_KLINE);
5759     conf->user = xstrdup(block_state.user.buf);
5760     conf->host = xstrdup(block_state.host.buf);
5761 michael 1647
5762 michael 1921 if (block_state.rpass.buf[0])
5763     conf->reason = xstrdup(block_state.rpass.buf);
5764 michael 1647 else
5765 michael 1921 conf->reason = xstrdup(CONF_NOREASON);
5766     add_conf_by_address(CONF_KLINE, conf);
5767 michael 913 }
5768     break;
5769    
5770 michael 2248 case 429:
5771 michael 1835 /* Line 1787 of yacc.c */
5772 michael 2248 #line 2273 "conf_parser.y"
5773 michael 913 {
5774    
5775 michael 967 if (conf_parser_ctx.pass == 2)
5776 michael 913 {
5777     struct split_nuh_item nuh;
5778    
5779     nuh.nuhmask = yylval.string;
5780     nuh.nickptr = NULL;
5781 michael 1647 nuh.userptr = block_state.user.buf;
5782     nuh.hostptr = block_state.host.buf;
5783 michael 913
5784     nuh.nicksize = 0;
5785 michael 1647 nuh.usersize = sizeof(block_state.user.buf);
5786     nuh.hostsize = sizeof(block_state.host.buf);
5787 michael 913
5788     split_nuh(&nuh);
5789     }
5790     }
5791     break;
5792    
5793 michael 2248 case 430:
5794 michael 1835 /* Line 1787 of yacc.c */
5795 michael 2248 #line 2293 "conf_parser.y"
5796 michael 913 {
5797 michael 967 if (conf_parser_ctx.pass == 2)
5798 michael 1647 strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5799 michael 913 }
5800     break;
5801    
5802 michael 2248 case 431:
5803 michael 1835 /* Line 1787 of yacc.c */
5804 michael 2248 #line 2302 "conf_parser.y"
5805 michael 913 {
5806 michael 967 if (conf_parser_ctx.pass == 2)
5807 michael 1646 reset_block_state();
5808 michael 913 }
5809     break;
5810    
5811 michael 2248 case 432:
5812 michael 1835 /* Line 1787 of yacc.c */
5813 michael 2248 #line 2306 "conf_parser.y"
5814 michael 913 {
5815 michael 1646 struct MaskItem *conf = NULL;
5816    
5817     if (conf_parser_ctx.pass != 2)
5818     break;
5819    
5820     if (!block_state.addr.buf[0])
5821     break;
5822    
5823     if (parse_netmask(block_state.addr.buf, NULL, NULL) != HM_HOST)
5824 michael 913 {
5825 michael 1646 conf = conf_make(CONF_DLINE);
5826     conf->host = xstrdup(block_state.addr.buf);
5827 michael 1005
5828 michael 1647 if (block_state.rpass.buf[0])
5829     conf->reason = xstrdup(block_state.rpass.buf);
5830 michael 1646 else
5831     conf->reason = xstrdup(CONF_NOREASON);
5832     add_conf_by_address(CONF_DLINE, conf);
5833 michael 913 }
5834     }
5835     break;
5836    
5837 michael 2248 case 438:
5838 michael 1835 /* Line 1787 of yacc.c */
5839 michael 2248 #line 2332 "conf_parser.y"
5840 michael 913 {
5841 michael 967 if (conf_parser_ctx.pass == 2)
5842 michael 1646 strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
5843 michael 913 }
5844     break;
5845    
5846 michael 2248 case 439:
5847 michael 1835 /* Line 1787 of yacc.c */
5848 michael 2248 #line 2338 "conf_parser.y"
5849 michael 913 {
5850 michael 967 if (conf_parser_ctx.pass == 2)
5851 michael 1647 strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5852 michael 913 }
5853     break;
5854    
5855 michael 2248 case 445:
5856 michael 1835 /* Line 1787 of yacc.c */
5857 michael 2248 #line 2352 "conf_parser.y"
5858 michael 913 {
5859 michael 967 if (conf_parser_ctx.pass == 2)
5860 michael 913 {
5861     if (yylval.string[0] && parse_netmask(yylval.string, NULL, NULL) != HM_HOST)
5862     {
5863 michael 1646 struct MaskItem *conf = conf_make(CONF_EXEMPT);
5864     conf->host = xstrdup(yylval.string);
5865 michael 913
5866 michael 1646 add_conf_by_address(CONF_EXEMPT, conf);
5867 michael 913 }
5868     }
5869     }
5870     break;
5871    
5872 michael 2248 case 446:
5873 michael 1835 /* Line 1787 of yacc.c */
5874 michael 2248 #line 2369 "conf_parser.y"
5875 michael 913 {
5876 michael 967 if (conf_parser_ctx.pass == 2)
5877 michael 1646 reset_block_state();
5878 michael 913 }
5879     break;
5880    
5881 michael 2248 case 447:
5882 michael 1835 /* Line 1787 of yacc.c */
5883 michael 2248 #line 2373 "conf_parser.y"
5884 michael 913 {
5885 michael 1646 struct MaskItem *conf = NULL;
5886    
5887     if (conf_parser_ctx.pass != 2)
5888     break;
5889    
5890     if (!block_state.name.buf[0])
5891     break;
5892    
5893 michael 1921 conf = conf_make(CONF_XLINE);
5894 michael 1646 conf->name = xstrdup(block_state.name.buf);
5895 michael 913
5896 michael 1647 if (block_state.rpass.buf[0])
5897     conf->reason = xstrdup(block_state.rpass.buf);
5898 michael 1646 else
5899     conf->reason = xstrdup(CONF_NOREASON);
5900 michael 913 }
5901     break;
5902    
5903 michael 2248 case 453:
5904 michael 1835 /* Line 1787 of yacc.c */
5905 michael 2248 #line 2395 "conf_parser.y"
5906 michael 913 {
5907 michael 1646 if (conf_parser_ctx.pass == 2)
5908     strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5909 michael 913 }
5910     break;
5911    
5912 michael 2248 case 454:
5913 michael 1835 /* Line 1787 of yacc.c */
5914 michael 2248 #line 2401 "conf_parser.y"
5915 michael 913 {
5916 michael 967 if (conf_parser_ctx.pass == 2)
5917 michael 1647 strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5918 michael 913 }
5919     break;
5920    
5921 michael 2248 case 506:
5922 michael 1835 /* Line 1787 of yacc.c */
5923 michael 2248 #line 2444 "conf_parser.y"
5924 michael 1118 {
5925     ConfigFileEntry.max_watch = (yyvsp[(3) - (4)].number);
5926     }
5927     break;
5928    
5929 michael 2248 case 507:
5930 michael 1835 /* Line 1787 of yacc.c */
5931 michael 2248 #line 2449 "conf_parser.y"
5932 michael 1118 {
5933 michael 1459 if (conf_parser_ctx.pass == 2)
5934     ConfigFileEntry.glines = yylval.number;
5935     }
5936     break;
5937    
5938 michael 2248 case 508:
5939 michael 1835 /* Line 1787 of yacc.c */
5940 michael 2248 #line 2455 "conf_parser.y"
5941 michael 1459 {
5942     if (conf_parser_ctx.pass == 2)
5943     ConfigFileEntry.gline_time = (yyvsp[(3) - (4)].number);
5944     }
5945     break;
5946    
5947 michael 2248 case 509:
5948 michael 1835 /* Line 1787 of yacc.c */
5949 michael 2248 #line 2461 "conf_parser.y"
5950 michael 1459 {
5951     if (conf_parser_ctx.pass == 2)
5952     ConfigFileEntry.gline_request_time = (yyvsp[(3) - (4)].number);
5953     }
5954     break;
5955    
5956 michael 2248 case 510:
5957 michael 2185 /* Line 1787 of yacc.c */
5958 michael 2248 #line 2467 "conf_parser.y"
5959 michael 2185 {
5960     ConfigFileEntry.gline_min_cidr = (yyvsp[(3) - (4)].number);
5961     }
5962     break;
5963    
5964 michael 2248 case 511:
5965 michael 1992 /* Line 1787 of yacc.c */
5966 michael 2248 #line 2472 "conf_parser.y"
5967 michael 1992 {
5968 michael 2185 ConfigFileEntry.gline_min_cidr6 = (yyvsp[(3) - (4)].number);
5969 michael 1992 }
5970     break;
5971    
5972 michael 2248 case 512:
5973 michael 1835 /* Line 1787 of yacc.c */
5974 michael 2248 #line 2477 "conf_parser.y"
5975 michael 913 {
5976 michael 2185 ConfigFileEntry.tkline_expire_notices = yylval.number;
5977 michael 913 }
5978     break;
5979    
5980 michael 2248 case 513:
5981 michael 1835 /* Line 1787 of yacc.c */
5982 michael 2248 #line 2482 "conf_parser.y"
5983 michael 913 {
5984 michael 2185 ConfigFileEntry.kill_chase_time_limit = (yyvsp[(3) - (4)].number);
5985 michael 913 }
5986     break;
5987    
5988 michael 2248 case 514:
5989 michael 1835 /* Line 1787 of yacc.c */
5990 michael 2248 #line 2487 "conf_parser.y"
5991 michael 913 {
5992 michael 2185 ConfigFileEntry.hide_spoof_ips = yylval.number;
5993 michael 913 }
5994     break;
5995    
5996 michael 2248 case 515:
5997 michael 1835 /* Line 1787 of yacc.c */
5998 michael 2248 #line 2492 "conf_parser.y"
5999 michael 913 {
6000 michael 2185 ConfigFileEntry.ignore_bogus_ts = yylval.number;
6001 michael 913 }
6002     break;
6003    
6004 michael 2248 case 516:
6005 michael 1835 /* Line 1787 of yacc.c */
6006 michael 2248 #line 2497 "conf_parser.y"
6007 michael 913 {
6008 michael 2185 ConfigFileEntry.failed_oper_notice = yylval.number;
6009 michael 913 }
6010     break;
6011    
6012 michael 2248 case 517:
6013 michael 1835 /* Line 1787 of yacc.c */
6014 michael 2248 #line 2502 "conf_parser.y"
6015 michael 913 {
6016 michael 2185 ConfigFileEntry.anti_nick_flood = yylval.number;
6017 michael 913 }
6018     break;
6019    
6020 michael 2248 case 518:
6021 michael 1835 /* Line 1787 of yacc.c */
6022 michael 2248 #line 2507 "conf_parser.y"
6023 michael 913 {
6024 michael 2185 ConfigFileEntry.max_nick_time = (yyvsp[(3) - (4)].number);
6025 michael 913 }
6026     break;
6027    
6028 michael 2248 case 519:
6029 michael 1835 /* Line 1787 of yacc.c */
6030 michael 2248 #line 2512 "conf_parser.y"
6031 michael 913 {
6032 michael 2185 ConfigFileEntry.max_nick_changes = (yyvsp[(3) - (4)].number);
6033 michael 913 }
6034     break;
6035    
6036 michael 2248 case 520:
6037 michael 1835 /* Line 1787 of yacc.c */
6038 michael 2248 #line 2517 "conf_parser.y"
6039 michael 913 {
6040 michael 2185 ConfigFileEntry.max_accept = (yyvsp[(3) - (4)].number);
6041 michael 913 }
6042     break;
6043    
6044 michael 2248 case 521:
6045 michael 1835 /* Line 1787 of yacc.c */
6046 michael 2248 #line 2522 "conf_parser.y"
6047 michael 913 {
6048 michael 2185 ConfigFileEntry.anti_spam_exit_message_time = (yyvsp[(3) - (4)].number);
6049 michael 913 }
6050     break;
6051    
6052 michael 2248 case 522:
6053 michael 1835 /* Line 1787 of yacc.c */
6054 michael 2248 #line 2527 "conf_parser.y"
6055 michael 913 {
6056 michael 2185 ConfigFileEntry.ts_warn_delta = (yyvsp[(3) - (4)].number);
6057 michael 913 }
6058     break;
6059    
6060 michael 2248 case 523:
6061 michael 1835 /* Line 1787 of yacc.c */
6062 michael 2248 #line 2532 "conf_parser.y"
6063 michael 913 {
6064 michael 1519 if (conf_parser_ctx.pass == 2)
6065     ConfigFileEntry.ts_max_delta = (yyvsp[(3) - (4)].number);
6066 michael 913 }
6067     break;
6068    
6069 michael 2248 case 524:
6070 michael 1835 /* Line 1787 of yacc.c */
6071 michael 2248 #line 2538 "conf_parser.y"
6072 michael 913 {
6073 michael 1519 if (((yyvsp[(3) - (4)].number) > 0) && conf_parser_ctx.pass == 1)
6074     {
6075     ilog(LOG_TYPE_IRCD, "You haven't read your config file properly.");
6076     ilog(LOG_TYPE_IRCD, "There is a line in the example conf that will kill your server if not removed.");
6077     ilog(LOG_TYPE_IRCD, "Consider actually reading/editing the conf file, and removing this line.");
6078     exit(0);
6079     }
6080 michael 1460 }
6081     break;
6082    
6083 michael 2248 case 525:
6084 michael 2185 /* Line 1787 of yacc.c */
6085 michael 2248 #line 2549 "conf_parser.y"
6086 michael 2185 {
6087     ConfigFileEntry.invisible_on_connect = yylval.number;
6088     }
6089     break;
6090    
6091 michael 2248 case 526:
6092 michael 1992 /* Line 1787 of yacc.c */
6093 michael 2248 #line 2554 "conf_parser.y"
6094 michael 1992 {
6095 michael 2185 ConfigFileEntry.warn_no_nline = yylval.number;
6096 michael 1992 }
6097     break;
6098    
6099 michael 2248 case 527:
6100 michael 1835 /* Line 1787 of yacc.c */
6101 michael 2248 #line 2559 "conf_parser.y"
6102 michael 913 {
6103 michael 2185 ConfigFileEntry.stats_e_disabled = yylval.number;
6104 michael 913 }
6105     break;
6106    
6107 michael 2248 case 528:
6108 michael 1835 /* Line 1787 of yacc.c */
6109 michael 2248 #line 2564 "conf_parser.y"
6110 michael 913 {
6111 michael 2185 ConfigFileEntry.stats_o_oper_only = yylval.number;
6112 michael 913 }
6113     break;
6114    
6115 michael 2248 case 529:
6116 michael 1835 /* Line 1787 of yacc.c */
6117 michael 2248 #line 2569 "conf_parser.y"
6118 michael 913 {
6119 michael 2185 ConfigFileEntry.stats_P_oper_only = yylval.number;
6120 michael 913 }
6121     break;
6122    
6123 michael 2248 case 530:
6124 michael 1835 /* Line 1787 of yacc.c */
6125 michael 2248 #line 2574 "conf_parser.y"
6126 michael 913 {
6127 michael 2185 ConfigFileEntry.stats_k_oper_only = 2 * yylval.number;
6128 michael 913 }
6129     break;
6130    
6131 michael 2248 case 531:
6132 michael 1835 /* Line 1787 of yacc.c */
6133 michael 2248 #line 2577 "conf_parser.y"
6134 michael 913 {
6135 michael 2185 ConfigFileEntry.stats_k_oper_only = 1;
6136 michael 913 }
6137     break;
6138    
6139 michael 2248 case 532:
6140 michael 1835 /* Line 1787 of yacc.c */
6141 michael 2248 #line 2582 "conf_parser.y"
6142 michael 913 {
6143 michael 2185 ConfigFileEntry.stats_i_oper_only = 2 * yylval.number;
6144 michael 913 }
6145     break;
6146    
6147 michael 2248 case 533:
6148 michael 1835 /* Line 1787 of yacc.c */
6149 michael 2248 #line 2585 "conf_parser.y"
6150 michael 913 {
6151 michael 2185 ConfigFileEntry.stats_i_oper_only = 1;
6152 michael 913 }
6153     break;
6154    
6155 michael 2248 case 534:
6156 michael 1835 /* Line 1787 of yacc.c */
6157 michael 2248 #line 2590 "conf_parser.y"
6158 michael 913 {
6159 michael 2185 ConfigFileEntry.pace_wait = (yyvsp[(3) - (4)].number);
6160 michael 913 }
6161     break;
6162    
6163 michael 2248 case 535:
6164 michael 1835 /* Line 1787 of yacc.c */
6165 michael 2248 #line 2595 "conf_parser.y"
6166 michael 913 {
6167 michael 2185 ConfigFileEntry.caller_id_wait = (yyvsp[(3) - (4)].number);
6168 michael 913 }
6169     break;
6170    
6171 michael 2248 case 536:
6172 michael 1835 /* Line 1787 of yacc.c */
6173 michael 2248 #line 2600 "conf_parser.y"
6174 michael 913 {
6175 michael 2185 ConfigFileEntry.opers_bypass_callerid = yylval.number;
6176 michael 913 }
6177     break;
6178    
6179 michael 2248 case 537:
6180 michael 1835 /* Line 1787 of yacc.c */
6181 michael 2248 #line 2605 "conf_parser.y"
6182 michael 913 {
6183 michael 2185 ConfigFileEntry.pace_wait_simple = (yyvsp[(3) - (4)].number);
6184 michael 913 }
6185     break;
6186    
6187 michael 2248 case 538:
6188 michael 1835 /* Line 1787 of yacc.c */
6189 michael 2248 #line 2610 "conf_parser.y"
6190 michael 913 {
6191 michael 2185 ConfigFileEntry.short_motd = yylval.number;
6192 michael 913 }
6193     break;
6194    
6195 michael 2248 case 539:
6196 michael 1835 /* Line 1787 of yacc.c */
6197 michael 2248 #line 2615 "conf_parser.y"
6198 michael 913 {
6199 michael 2185 ConfigFileEntry.no_oper_flood = yylval.number;
6200 michael 913 }
6201     break;
6202    
6203 michael 2248 case 540:
6204 michael 1835 /* Line 1787 of yacc.c */
6205 michael 2248 #line 2620 "conf_parser.y"
6206 michael 913 {
6207 michael 2185 ConfigFileEntry.true_no_oper_flood = yylval.number;
6208 michael 913 }
6209     break;
6210    
6211 michael 2248 case 541:
6212 michael 1835 /* Line 1787 of yacc.c */
6213 michael 2248 #line 2625 "conf_parser.y"
6214 michael 913 {
6215 michael 2185 ConfigFileEntry.oper_pass_resv = yylval.number;
6216 michael 913 }
6217     break;
6218    
6219 michael 2248 case 542:
6220 michael 1835 /* Line 1787 of yacc.c */
6221 michael 2248 #line 2630 "conf_parser.y"
6222 michael 913 {
6223 michael 2185 ConfigFileEntry.dots_in_ident = (yyvsp[(3) - (4)].number);
6224 michael 1715 }
6225     break;
6226    
6227 michael 2248 case 543:
6228 michael 1835 /* Line 1787 of yacc.c */
6229 michael 2248 #line 2635 "conf_parser.y"
6230 michael 1715 {
6231 michael 2185 ConfigFileEntry.max_targets = (yyvsp[(3) - (4)].number);
6232 michael 913 }
6233     break;
6234    
6235 michael 2248 case 544:
6236 michael 1835 /* Line 1787 of yacc.c */
6237 michael 2248 #line 2640 "conf_parser.y"
6238 michael 913 {
6239 michael 2185 ConfigFileEntry.use_egd = yylval.number;
6240 michael 913 }
6241     break;
6242    
6243 michael 2248 case 545:
6244 michael 1835 /* Line 1787 of yacc.c */
6245 michael 2248 #line 2645 "conf_parser.y"
6246 michael 913 {
6247 michael 967 if (conf_parser_ctx.pass == 2)
6248 michael 913 {
6249     MyFree(ConfigFileEntry.egdpool_path);
6250 michael 1646 ConfigFileEntry.egdpool_path = xstrdup(yylval.string);
6251 michael 913 }
6252     }
6253     break;
6254    
6255 michael 2248 case 546:
6256 michael 1835 /* Line 1787 of yacc.c */
6257 michael 2248 #line 2654 "conf_parser.y"
6258 michael 913 {
6259 michael 1176 if (conf_parser_ctx.pass == 2 && valid_servname(yylval.string))
6260 michael 1157 {
6261     MyFree(ConfigFileEntry.service_name);
6262 michael 1646 ConfigFileEntry.service_name = xstrdup(yylval.string);
6263 michael 1157 }
6264     }
6265     break;
6266    
6267 michael 2248 case 547:
6268 michael 1835 /* Line 1787 of yacc.c */
6269 michael 2248 #line 2663 "conf_parser.y"
6270 michael 1157 {
6271 michael 913 ConfigFileEntry.ping_cookie = yylval.number;
6272     }
6273     break;
6274    
6275 michael 2248 case 548:
6276 michael 1835 /* Line 1787 of yacc.c */
6277 michael 2248 #line 2668 "conf_parser.y"
6278 michael 913 {
6279     ConfigFileEntry.disable_auth = yylval.number;
6280     }
6281     break;
6282    
6283 michael 2248 case 549:
6284 michael 1835 /* Line 1787 of yacc.c */
6285 michael 2248 #line 2673 "conf_parser.y"
6286 michael 913 {
6287     ConfigFileEntry.throttle_time = yylval.number;
6288     }
6289     break;
6290    
6291 michael 2248 case 550:
6292 michael 1835 /* Line 1787 of yacc.c */
6293 michael 2248 #line 2678 "conf_parser.y"
6294 michael 913 {
6295     ConfigFileEntry.oper_umodes = 0;
6296     }
6297     break;
6298    
6299 michael 2248 case 554:
6300 michael 2196 /* Line 1787 of yacc.c */
6301 michael 2248 #line 2684 "conf_parser.y"
6302 michael 2196 {
6303     ConfigFileEntry.oper_umodes |= UMODE_BOTS;
6304     }
6305     break;
6306    
6307 michael 2248 case 555:
6308 michael 2196 /* Line 1787 of yacc.c */
6309 michael 2248 #line 2687 "conf_parser.y"
6310 michael 2196 {
6311     ConfigFileEntry.oper_umodes |= UMODE_CCONN;
6312     }
6313     break;
6314    
6315 michael 2248 case 556:
6316 michael 1835 /* Line 1787 of yacc.c */
6317 michael 2248 #line 2690 "conf_parser.y"
6318 michael 1547 {
6319 michael 2196 ConfigFileEntry.oper_umodes |= UMODE_DEAF;
6320 michael 1547 }
6321     break;
6322    
6323 michael 2248 case 557:
6324 michael 1835 /* Line 1787 of yacc.c */
6325 michael 2248 #line 2693 "conf_parser.y"
6326 michael 1547 {
6327 michael 2196 ConfigFileEntry.oper_umodes |= UMODE_DEBUG;
6328 michael 1547 }
6329     break;
6330    
6331 michael 2248 case 558:
6332 michael 1835 /* Line 1787 of yacc.c */
6333 michael 2248 #line 2696 "conf_parser.y"
6334 michael 913 {
6335 michael 2196 ConfigFileEntry.oper_umodes |= UMODE_FULL;
6336 michael 913 }
6337     break;
6338    
6339 michael 2248 case 559:
6340 michael 1835 /* Line 1787 of yacc.c */
6341 michael 2248 #line 2699 "conf_parser.y"
6342 michael 913 {
6343 michael 2196 ConfigFileEntry.oper_umodes |= UMODE_HIDDEN;
6344 michael 913 }
6345     break;
6346    
6347 michael 2248 case 560:
6348 michael 1835 /* Line 1787 of yacc.c */
6349 michael 2248 #line 2702 "conf_parser.y"
6350 michael 913 {
6351 michael 2196 ConfigFileEntry.oper_umodes |= UMODE_SKILL;
6352 michael 913 }
6353     break;
6354    
6355 michael 2248 case 561:
6356 michael 1835 /* Line 1787 of yacc.c */
6357 michael 2248 #line 2705 "conf_parser.y"
6358 michael 913 {
6359 michael 2196 ConfigFileEntry.oper_umodes |= UMODE_NCHANGE;
6360 michael 913 }
6361     break;
6362    
6363 michael 2248 case 562:
6364 michael 1835 /* Line 1787 of yacc.c */
6365 michael 2248 #line 2708 "conf_parser.y"
6366 michael 913 {
6367 michael 2196 ConfigFileEntry.oper_umodes |= UMODE_REJ;
6368 michael 913 }
6369     break;
6370    
6371 michael 2248 case 563:
6372 michael 1835 /* Line 1787 of yacc.c */
6373 michael 2248 #line 2711 "conf_parser.y"
6374 michael 1294 {
6375 michael 2196 ConfigFileEntry.oper_umodes |= UMODE_UNAUTH;
6376 michael 1294 }
6377     break;
6378    
6379 michael 2248 case 564:
6380 michael 1835 /* Line 1787 of yacc.c */
6381 michael 2248 #line 2714 "conf_parser.y"
6382 michael 913 {
6383 michael 2196 ConfigFileEntry.oper_umodes |= UMODE_SPY;
6384 michael 913 }
6385     break;
6386    
6387 michael 2248 case 565:
6388 michael 1835 /* Line 1787 of yacc.c */
6389 michael 2248 #line 2717 "conf_parser.y"
6390 michael 913 {
6391 michael 2196 ConfigFileEntry.oper_umodes |= UMODE_EXTERNAL;
6392 michael 913 }
6393     break;
6394    
6395 michael 2248 case 566:
6396 michael 1835 /* Line 1787 of yacc.c */
6397 michael 2248 #line 2720 "conf_parser.y"
6398 michael 913 {
6399 michael 2196 ConfigFileEntry.oper_umodes |= UMODE_OPERWALL;
6400 michael 913 }
6401     break;
6402    
6403 michael 2248 case 567:
6404 michael 1835 /* Line 1787 of yacc.c */
6405 michael 2248 #line 2723 "conf_parser.y"
6406 michael 913 {
6407 michael 2196 ConfigFileEntry.oper_umodes |= UMODE_SERVNOTICE;
6408 michael 913 }
6409     break;
6410    
6411 michael 2248 case 568:
6412 michael 1835 /* Line 1787 of yacc.c */
6413 michael 2248 #line 2726 "conf_parser.y"
6414 michael 913 {
6415 michael 2196 ConfigFileEntry.oper_umodes |= UMODE_INVISIBLE;
6416 michael 913 }
6417     break;
6418    
6419 michael 2248 case 569:
6420 michael 1835 /* Line 1787 of yacc.c */
6421 michael 2248 #line 2729 "conf_parser.y"
6422 michael 913 {
6423 michael 2196 ConfigFileEntry.oper_umodes |= UMODE_WALLOP;
6424 michael 913 }
6425     break;
6426    
6427 michael 2248 case 570:
6428 michael 1835 /* Line 1787 of yacc.c */
6429 michael 2248 #line 2732 "conf_parser.y"
6430 michael 913 {
6431 michael 2196 ConfigFileEntry.oper_umodes |= UMODE_SOFTCALLERID;
6432 michael 913 }
6433     break;
6434    
6435 michael 2248 case 571:
6436 michael 1835 /* Line 1787 of yacc.c */
6437 michael 2248 #line 2735 "conf_parser.y"
6438 michael 913 {
6439 michael 2196 ConfigFileEntry.oper_umodes |= UMODE_CALLERID;
6440 michael 913 }
6441     break;
6442    
6443 michael 2248 case 572:
6444 michael 1835 /* Line 1787 of yacc.c */
6445 michael 2248 #line 2738 "conf_parser.y"
6446 michael 913 {
6447 michael 2196 ConfigFileEntry.oper_umodes |= UMODE_LOCOPS;
6448 michael 913 }
6449     break;
6450    
6451 michael 2248 case 573:
6452 michael 1835 /* Line 1787 of yacc.c */
6453 michael 2248 #line 2741 "conf_parser.y"
6454 michael 913 {
6455 michael 2196 ConfigFileEntry.oper_umodes |= UMODE_REGONLY;
6456 michael 913 }
6457     break;
6458    
6459 michael 2248 case 574:
6460 michael 1835 /* Line 1787 of yacc.c */
6461 michael 2248 #line 2744 "conf_parser.y"
6462 michael 913 {
6463 michael 2196 ConfigFileEntry.oper_umodes |= UMODE_FARCONNECT;
6464 michael 913 }
6465     break;
6466    
6467 michael 2248 case 575:
6468 michael 1835 /* Line 1787 of yacc.c */
6469 michael 2248 #line 2749 "conf_parser.y"
6470 michael 913 {
6471 michael 2196 ConfigFileEntry.oper_only_umodes = 0;
6472 michael 913 }
6473     break;
6474    
6475 michael 2248 case 579:
6476 michael 1835 /* Line 1787 of yacc.c */
6477 michael 2248 #line 2755 "conf_parser.y"
6478 michael 913 {
6479 michael 2196 ConfigFileEntry.oper_only_umodes |= UMODE_BOTS;
6480 michael 1981 }
6481     break;
6482    
6483 michael 2248 case 580:
6484 michael 1981 /* Line 1787 of yacc.c */
6485 michael 2248 #line 2758 "conf_parser.y"
6486 michael 1981 {
6487 michael 2196 ConfigFileEntry.oper_only_umodes |= UMODE_CCONN;
6488 michael 1981 }
6489     break;
6490    
6491 michael 2248 case 581:
6492 michael 1981 /* Line 1787 of yacc.c */
6493 michael 2248 #line 2761 "conf_parser.y"
6494 michael 1981 {
6495 michael 2196 ConfigFileEntry.oper_only_umodes |= UMODE_DEAF;
6496 michael 913 }
6497     break;
6498    
6499 michael 2248 case 582:
6500 michael 1835 /* Line 1787 of yacc.c */
6501 michael 2248 #line 2764 "conf_parser.y"
6502 michael 913 {
6503 michael 2196 ConfigFileEntry.oper_only_umodes |= UMODE_DEBUG;
6504 michael 913 }
6505     break;
6506    
6507 michael 2248 case 583:
6508 michael 1835 /* Line 1787 of yacc.c */
6509 michael 2248 #line 2767 "conf_parser.y"
6510 michael 2196 {
6511     ConfigFileEntry.oper_only_umodes |= UMODE_FULL;
6512 michael 913 }
6513     break;
6514    
6515 michael 2248 case 584:
6516 michael 1835 /* Line 1787 of yacc.c */
6517 michael 2248 #line 2770 "conf_parser.y"
6518 michael 913 {
6519 michael 2196 ConfigFileEntry.oper_only_umodes |= UMODE_SKILL;
6520 michael 913 }
6521     break;
6522    
6523 michael 2248 case 585:
6524 michael 1835 /* Line 1787 of yacc.c */
6525 michael 2248 #line 2773 "conf_parser.y"
6526 michael 2196 {
6527     ConfigFileEntry.oper_only_umodes |= UMODE_HIDDEN;
6528 michael 913 }
6529     break;
6530    
6531 michael 2248 case 586:
6532 michael 1835 /* Line 1787 of yacc.c */
6533 michael 2248 #line 2776 "conf_parser.y"
6534 michael 913 {
6535 michael 2196 ConfigFileEntry.oper_only_umodes |= UMODE_NCHANGE;
6536 michael 913 }
6537     break;
6538    
6539 michael 2248 case 587:
6540 michael 1835 /* Line 1787 of yacc.c */
6541 michael 2248 #line 2779 "conf_parser.y"
6542 michael 1547 {
6543 michael 2196 ConfigFileEntry.oper_only_umodes |= UMODE_REJ;
6544 michael 913 }
6545     break;
6546    
6547 michael 2248 case 588:
6548 michael 1835 /* Line 1787 of yacc.c */
6549 michael 2248 #line 2782 "conf_parser.y"
6550 michael 913 {
6551 michael 2196 ConfigFileEntry.oper_only_umodes |= UMODE_UNAUTH;
6552 michael 913 }
6553     break;
6554    
6555 michael 2248 case 589:
6556 michael 1835 /* Line 1787 of yacc.c */
6557 michael 2248 #line 2785 "conf_parser.y"
6558 michael 1294 {
6559 michael 2196 ConfigFileEntry.oper_only_umodes |= UMODE_SPY;
6560 michael 1294 }
6561     break;
6562    
6563 michael 2248 case 590:
6564 michael 1835 /* Line 1787 of yacc.c */
6565 michael 2248 #line 2788 "conf_parser.y"
6566 michael 913 {
6567 michael 2196 ConfigFileEntry.oper_only_umodes |= UMODE_EXTERNAL;
6568 michael 913 }
6569     break;
6570    
6571 michael 2248 case 591:
6572 michael 1835 /* Line 1787 of yacc.c */
6573 michael 2248 #line 2791 "conf_parser.y"
6574 michael 913 {
6575 michael 2196 ConfigFileEntry.oper_only_umodes |= UMODE_OPERWALL;
6576 michael 913 }
6577     break;
6578    
6579 michael 2248 case 592:
6580 michael 1835 /* Line 1787 of yacc.c */
6581 michael 2248 #line 2794 "conf_parser.y"
6582 michael 913 {
6583 michael 2196 ConfigFileEntry.oper_only_umodes |= UMODE_SERVNOTICE;
6584 michael 913 }
6585     break;
6586    
6587 michael 2248 case 593:
6588 michael 1835 /* Line 1787 of yacc.c */
6589 michael 2248 #line 2797 "conf_parser.y"
6590 michael 913 {
6591 michael 2196 ConfigFileEntry.oper_only_umodes |= UMODE_INVISIBLE;
6592 michael 913 }
6593     break;
6594    
6595 michael 2248 case 594:
6596 michael 1835 /* Line 1787 of yacc.c */
6597 michael 2248 #line 2800 "conf_parser.y"
6598 michael 913 {
6599 michael 2196 ConfigFileEntry.oper_only_umodes |= UMODE_WALLOP;
6600 michael 913 }
6601     break;
6602    
6603 michael 2248 case 595:
6604 michael 1835 /* Line 1787 of yacc.c */
6605 michael 2248 #line 2803 "conf_parser.y"
6606 michael 913 {
6607 michael 2196 ConfigFileEntry.oper_only_umodes |= UMODE_SOFTCALLERID;
6608 michael 913 }
6609     break;
6610    
6611 michael 2248 case 596:
6612 michael 1835 /* Line 1787 of yacc.c */
6613 michael 2248 #line 2806 "conf_parser.y"
6614 michael 913 {
6615 michael 2196 ConfigFileEntry.oper_only_umodes |= UMODE_CALLERID;
6616 michael 913 }
6617     break;
6618    
6619 michael 2248 case 597:
6620 michael 1835 /* Line 1787 of yacc.c */
6621 michael 2248 #line 2809 "conf_parser.y"
6622 michael 913 {
6623 michael 2196 ConfigFileEntry.oper_only_umodes |= UMODE_LOCOPS;
6624 michael 913 }
6625     break;
6626    
6627 michael 2248 case 598:
6628 michael 1835 /* Line 1787 of yacc.c */
6629 michael 2248 #line 2812 "conf_parser.y"
6630 michael 913 {
6631 michael 2196 ConfigFileEntry.oper_only_umodes |= UMODE_REGONLY;
6632 michael 913 }
6633     break;
6634    
6635 michael 2248 case 599:
6636 michael 1835 /* Line 1787 of yacc.c */
6637 michael 2248 #line 2815 "conf_parser.y"
6638 michael 913 {
6639 michael 2196 ConfigFileEntry.oper_only_umodes |= UMODE_FARCONNECT;
6640 michael 913 }
6641     break;
6642    
6643 michael 2248 case 600:
6644 michael 1904 /* Line 1787 of yacc.c */
6645 michael 2248 #line 2820 "conf_parser.y"
6646 michael 1904 {
6647 michael 2196 ConfigFileEntry.min_nonwildcard = (yyvsp[(3) - (4)].number);
6648 michael 1904 }
6649     break;
6650    
6651 michael 2248 case 601:
6652 michael 1992 /* Line 1787 of yacc.c */
6653 michael 2248 #line 2825 "conf_parser.y"
6654 michael 1992 {
6655 michael 2196 ConfigFileEntry.min_nonwildcard_simple = (yyvsp[(3) - (4)].number);
6656 michael 1992 }
6657     break;
6658    
6659 michael 2248 case 602:
6660 michael 1835 /* Line 1787 of yacc.c */
6661 michael 2248 #line 2830 "conf_parser.y"
6662 michael 913 {
6663 michael 2196 ConfigFileEntry.default_floodcount = (yyvsp[(3) - (4)].number);
6664 michael 1981 }
6665     break;
6666    
6667 michael 2248 case 619:
6668 michael 1981 /* Line 1787 of yacc.c */
6669 michael 2248 #line 2853 "conf_parser.y"
6670 michael 1981 {
6671 michael 2196 ConfigChannel.disable_fake_channels = yylval.number;
6672 michael 1855 }
6673     break;
6674    
6675 michael 2248 case 620:
6676 michael 1855 /* Line 1787 of yacc.c */
6677 michael 2248 #line 2858 "conf_parser.y"
6678 michael 1855 {
6679 michael 2196 ConfigChannel.knock_delay = (yyvsp[(3) - (4)].number);
6680 michael 913 }
6681     break;
6682    
6683 michael 2248 case 621:
6684 michael 1835 /* Line 1787 of yacc.c */
6685 michael 2248 #line 2863 "conf_parser.y"
6686 michael 913 {
6687 michael 2196 ConfigChannel.knock_delay_channel = (yyvsp[(3) - (4)].number);
6688 michael 913 }
6689     break;
6690    
6691 michael 2248 case 622:
6692 michael 1835 /* Line 1787 of yacc.c */
6693 michael 2248 #line 2868 "conf_parser.y"
6694 michael 1519 {
6695 michael 2196 ConfigChannel.max_chans_per_user = (yyvsp[(3) - (4)].number);
6696 michael 1519 }
6697     break;
6698    
6699 michael 2248 case 623:
6700 michael 1835 /* Line 1787 of yacc.c */
6701 michael 2248 #line 2873 "conf_parser.y"
6702 michael 1519 {
6703 michael 2196 ConfigChannel.max_chans_per_oper = (yyvsp[(3) - (4)].number);
6704 michael 1519 }
6705     break;
6706    
6707 michael 2248 case 624:
6708 michael 1835 /* Line 1787 of yacc.c */
6709 michael 2248 #line 2878 "conf_parser.y"
6710 michael 1118 {
6711 michael 2196 ConfigChannel.max_bans = (yyvsp[(3) - (4)].number);
6712 michael 913 }
6713     break;
6714    
6715 michael 2248 case 625:
6716 michael 1835 /* Line 1787 of yacc.c */
6717 michael 2248 #line 2883 "conf_parser.y"
6718 michael 913 {
6719 michael 2196 ConfigChannel.default_split_user_count = (yyvsp[(3) - (4)].number);
6720 michael 913 }
6721     break;
6722    
6723 michael 2248 case 626:
6724 michael 1835 /* Line 1787 of yacc.c */
6725 michael 2248 #line 2888 "conf_parser.y"
6726 michael 913 {
6727 michael 2196 ConfigChannel.default_split_server_count = (yyvsp[(3) - (4)].number);
6728 michael 913 }
6729     break;
6730    
6731 michael 2248 case 627:
6732 michael 1835 /* Line 1787 of yacc.c */
6733 michael 2248 #line 2893 "conf_parser.y"
6734 michael 913 {
6735 michael 2196 ConfigChannel.no_create_on_split = yylval.number;
6736 michael 913 }
6737     break;
6738    
6739 michael 2248 case 628:
6740 michael 1835 /* Line 1787 of yacc.c */
6741 michael 2248 #line 2898 "conf_parser.y"
6742 michael 913 {
6743 michael 2196 ConfigChannel.no_join_on_split = yylval.number;
6744 michael 913 }
6745     break;
6746    
6747 michael 2248 case 629:
6748 michael 1835 /* Line 1787 of yacc.c */
6749 michael 2248 #line 2903 "conf_parser.y"
6750 michael 913 {
6751 michael 2196 GlobalSetOptions.joinfloodcount = yylval.number;
6752 michael 913 }
6753     break;
6754    
6755 michael 2248 case 630:
6756 michael 1835 /* Line 1787 of yacc.c */
6757 michael 2248 #line 2908 "conf_parser.y"
6758 michael 913 {
6759 michael 2196 GlobalSetOptions.joinfloodtime = yylval.number;
6760 michael 913 }
6761     break;
6762    
6763 michael 2248 case 643:
6764 michael 1835 /* Line 1787 of yacc.c */
6765 michael 2248 #line 2928 "conf_parser.y"
6766 michael 913 {
6767 michael 2196 if (conf_parser_ctx.pass == 2)
6768     ConfigServerHide.flatten_links = yylval.number;
6769 michael 913 }
6770     break;
6771    
6772 michael 2248 case 644:
6773 michael 1835 /* Line 1787 of yacc.c */
6774 michael 2248 #line 2934 "conf_parser.y"
6775 michael 913 {
6776 michael 967 if (conf_parser_ctx.pass == 2)
6777 michael 2196 ConfigServerHide.disable_remote_commands = yylval.number;
6778 michael 913 }
6779     break;
6780    
6781 michael 2248 case 645:
6782 michael 1835 /* Line 1787 of yacc.c */
6783 michael 2248 #line 2940 "conf_parser.y"
6784 michael 913 {
6785 michael 967 if (conf_parser_ctx.pass == 2)
6786 michael 913 ConfigServerHide.hide_servers = yylval.number;
6787     }
6788     break;
6789    
6790 michael 2248 case 646:
6791 michael 1835 /* Line 1787 of yacc.c */
6792 michael 2248 #line 2946 "conf_parser.y"
6793 michael 913 {
6794 michael 967 if (conf_parser_ctx.pass == 2)
6795 michael 1851 ConfigServerHide.hide_services = yylval.number;
6796     }
6797     break;
6798    
6799 michael 2248 case 647:
6800 michael 1851 /* Line 1787 of yacc.c */
6801 michael 2248 #line 2952 "conf_parser.y"
6802 michael 1851 {
6803     if (conf_parser_ctx.pass == 2)
6804 michael 913 {
6805     MyFree(ConfigServerHide.hidden_name);
6806 michael 1646 ConfigServerHide.hidden_name = xstrdup(yylval.string);
6807 michael 913 }
6808     }
6809     break;
6810    
6811 michael 2248 case 648:
6812 michael 1835 /* Line 1787 of yacc.c */
6813 michael 2248 #line 2961 "conf_parser.y"
6814 michael 913 {
6815 michael 967 if (conf_parser_ctx.pass == 2)
6816 michael 913 {
6817     if (((yyvsp[(3) - (4)].number) > 0) && ConfigServerHide.links_disabled == 1)
6818     {
6819     eventAddIsh("write_links_file", write_links_file, NULL, (yyvsp[(3) - (4)].number));
6820     ConfigServerHide.links_disabled = 0;
6821     }
6822    
6823     ConfigServerHide.links_delay = (yyvsp[(3) - (4)].number);
6824     }
6825     }
6826     break;
6827    
6828 michael 2248 case 649:
6829 michael 1835 /* Line 1787 of yacc.c */
6830 michael 2248 #line 2975 "conf_parser.y"
6831 michael 913 {
6832 michael 967 if (conf_parser_ctx.pass == 2)
6833 michael 913 ConfigServerHide.hidden = yylval.number;
6834     }
6835     break;
6836    
6837 michael 2248 case 650:
6838 michael 1835 /* Line 1787 of yacc.c */
6839 michael 2248 #line 2981 "conf_parser.y"
6840 michael 913 {
6841 michael 967 if (conf_parser_ctx.pass == 2)
6842 michael 913 ConfigServerHide.hide_server_ips = yylval.number;
6843     }
6844     break;
6845    
6846    
6847 michael 1835 /* Line 1787 of yacc.c */
6848 michael 2248 #line 6849 "conf_parser.c"
6849 michael 913 default: break;
6850     }
6851 michael 1133 /* User semantic actions sometimes alter yychar, and that requires
6852     that yytoken be updated with the new translation. We take the
6853     approach of translating immediately before every use of yytoken.
6854     One alternative is translating here after every semantic action,
6855     but that translation would be missed if the semantic action invokes
6856     YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
6857     if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an
6858     incorrect destructor might then be invoked immediately. In the
6859     case of YYERROR or YYBACKUP, subsequent parser actions might lead
6860     to an incorrect destructor call or verbose syntax error message
6861     before the lookahead is translated. */
6862 michael 913 YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
6863    
6864     YYPOPSTACK (yylen);
6865     yylen = 0;
6866     YY_STACK_PRINT (yyss, yyssp);
6867    
6868     *++yyvsp = yyval;
6869    
6870     /* Now `shift' the result of the reduction. Determine what state
6871     that goes to, based on the state we popped back to and the rule
6872     number reduced by. */
6873    
6874     yyn = yyr1[yyn];
6875    
6876     yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
6877     if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
6878     yystate = yytable[yystate];
6879     else
6880     yystate = yydefgoto[yyn - YYNTOKENS];
6881    
6882     goto yynewstate;
6883    
6884    
6885     /*------------------------------------.
6886     | yyerrlab -- here on detecting error |
6887     `------------------------------------*/
6888     yyerrlab:
6889 michael 1133 /* Make sure we have latest lookahead translation. See comments at
6890     user semantic actions for why this is necessary. */
6891     yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
6892    
6893 michael 913 /* If not already recovering from an error, report this error. */
6894     if (!yyerrstatus)
6895     {
6896     ++yynerrs;
6897     #if ! YYERROR_VERBOSE
6898     yyerror (YY_("syntax error"));
6899     #else
6900 michael 1133 # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
6901     yyssp, yytoken)
6902 michael 913 {
6903 michael 1133 char const *yymsgp = YY_("syntax error");
6904     int yysyntax_error_status;
6905     yysyntax_error_status = YYSYNTAX_ERROR;
6906     if (yysyntax_error_status == 0)
6907     yymsgp = yymsg;
6908     else if (yysyntax_error_status == 1)
6909     {
6910     if (yymsg != yymsgbuf)
6911     YYSTACK_FREE (yymsg);
6912     yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
6913     if (!yymsg)
6914     {
6915     yymsg = yymsgbuf;
6916     yymsg_alloc = sizeof yymsgbuf;
6917     yysyntax_error_status = 2;
6918     }
6919     else
6920     {
6921     yysyntax_error_status = YYSYNTAX_ERROR;
6922     yymsgp = yymsg;
6923     }
6924     }
6925     yyerror (yymsgp);
6926     if (yysyntax_error_status == 2)
6927     goto yyexhaustedlab;
6928 michael 913 }
6929 michael 1133 # undef YYSYNTAX_ERROR
6930 michael 913 #endif
6931     }
6932    
6933    
6934    
6935     if (yyerrstatus == 3)
6936     {
6937 michael 967 /* If just tried and failed to reuse lookahead token after an
6938 michael 913 error, discard it. */
6939    
6940     if (yychar <= YYEOF)
6941     {
6942     /* Return failure if at end of input. */
6943     if (yychar == YYEOF)
6944     YYABORT;
6945     }
6946     else
6947     {
6948     yydestruct ("Error: discarding",
6949     yytoken, &yylval);
6950     yychar = YYEMPTY;
6951     }
6952     }
6953    
6954 michael 967 /* Else will try to reuse lookahead token after shifting the error
6955 michael 913 token. */
6956     goto yyerrlab1;
6957    
6958    
6959     /*---------------------------------------------------.
6960     | yyerrorlab -- error raised explicitly by YYERROR. |
6961     `---------------------------------------------------*/
6962     yyerrorlab:
6963    
6964     /* Pacify compilers like GCC when the user code never invokes
6965     YYERROR and the label yyerrorlab therefore never appears in user
6966     code. */
6967     if (/*CONSTCOND*/ 0)
6968     goto yyerrorlab;
6969    
6970     /* Do not reclaim the symbols of the rule which action triggered
6971     this YYERROR. */
6972     YYPOPSTACK (yylen);
6973     yylen = 0;
6974     YY_STACK_PRINT (yyss, yyssp);
6975     yystate = *yyssp;
6976     goto yyerrlab1;
6977    
6978    
6979     /*-------------------------------------------------------------.
6980     | yyerrlab1 -- common code for both syntax error and YYERROR. |
6981     `-------------------------------------------------------------*/
6982     yyerrlab1:
6983     yyerrstatus = 3; /* Each real token shifted decrements this. */
6984    
6985     for (;;)
6986     {
6987     yyn = yypact[yystate];
6988 michael 1133 if (!yypact_value_is_default (yyn))
6989 michael 913 {
6990     yyn += YYTERROR;
6991     if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
6992     {
6993     yyn = yytable[yyn];
6994     if (0 < yyn)
6995     break;
6996     }
6997     }
6998    
6999     /* Pop the current state because it cannot handle the error token. */
7000     if (yyssp == yyss)
7001     YYABORT;
7002    
7003    
7004     yydestruct ("Error: popping",
7005     yystos[yystate], yyvsp);
7006     YYPOPSTACK (1);
7007     yystate = *yyssp;
7008     YY_STACK_PRINT (yyss, yyssp);
7009     }
7010    
7011 michael 1619 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
7012 michael 913 *++yyvsp = yylval;
7013 michael 1619 YY_IGNORE_MAYBE_UNINITIALIZED_END
7014 michael 913
7015    
7016     /* Shift the error token. */
7017     YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
7018    
7019     yystate = yyn;
7020     goto yynewstate;
7021    
7022    
7023     /*-------------------------------------.
7024     | yyacceptlab -- YYACCEPT comes here. |
7025     `-------------------------------------*/
7026     yyacceptlab:
7027     yyresult = 0;
7028     goto yyreturn;
7029    
7030     /*-----------------------------------.
7031     | yyabortlab -- YYABORT comes here. |
7032     `-----------------------------------*/
7033     yyabortlab:
7034     yyresult = 1;
7035     goto yyreturn;
7036    
7037 michael 1425 #if !defined yyoverflow || YYERROR_VERBOSE
7038 michael 913 /*-------------------------------------------------.
7039     | yyexhaustedlab -- memory exhaustion comes here. |
7040     `-------------------------------------------------*/
7041     yyexhaustedlab:
7042     yyerror (YY_("memory exhausted"));
7043     yyresult = 2;
7044     /* Fall through. */
7045     #endif
7046    
7047     yyreturn:
7048 michael 967 if (yychar != YYEMPTY)
7049 michael 1133 {
7050     /* Make sure we have latest lookahead translation. See comments at
7051     user semantic actions for why this is necessary. */
7052     yytoken = YYTRANSLATE (yychar);
7053     yydestruct ("Cleanup: discarding lookahead",
7054     yytoken, &yylval);
7055     }
7056 michael 913 /* Do not reclaim the symbols of the rule which action triggered
7057     this YYABORT or YYACCEPT. */
7058     YYPOPSTACK (yylen);
7059     YY_STACK_PRINT (yyss, yyssp);
7060     while (yyssp != yyss)
7061     {
7062     yydestruct ("Cleanup: popping",
7063     yystos[*yyssp], yyvsp);
7064     YYPOPSTACK (1);
7065     }
7066     #ifndef yyoverflow
7067     if (yyss != yyssa)
7068     YYSTACK_FREE (yyss);
7069     #endif
7070     #if YYERROR_VERBOSE
7071     if (yymsg != yymsgbuf)
7072     YYSTACK_FREE (yymsg);
7073     #endif
7074     /* Make sure YYID is used. */
7075     return YYID (yyresult);
7076     }
7077    
7078    

Properties

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