ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/svn/ircd-hybrid/trunk/src/conf_parser.c
Revision: 2244
Committed: Sat Jun 15 22:08:10 2013 UTC (10 years, 10 months ago) by michael
Content type: text/x-csrc
File size: 225011 byte(s)
Log Message:
- rename 'fingerprint' configuration directive to 'ssl_certificate_fingerprint'

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

Properties

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