ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/svn/ircd-hybrid/trunk/src/conf_parser.c
Revision: 6162
Committed: Thu Jun 18 10:56:46 2015 UTC (10 years, 2 months ago) by michael
Content type: text/x-csrc
File size: 223740 byte(s)
Log Message:
- Re-create autogenerated files

File Contents

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

Properties

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