ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/svn/ircd-hybrid/trunk/src/conf_parser.c
Revision: 2252
Committed: Sun Jun 16 13:29:13 2013 UTC (12 years, 2 months ago) by michael
Content type: text/x-csrc
File size: 225762 byte(s)
Log Message:
- conf_parser.y: don't attempt to copy ciphers if there aren't any

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 michael 2252 2019, 2023, 2027, 2037, 2036, 2107, 2107, 2108, 2108, 2108,
1326     2109, 2109, 2110, 2111, 2111, 2111, 2112, 2112, 2112, 2113,
1327     2113, 2114, 2116, 2122, 2128, 2134, 2147, 2160, 2166, 2172,
1328     2176, 2185, 2184, 2189, 2189, 2190, 2194, 2200, 2211, 2217,
1329     2223, 2229, 2245, 2244, 2270, 2270, 2271, 2271, 2271, 2273,
1330     2293, 2303, 2302, 2329, 2329, 2330, 2330, 2330, 2332, 2338,
1331     2347, 2349, 2349, 2350, 2350, 2352, 2370, 2369, 2392, 2392,
1332     2393, 2393, 2393, 2395, 2401, 2410, 2413, 2413, 2414, 2414,
1333     2415, 2415, 2416, 2416, 2417, 2417, 2418, 2418, 2419, 2420,
1334     2421, 2421, 2422, 2422, 2423, 2423, 2424, 2424, 2425, 2425,
1335     2426, 2426, 2427, 2427, 2428, 2428, 2429, 2429, 2430, 2430,
1336     2431, 2431, 2432, 2432, 2433, 2434, 2435, 2435, 2436, 2436,
1337     2437, 2438, 2439, 2440, 2440, 2441, 2444, 2449, 2455, 2461,
1338     2467, 2472, 2477, 2482, 2487, 2492, 2497, 2502, 2507, 2512,
1339     2517, 2522, 2527, 2532, 2538, 2549, 2554, 2559, 2564, 2569,
1340     2574, 2577, 2582, 2585, 2590, 2595, 2600, 2605, 2610, 2615,
1341     2620, 2625, 2630, 2635, 2640, 2645, 2654, 2663, 2668, 2673,
1342     2679, 2678, 2683, 2683, 2684, 2687, 2690, 2693, 2696, 2699,
1343     2702, 2705, 2708, 2711, 2714, 2717, 2720, 2723, 2726, 2729,
1344     2732, 2735, 2738, 2741, 2744, 2750, 2749, 2754, 2754, 2755,
1345     2758, 2761, 2764, 2767, 2770, 2773, 2776, 2779, 2782, 2785,
1346     2788, 2791, 2794, 2797, 2800, 2803, 2806, 2809, 2812, 2815,
1347     2820, 2825, 2830, 2839, 2842, 2842, 2843, 2844, 2844, 2845,
1348     2845, 2846, 2847, 2848, 2849, 2850, 2850, 2851, 2851, 2853,
1349     2858, 2863, 2868, 2873, 2878, 2883, 2888, 2893, 2898, 2903,
1350     2908, 2916, 2919, 2919, 2920, 2920, 2921, 2922, 2923, 2924,
1351     2924, 2925, 2926, 2928, 2934, 2940, 2946, 2952, 2961, 2975,
1352     2981
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 2252 if (block_state.ciph.buf[0])
5528     conf->cipher_list = xstrdup(block_state.ciph.buf);
5529 michael 1647
5530     dlinkMoveList(&block_state.leaf.list, &conf->leaf_list);
5531     dlinkMoveList(&block_state.hub.list, &conf->hub_list);
5532    
5533     if (block_state.bind.buf[0])
5534 michael 913 {
5535 michael 1647 memset(&hints, 0, sizeof(hints));
5536    
5537     hints.ai_family = AF_UNSPEC;
5538     hints.ai_socktype = SOCK_STREAM;
5539     hints.ai_flags = AI_PASSIVE | AI_NUMERICHOST;
5540    
5541     if (getaddrinfo(block_state.bind.buf, NULL, &hints, &res))
5542     ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost(%s)", block_state.bind.buf);
5543 michael 1302 else
5544     {
5545 michael 1647 assert(res != NULL);
5546 michael 913
5547 michael 1647 memcpy(&conf->bind, res->ai_addr, res->ai_addrlen);
5548     conf->bind.ss.ss_family = res->ai_family;
5549     conf->bind.ss_len = res->ai_addrlen;
5550     freeaddrinfo(res);
5551 michael 1302 }
5552 michael 1647 }
5553 michael 913
5554 michael 1647 conf_add_class_to_conf(conf, block_state.class.buf);
5555     lookup_confhost(conf);
5556 michael 913 }
5557     break;
5558    
5559 michael 2248 case 402:
5560 michael 1835 /* Line 1787 of yacc.c */
5561 michael 2252 #line 2117 "conf_parser.y"
5562 michael 913 {
5563 michael 967 if (conf_parser_ctx.pass == 2)
5564 michael 1647 strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5565 michael 913 }
5566     break;
5567    
5568 michael 2248 case 403:
5569 michael 1835 /* Line 1787 of yacc.c */
5570 michael 2252 #line 2123 "conf_parser.y"
5571 michael 913 {
5572 michael 967 if (conf_parser_ctx.pass == 2)
5573 michael 1647 strlcpy(block_state.host.buf, yylval.string, sizeof(block_state.host.buf));
5574 michael 913 }
5575     break;
5576    
5577 michael 2248 case 404:
5578 michael 1835 /* Line 1787 of yacc.c */
5579 michael 2252 #line 2129 "conf_parser.y"
5580 michael 913 {
5581 michael 967 if (conf_parser_ctx.pass == 2)
5582 michael 1647 strlcpy(block_state.bind.buf, yylval.string, sizeof(block_state.bind.buf));
5583 michael 913 }
5584     break;
5585    
5586 michael 2248 case 405:
5587 michael 1835 /* Line 1787 of yacc.c */
5588 michael 2252 #line 2135 "conf_parser.y"
5589 michael 913 {
5590 michael 1647 if (conf_parser_ctx.pass != 2)
5591     break;
5592 michael 913
5593 michael 1647 if ((yyvsp[(3) - (4)].string)[0] == ':')
5594 michael 1752 conf_error_report("Server passwords cannot begin with a colon");
5595 michael 1647 else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
5596 michael 1752 conf_error_report("Server passwords cannot contain spaces");
5597 michael 1647 else
5598     strlcpy(block_state.spass.buf, yylval.string, sizeof(block_state.spass.buf));
5599 michael 913 }
5600     break;
5601    
5602 michael 2248 case 406:
5603 michael 1835 /* Line 1787 of yacc.c */
5604 michael 2252 #line 2148 "conf_parser.y"
5605 michael 913 {
5606 michael 1647 if (conf_parser_ctx.pass != 2)
5607     break;
5608 michael 913
5609 michael 1647 if ((yyvsp[(3) - (4)].string)[0] == ':')
5610 michael 1752 conf_error_report("Server passwords cannot begin with a colon");
5611 michael 1647 else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
5612 michael 1752 conf_error_report("Server passwords cannot contain spaces");
5613 michael 1647 else
5614     strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5615 michael 913 }
5616     break;
5617    
5618 michael 2248 case 407:
5619 michael 1835 /* Line 1787 of yacc.c */
5620 michael 2252 #line 2161 "conf_parser.y"
5621 michael 913 {
5622 michael 967 if (conf_parser_ctx.pass == 2)
5623 michael 2229 strlcpy(block_state.cert.buf, yylval.string, sizeof(block_state.cert.buf));
5624 michael 2228 }
5625     break;
5626    
5627 michael 2248 case 408:
5628 michael 2228 /* Line 1787 of yacc.c */
5629 michael 2252 #line 2167 "conf_parser.y"
5630 michael 2228 {
5631     if (conf_parser_ctx.pass == 2)
5632 michael 1647 block_state.port.value = (yyvsp[(3) - (4)].number);
5633 michael 913 }
5634     break;
5635    
5636 michael 2248 case 409:
5637 michael 1835 /* Line 1787 of yacc.c */
5638 michael 2252 #line 2173 "conf_parser.y"
5639 michael 913 {
5640 michael 967 if (conf_parser_ctx.pass == 2)
5641 michael 1647 block_state.aftype.value = AF_INET;
5642 michael 913 }
5643     break;
5644    
5645 michael 2248 case 410:
5646 michael 1835 /* Line 1787 of yacc.c */
5647 michael 2252 #line 2177 "conf_parser.y"
5648 michael 913 {
5649     #ifdef IPV6
5650 michael 967 if (conf_parser_ctx.pass == 2)
5651 michael 1647 block_state.aftype.value = AF_INET6;
5652 michael 913 #endif
5653     }
5654     break;
5655    
5656 michael 2248 case 411:
5657 michael 1835 /* Line 1787 of yacc.c */
5658 michael 2252 #line 2185 "conf_parser.y"
5659 michael 913 {
5660 michael 1648 block_state.flags.value &= CONF_FLAGS_ENCRYPTED;
5661 michael 913 }
5662     break;
5663    
5664 michael 2248 case 415:
5665 michael 1835 /* Line 1787 of yacc.c */
5666 michael 2252 #line 2191 "conf_parser.y"
5667 michael 913 {
5668 michael 967 if (conf_parser_ctx.pass == 2)
5669 michael 1647 block_state.flags.value |= CONF_FLAGS_ALLOW_AUTO_CONN;
5670 michael 913 }
5671     break;
5672    
5673 michael 2248 case 416:
5674 michael 1835 /* Line 1787 of yacc.c */
5675 michael 2252 #line 2195 "conf_parser.y"
5676 michael 913 {
5677 michael 967 if (conf_parser_ctx.pass == 2)
5678 michael 1647 block_state.flags.value |= CONF_FLAGS_SSL;
5679 michael 913 }
5680     break;
5681    
5682 michael 2248 case 417:
5683 michael 1835 /* Line 1787 of yacc.c */
5684 michael 2252 #line 2201 "conf_parser.y"
5685 michael 913 {
5686 michael 967 if (conf_parser_ctx.pass == 2)
5687 michael 913 {
5688     if (yylval.number)
5689 michael 1647 block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
5690 michael 913 else
5691 michael 1647 block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
5692 michael 913 }
5693     }
5694     break;
5695    
5696 michael 2248 case 418:
5697 michael 1835 /* Line 1787 of yacc.c */
5698 michael 2252 #line 2212 "conf_parser.y"
5699 michael 913 {
5700 michael 967 if (conf_parser_ctx.pass == 2)
5701 michael 1647 dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.hub.list);
5702 michael 913 }
5703     break;
5704    
5705 michael 2248 case 419:
5706 michael 1835 /* Line 1787 of yacc.c */
5707 michael 2252 #line 2218 "conf_parser.y"
5708 michael 913 {
5709 michael 967 if (conf_parser_ctx.pass == 2)
5710 michael 1647 dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.leaf.list);
5711 michael 913 }
5712     break;
5713    
5714 michael 2248 case 420:
5715 michael 1835 /* Line 1787 of yacc.c */
5716 michael 2252 #line 2224 "conf_parser.y"
5717 michael 913 {
5718 michael 967 if (conf_parser_ctx.pass == 2)
5719 michael 1647 strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
5720 michael 913 }
5721     break;
5722    
5723 michael 2248 case 421:
5724 michael 1835 /* Line 1787 of yacc.c */
5725 michael 2252 #line 2230 "conf_parser.y"
5726 michael 913 {
5727 michael 1306 #ifdef HAVE_LIBCRYPTO
5728 michael 967 if (conf_parser_ctx.pass == 2)
5729 michael 1647 strlcpy(block_state.ciph.buf, yylval.string, sizeof(block_state.ciph.buf));
5730 michael 1306 #else
5731     if (conf_parser_ctx.pass == 2)
5732 michael 1752 conf_error_report("Ignoring connect::ciphers -- no OpenSSL support");
5733 michael 1306 #endif
5734     }
5735     break;
5736    
5737 michael 2248 case 422:
5738 michael 1835 /* Line 1787 of yacc.c */
5739 michael 2252 #line 2245 "conf_parser.y"
5740 michael 1306 {
5741     if (conf_parser_ctx.pass == 2)
5742 michael 1647 reset_block_state();
5743 michael 913 }
5744     break;
5745    
5746 michael 2248 case 423:
5747 michael 1835 /* Line 1787 of yacc.c */
5748 michael 2252 #line 2249 "conf_parser.y"
5749 michael 913 {
5750 michael 1647 struct MaskItem *conf = NULL;
5751    
5752     if (conf_parser_ctx.pass != 2)
5753     break;
5754    
5755     if (!block_state.user.buf[0] ||
5756     !block_state.host.buf[0])
5757     break;
5758    
5759 michael 1921 conf = conf_make(CONF_KLINE);
5760     conf->user = xstrdup(block_state.user.buf);
5761     conf->host = xstrdup(block_state.host.buf);
5762 michael 1647
5763 michael 1921 if (block_state.rpass.buf[0])
5764     conf->reason = xstrdup(block_state.rpass.buf);
5765 michael 1647 else
5766 michael 1921 conf->reason = xstrdup(CONF_NOREASON);
5767     add_conf_by_address(CONF_KLINE, conf);
5768 michael 913 }
5769     break;
5770    
5771 michael 2248 case 429:
5772 michael 1835 /* Line 1787 of yacc.c */
5773 michael 2252 #line 2274 "conf_parser.y"
5774 michael 913 {
5775    
5776 michael 967 if (conf_parser_ctx.pass == 2)
5777 michael 913 {
5778     struct split_nuh_item nuh;
5779    
5780     nuh.nuhmask = yylval.string;
5781     nuh.nickptr = NULL;
5782 michael 1647 nuh.userptr = block_state.user.buf;
5783     nuh.hostptr = block_state.host.buf;
5784 michael 913
5785     nuh.nicksize = 0;
5786 michael 1647 nuh.usersize = sizeof(block_state.user.buf);
5787     nuh.hostsize = sizeof(block_state.host.buf);
5788 michael 913
5789     split_nuh(&nuh);
5790     }
5791     }
5792     break;
5793    
5794 michael 2248 case 430:
5795 michael 1835 /* Line 1787 of yacc.c */
5796 michael 2252 #line 2294 "conf_parser.y"
5797 michael 913 {
5798 michael 967 if (conf_parser_ctx.pass == 2)
5799 michael 1647 strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5800 michael 913 }
5801     break;
5802    
5803 michael 2248 case 431:
5804 michael 1835 /* Line 1787 of yacc.c */
5805 michael 2252 #line 2303 "conf_parser.y"
5806 michael 913 {
5807 michael 967 if (conf_parser_ctx.pass == 2)
5808 michael 1646 reset_block_state();
5809 michael 913 }
5810     break;
5811    
5812 michael 2248 case 432:
5813 michael 1835 /* Line 1787 of yacc.c */
5814 michael 2252 #line 2307 "conf_parser.y"
5815 michael 913 {
5816 michael 1646 struct MaskItem *conf = NULL;
5817    
5818     if (conf_parser_ctx.pass != 2)
5819     break;
5820    
5821     if (!block_state.addr.buf[0])
5822     break;
5823    
5824     if (parse_netmask(block_state.addr.buf, NULL, NULL) != HM_HOST)
5825 michael 913 {
5826 michael 1646 conf = conf_make(CONF_DLINE);
5827     conf->host = xstrdup(block_state.addr.buf);
5828 michael 1005
5829 michael 1647 if (block_state.rpass.buf[0])
5830     conf->reason = xstrdup(block_state.rpass.buf);
5831 michael 1646 else
5832     conf->reason = xstrdup(CONF_NOREASON);
5833     add_conf_by_address(CONF_DLINE, conf);
5834 michael 913 }
5835     }
5836     break;
5837    
5838 michael 2248 case 438:
5839 michael 1835 /* Line 1787 of yacc.c */
5840 michael 2252 #line 2333 "conf_parser.y"
5841 michael 913 {
5842 michael 967 if (conf_parser_ctx.pass == 2)
5843 michael 1646 strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
5844 michael 913 }
5845     break;
5846    
5847 michael 2248 case 439:
5848 michael 1835 /* Line 1787 of yacc.c */
5849 michael 2252 #line 2339 "conf_parser.y"
5850 michael 913 {
5851 michael 967 if (conf_parser_ctx.pass == 2)
5852 michael 1647 strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5853 michael 913 }
5854     break;
5855    
5856 michael 2248 case 445:
5857 michael 1835 /* Line 1787 of yacc.c */
5858 michael 2252 #line 2353 "conf_parser.y"
5859 michael 913 {
5860 michael 967 if (conf_parser_ctx.pass == 2)
5861 michael 913 {
5862     if (yylval.string[0] && parse_netmask(yylval.string, NULL, NULL) != HM_HOST)
5863     {
5864 michael 1646 struct MaskItem *conf = conf_make(CONF_EXEMPT);
5865     conf->host = xstrdup(yylval.string);
5866 michael 913
5867 michael 1646 add_conf_by_address(CONF_EXEMPT, conf);
5868 michael 913 }
5869     }
5870     }
5871     break;
5872    
5873 michael 2248 case 446:
5874 michael 1835 /* Line 1787 of yacc.c */
5875 michael 2252 #line 2370 "conf_parser.y"
5876 michael 913 {
5877 michael 967 if (conf_parser_ctx.pass == 2)
5878 michael 1646 reset_block_state();
5879 michael 913 }
5880     break;
5881    
5882 michael 2248 case 447:
5883 michael 1835 /* Line 1787 of yacc.c */
5884 michael 2252 #line 2374 "conf_parser.y"
5885 michael 913 {
5886 michael 1646 struct MaskItem *conf = NULL;
5887    
5888     if (conf_parser_ctx.pass != 2)
5889     break;
5890    
5891     if (!block_state.name.buf[0])
5892     break;
5893    
5894 michael 1921 conf = conf_make(CONF_XLINE);
5895 michael 1646 conf->name = xstrdup(block_state.name.buf);
5896 michael 913
5897 michael 1647 if (block_state.rpass.buf[0])
5898     conf->reason = xstrdup(block_state.rpass.buf);
5899 michael 1646 else
5900     conf->reason = xstrdup(CONF_NOREASON);
5901 michael 913 }
5902     break;
5903    
5904 michael 2248 case 453:
5905 michael 1835 /* Line 1787 of yacc.c */
5906 michael 2252 #line 2396 "conf_parser.y"
5907 michael 913 {
5908 michael 1646 if (conf_parser_ctx.pass == 2)
5909     strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5910 michael 913 }
5911     break;
5912    
5913 michael 2248 case 454:
5914 michael 1835 /* Line 1787 of yacc.c */
5915 michael 2252 #line 2402 "conf_parser.y"
5916 michael 913 {
5917 michael 967 if (conf_parser_ctx.pass == 2)
5918 michael 1647 strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5919 michael 913 }
5920     break;
5921    
5922 michael 2248 case 506:
5923 michael 1835 /* Line 1787 of yacc.c */
5924 michael 2252 #line 2445 "conf_parser.y"
5925 michael 1118 {
5926     ConfigFileEntry.max_watch = (yyvsp[(3) - (4)].number);
5927     }
5928     break;
5929    
5930 michael 2248 case 507:
5931 michael 1835 /* Line 1787 of yacc.c */
5932 michael 2252 #line 2450 "conf_parser.y"
5933 michael 1118 {
5934 michael 1459 if (conf_parser_ctx.pass == 2)
5935     ConfigFileEntry.glines = yylval.number;
5936     }
5937     break;
5938    
5939 michael 2248 case 508:
5940 michael 1835 /* Line 1787 of yacc.c */
5941 michael 2252 #line 2456 "conf_parser.y"
5942 michael 1459 {
5943     if (conf_parser_ctx.pass == 2)
5944     ConfigFileEntry.gline_time = (yyvsp[(3) - (4)].number);
5945     }
5946     break;
5947    
5948 michael 2248 case 509:
5949 michael 1835 /* Line 1787 of yacc.c */
5950 michael 2252 #line 2462 "conf_parser.y"
5951 michael 1459 {
5952     if (conf_parser_ctx.pass == 2)
5953     ConfigFileEntry.gline_request_time = (yyvsp[(3) - (4)].number);
5954     }
5955     break;
5956    
5957 michael 2248 case 510:
5958 michael 2185 /* Line 1787 of yacc.c */
5959 michael 2252 #line 2468 "conf_parser.y"
5960 michael 2185 {
5961     ConfigFileEntry.gline_min_cidr = (yyvsp[(3) - (4)].number);
5962     }
5963     break;
5964    
5965 michael 2248 case 511:
5966 michael 1992 /* Line 1787 of yacc.c */
5967 michael 2252 #line 2473 "conf_parser.y"
5968 michael 1992 {
5969 michael 2185 ConfigFileEntry.gline_min_cidr6 = (yyvsp[(3) - (4)].number);
5970 michael 1992 }
5971     break;
5972    
5973 michael 2248 case 512:
5974 michael 1835 /* Line 1787 of yacc.c */
5975 michael 2252 #line 2478 "conf_parser.y"
5976 michael 913 {
5977 michael 2185 ConfigFileEntry.tkline_expire_notices = yylval.number;
5978 michael 913 }
5979     break;
5980    
5981 michael 2248 case 513:
5982 michael 1835 /* Line 1787 of yacc.c */
5983 michael 2252 #line 2483 "conf_parser.y"
5984 michael 913 {
5985 michael 2185 ConfigFileEntry.kill_chase_time_limit = (yyvsp[(3) - (4)].number);
5986 michael 913 }
5987     break;
5988    
5989 michael 2248 case 514:
5990 michael 1835 /* Line 1787 of yacc.c */
5991 michael 2252 #line 2488 "conf_parser.y"
5992 michael 913 {
5993 michael 2185 ConfigFileEntry.hide_spoof_ips = yylval.number;
5994 michael 913 }
5995     break;
5996    
5997 michael 2248 case 515:
5998 michael 1835 /* Line 1787 of yacc.c */
5999 michael 2252 #line 2493 "conf_parser.y"
6000 michael 913 {
6001 michael 2185 ConfigFileEntry.ignore_bogus_ts = yylval.number;
6002 michael 913 }
6003     break;
6004    
6005 michael 2248 case 516:
6006 michael 1835 /* Line 1787 of yacc.c */
6007 michael 2252 #line 2498 "conf_parser.y"
6008 michael 913 {
6009 michael 2185 ConfigFileEntry.failed_oper_notice = yylval.number;
6010 michael 913 }
6011     break;
6012    
6013 michael 2248 case 517:
6014 michael 1835 /* Line 1787 of yacc.c */
6015 michael 2252 #line 2503 "conf_parser.y"
6016 michael 913 {
6017 michael 2185 ConfigFileEntry.anti_nick_flood = yylval.number;
6018 michael 913 }
6019     break;
6020    
6021 michael 2248 case 518:
6022 michael 1835 /* Line 1787 of yacc.c */
6023 michael 2252 #line 2508 "conf_parser.y"
6024 michael 913 {
6025 michael 2185 ConfigFileEntry.max_nick_time = (yyvsp[(3) - (4)].number);
6026 michael 913 }
6027     break;
6028    
6029 michael 2248 case 519:
6030 michael 1835 /* Line 1787 of yacc.c */
6031 michael 2252 #line 2513 "conf_parser.y"
6032 michael 913 {
6033 michael 2185 ConfigFileEntry.max_nick_changes = (yyvsp[(3) - (4)].number);
6034 michael 913 }
6035     break;
6036    
6037 michael 2248 case 520:
6038 michael 1835 /* Line 1787 of yacc.c */
6039 michael 2252 #line 2518 "conf_parser.y"
6040 michael 913 {
6041 michael 2185 ConfigFileEntry.max_accept = (yyvsp[(3) - (4)].number);
6042 michael 913 }
6043     break;
6044    
6045 michael 2248 case 521:
6046 michael 1835 /* Line 1787 of yacc.c */
6047 michael 2252 #line 2523 "conf_parser.y"
6048 michael 913 {
6049 michael 2185 ConfigFileEntry.anti_spam_exit_message_time = (yyvsp[(3) - (4)].number);
6050 michael 913 }
6051     break;
6052    
6053 michael 2248 case 522:
6054 michael 1835 /* Line 1787 of yacc.c */
6055 michael 2252 #line 2528 "conf_parser.y"
6056 michael 913 {
6057 michael 2185 ConfigFileEntry.ts_warn_delta = (yyvsp[(3) - (4)].number);
6058 michael 913 }
6059     break;
6060    
6061 michael 2248 case 523:
6062 michael 1835 /* Line 1787 of yacc.c */
6063 michael 2252 #line 2533 "conf_parser.y"
6064 michael 913 {
6065 michael 1519 if (conf_parser_ctx.pass == 2)
6066     ConfigFileEntry.ts_max_delta = (yyvsp[(3) - (4)].number);
6067 michael 913 }
6068     break;
6069    
6070 michael 2248 case 524:
6071 michael 1835 /* Line 1787 of yacc.c */
6072 michael 2252 #line 2539 "conf_parser.y"
6073 michael 913 {
6074 michael 1519 if (((yyvsp[(3) - (4)].number) > 0) && conf_parser_ctx.pass == 1)
6075     {
6076     ilog(LOG_TYPE_IRCD, "You haven't read your config file properly.");
6077     ilog(LOG_TYPE_IRCD, "There is a line in the example conf that will kill your server if not removed.");
6078     ilog(LOG_TYPE_IRCD, "Consider actually reading/editing the conf file, and removing this line.");
6079     exit(0);
6080     }
6081 michael 1460 }
6082     break;
6083    
6084 michael 2248 case 525:
6085 michael 2185 /* Line 1787 of yacc.c */
6086 michael 2252 #line 2550 "conf_parser.y"
6087 michael 2185 {
6088     ConfigFileEntry.invisible_on_connect = yylval.number;
6089     }
6090     break;
6091    
6092 michael 2248 case 526:
6093 michael 1992 /* Line 1787 of yacc.c */
6094 michael 2252 #line 2555 "conf_parser.y"
6095 michael 1992 {
6096 michael 2185 ConfigFileEntry.warn_no_nline = yylval.number;
6097 michael 1992 }
6098     break;
6099    
6100 michael 2248 case 527:
6101 michael 1835 /* Line 1787 of yacc.c */
6102 michael 2252 #line 2560 "conf_parser.y"
6103 michael 913 {
6104 michael 2185 ConfigFileEntry.stats_e_disabled = yylval.number;
6105 michael 913 }
6106     break;
6107    
6108 michael 2248 case 528:
6109 michael 1835 /* Line 1787 of yacc.c */
6110 michael 2252 #line 2565 "conf_parser.y"
6111 michael 913 {
6112 michael 2185 ConfigFileEntry.stats_o_oper_only = yylval.number;
6113 michael 913 }
6114     break;
6115    
6116 michael 2248 case 529:
6117 michael 1835 /* Line 1787 of yacc.c */
6118 michael 2252 #line 2570 "conf_parser.y"
6119 michael 913 {
6120 michael 2185 ConfigFileEntry.stats_P_oper_only = yylval.number;
6121 michael 913 }
6122     break;
6123    
6124 michael 2248 case 530:
6125 michael 1835 /* Line 1787 of yacc.c */
6126 michael 2252 #line 2575 "conf_parser.y"
6127 michael 913 {
6128 michael 2185 ConfigFileEntry.stats_k_oper_only = 2 * yylval.number;
6129 michael 913 }
6130     break;
6131    
6132 michael 2248 case 531:
6133 michael 1835 /* Line 1787 of yacc.c */
6134 michael 2252 #line 2578 "conf_parser.y"
6135 michael 913 {
6136 michael 2185 ConfigFileEntry.stats_k_oper_only = 1;
6137 michael 913 }
6138     break;
6139    
6140 michael 2248 case 532:
6141 michael 1835 /* Line 1787 of yacc.c */
6142 michael 2252 #line 2583 "conf_parser.y"
6143 michael 913 {
6144 michael 2185 ConfigFileEntry.stats_i_oper_only = 2 * yylval.number;
6145 michael 913 }
6146     break;
6147    
6148 michael 2248 case 533:
6149 michael 1835 /* Line 1787 of yacc.c */
6150 michael 2252 #line 2586 "conf_parser.y"
6151 michael 913 {
6152 michael 2185 ConfigFileEntry.stats_i_oper_only = 1;
6153 michael 913 }
6154     break;
6155    
6156 michael 2248 case 534:
6157 michael 1835 /* Line 1787 of yacc.c */
6158 michael 2252 #line 2591 "conf_parser.y"
6159 michael 913 {
6160 michael 2185 ConfigFileEntry.pace_wait = (yyvsp[(3) - (4)].number);
6161 michael 913 }
6162     break;
6163    
6164 michael 2248 case 535:
6165 michael 1835 /* Line 1787 of yacc.c */
6166 michael 2252 #line 2596 "conf_parser.y"
6167 michael 913 {
6168 michael 2185 ConfigFileEntry.caller_id_wait = (yyvsp[(3) - (4)].number);
6169 michael 913 }
6170     break;
6171    
6172 michael 2248 case 536:
6173 michael 1835 /* Line 1787 of yacc.c */
6174 michael 2252 #line 2601 "conf_parser.y"
6175 michael 913 {
6176 michael 2185 ConfigFileEntry.opers_bypass_callerid = yylval.number;
6177 michael 913 }
6178     break;
6179    
6180 michael 2248 case 537:
6181 michael 1835 /* Line 1787 of yacc.c */
6182 michael 2252 #line 2606 "conf_parser.y"
6183 michael 913 {
6184 michael 2185 ConfigFileEntry.pace_wait_simple = (yyvsp[(3) - (4)].number);
6185 michael 913 }
6186     break;
6187    
6188 michael 2248 case 538:
6189 michael 1835 /* Line 1787 of yacc.c */
6190 michael 2252 #line 2611 "conf_parser.y"
6191 michael 913 {
6192 michael 2185 ConfigFileEntry.short_motd = yylval.number;
6193 michael 913 }
6194     break;
6195    
6196 michael 2248 case 539:
6197 michael 1835 /* Line 1787 of yacc.c */
6198 michael 2252 #line 2616 "conf_parser.y"
6199 michael 913 {
6200 michael 2185 ConfigFileEntry.no_oper_flood = yylval.number;
6201 michael 913 }
6202     break;
6203    
6204 michael 2248 case 540:
6205 michael 1835 /* Line 1787 of yacc.c */
6206 michael 2252 #line 2621 "conf_parser.y"
6207 michael 913 {
6208 michael 2185 ConfigFileEntry.true_no_oper_flood = yylval.number;
6209 michael 913 }
6210     break;
6211    
6212 michael 2248 case 541:
6213 michael 1835 /* Line 1787 of yacc.c */
6214 michael 2252 #line 2626 "conf_parser.y"
6215 michael 913 {
6216 michael 2185 ConfigFileEntry.oper_pass_resv = yylval.number;
6217 michael 913 }
6218     break;
6219    
6220 michael 2248 case 542:
6221 michael 1835 /* Line 1787 of yacc.c */
6222 michael 2252 #line 2631 "conf_parser.y"
6223 michael 913 {
6224 michael 2185 ConfigFileEntry.dots_in_ident = (yyvsp[(3) - (4)].number);
6225 michael 1715 }
6226     break;
6227    
6228 michael 2248 case 543:
6229 michael 1835 /* Line 1787 of yacc.c */
6230 michael 2252 #line 2636 "conf_parser.y"
6231 michael 1715 {
6232 michael 2185 ConfigFileEntry.max_targets = (yyvsp[(3) - (4)].number);
6233 michael 913 }
6234     break;
6235    
6236 michael 2248 case 544:
6237 michael 1835 /* Line 1787 of yacc.c */
6238 michael 2252 #line 2641 "conf_parser.y"
6239 michael 913 {
6240 michael 2185 ConfigFileEntry.use_egd = yylval.number;
6241 michael 913 }
6242     break;
6243    
6244 michael 2248 case 545:
6245 michael 1835 /* Line 1787 of yacc.c */
6246 michael 2252 #line 2646 "conf_parser.y"
6247 michael 913 {
6248 michael 967 if (conf_parser_ctx.pass == 2)
6249 michael 913 {
6250     MyFree(ConfigFileEntry.egdpool_path);
6251 michael 1646 ConfigFileEntry.egdpool_path = xstrdup(yylval.string);
6252 michael 913 }
6253     }
6254     break;
6255    
6256 michael 2248 case 546:
6257 michael 1835 /* Line 1787 of yacc.c */
6258 michael 2252 #line 2655 "conf_parser.y"
6259 michael 913 {
6260 michael 1176 if (conf_parser_ctx.pass == 2 && valid_servname(yylval.string))
6261 michael 1157 {
6262     MyFree(ConfigFileEntry.service_name);
6263 michael 1646 ConfigFileEntry.service_name = xstrdup(yylval.string);
6264 michael 1157 }
6265     }
6266     break;
6267    
6268 michael 2248 case 547:
6269 michael 1835 /* Line 1787 of yacc.c */
6270 michael 2252 #line 2664 "conf_parser.y"
6271 michael 1157 {
6272 michael 913 ConfigFileEntry.ping_cookie = yylval.number;
6273     }
6274     break;
6275    
6276 michael 2248 case 548:
6277 michael 1835 /* Line 1787 of yacc.c */
6278 michael 2252 #line 2669 "conf_parser.y"
6279 michael 913 {
6280     ConfigFileEntry.disable_auth = yylval.number;
6281     }
6282     break;
6283    
6284 michael 2248 case 549:
6285 michael 1835 /* Line 1787 of yacc.c */
6286 michael 2252 #line 2674 "conf_parser.y"
6287 michael 913 {
6288     ConfigFileEntry.throttle_time = yylval.number;
6289     }
6290     break;
6291    
6292 michael 2248 case 550:
6293 michael 1835 /* Line 1787 of yacc.c */
6294 michael 2252 #line 2679 "conf_parser.y"
6295 michael 913 {
6296     ConfigFileEntry.oper_umodes = 0;
6297     }
6298     break;
6299    
6300 michael 2248 case 554:
6301 michael 2196 /* Line 1787 of yacc.c */
6302 michael 2252 #line 2685 "conf_parser.y"
6303 michael 2196 {
6304     ConfigFileEntry.oper_umodes |= UMODE_BOTS;
6305     }
6306     break;
6307    
6308 michael 2248 case 555:
6309 michael 2196 /* Line 1787 of yacc.c */
6310 michael 2252 #line 2688 "conf_parser.y"
6311 michael 2196 {
6312     ConfigFileEntry.oper_umodes |= UMODE_CCONN;
6313     }
6314     break;
6315    
6316 michael 2248 case 556:
6317 michael 1835 /* Line 1787 of yacc.c */
6318 michael 2252 #line 2691 "conf_parser.y"
6319 michael 1547 {
6320 michael 2196 ConfigFileEntry.oper_umodes |= UMODE_DEAF;
6321 michael 1547 }
6322     break;
6323    
6324 michael 2248 case 557:
6325 michael 1835 /* Line 1787 of yacc.c */
6326 michael 2252 #line 2694 "conf_parser.y"
6327 michael 1547 {
6328 michael 2196 ConfigFileEntry.oper_umodes |= UMODE_DEBUG;
6329 michael 1547 }
6330     break;
6331    
6332 michael 2248 case 558:
6333 michael 1835 /* Line 1787 of yacc.c */
6334 michael 2252 #line 2697 "conf_parser.y"
6335 michael 913 {
6336 michael 2196 ConfigFileEntry.oper_umodes |= UMODE_FULL;
6337 michael 913 }
6338     break;
6339    
6340 michael 2248 case 559:
6341 michael 1835 /* Line 1787 of yacc.c */
6342 michael 2252 #line 2700 "conf_parser.y"
6343 michael 913 {
6344 michael 2196 ConfigFileEntry.oper_umodes |= UMODE_HIDDEN;
6345 michael 913 }
6346     break;
6347    
6348 michael 2248 case 560:
6349 michael 1835 /* Line 1787 of yacc.c */
6350 michael 2252 #line 2703 "conf_parser.y"
6351 michael 913 {
6352 michael 2196 ConfigFileEntry.oper_umodes |= UMODE_SKILL;
6353 michael 913 }
6354     break;
6355    
6356 michael 2248 case 561:
6357 michael 1835 /* Line 1787 of yacc.c */
6358 michael 2252 #line 2706 "conf_parser.y"
6359 michael 913 {
6360 michael 2196 ConfigFileEntry.oper_umodes |= UMODE_NCHANGE;
6361 michael 913 }
6362     break;
6363    
6364 michael 2248 case 562:
6365 michael 1835 /* Line 1787 of yacc.c */
6366 michael 2252 #line 2709 "conf_parser.y"
6367 michael 913 {
6368 michael 2196 ConfigFileEntry.oper_umodes |= UMODE_REJ;
6369 michael 913 }
6370     break;
6371    
6372 michael 2248 case 563:
6373 michael 1835 /* Line 1787 of yacc.c */
6374 michael 2252 #line 2712 "conf_parser.y"
6375 michael 1294 {
6376 michael 2196 ConfigFileEntry.oper_umodes |= UMODE_UNAUTH;
6377 michael 1294 }
6378     break;
6379    
6380 michael 2248 case 564:
6381 michael 1835 /* Line 1787 of yacc.c */
6382 michael 2252 #line 2715 "conf_parser.y"
6383 michael 913 {
6384 michael 2196 ConfigFileEntry.oper_umodes |= UMODE_SPY;
6385 michael 913 }
6386     break;
6387    
6388 michael 2248 case 565:
6389 michael 1835 /* Line 1787 of yacc.c */
6390 michael 2252 #line 2718 "conf_parser.y"
6391 michael 913 {
6392 michael 2196 ConfigFileEntry.oper_umodes |= UMODE_EXTERNAL;
6393 michael 913 }
6394     break;
6395    
6396 michael 2248 case 566:
6397 michael 1835 /* Line 1787 of yacc.c */
6398 michael 2252 #line 2721 "conf_parser.y"
6399 michael 913 {
6400 michael 2196 ConfigFileEntry.oper_umodes |= UMODE_OPERWALL;
6401 michael 913 }
6402     break;
6403    
6404 michael 2248 case 567:
6405 michael 1835 /* Line 1787 of yacc.c */
6406 michael 2252 #line 2724 "conf_parser.y"
6407 michael 913 {
6408 michael 2196 ConfigFileEntry.oper_umodes |= UMODE_SERVNOTICE;
6409 michael 913 }
6410     break;
6411    
6412 michael 2248 case 568:
6413 michael 1835 /* Line 1787 of yacc.c */
6414 michael 2252 #line 2727 "conf_parser.y"
6415 michael 913 {
6416 michael 2196 ConfigFileEntry.oper_umodes |= UMODE_INVISIBLE;
6417 michael 913 }
6418     break;
6419    
6420 michael 2248 case 569:
6421 michael 1835 /* Line 1787 of yacc.c */
6422 michael 2252 #line 2730 "conf_parser.y"
6423 michael 913 {
6424 michael 2196 ConfigFileEntry.oper_umodes |= UMODE_WALLOP;
6425 michael 913 }
6426     break;
6427    
6428 michael 2248 case 570:
6429 michael 1835 /* Line 1787 of yacc.c */
6430 michael 2252 #line 2733 "conf_parser.y"
6431 michael 913 {
6432 michael 2196 ConfigFileEntry.oper_umodes |= UMODE_SOFTCALLERID;
6433 michael 913 }
6434     break;
6435    
6436 michael 2248 case 571:
6437 michael 1835 /* Line 1787 of yacc.c */
6438 michael 2252 #line 2736 "conf_parser.y"
6439 michael 913 {
6440 michael 2196 ConfigFileEntry.oper_umodes |= UMODE_CALLERID;
6441 michael 913 }
6442     break;
6443    
6444 michael 2248 case 572:
6445 michael 1835 /* Line 1787 of yacc.c */
6446 michael 2252 #line 2739 "conf_parser.y"
6447 michael 913 {
6448 michael 2196 ConfigFileEntry.oper_umodes |= UMODE_LOCOPS;
6449 michael 913 }
6450     break;
6451    
6452 michael 2248 case 573:
6453 michael 1835 /* Line 1787 of yacc.c */
6454 michael 2252 #line 2742 "conf_parser.y"
6455 michael 913 {
6456 michael 2196 ConfigFileEntry.oper_umodes |= UMODE_REGONLY;
6457 michael 913 }
6458     break;
6459    
6460 michael 2248 case 574:
6461 michael 1835 /* Line 1787 of yacc.c */
6462 michael 2252 #line 2745 "conf_parser.y"
6463 michael 913 {
6464 michael 2196 ConfigFileEntry.oper_umodes |= UMODE_FARCONNECT;
6465 michael 913 }
6466     break;
6467    
6468 michael 2248 case 575:
6469 michael 1835 /* Line 1787 of yacc.c */
6470 michael 2252 #line 2750 "conf_parser.y"
6471 michael 913 {
6472 michael 2196 ConfigFileEntry.oper_only_umodes = 0;
6473 michael 913 }
6474     break;
6475    
6476 michael 2248 case 579:
6477 michael 1835 /* Line 1787 of yacc.c */
6478 michael 2252 #line 2756 "conf_parser.y"
6479 michael 913 {
6480 michael 2196 ConfigFileEntry.oper_only_umodes |= UMODE_BOTS;
6481 michael 1981 }
6482     break;
6483    
6484 michael 2248 case 580:
6485 michael 1981 /* Line 1787 of yacc.c */
6486 michael 2252 #line 2759 "conf_parser.y"
6487 michael 1981 {
6488 michael 2196 ConfigFileEntry.oper_only_umodes |= UMODE_CCONN;
6489 michael 1981 }
6490     break;
6491    
6492 michael 2248 case 581:
6493 michael 1981 /* Line 1787 of yacc.c */
6494 michael 2252 #line 2762 "conf_parser.y"
6495 michael 1981 {
6496 michael 2196 ConfigFileEntry.oper_only_umodes |= UMODE_DEAF;
6497 michael 913 }
6498     break;
6499    
6500 michael 2248 case 582:
6501 michael 1835 /* Line 1787 of yacc.c */
6502 michael 2252 #line 2765 "conf_parser.y"
6503 michael 913 {
6504 michael 2196 ConfigFileEntry.oper_only_umodes |= UMODE_DEBUG;
6505 michael 913 }
6506     break;
6507    
6508 michael 2248 case 583:
6509 michael 1835 /* Line 1787 of yacc.c */
6510 michael 2252 #line 2768 "conf_parser.y"
6511 michael 2196 {
6512     ConfigFileEntry.oper_only_umodes |= UMODE_FULL;
6513 michael 913 }
6514     break;
6515    
6516 michael 2248 case 584:
6517 michael 1835 /* Line 1787 of yacc.c */
6518 michael 2252 #line 2771 "conf_parser.y"
6519 michael 913 {
6520 michael 2196 ConfigFileEntry.oper_only_umodes |= UMODE_SKILL;
6521 michael 913 }
6522     break;
6523    
6524 michael 2248 case 585:
6525 michael 1835 /* Line 1787 of yacc.c */
6526 michael 2252 #line 2774 "conf_parser.y"
6527 michael 2196 {
6528     ConfigFileEntry.oper_only_umodes |= UMODE_HIDDEN;
6529 michael 913 }
6530     break;
6531    
6532 michael 2248 case 586:
6533 michael 1835 /* Line 1787 of yacc.c */
6534 michael 2252 #line 2777 "conf_parser.y"
6535 michael 913 {
6536 michael 2196 ConfigFileEntry.oper_only_umodes |= UMODE_NCHANGE;
6537 michael 913 }
6538     break;
6539    
6540 michael 2248 case 587:
6541 michael 1835 /* Line 1787 of yacc.c */
6542 michael 2252 #line 2780 "conf_parser.y"
6543 michael 1547 {
6544 michael 2196 ConfigFileEntry.oper_only_umodes |= UMODE_REJ;
6545 michael 913 }
6546     break;
6547    
6548 michael 2248 case 588:
6549 michael 1835 /* Line 1787 of yacc.c */
6550 michael 2252 #line 2783 "conf_parser.y"
6551 michael 913 {
6552 michael 2196 ConfigFileEntry.oper_only_umodes |= UMODE_UNAUTH;
6553 michael 913 }
6554     break;
6555    
6556 michael 2248 case 589:
6557 michael 1835 /* Line 1787 of yacc.c */
6558 michael 2252 #line 2786 "conf_parser.y"
6559 michael 1294 {
6560 michael 2196 ConfigFileEntry.oper_only_umodes |= UMODE_SPY;
6561 michael 1294 }
6562     break;
6563    
6564 michael 2248 case 590:
6565 michael 1835 /* Line 1787 of yacc.c */
6566 michael 2252 #line 2789 "conf_parser.y"
6567 michael 913 {
6568 michael 2196 ConfigFileEntry.oper_only_umodes |= UMODE_EXTERNAL;
6569 michael 913 }
6570     break;
6571    
6572 michael 2248 case 591:
6573 michael 1835 /* Line 1787 of yacc.c */
6574 michael 2252 #line 2792 "conf_parser.y"
6575 michael 913 {
6576 michael 2196 ConfigFileEntry.oper_only_umodes |= UMODE_OPERWALL;
6577 michael 913 }
6578     break;
6579    
6580 michael 2248 case 592:
6581 michael 1835 /* Line 1787 of yacc.c */
6582 michael 2252 #line 2795 "conf_parser.y"
6583 michael 913 {
6584 michael 2196 ConfigFileEntry.oper_only_umodes |= UMODE_SERVNOTICE;
6585 michael 913 }
6586     break;
6587    
6588 michael 2248 case 593:
6589 michael 1835 /* Line 1787 of yacc.c */
6590 michael 2252 #line 2798 "conf_parser.y"
6591 michael 913 {
6592 michael 2196 ConfigFileEntry.oper_only_umodes |= UMODE_INVISIBLE;
6593 michael 913 }
6594     break;
6595    
6596 michael 2248 case 594:
6597 michael 1835 /* Line 1787 of yacc.c */
6598 michael 2252 #line 2801 "conf_parser.y"
6599 michael 913 {
6600 michael 2196 ConfigFileEntry.oper_only_umodes |= UMODE_WALLOP;
6601 michael 913 }
6602     break;
6603    
6604 michael 2248 case 595:
6605 michael 1835 /* Line 1787 of yacc.c */
6606 michael 2252 #line 2804 "conf_parser.y"
6607 michael 913 {
6608 michael 2196 ConfigFileEntry.oper_only_umodes |= UMODE_SOFTCALLERID;
6609 michael 913 }
6610     break;
6611    
6612 michael 2248 case 596:
6613 michael 1835 /* Line 1787 of yacc.c */
6614 michael 2252 #line 2807 "conf_parser.y"
6615 michael 913 {
6616 michael 2196 ConfigFileEntry.oper_only_umodes |= UMODE_CALLERID;
6617 michael 913 }
6618     break;
6619    
6620 michael 2248 case 597:
6621 michael 1835 /* Line 1787 of yacc.c */
6622 michael 2252 #line 2810 "conf_parser.y"
6623 michael 913 {
6624 michael 2196 ConfigFileEntry.oper_only_umodes |= UMODE_LOCOPS;
6625 michael 913 }
6626     break;
6627    
6628 michael 2248 case 598:
6629 michael 1835 /* Line 1787 of yacc.c */
6630 michael 2252 #line 2813 "conf_parser.y"
6631 michael 913 {
6632 michael 2196 ConfigFileEntry.oper_only_umodes |= UMODE_REGONLY;
6633 michael 913 }
6634     break;
6635    
6636 michael 2248 case 599:
6637 michael 1835 /* Line 1787 of yacc.c */
6638 michael 2252 #line 2816 "conf_parser.y"
6639 michael 913 {
6640 michael 2196 ConfigFileEntry.oper_only_umodes |= UMODE_FARCONNECT;
6641 michael 913 }
6642     break;
6643    
6644 michael 2248 case 600:
6645 michael 1904 /* Line 1787 of yacc.c */
6646 michael 2252 #line 2821 "conf_parser.y"
6647 michael 1904 {
6648 michael 2196 ConfigFileEntry.min_nonwildcard = (yyvsp[(3) - (4)].number);
6649 michael 1904 }
6650     break;
6651    
6652 michael 2248 case 601:
6653 michael 1992 /* Line 1787 of yacc.c */
6654 michael 2252 #line 2826 "conf_parser.y"
6655 michael 1992 {
6656 michael 2196 ConfigFileEntry.min_nonwildcard_simple = (yyvsp[(3) - (4)].number);
6657 michael 1992 }
6658     break;
6659    
6660 michael 2248 case 602:
6661 michael 1835 /* Line 1787 of yacc.c */
6662 michael 2252 #line 2831 "conf_parser.y"
6663 michael 913 {
6664 michael 2196 ConfigFileEntry.default_floodcount = (yyvsp[(3) - (4)].number);
6665 michael 1981 }
6666     break;
6667    
6668 michael 2248 case 619:
6669 michael 1981 /* Line 1787 of yacc.c */
6670 michael 2252 #line 2854 "conf_parser.y"
6671 michael 1981 {
6672 michael 2196 ConfigChannel.disable_fake_channels = yylval.number;
6673 michael 1855 }
6674     break;
6675    
6676 michael 2248 case 620:
6677 michael 1855 /* Line 1787 of yacc.c */
6678 michael 2252 #line 2859 "conf_parser.y"
6679 michael 1855 {
6680 michael 2196 ConfigChannel.knock_delay = (yyvsp[(3) - (4)].number);
6681 michael 913 }
6682     break;
6683    
6684 michael 2248 case 621:
6685 michael 1835 /* Line 1787 of yacc.c */
6686 michael 2252 #line 2864 "conf_parser.y"
6687 michael 913 {
6688 michael 2196 ConfigChannel.knock_delay_channel = (yyvsp[(3) - (4)].number);
6689 michael 913 }
6690     break;
6691    
6692 michael 2248 case 622:
6693 michael 1835 /* Line 1787 of yacc.c */
6694 michael 2252 #line 2869 "conf_parser.y"
6695 michael 1519 {
6696 michael 2196 ConfigChannel.max_chans_per_user = (yyvsp[(3) - (4)].number);
6697 michael 1519 }
6698     break;
6699    
6700 michael 2248 case 623:
6701 michael 1835 /* Line 1787 of yacc.c */
6702 michael 2252 #line 2874 "conf_parser.y"
6703 michael 1519 {
6704 michael 2196 ConfigChannel.max_chans_per_oper = (yyvsp[(3) - (4)].number);
6705 michael 1519 }
6706     break;
6707    
6708 michael 2248 case 624:
6709 michael 1835 /* Line 1787 of yacc.c */
6710 michael 2252 #line 2879 "conf_parser.y"
6711 michael 1118 {
6712 michael 2196 ConfigChannel.max_bans = (yyvsp[(3) - (4)].number);
6713 michael 913 }
6714     break;
6715    
6716 michael 2248 case 625:
6717 michael 1835 /* Line 1787 of yacc.c */
6718 michael 2252 #line 2884 "conf_parser.y"
6719 michael 913 {
6720 michael 2196 ConfigChannel.default_split_user_count = (yyvsp[(3) - (4)].number);
6721 michael 913 }
6722     break;
6723    
6724 michael 2248 case 626:
6725 michael 1835 /* Line 1787 of yacc.c */
6726 michael 2252 #line 2889 "conf_parser.y"
6727 michael 913 {
6728 michael 2196 ConfigChannel.default_split_server_count = (yyvsp[(3) - (4)].number);
6729 michael 913 }
6730     break;
6731    
6732 michael 2248 case 627:
6733 michael 1835 /* Line 1787 of yacc.c */
6734 michael 2252 #line 2894 "conf_parser.y"
6735 michael 913 {
6736 michael 2196 ConfigChannel.no_create_on_split = yylval.number;
6737 michael 913 }
6738     break;
6739    
6740 michael 2248 case 628:
6741 michael 1835 /* Line 1787 of yacc.c */
6742 michael 2252 #line 2899 "conf_parser.y"
6743 michael 913 {
6744 michael 2196 ConfigChannel.no_join_on_split = yylval.number;
6745 michael 913 }
6746     break;
6747    
6748 michael 2248 case 629:
6749 michael 1835 /* Line 1787 of yacc.c */
6750 michael 2252 #line 2904 "conf_parser.y"
6751 michael 913 {
6752 michael 2196 GlobalSetOptions.joinfloodcount = yylval.number;
6753 michael 913 }
6754     break;
6755    
6756 michael 2248 case 630:
6757 michael 1835 /* Line 1787 of yacc.c */
6758 michael 2252 #line 2909 "conf_parser.y"
6759 michael 913 {
6760 michael 2196 GlobalSetOptions.joinfloodtime = yylval.number;
6761 michael 913 }
6762     break;
6763    
6764 michael 2248 case 643:
6765 michael 1835 /* Line 1787 of yacc.c */
6766 michael 2252 #line 2929 "conf_parser.y"
6767 michael 913 {
6768 michael 2196 if (conf_parser_ctx.pass == 2)
6769     ConfigServerHide.flatten_links = yylval.number;
6770 michael 913 }
6771     break;
6772    
6773 michael 2248 case 644:
6774 michael 1835 /* Line 1787 of yacc.c */
6775 michael 2252 #line 2935 "conf_parser.y"
6776 michael 913 {
6777 michael 967 if (conf_parser_ctx.pass == 2)
6778 michael 2196 ConfigServerHide.disable_remote_commands = yylval.number;
6779 michael 913 }
6780     break;
6781    
6782 michael 2248 case 645:
6783 michael 1835 /* Line 1787 of yacc.c */
6784 michael 2252 #line 2941 "conf_parser.y"
6785 michael 913 {
6786 michael 967 if (conf_parser_ctx.pass == 2)
6787 michael 913 ConfigServerHide.hide_servers = yylval.number;
6788     }
6789     break;
6790    
6791 michael 2248 case 646:
6792 michael 1835 /* Line 1787 of yacc.c */
6793 michael 2252 #line 2947 "conf_parser.y"
6794 michael 913 {
6795 michael 967 if (conf_parser_ctx.pass == 2)
6796 michael 1851 ConfigServerHide.hide_services = yylval.number;
6797     }
6798     break;
6799    
6800 michael 2248 case 647:
6801 michael 1851 /* Line 1787 of yacc.c */
6802 michael 2252 #line 2953 "conf_parser.y"
6803 michael 1851 {
6804     if (conf_parser_ctx.pass == 2)
6805 michael 913 {
6806     MyFree(ConfigServerHide.hidden_name);
6807 michael 1646 ConfigServerHide.hidden_name = xstrdup(yylval.string);
6808 michael 913 }
6809     }
6810     break;
6811    
6812 michael 2248 case 648:
6813 michael 1835 /* Line 1787 of yacc.c */
6814 michael 2252 #line 2962 "conf_parser.y"
6815 michael 913 {
6816 michael 967 if (conf_parser_ctx.pass == 2)
6817 michael 913 {
6818     if (((yyvsp[(3) - (4)].number) > 0) && ConfigServerHide.links_disabled == 1)
6819     {
6820     eventAddIsh("write_links_file", write_links_file, NULL, (yyvsp[(3) - (4)].number));
6821     ConfigServerHide.links_disabled = 0;
6822     }
6823    
6824     ConfigServerHide.links_delay = (yyvsp[(3) - (4)].number);
6825     }
6826     }
6827     break;
6828    
6829 michael 2248 case 649:
6830 michael 1835 /* Line 1787 of yacc.c */
6831 michael 2252 #line 2976 "conf_parser.y"
6832 michael 913 {
6833 michael 967 if (conf_parser_ctx.pass == 2)
6834 michael 913 ConfigServerHide.hidden = yylval.number;
6835     }
6836     break;
6837    
6838 michael 2248 case 650:
6839 michael 1835 /* Line 1787 of yacc.c */
6840 michael 2252 #line 2982 "conf_parser.y"
6841 michael 913 {
6842 michael 967 if (conf_parser_ctx.pass == 2)
6843 michael 913 ConfigServerHide.hide_server_ips = yylval.number;
6844     }
6845     break;
6846    
6847    
6848 michael 1835 /* Line 1787 of yacc.c */
6849 michael 2252 #line 6850 "conf_parser.c"
6850 michael 913 default: break;
6851     }
6852 michael 1133 /* User semantic actions sometimes alter yychar, and that requires
6853     that yytoken be updated with the new translation. We take the
6854     approach of translating immediately before every use of yytoken.
6855     One alternative is translating here after every semantic action,
6856     but that translation would be missed if the semantic action invokes
6857     YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
6858     if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an
6859     incorrect destructor might then be invoked immediately. In the
6860     case of YYERROR or YYBACKUP, subsequent parser actions might lead
6861     to an incorrect destructor call or verbose syntax error message
6862     before the lookahead is translated. */
6863 michael 913 YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
6864    
6865     YYPOPSTACK (yylen);
6866     yylen = 0;
6867     YY_STACK_PRINT (yyss, yyssp);
6868    
6869     *++yyvsp = yyval;
6870    
6871     /* Now `shift' the result of the reduction. Determine what state
6872     that goes to, based on the state we popped back to and the rule
6873     number reduced by. */
6874    
6875     yyn = yyr1[yyn];
6876    
6877     yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
6878     if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
6879     yystate = yytable[yystate];
6880     else
6881     yystate = yydefgoto[yyn - YYNTOKENS];
6882    
6883     goto yynewstate;
6884    
6885    
6886     /*------------------------------------.
6887     | yyerrlab -- here on detecting error |
6888     `------------------------------------*/
6889     yyerrlab:
6890 michael 1133 /* Make sure we have latest lookahead translation. See comments at
6891     user semantic actions for why this is necessary. */
6892     yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
6893    
6894 michael 913 /* If not already recovering from an error, report this error. */
6895     if (!yyerrstatus)
6896     {
6897     ++yynerrs;
6898     #if ! YYERROR_VERBOSE
6899     yyerror (YY_("syntax error"));
6900     #else
6901 michael 1133 # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
6902     yyssp, yytoken)
6903 michael 913 {
6904 michael 1133 char const *yymsgp = YY_("syntax error");
6905     int yysyntax_error_status;
6906     yysyntax_error_status = YYSYNTAX_ERROR;
6907     if (yysyntax_error_status == 0)
6908     yymsgp = yymsg;
6909     else if (yysyntax_error_status == 1)
6910     {
6911     if (yymsg != yymsgbuf)
6912     YYSTACK_FREE (yymsg);
6913     yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
6914     if (!yymsg)
6915     {
6916     yymsg = yymsgbuf;
6917     yymsg_alloc = sizeof yymsgbuf;
6918     yysyntax_error_status = 2;
6919     }
6920     else
6921     {
6922     yysyntax_error_status = YYSYNTAX_ERROR;
6923     yymsgp = yymsg;
6924     }
6925     }
6926     yyerror (yymsgp);
6927     if (yysyntax_error_status == 2)
6928     goto yyexhaustedlab;
6929 michael 913 }
6930 michael 1133 # undef YYSYNTAX_ERROR
6931 michael 913 #endif
6932     }
6933    
6934    
6935    
6936     if (yyerrstatus == 3)
6937     {
6938 michael 967 /* If just tried and failed to reuse lookahead token after an
6939 michael 913 error, discard it. */
6940    
6941     if (yychar <= YYEOF)
6942     {
6943     /* Return failure if at end of input. */
6944     if (yychar == YYEOF)
6945     YYABORT;
6946     }
6947     else
6948     {
6949     yydestruct ("Error: discarding",
6950     yytoken, &yylval);
6951     yychar = YYEMPTY;
6952     }
6953     }
6954    
6955 michael 967 /* Else will try to reuse lookahead token after shifting the error
6956 michael 913 token. */
6957     goto yyerrlab1;
6958    
6959    
6960     /*---------------------------------------------------.
6961     | yyerrorlab -- error raised explicitly by YYERROR. |
6962     `---------------------------------------------------*/
6963     yyerrorlab:
6964    
6965     /* Pacify compilers like GCC when the user code never invokes
6966     YYERROR and the label yyerrorlab therefore never appears in user
6967     code. */
6968     if (/*CONSTCOND*/ 0)
6969     goto yyerrorlab;
6970    
6971     /* Do not reclaim the symbols of the rule which action triggered
6972     this YYERROR. */
6973     YYPOPSTACK (yylen);
6974     yylen = 0;
6975     YY_STACK_PRINT (yyss, yyssp);
6976     yystate = *yyssp;
6977     goto yyerrlab1;
6978    
6979    
6980     /*-------------------------------------------------------------.
6981     | yyerrlab1 -- common code for both syntax error and YYERROR. |
6982     `-------------------------------------------------------------*/
6983     yyerrlab1:
6984     yyerrstatus = 3; /* Each real token shifted decrements this. */
6985    
6986     for (;;)
6987     {
6988     yyn = yypact[yystate];
6989 michael 1133 if (!yypact_value_is_default (yyn))
6990 michael 913 {
6991     yyn += YYTERROR;
6992     if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
6993     {
6994     yyn = yytable[yyn];
6995     if (0 < yyn)
6996     break;
6997     }
6998     }
6999    
7000     /* Pop the current state because it cannot handle the error token. */
7001     if (yyssp == yyss)
7002     YYABORT;
7003    
7004    
7005     yydestruct ("Error: popping",
7006     yystos[yystate], yyvsp);
7007     YYPOPSTACK (1);
7008     yystate = *yyssp;
7009     YY_STACK_PRINT (yyss, yyssp);
7010     }
7011    
7012 michael 1619 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
7013 michael 913 *++yyvsp = yylval;
7014 michael 1619 YY_IGNORE_MAYBE_UNINITIALIZED_END
7015 michael 913
7016    
7017     /* Shift the error token. */
7018     YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
7019    
7020     yystate = yyn;
7021     goto yynewstate;
7022    
7023    
7024     /*-------------------------------------.
7025     | yyacceptlab -- YYACCEPT comes here. |
7026     `-------------------------------------*/
7027     yyacceptlab:
7028     yyresult = 0;
7029     goto yyreturn;
7030    
7031     /*-----------------------------------.
7032     | yyabortlab -- YYABORT comes here. |
7033     `-----------------------------------*/
7034     yyabortlab:
7035     yyresult = 1;
7036     goto yyreturn;
7037    
7038 michael 1425 #if !defined yyoverflow || YYERROR_VERBOSE
7039 michael 913 /*-------------------------------------------------.
7040     | yyexhaustedlab -- memory exhaustion comes here. |
7041     `-------------------------------------------------*/
7042     yyexhaustedlab:
7043     yyerror (YY_("memory exhausted"));
7044     yyresult = 2;
7045     /* Fall through. */
7046     #endif
7047    
7048     yyreturn:
7049 michael 967 if (yychar != YYEMPTY)
7050 michael 1133 {
7051     /* Make sure we have latest lookahead translation. See comments at
7052     user semantic actions for why this is necessary. */
7053     yytoken = YYTRANSLATE (yychar);
7054     yydestruct ("Cleanup: discarding lookahead",
7055     yytoken, &yylval);
7056     }
7057 michael 913 /* Do not reclaim the symbols of the rule which action triggered
7058     this YYABORT or YYACCEPT. */
7059     YYPOPSTACK (yylen);
7060     YY_STACK_PRINT (yyss, yyssp);
7061     while (yyssp != yyss)
7062     {
7063     yydestruct ("Cleanup: popping",
7064     yystos[*yyssp], yyvsp);
7065     YYPOPSTACK (1);
7066     }
7067     #ifndef yyoverflow
7068     if (yyss != yyssa)
7069     YYSTACK_FREE (yyss);
7070     #endif
7071     #if YYERROR_VERBOSE
7072     if (yymsg != yymsgbuf)
7073     YYSTACK_FREE (yymsg);
7074     #endif
7075     /* Make sure YYID is used. */
7076     return YYID (yyresult);
7077     }
7078    
7079    

Properties

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