ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/svn/ircd-hybrid/trunk/src/conf_parser.c
Revision: 1946
Committed: Sun May 5 10:21:40 2013 UTC (12 years, 3 months ago) by michael
Content type: text/x-csrc
File size: 219559 byte(s)
Log Message:
- Removed channel::quiet_on_ban configuration option. This feature is
  now enabled by default

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

Properties

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