ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/svn/ircd-hybrid/trunk/src/conf_parser.c
Revision: 8789
Committed: Wed Jan 16 18:48:29 2019 UTC (7 years, 8 months ago) by michael
Content type: text/x-csrc
File size: 218352 byte(s)
Log Message:
- Recreate autogenerated files

File Contents

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

Properties

Name Value
svn:eol-style native