ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/svn/ircd-hybrid/trunk/src/conf_parser.c
Revision: 8437
Committed: Thu Mar 29 09:05:34 2018 UTC (7 years, 5 months ago) by michael
Content type: text/x-csrc
File size: 220766 byte(s)
Log Message:
- Stylistic changes

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

Properties

Name Value
svn:eol-style native