ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/svn/ircd-hybrid/trunk/src/conf_parser.c
Revision: 2012
Committed: Sun May 12 14:47:26 2013 UTC (12 years, 3 months ago) by michael
Content type: text/x-csrc
File size: 221365 byte(s)
Log Message:
- Removed 'remote', and 'global_kill' oper flags, and added 'connect',
  'squit', and 'kill' flags for better fine-tuning instead. Whether or 
  not a specific action is allowed on a remote server can be controlled
  by appeding the ':remote' flag. For example: 'kill' allows only local
  clients to be killed, whereas 'kill:remote' allows to issue a KILL for
  remote clients

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

Properties

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