From: Harlan Stenn Date: Sat, 11 Jul 2009 05:37:42 +0000 (-0400) Subject: Added restrict keyword "mssntp" for Samba4 DC operation, by Dave Mills X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e839b748a73afdd3f34d114b9155682113833114;p=thirdparty%2Fntp.git Added restrict keyword "mssntp" for Samba4 DC operation, by Dave Mills bk: 4a582526vUb5mt-aS7e29YDHzoMZCQ --- diff --git a/ChangeLog b/ChangeLog index d15907295a..83c4fdbbd1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,6 @@ +* Added restrict keyword "mssntp" for Samba4 DC operation, by Dave Mills. +* [Bug 1242] Remove --enable-wintime, symmetric workaround is now + always enabled. (4.2.5p186) 2009/07/08 Released by Harlan Stenn * ntp_proto.c cleanup from Dave Mills. (4.2.5p185) 2009/07/01 Released by Harlan Stenn diff --git a/html/accopt.html b/html/accopt.html index 73b4943a0c..98cc734886 100644 --- a/html/accopt.html +++ b/html/accopt.html @@ -16,7 +16,7 @@

The skunk watches for intruders and sprays.

Last update: -09-May-2009 20:23 +10-Jul-2009 14:53 UTC


@@ -113,17 +113,18 @@ time) in log2 s with default 3.
notrust
Deny packets that are not cryptographically authenticated.
-
ntpport
-
non-ntpport
-
This is actually a match algorithm modifier, rather than a restriction flag. Its presence causes the restriction entry to be matched only if the source port in the packet is the standard NTP UDP port (123). Both ntpport and non-ntpport may be specified. The ntpport is considered more specific and is sorted later in the list.
- -
version
-
Deny packets that do not match the current NTP version.
- - - +
mssntp
+
Enable Windows Active Directory authentication. See the Authentication Options + page.
+ +
ntpport
+
non-ntpport
+
This is actually a match algorithm modifier, rather than a restriction flag. Its presence causes the restriction entry to be matched only if the source port in the packet is the standard NTP UDP port (123). Both ntpport and non-ntpport may be specified. The ntpport is considered more specific and is sorted later in the list.
+
version
+
Deny packets that do not match the current NTP version.
+ +
Default restriction list entries with the flags ignore, ntpport, for each of the local host's interface addresses are inserted into the table at startup to prevent the server from attempting to synchronize to its own time. A default entry is also always present, though if it is otherwise unconfigured; no flags are associated with the default entry (i.e., everything besides your own NTP server is unrestricted).
-
@@ -131,4 +132,4 @@ time) in log2 s with default 3. - \ No newline at end of file + diff --git a/include/ntp.h b/include/ntp.h index 120a3e01df..e9d428fb21 100644 --- a/include/ntp.h +++ b/include/ntp.h @@ -450,7 +450,6 @@ struct peer { #ifdef OPENSSL #define FLAG_ASSOC 0x8000 /* autokey request */ #endif /* OPENSSL */ -#define FLAG_ADKEY 0x10000 /* Authenticated (or wants reply to be authenticated) using AD authentication */ /* * Definitions for the clear() routine. We use memset() to clear @@ -794,29 +793,29 @@ struct restrictlist6 { /* * Access flags */ -#define RES_IGNORE 0x001 /* ignore packet */ -#define RES_DONTSERVE 0x002 /* access denied */ -#define RES_DONTTRUST 0x004 /* authentication required */ -#define RES_VERSION 0x008 /* version mismatch */ -#define RES_NOPEER 0x010 /* new association denied */ -#define RES_LIMITED 0x020 /* packet rate exceeded */ - +#define RES_IGNORE 0x0001 /* ignore packet */ +#define RES_DONTSERVE 0x0002 /* access denied */ +#define RES_DONTTRUST 0x0004 /* authentication required */ +#define RES_VERSION 0x0008 /* version mismatch */ +#define RES_NOPEER 0x0010 /* new association denied */ +#define RES_LIMITED 0x0020 /* packet rate exceeded */ #define RES_FLAGS (RES_IGNORE | RES_DONTSERVE |\ RES_DONTTRUST | RES_VERSION |\ RES_NOPEER | RES_LIMITED) -#define RES_NOQUERY 0x040 /* mode 6/7 packet denied */ -#define RES_NOMODIFY 0x080 /* mode 6/7 modify denied */ -#define RES_NOTRAP 0x100 /* mode 6/7 set trap denied */ -#define RES_LPTRAP 0x200 /* mode 6/7 low priority trap */ +#define RES_NOQUERY 0x0040 /* mode 6/7 packet denied */ +#define RES_NOMODIFY 0x0080 /* mode 6/7 modify denied */ +#define RES_NOTRAP 0x0100 /* mode 6/7 set trap denied */ +#define RES_LPTRAP 0x0200 /* mode 6/7 low priority trap */ -#define RES_KOD 0x400 /* send kiss of death packet */ -#define RES_TIMEOUT 0x800 /* timeout this entry */ +#define RES_KOD 0x0400 /* send kiss of death packet */ +#define RES_MSSNTP 0x0800 /* enable MS-SNTP authentication */ +#define RES_TIMEOUT 0x1000 /* timeout this entry */ #define RES_ALLFLAGS (RES_FLAGS | RES_NOQUERY |\ RES_NOMODIFY | RES_NOTRAP |\ RES_LPTRAP | RES_KOD |\ - RES_TIMEOUT) + RES_MSSNTP | RES_TIMEOUT) /* * Match flags diff --git a/ntpd/ntp_config.c b/ntpd/ntp_config.c index caa1444a64..b1e377debe 100644 --- a/ntpd/ntp_config.c +++ b/ntpd/ntp_config.c @@ -1006,6 +1006,7 @@ struct key_tok keyword_list[] = { { "flake", T_Flake, NO_ARG }, { "ignore", T_Ignore, NO_ARG }, { "limited", T_Limited, NO_ARG }, + { "mssntp", T_Mssntp, NO_ARG }, { "kod", T_Kod, NO_ARG }, { "lowpriotrap", T_Lowpriotrap, NO_ARG }, { "mask", T_Mask, NO_ARG }, diff --git a/ntpd/ntp_parser.c b/ntpd/ntp_parser.c index 13cee59af9..c7df92d276 100644 --- a/ntpd/ntp_parser.c +++ b/ntpd/ntp_parser.c @@ -103,7 +103,7 @@ /* Line 189 of yacc.c */ -#line 107 "ntp_parser.c" +#line 107 "../../ntpd/ntp_parser.c" /* Enabling traces. */ #ifndef YYDEBUG @@ -186,106 +186,107 @@ T_Keys = 311, T_Keysdir = 312, T_Kod = 313, - T_Leap = 314, - T_Leapfile = 315, - T_Limited = 316, - T_Link = 317, - T_Logconfig = 318, - T_Logfile = 319, - T_Loopstats = 320, - T_Lowpriotrap = 321, - T_Manycastclient = 322, - T_Manycastserver = 323, - T_Mask = 324, - T_Maxclock = 325, - T_Maxdist = 326, - T_Maxhop = 327, - T_Maxpoll = 328, - T_Minclock = 329, - T_Mindist = 330, - T_Minimum = 331, - T_Minpoll = 332, - T_Minsane = 333, - T_Mode = 334, - T_Monitor = 335, - T_Month = 336, - T_Multicastclient = 337, - T_Nolink = 338, - T_Nomodify = 339, - T_None = 340, - T_Nopeer = 341, - T_Noquery = 342, - T_Noselect = 343, - T_Noserve = 344, - T_Notrap = 345, - T_Notrust = 346, - T_Novolley = 347, - T_Ntp = 348, - T_Ntpport = 349, - T_NtpSignDsocket = 350, - T_Orphan = 351, - T_Panic = 352, - T_Peer = 353, - T_Peerstats = 354, - T_Phone = 355, - T_Pid = 356, - T_Pidfile = 357, - T_Pool = 358, - T_Port = 359, - T_Pps = 360, - T_Preempt = 361, - T_Prefer = 362, - T_Protostats = 363, - T_Pw = 364, - T_Qos = 365, - T_RandFile = 366, - T_Rawstats = 367, - T_Refid = 368, - T_Requestkey = 369, - T_Restrict = 370, - T_Revoke = 371, - T_Server = 372, - T_Setvar = 373, - T_Sign = 374, - T_Statistics = 375, - T_Stats = 376, - T_Statsdir = 377, - T_Step = 378, - T_Stepout = 379, - T_Stratum = 380, - T_String = 381, - T_Sysstats = 382, - T_Tick = 383, - T_Time1 = 384, - T_Time2 = 385, - T_Timingstats = 386, - T_Tinker = 387, - T_Tos = 388, - T_Trap = 389, - T_True = 390, - T_Trustedkey = 391, - T_Ttl = 392, - T_Type = 393, - T_Unconfig = 394, - T_Unpeer = 395, - T_Version = 396, - T_WanderThreshold = 397, - T_Week = 398, - T_Xleave = 399, - T_Year = 400, - T_Flag = 401, - T_Void = 402, - T_EOC = 403, - T_Simulate = 404, - T_Beep_Delay = 405, - T_Sim_Duration = 406, - T_Server_Offset = 407, - T_Duration = 408, - T_Freq_Offset = 409, - T_Wander = 410, - T_Jitter = 411, - T_Prop_Delay = 412, - T_Proc_Delay = 413 + T_Mssntp = 314, + T_Leap = 315, + T_Leapfile = 316, + T_Limited = 317, + T_Link = 318, + T_Logconfig = 319, + T_Logfile = 320, + T_Loopstats = 321, + T_Lowpriotrap = 322, + T_Manycastclient = 323, + T_Manycastserver = 324, + T_Mask = 325, + T_Maxclock = 326, + T_Maxdist = 327, + T_Maxhop = 328, + T_Maxpoll = 329, + T_Minclock = 330, + T_Mindist = 331, + T_Minimum = 332, + T_Minpoll = 333, + T_Minsane = 334, + T_Mode = 335, + T_Monitor = 336, + T_Month = 337, + T_Multicastclient = 338, + T_Nolink = 339, + T_Nomodify = 340, + T_None = 341, + T_Nopeer = 342, + T_Noquery = 343, + T_Noselect = 344, + T_Noserve = 345, + T_Notrap = 346, + T_Notrust = 347, + T_Novolley = 348, + T_Ntp = 349, + T_Ntpport = 350, + T_NtpSignDsocket = 351, + T_Orphan = 352, + T_Panic = 353, + T_Peer = 354, + T_Peerstats = 355, + T_Phone = 356, + T_Pid = 357, + T_Pidfile = 358, + T_Pool = 359, + T_Port = 360, + T_Pps = 361, + T_Preempt = 362, + T_Prefer = 363, + T_Protostats = 364, + T_Pw = 365, + T_Qos = 366, + T_RandFile = 367, + T_Rawstats = 368, + T_Refid = 369, + T_Requestkey = 370, + T_Restrict = 371, + T_Revoke = 372, + T_Server = 373, + T_Setvar = 374, + T_Sign = 375, + T_Statistics = 376, + T_Stats = 377, + T_Statsdir = 378, + T_Step = 379, + T_Stepout = 380, + T_Stratum = 381, + T_String = 382, + T_Sysstats = 383, + T_Tick = 384, + T_Time1 = 385, + T_Time2 = 386, + T_Timingstats = 387, + T_Tinker = 388, + T_Tos = 389, + T_Trap = 390, + T_True = 391, + T_Trustedkey = 392, + T_Ttl = 393, + T_Type = 394, + T_Unconfig = 395, + T_Unpeer = 396, + T_Version = 397, + T_WanderThreshold = 398, + T_Week = 399, + T_Xleave = 400, + T_Year = 401, + T_Flag = 402, + T_Void = 403, + T_EOC = 404, + T_Simulate = 405, + T_Beep_Delay = 406, + T_Sim_Duration = 407, + T_Server_Offset = 408, + T_Duration = 409, + T_Freq_Offset = 410, + T_Wander = 411, + T_Jitter = 412, + T_Prop_Delay = 413, + T_Proc_Delay = 414 }; #endif /* Tokens. */ @@ -345,106 +346,107 @@ #define T_Keys 311 #define T_Keysdir 312 #define T_Kod 313 -#define T_Leap 314 -#define T_Leapfile 315 -#define T_Limited 316 -#define T_Link 317 -#define T_Logconfig 318 -#define T_Logfile 319 -#define T_Loopstats 320 -#define T_Lowpriotrap 321 -#define T_Manycastclient 322 -#define T_Manycastserver 323 -#define T_Mask 324 -#define T_Maxclock 325 -#define T_Maxdist 326 -#define T_Maxhop 327 -#define T_Maxpoll 328 -#define T_Minclock 329 -#define T_Mindist 330 -#define T_Minimum 331 -#define T_Minpoll 332 -#define T_Minsane 333 -#define T_Mode 334 -#define T_Monitor 335 -#define T_Month 336 -#define T_Multicastclient 337 -#define T_Nolink 338 -#define T_Nomodify 339 -#define T_None 340 -#define T_Nopeer 341 -#define T_Noquery 342 -#define T_Noselect 343 -#define T_Noserve 344 -#define T_Notrap 345 -#define T_Notrust 346 -#define T_Novolley 347 -#define T_Ntp 348 -#define T_Ntpport 349 -#define T_NtpSignDsocket 350 -#define T_Orphan 351 -#define T_Panic 352 -#define T_Peer 353 -#define T_Peerstats 354 -#define T_Phone 355 -#define T_Pid 356 -#define T_Pidfile 357 -#define T_Pool 358 -#define T_Port 359 -#define T_Pps 360 -#define T_Preempt 361 -#define T_Prefer 362 -#define T_Protostats 363 -#define T_Pw 364 -#define T_Qos 365 -#define T_RandFile 366 -#define T_Rawstats 367 -#define T_Refid 368 -#define T_Requestkey 369 -#define T_Restrict 370 -#define T_Revoke 371 -#define T_Server 372 -#define T_Setvar 373 -#define T_Sign 374 -#define T_Statistics 375 -#define T_Stats 376 -#define T_Statsdir 377 -#define T_Step 378 -#define T_Stepout 379 -#define T_Stratum 380 -#define T_String 381 -#define T_Sysstats 382 -#define T_Tick 383 -#define T_Time1 384 -#define T_Time2 385 -#define T_Timingstats 386 -#define T_Tinker 387 -#define T_Tos 388 -#define T_Trap 389 -#define T_True 390 -#define T_Trustedkey 391 -#define T_Ttl 392 -#define T_Type 393 -#define T_Unconfig 394 -#define T_Unpeer 395 -#define T_Version 396 -#define T_WanderThreshold 397 -#define T_Week 398 -#define T_Xleave 399 -#define T_Year 400 -#define T_Flag 401 -#define T_Void 402 -#define T_EOC 403 -#define T_Simulate 404 -#define T_Beep_Delay 405 -#define T_Sim_Duration 406 -#define T_Server_Offset 407 -#define T_Duration 408 -#define T_Freq_Offset 409 -#define T_Wander 410 -#define T_Jitter 411 -#define T_Prop_Delay 412 -#define T_Proc_Delay 413 +#define T_Mssntp 314 +#define T_Leap 315 +#define T_Leapfile 316 +#define T_Limited 317 +#define T_Link 318 +#define T_Logconfig 319 +#define T_Logfile 320 +#define T_Loopstats 321 +#define T_Lowpriotrap 322 +#define T_Manycastclient 323 +#define T_Manycastserver 324 +#define T_Mask 325 +#define T_Maxclock 326 +#define T_Maxdist 327 +#define T_Maxhop 328 +#define T_Maxpoll 329 +#define T_Minclock 330 +#define T_Mindist 331 +#define T_Minimum 332 +#define T_Minpoll 333 +#define T_Minsane 334 +#define T_Mode 335 +#define T_Monitor 336 +#define T_Month 337 +#define T_Multicastclient 338 +#define T_Nolink 339 +#define T_Nomodify 340 +#define T_None 341 +#define T_Nopeer 342 +#define T_Noquery 343 +#define T_Noselect 344 +#define T_Noserve 345 +#define T_Notrap 346 +#define T_Notrust 347 +#define T_Novolley 348 +#define T_Ntp 349 +#define T_Ntpport 350 +#define T_NtpSignDsocket 351 +#define T_Orphan 352 +#define T_Panic 353 +#define T_Peer 354 +#define T_Peerstats 355 +#define T_Phone 356 +#define T_Pid 357 +#define T_Pidfile 358 +#define T_Pool 359 +#define T_Port 360 +#define T_Pps 361 +#define T_Preempt 362 +#define T_Prefer 363 +#define T_Protostats 364 +#define T_Pw 365 +#define T_Qos 366 +#define T_RandFile 367 +#define T_Rawstats 368 +#define T_Refid 369 +#define T_Requestkey 370 +#define T_Restrict 371 +#define T_Revoke 372 +#define T_Server 373 +#define T_Setvar 374 +#define T_Sign 375 +#define T_Statistics 376 +#define T_Stats 377 +#define T_Statsdir 378 +#define T_Step 379 +#define T_Stepout 380 +#define T_Stratum 381 +#define T_String 382 +#define T_Sysstats 383 +#define T_Tick 384 +#define T_Time1 385 +#define T_Time2 386 +#define T_Timingstats 387 +#define T_Tinker 388 +#define T_Tos 389 +#define T_Trap 390 +#define T_True 391 +#define T_Trustedkey 392 +#define T_Ttl 393 +#define T_Type 394 +#define T_Unconfig 395 +#define T_Unpeer 396 +#define T_Version 397 +#define T_WanderThreshold 398 +#define T_Week 399 +#define T_Xleave 400 +#define T_Year 401 +#define T_Flag 402 +#define T_Void 403 +#define T_EOC 404 +#define T_Simulate 405 +#define T_Beep_Delay 406 +#define T_Sim_Duration 407 +#define T_Server_Offset 408 +#define T_Duration 409 +#define T_Freq_Offset 410 +#define T_Wander 411 +#define T_Jitter 412 +#define T_Prop_Delay 413 +#define T_Proc_Delay 414 @@ -472,7 +474,7 @@ typedef union YYSTYPE /* Line 214 of yacc.c */ -#line 476 "ntp_parser.c" +#line 478 "../../ntpd/ntp_parser.c" } YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ @@ -484,7 +486,7 @@ typedef union YYSTYPE /* Line 264 of yacc.c */ -#line 488 "ntp_parser.c" +#line 490 "../../ntpd/ntp_parser.c" #ifdef short # undef short @@ -699,20 +701,20 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 168 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 638 +#define YYLAST 635 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 162 +#define YYNTOKENS 163 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 64 /* YYNRULES -- Number of rules. */ -#define YYNRULES 231 +#define YYNRULES 232 /* YYNRULES -- Number of states. */ -#define YYNSTATES 368 +#define YYNSTATES 369 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 413 +#define YYMAXUTOK 414 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -726,13 +728,13 @@ static const yytype_uint8 yytranslate[] = 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 159, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 160, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 160, 2, 161, 2, 2, 2, 2, + 2, 2, 2, 161, 2, 162, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -761,7 +763,7 @@ static const yytype_uint8 yytranslate[] = 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158 + 155, 156, 157, 158, 159 }; #if YYDEBUG @@ -782,114 +784,115 @@ static const yytype_uint16 yyprhs[] = 252, 254, 257, 260, 262, 264, 266, 268, 270, 272, 274, 276, 278, 280, 282, 285, 289, 293, 298, 303, 309, 310, 313, 315, 317, 319, 321, 323, 325, 327, - 329, 331, 333, 335, 337, 339, 342, 344, 347, 350, - 353, 357, 360, 362, 365, 368, 371, 374, 377, 380, - 383, 386, 389, 392, 395, 397, 399, 401, 403, 405, - 407, 409, 411, 414, 417, 419, 422, 425, 428, 431, - 434, 437, 440, 444, 446, 449, 452, 455, 458, 461, - 464, 467, 470, 473, 476, 479, 483, 486, 489, 491, - 494, 495, 500, 504, 507, 509, 512, 515, 518, 520, - 522, 525, 527, 530, 532, 535, 537, 539, 541, 543, - 545, 547, 553, 555, 559, 562, 566, 570, 573, 575, - 581, 586, 590, 593, 595, 602, 606, 609, 613, 617, - 621, 625 + 329, 331, 333, 335, 337, 339, 341, 344, 346, 349, + 352, 355, 359, 362, 364, 367, 370, 373, 376, 379, + 382, 385, 388, 391, 394, 397, 399, 401, 403, 405, + 407, 409, 411, 413, 416, 419, 421, 424, 427, 430, + 433, 436, 439, 442, 446, 448, 451, 454, 457, 460, + 463, 466, 469, 472, 475, 478, 481, 485, 488, 491, + 493, 496, 497, 502, 506, 509, 511, 514, 517, 520, + 522, 524, 527, 529, 532, 534, 537, 539, 541, 543, + 545, 547, 549, 555, 557, 561, 564, 568, 572, 575, + 577, 583, 588, 592, 595, 597, 604, 608, 611, 615, + 619, 623, 627 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const yytype_int16 yyrhs[] = { - 163, 0, -1, 164, -1, 164, 165, 148, -1, 165, - 148, -1, 1, 148, -1, -1, 166, -1, 172, -1, - 174, -1, 175, -1, 182, -1, 188, -1, 179, -1, - 193, -1, 196, -1, 199, -1, 202, -1, 214, -1, - 167, 168, 170, -1, 167, 168, -1, 117, -1, 103, - -1, 98, -1, 12, -1, 67, -1, 169, -1, 52, - 126, -1, 53, 126, -1, 126, -1, 170, 171, -1, - 171, -1, 6, -1, 11, 213, -1, 15, -1, 46, - -1, 55, 50, -1, 77, 50, -1, 73, 50, -1, - 88, -1, 106, -1, 107, -1, 135, -1, 144, -1, - 137, 50, -1, 79, 50, -1, 141, 50, -1, 173, - 168, -1, 139, -1, 140, -1, 13, -1, 13, 92, - -1, 68, 211, -1, 82, 211, -1, 6, 50, -1, - 21, 50, -1, 22, 176, -1, 56, 126, -1, 57, - 126, -1, 114, 50, -1, 136, 209, -1, 95, 126, - -1, 177, -1, -1, 177, 178, -1, 178, -1, 44, - 126, -1, 47, 126, -1, 109, 126, -1, 111, 126, - -1, 116, 50, -1, 119, 126, -1, 133, 180, -1, - 180, 181, -1, 181, -1, 18, 50, -1, 41, 50, - -1, 20, 212, -1, 96, 50, -1, 75, 213, -1, - 71, 213, -1, 74, 213, -1, 70, 213, -1, 78, - 50, -1, 10, 50, -1, 72, 50, -1, 120, 183, - -1, 122, 126, -1, 35, 184, 185, -1, 183, 184, - -1, 184, -1, 19, -1, 23, -1, 65, -1, 99, - -1, 112, -1, 127, -1, 131, -1, 108, -1, 185, - 186, -1, 186, -1, 34, 126, -1, 138, 187, -1, - 62, -1, 83, -1, 31, -1, 26, -1, 85, -1, - 101, -1, 24, -1, 143, -1, 81, -1, 145, -1, - 3, -1, 27, 191, -1, 115, 168, 189, -1, 115, - 25, 189, -1, 115, 52, 25, 189, -1, 115, 53, - 25, 189, -1, 115, 169, 69, 169, 189, -1, -1, - 189, 190, -1, 40, -1, 48, -1, 58, -1, 61, - -1, 66, -1, 84, -1, 86, -1, 87, -1, 89, - -1, 90, -1, 91, -1, 94, -1, 141, -1, 191, - 192, -1, 192, -1, 8, 50, -1, 76, 50, -1, - 80, 50, -1, 43, 168, 194, -1, 194, 195, -1, - 195, -1, 129, 213, -1, 130, 213, -1, 125, 50, - -1, 113, 126, -1, 36, 212, -1, 37, 212, -1, - 38, 212, -1, 39, 212, -1, 31, 197, -1, 26, - 197, -1, 197, 198, -1, 198, -1, 5, -1, 9, - -1, 16, -1, 54, -1, 80, -1, 93, -1, 121, - -1, 132, 200, -1, 200, 201, -1, 201, -1, 4, - 213, -1, 28, 213, -1, 42, 213, -1, 45, 213, - -1, 97, 213, -1, 123, 213, -1, 124, 213, -1, - 49, 126, 165, -1, 32, -1, 14, 213, -1, 17, - 50, -1, 128, 213, -1, 30, 203, -1, 60, 126, - -1, 102, 126, -1, 64, 126, -1, 7, 50, -1, - 63, 207, -1, 100, 210, -1, 118, 204, -1, 134, - 169, 205, -1, 137, 209, -1, 110, 126, -1, 126, - -1, 126, 29, -1, -1, 126, 159, 126, 25, -1, - 126, 159, 126, -1, 205, 206, -1, 206, -1, 104, - 50, -1, 51, 169, -1, 207, 208, -1, 208, -1, - 126, -1, 209, 50, -1, 50, -1, 210, 126, -1, - 126, -1, 211, 168, -1, 168, -1, 50, -1, 135, - -1, 33, -1, 50, -1, 29, -1, 215, 160, 216, - 218, 161, -1, 149, -1, 216, 217, 148, -1, 217, - 148, -1, 150, 159, 213, -1, 151, 159, 213, -1, - 218, 219, -1, 219, -1, 221, 160, 220, 222, 161, - -1, 152, 159, 213, 148, -1, 117, 159, 168, -1, - 222, 223, -1, 223, -1, 153, 159, 213, 160, 224, - 161, -1, 224, 225, 148, -1, 225, 148, -1, 154, - 159, 213, -1, 155, 159, 213, -1, 156, 159, 213, - -1, 157, 159, 213, -1, 158, 159, 213, -1 + 164, 0, -1, 165, -1, 165, 166, 149, -1, 166, + 149, -1, 1, 149, -1, -1, 167, -1, 173, -1, + 175, -1, 176, -1, 183, -1, 189, -1, 180, -1, + 194, -1, 197, -1, 200, -1, 203, -1, 215, -1, + 168, 169, 171, -1, 168, 169, -1, 118, -1, 104, + -1, 99, -1, 12, -1, 68, -1, 170, -1, 52, + 127, -1, 53, 127, -1, 127, -1, 171, 172, -1, + 172, -1, 6, -1, 11, 214, -1, 15, -1, 46, + -1, 55, 50, -1, 78, 50, -1, 74, 50, -1, + 89, -1, 107, -1, 108, -1, 136, -1, 145, -1, + 138, 50, -1, 80, 50, -1, 142, 50, -1, 174, + 169, -1, 140, -1, 141, -1, 13, -1, 13, 93, + -1, 69, 212, -1, 83, 212, -1, 6, 50, -1, + 21, 50, -1, 22, 177, -1, 56, 127, -1, 57, + 127, -1, 115, 50, -1, 137, 210, -1, 96, 127, + -1, 178, -1, -1, 178, 179, -1, 179, -1, 44, + 127, -1, 47, 127, -1, 110, 127, -1, 112, 127, + -1, 117, 50, -1, 120, 127, -1, 134, 181, -1, + 181, 182, -1, 182, -1, 18, 50, -1, 41, 50, + -1, 20, 213, -1, 97, 50, -1, 76, 214, -1, + 72, 214, -1, 75, 214, -1, 71, 214, -1, 79, + 50, -1, 10, 50, -1, 73, 50, -1, 121, 184, + -1, 123, 127, -1, 35, 185, 186, -1, 184, 185, + -1, 185, -1, 19, -1, 23, -1, 66, -1, 100, + -1, 113, -1, 128, -1, 132, -1, 109, -1, 186, + 187, -1, 187, -1, 34, 127, -1, 139, 188, -1, + 63, -1, 84, -1, 31, -1, 26, -1, 86, -1, + 102, -1, 24, -1, 144, -1, 82, -1, 146, -1, + 3, -1, 27, 192, -1, 116, 169, 190, -1, 116, + 25, 190, -1, 116, 52, 25, 190, -1, 116, 53, + 25, 190, -1, 116, 170, 70, 170, 190, -1, -1, + 190, 191, -1, 40, -1, 48, -1, 58, -1, 59, + -1, 62, -1, 67, -1, 85, -1, 87, -1, 88, + -1, 90, -1, 91, -1, 92, -1, 95, -1, 142, + -1, 192, 193, -1, 193, -1, 8, 50, -1, 77, + 50, -1, 81, 50, -1, 43, 169, 195, -1, 195, + 196, -1, 196, -1, 130, 214, -1, 131, 214, -1, + 126, 50, -1, 114, 127, -1, 36, 213, -1, 37, + 213, -1, 38, 213, -1, 39, 213, -1, 31, 198, + -1, 26, 198, -1, 198, 199, -1, 199, -1, 5, + -1, 9, -1, 16, -1, 54, -1, 81, -1, 94, + -1, 122, -1, 133, 201, -1, 201, 202, -1, 202, + -1, 4, 214, -1, 28, 214, -1, 42, 214, -1, + 45, 214, -1, 98, 214, -1, 124, 214, -1, 125, + 214, -1, 49, 127, 166, -1, 32, -1, 14, 214, + -1, 17, 50, -1, 129, 214, -1, 30, 204, -1, + 61, 127, -1, 103, 127, -1, 65, 127, -1, 7, + 50, -1, 64, 208, -1, 101, 211, -1, 119, 205, + -1, 135, 170, 206, -1, 138, 210, -1, 111, 127, + -1, 127, -1, 127, 29, -1, -1, 127, 160, 127, + 25, -1, 127, 160, 127, -1, 206, 207, -1, 207, + -1, 105, 50, -1, 51, 170, -1, 208, 209, -1, + 209, -1, 127, -1, 210, 50, -1, 50, -1, 211, + 127, -1, 127, -1, 212, 169, -1, 169, -1, 50, + -1, 136, -1, 33, -1, 50, -1, 29, -1, 216, + 161, 217, 219, 162, -1, 150, -1, 217, 218, 149, + -1, 218, 149, -1, 151, 160, 214, -1, 152, 160, + 214, -1, 219, 220, -1, 220, -1, 222, 161, 221, + 223, 162, -1, 153, 160, 214, 149, -1, 118, 160, + 169, -1, 223, 224, -1, 224, -1, 154, 160, 214, + 161, 225, 162, -1, 225, 226, 149, -1, 226, 149, + -1, 155, 160, 214, -1, 156, 160, 214, -1, 157, + 160, 214, -1, 158, 160, 214, -1, 159, 160, 214, + -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 280, 280, 284, 285, 286, 307, 308, 309, 310, - 311, 312, 313, 314, 315, 316, 317, 318, 319, 327, - 333, 342, 343, 344, 345, 346, 350, 351, 352, 356, - 360, 361, 365, 366, 367, 368, 369, 370, 371, 372, - 373, 374, 375, 376, 377, 378, 379, 388, 396, 397, - 407, 409, 411, 413, 424, 426, 428, 436, 438, 440, - 442, 444, 449, 451, 455, 456, 460, 462, 464, 466, - 468, 470, 480, 485, 486, 490, 492, 494, 496, 498, - 500, 502, 504, 506, 508, 510, 520, 522, 524, 532, - 533, 537, 539, 541, 543, 545, 547, 549, 551, 556, - 557, 561, 563, 565, 566, 567, 568, 572, 573, 574, - 575, 576, 577, 578, 587, 591, 596, 601, 614, 627, - 635, 636, 640, 641, 642, 643, 644, 645, 646, 647, - 648, 649, 650, 651, 652, 656, 657, 661, 662, 663, - 671, 676, 677, 681, 683, 685, 687, 689, 691, 693, - 695, 704, 706, 711, 712, 716, 717, 718, 719, 720, - 721, 723, 731, 735, 736, 740, 741, 742, 743, 744, - 745, 746, 754, 770, 776, 778, 780, 782, 784, 787, - 789, 791, 794, 796, 798, 800, 802, 804, 808, 810, - 814, 818, 820, 826, 827, 831, 832, 837, 838, 842, - 861, 862, 866, 867, 871, 872, 876, 885, 886, 890, - 891, 899, 914, 918, 919, 923, 924, 928, 929, 933, - 938, 942, 946, 947, 951, 956, 957, 961, 963, 965, - 967, 969 + 0, 281, 281, 285, 286, 287, 308, 309, 310, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 328, + 334, 343, 344, 345, 346, 347, 351, 352, 353, 357, + 361, 362, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 389, 397, 398, + 408, 410, 412, 414, 425, 427, 429, 437, 439, 441, + 443, 445, 450, 452, 456, 457, 461, 463, 465, 467, + 469, 471, 481, 486, 487, 491, 493, 495, 497, 499, + 501, 503, 505, 507, 509, 511, 521, 523, 525, 533, + 534, 538, 540, 542, 544, 546, 548, 550, 552, 557, + 558, 562, 564, 566, 567, 568, 569, 573, 574, 575, + 576, 577, 578, 579, 588, 592, 597, 602, 615, 628, + 636, 637, 641, 642, 643, 644, 645, 646, 647, 648, + 649, 650, 651, 652, 653, 654, 658, 659, 663, 664, + 665, 673, 678, 679, 683, 685, 687, 689, 691, 693, + 695, 697, 706, 708, 713, 714, 718, 719, 720, 721, + 722, 723, 725, 733, 737, 738, 742, 743, 744, 745, + 746, 747, 748, 756, 772, 778, 780, 782, 784, 786, + 789, 791, 793, 796, 798, 800, 802, 804, 806, 810, + 812, 816, 820, 822, 828, 829, 833, 834, 839, 840, + 844, 863, 864, 868, 869, 873, 874, 878, 887, 888, + 892, 893, 901, 916, 920, 921, 925, 926, 930, 931, + 935, 940, 944, 948, 949, 953, 958, 959, 963, 965, + 967, 969, 971 }; #endif @@ -909,7 +912,7 @@ static const char *const yytname[] = "T_Fudge", "T_Host", "T_Huffpuff", "T_Iburst", "T_Ident", "T_Ignore", "T_Includefile", "T_Integer", "T_Interface", "T_IPv4_flag", "T_IPv6_flag", "T_Kernel", "T_Key", "T_Keys", "T_Keysdir", "T_Kod", - "T_Leap", "T_Leapfile", "T_Limited", "T_Link", "T_Logconfig", + "T_Mssntp", "T_Leap", "T_Leapfile", "T_Limited", "T_Link", "T_Logconfig", "T_Logfile", "T_Loopstats", "T_Lowpriotrap", "T_Manycastclient", "T_Manycastserver", "T_Mask", "T_Maxclock", "T_Maxdist", "T_Maxhop", "T_Maxpoll", "T_Minclock", "T_Mindist", "T_Minimum", "T_Minpoll", @@ -970,38 +973,38 @@ static const yytype_uint16 yytoknum[] = 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 61, - 123, 125 + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 61, 123, 125 }; # endif /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint8 yyr1[] = { - 0, 162, 163, 164, 164, 164, 165, 165, 165, 165, - 165, 165, 165, 165, 165, 165, 165, 165, 165, 166, - 166, 167, 167, 167, 167, 167, 168, 168, 168, 169, - 170, 170, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 172, 173, 173, - 174, 174, 174, 174, 175, 175, 175, 175, 175, 175, - 175, 175, 176, 176, 177, 177, 178, 178, 178, 178, - 178, 178, 179, 180, 180, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 182, 182, 182, 183, - 183, 184, 184, 184, 184, 184, 184, 184, 184, 185, - 185, 186, 186, 186, 186, 186, 186, 187, 187, 187, - 187, 187, 187, 187, 188, 188, 188, 188, 188, 188, - 189, 189, 190, 190, 190, 190, 190, 190, 190, 190, - 190, 190, 190, 190, 190, 191, 191, 192, 192, 192, - 193, 194, 194, 195, 195, 195, 195, 195, 195, 195, - 195, 196, 196, 197, 197, 198, 198, 198, 198, 198, - 198, 198, 199, 200, 200, 201, 201, 201, 201, 201, - 201, 201, 202, 202, 202, 202, 202, 202, 202, 202, - 202, 202, 202, 202, 202, 202, 202, 202, 203, 203, - 203, 204, 204, 205, 205, 206, 206, 207, 207, 208, - 209, 209, 210, 210, 211, 211, 212, 212, 212, 213, - 213, 214, 215, 216, 216, 217, 217, 218, 218, 219, - 220, 221, 222, 222, 223, 224, 224, 225, 225, 225, - 225, 225 + 0, 163, 164, 165, 165, 165, 166, 166, 166, 166, + 166, 166, 166, 166, 166, 166, 166, 166, 166, 167, + 167, 168, 168, 168, 168, 168, 169, 169, 169, 170, + 171, 171, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 173, 174, 174, + 175, 175, 175, 175, 176, 176, 176, 176, 176, 176, + 176, 176, 177, 177, 178, 178, 179, 179, 179, 179, + 179, 179, 180, 181, 181, 182, 182, 182, 182, 182, + 182, 182, 182, 182, 182, 182, 183, 183, 183, 184, + 184, 185, 185, 185, 185, 185, 185, 185, 185, 186, + 186, 187, 187, 187, 187, 187, 187, 188, 188, 188, + 188, 188, 188, 188, 189, 189, 189, 189, 189, 189, + 190, 190, 191, 191, 191, 191, 191, 191, 191, 191, + 191, 191, 191, 191, 191, 191, 192, 192, 193, 193, + 193, 194, 195, 195, 196, 196, 196, 196, 196, 196, + 196, 196, 197, 197, 198, 198, 199, 199, 199, 199, + 199, 199, 199, 200, 201, 201, 202, 202, 202, 202, + 202, 202, 202, 203, 203, 203, 203, 203, 203, 203, + 203, 203, 203, 203, 203, 203, 203, 203, 203, 204, + 204, 204, 205, 205, 206, 206, 207, 207, 208, 208, + 209, 210, 210, 211, 211, 212, 212, 213, 213, 213, + 214, 214, 215, 216, 217, 217, 218, 218, 219, 219, + 220, 221, 222, 223, 223, 224, 225, 225, 226, 226, + 226, 226, 226 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -1020,17 +1023,17 @@ static const yytype_uint8 yyr2[] = 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 3, 4, 4, 5, 0, 2, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 2, 1, 2, 2, 2, - 3, 2, 1, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, - 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, - 2, 2, 3, 1, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 3, 2, 2, 1, 2, - 0, 4, 3, 2, 1, 2, 2, 2, 1, 1, - 2, 1, 2, 1, 2, 1, 1, 1, 1, 1, - 1, 5, 1, 3, 2, 3, 3, 2, 1, 5, - 4, 3, 2, 1, 6, 3, 2, 3, 3, 3, - 3, 3 + 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, + 2, 3, 2, 1, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, + 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, + 2, 2, 2, 3, 1, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 3, 2, 2, 1, + 2, 0, 4, 3, 2, 1, 2, 2, 2, 1, + 1, 2, 1, 2, 1, 2, 1, 1, 1, 1, + 1, 1, 5, 1, 3, 2, 3, 3, 2, 1, + 5, 4, 3, 2, 1, 6, 3, 2, 3, 3, + 3, 3, 3 }; /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state @@ -1039,42 +1042,42 @@ static const yytype_uint8 yyr2[] = static const yytype_uint8 yydefact[] = { 0, 0, 0, 0, 24, 50, 0, 0, 0, 63, - 0, 0, 190, 0, 173, 0, 0, 0, 0, 0, + 0, 0, 191, 0, 174, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 23, 0, 0, 22, 0, 0, 0, 21, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 48, 49, 212, 0, 2, 0, + 0, 0, 0, 0, 48, 49, 213, 0, 2, 0, 7, 0, 8, 0, 9, 10, 13, 11, 12, 14, - 15, 16, 17, 18, 0, 5, 54, 181, 51, 210, - 209, 174, 175, 55, 0, 0, 0, 0, 0, 0, - 56, 62, 65, 155, 156, 157, 158, 159, 160, 161, - 152, 154, 0, 0, 0, 114, 136, 188, 177, 151, + 15, 16, 17, 18, 0, 5, 54, 182, 51, 211, + 210, 175, 176, 55, 0, 0, 0, 0, 0, 0, + 56, 62, 65, 156, 157, 158, 159, 160, 161, 162, + 153, 155, 0, 0, 0, 114, 137, 189, 178, 152, 91, 92, 93, 94, 98, 95, 96, 97, 0, 0, - 0, 29, 0, 26, 6, 57, 58, 178, 199, 182, - 198, 180, 205, 52, 53, 61, 203, 183, 179, 187, - 59, 120, 0, 0, 120, 26, 0, 184, 86, 90, - 87, 176, 0, 0, 0, 0, 0, 0, 0, 162, - 164, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 72, 74, 0, 201, 60, 186, 1, 0, + 0, 29, 0, 26, 6, 57, 58, 179, 200, 183, + 199, 181, 206, 52, 53, 61, 204, 184, 180, 188, + 59, 120, 0, 0, 120, 26, 0, 185, 86, 90, + 87, 177, 0, 0, 0, 0, 0, 0, 0, 163, + 165, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 72, 74, 0, 202, 60, 187, 1, 0, 4, 20, 47, 0, 66, 67, 68, 69, 70, 71, - 64, 153, 137, 138, 139, 135, 189, 106, 105, 0, + 64, 154, 138, 139, 140, 136, 190, 106, 105, 0, 103, 104, 0, 88, 100, 27, 28, 0, 0, 0, - 0, 0, 0, 0, 0, 140, 142, 172, 197, 204, - 202, 116, 120, 120, 115, 0, 0, 89, 165, 166, - 167, 168, 169, 170, 171, 163, 84, 75, 208, 206, - 207, 77, 76, 82, 80, 85, 81, 79, 83, 78, - 73, 0, 0, 185, 194, 200, 3, 32, 0, 34, + 0, 0, 0, 0, 0, 141, 143, 173, 198, 205, + 203, 116, 120, 120, 115, 0, 0, 89, 166, 167, + 168, 169, 170, 171, 172, 164, 84, 75, 209, 207, + 208, 77, 76, 82, 80, 85, 81, 79, 83, 78, + 73, 0, 0, 186, 195, 201, 3, 32, 0, 34, 35, 0, 0, 0, 0, 39, 40, 41, 42, 0, 0, 43, 19, 31, 0, 0, 0, 0, 101, 113, - 109, 111, 107, 108, 110, 112, 102, 99, 147, 148, - 149, 150, 146, 145, 143, 144, 141, 122, 123, 124, + 109, 111, 107, 108, 110, 112, 102, 99, 148, 149, + 150, 151, 147, 146, 144, 145, 142, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 121, 117, 118, 120, 192, 196, 195, 193, 33, 36, - 38, 37, 45, 44, 46, 30, 0, 0, 0, 0, - 0, 218, 0, 214, 119, 191, 215, 216, 0, 213, - 211, 217, 0, 221, 0, 0, 0, 0, 0, 223, - 0, 0, 219, 222, 220, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, - 0, 226, 227, 228, 229, 230, 231, 225 + 135, 121, 117, 118, 120, 193, 197, 196, 194, 33, + 36, 38, 37, 45, 44, 46, 30, 0, 0, 0, + 0, 0, 219, 0, 215, 119, 192, 216, 217, 0, + 214, 212, 218, 0, 222, 0, 0, 0, 0, 0, + 224, 0, 0, 220, 223, 221, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 225, 0, 227, 228, 229, 230, 231, 232, 226 }; /* YYDEFGOTO[NTERM-NUM]. */ @@ -1082,67 +1085,67 @@ static const yytype_int16 yydefgoto[] = { -1, 47, 48, 49, 50, 51, 122, 113, 262, 263, 52, 53, 54, 55, 80, 81, 82, 56, 162, 163, - 57, 138, 108, 193, 194, 276, 58, 211, 300, 95, + 57, 138, 108, 193, 194, 276, 58, 211, 301, 95, 96, 59, 205, 206, 60, 90, 91, 61, 149, 150, 62, 98, 137, 243, 244, 119, 120, 166, 127, 123, - 231, 71, 63, 64, 266, 267, 320, 321, 335, 322, - 338, 339, 352, 353 + 231, 71, 63, 64, 266, 267, 321, 322, 336, 323, + 339, 340, 353, 354 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -133 +#define YYPACT_NINF -143 static const yytype_int16 yypact[] = { - 118, -118, -8, -7, -133, -46, -6, -3, 1, -26, - 8, 19, -77, 8, -133, 157, -48, -73, -72, -69, - -68, -67, -65, -133, -48, -48, -62, -133, -61, -56, - -133, -55, 29, -15, -133, -44, 157, -40, -6, 3, - 542, -39, 34, 34, -133, -133, -133, 89, 279, -57, - -133, -48, -133, -48, -133, -133, -133, -133, -133, -133, - -133, -133, -133, -133, -66, -133, -133, -133, -133, -133, - -133, -133, -133, -133, -29, -28, -24, -13, 53, 7, - -133, -26, -133, -133, -133, -133, -133, -133, -133, -133, - 8, -133, 66, 84, 86, 19, -133, 108, -133, 8, - -133, -133, -133, -133, -133, -133, -133, -133, -23, 12, - 20, -133, 30, -133, 417, -133, -133, -133, -133, -67, - -133, -133, -133, -48, -48, -133, -133, 21, -133, -133, - -133, -133, 15, 16, -133, 82, -2, -133, 157, -133, - -133, -133, -6, -6, -6, -6, -6, -6, -6, 3, - -133, 102, 112, -21, 113, -6, -6, 114, -6, -6, - 119, 120, 542, -133, -31, -133, 122, 122, -133, 10, - -133, 492, -133, -117, -133, -133, -133, -133, -133, -133, - -133, -133, -133, -133, -133, -133, -133, -133, -133, 42, - -133, -133, 11, -23, -133, -133, -133, -21, -21, -21, - -21, 47, 127, -6, -6, 30, -133, -133, -133, -133, - -133, 301, -133, -133, 301, -39, 58, -133, -133, -133, - -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, - -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, - -133, -39, 129, -31, -133, -133, -133, -133, -6, -133, - -133, 142, 143, 151, 152, -133, -133, -133, -133, 153, - 154, -133, 492, -133, 46, 48, -95, 60, -133, -133, - -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, - -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, - -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, - -133, 301, 301, -133, 181, -133, -133, -133, -133, -133, - -133, -133, -133, -133, -133, -133, -6, -6, 52, 64, - -98, -133, 54, -133, 301, -133, -133, -133, -48, -133, - -133, -133, 63, -133, 65, 70, -6, 67, -125, -133, - 69, -6, -133, -133, -133, 59, 41, 68, 71, 72, - 75, 78, 33, 77, -6, -6, -6, -6, -6, -133, - 81, -133, -133, -133, -133, -133, -133, -133 + 124, -125, -21, -15, -143, -56, -6, -9, 1, -26, + 17, 8, -78, 17, -143, 69, -49, -67, -66, -57, + -54, -52, -51, -143, -49, -49, -50, -143, -48, -45, + -143, -44, 12, -13, -143, -37, 69, -34, -6, 3, + 314, -30, 37, 37, -143, -143, -143, 95, 280, -47, + -143, -49, -143, -49, -143, -143, -143, -143, -143, -143, + -143, -143, -143, -143, -62, -143, -143, -143, -143, -143, + -143, -143, -143, -143, -24, -3, 2, 7, 62, 13, + -143, -26, -143, -143, -143, -143, -143, -143, -143, -143, + 17, -143, 76, 83, 92, 8, -143, 114, -143, 17, + -143, -143, -143, -143, -143, -143, -143, -143, -20, 20, + 21, -143, 212, -143, 419, -143, -143, -143, -143, -52, + -143, -143, -143, -49, -49, -143, -143, 22, -143, -143, + -143, -143, -12, 5, -143, 82, -7, -143, 69, -143, + -143, -143, -6, -6, -6, -6, -6, -6, -6, 3, + -143, 107, 111, -23, 112, -6, -6, 113, -6, -6, + 118, 120, 314, -143, -46, -143, 121, 121, -143, 15, + -143, 490, -143, -105, -143, -143, -143, -143, -143, -143, + -143, -143, -143, -143, -143, -143, -143, -143, -143, 47, + -143, -143, 14, -20, -143, -143, -143, -23, -23, -23, + -23, 48, 126, -6, -6, 212, -143, -143, -143, -143, + -143, 146, -143, -143, 146, -30, 50, -143, -143, -143, + -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, + -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, + -143, -30, 129, -46, -143, -143, -143, -143, -6, -143, + -143, 134, 137, 140, 141, -143, -143, -143, -143, 145, + 148, -143, 490, -143, 36, 39, -98, 51, -143, -143, + -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, + -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, + -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, + -143, -143, 146, 146, -143, 177, -143, -143, -143, -143, + -143, -143, -143, -143, -143, -143, -143, -6, -6, 43, + 57, -99, -143, 58, -143, 146, -143, -143, -143, -49, + -143, -143, -143, 68, -143, 52, 70, -6, 66, -126, + -143, 73, -6, -143, -143, -143, 71, 59, 84, 86, + 94, 96, 100, -90, 80, -6, -6, -6, -6, -6, + -143, 81, -143, -143, -143, -143, -143, -143, -143 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -133, -133, -133, -42, -133, -133, -1, -32, -133, -20, - -133, -133, -133, -133, -133, -133, 158, -133, -133, 79, - -133, -133, -10, -133, 50, -133, -133, -132, -133, -133, - 149, -133, -133, 40, -133, 234, -74, -133, -133, 99, - -133, -133, -133, -133, 6, -133, 134, 216, -133, 235, - -123, -38, -133, -133, -133, -5, -133, -58, -133, -133, - -133, -75, -133, -88 + -143, -143, -143, -40, -143, -143, -1, -32, -143, -10, + -143, -143, -143, -143, -143, -143, 130, -143, -143, 93, + -143, -143, 6, -143, 74, -143, -143, -132, -143, -143, + 168, -143, -143, 61, -143, 255, -65, -143, -143, 122, + -143, -143, -143, -143, 26, -143, 151, 229, -143, 250, + -142, -38, -143, -143, -143, 10, -143, -43, -143, -143, + -143, -58, -143, -76 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If @@ -1152,138 +1155,138 @@ static const yytype_int16 yypgoto[] = #define YYTABLE_NINF -7 static const yytype_int16 yytable[] = { - 141, 135, 214, 187, 109, 110, 169, 142, 188, 164, - 131, 189, 228, 83, 269, 112, 181, 84, 74, 318, - 241, 75, 318, 69, 85, 181, 139, 92, 337, 229, - 65, 143, 134, 264, 265, 270, 342, 132, 133, 190, - 212, 213, 66, 67, 70, 144, 68, 72, 145, 97, - 171, 73, 172, 114, 115, 264, 265, 116, 117, 118, - 191, 121, 86, 330, 125, 126, 197, 198, 199, 200, - 128, 129, 207, 242, 278, 279, 280, 281, 111, 130, - 301, 302, 136, 76, 165, 77, 140, 111, 87, 168, - 78, 170, 271, 79, 173, 93, 272, 174, 175, 94, - 146, 88, 176, 178, 218, 219, 220, 221, 222, 223, - 224, 111, 273, 177, 230, 192, 182, 233, 234, 1, - 236, 237, 209, 209, 2, 3, 147, 148, 217, 89, - 4, 5, 6, 179, 183, 7, 184, 186, 195, 8, - 9, 195, 196, 201, 10, 11, 196, 210, 12, 13, - 14, 215, 226, 15, 274, 202, 275, 216, 246, 203, - 204, 16, 227, 232, 235, 284, 285, 17, 268, 238, - 239, 324, 245, 282, 18, 19, 100, 283, 20, 306, - 101, 21, 22, 303, 304, 23, 24, 347, 348, 349, - 350, 351, 309, 310, 359, 347, 348, 349, 350, 351, - 25, 311, 312, 313, 314, 316, 325, 317, 323, 305, - 308, 328, 329, 26, 332, 334, 27, 344, 28, 346, - 29, 30, 102, 337, 336, 361, 341, 354, 31, 367, - 355, 356, 32, 33, 357, 34, 35, 358, 36, 180, - 37, 240, 315, 277, 185, 286, 38, 99, 225, 307, - 39, 40, 41, 208, 42, 43, 103, 44, 45, 167, - 124, 319, 331, 343, 360, 104, -6, 46, 0, 105, - 0, 0, 0, 0, 0, 0, 0, 0, 326, 327, - 0, 0, 0, 0, 106, 2, 3, 0, 107, 0, - 0, 4, 5, 6, 0, 0, 7, 0, 340, 0, - 8, 9, 0, 345, 0, 10, 11, 0, 0, 12, - 13, 14, 0, 0, 15, 0, 362, 363, 364, 365, - 366, 0, 16, 0, 0, 0, 0, 333, 17, 0, - 0, 0, 0, 0, 0, 18, 19, 0, 0, 20, - 0, 287, 21, 22, 0, 0, 23, 24, 0, 288, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 289, - 0, 25, 290, 0, 0, 0, 0, 291, 0, 0, - 0, 0, 0, 0, 26, 0, 0, 27, 0, 28, - 0, 29, 30, 0, 0, 292, 0, 293, 294, 31, - 295, 296, 297, 32, 33, 298, 34, 35, 0, 36, - 0, 37, 0, 0, 0, 0, 0, 38, 0, 0, - 0, 39, 40, 41, 0, 42, 43, 0, 44, 45, - 0, 0, 0, 2, 3, 0, 0, -6, 46, 4, - 5, 6, 0, 0, 7, 0, 0, 0, 8, 9, - 0, 0, 299, 10, 11, 0, 0, 12, 13, 14, - 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, - 16, 0, 0, 0, 0, 0, 17, 0, 0, 0, - 0, 0, 0, 18, 19, 0, 0, 20, 0, 0, - 21, 22, 0, 0, 23, 24, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 247, 25, - 0, 0, 0, 248, 0, 0, 0, 249, 0, 0, - 0, 0, 26, 0, 0, 27, 0, 28, 0, 29, - 30, 0, 0, 0, 0, 0, 0, 31, 0, 0, - 0, 32, 33, 0, 34, 35, 0, 36, 250, 37, - 0, 0, 0, 0, 0, 38, 0, 251, 0, 39, - 40, 41, 151, 42, 43, 0, 44, 45, 0, 0, - 152, 0, 153, 0, 0, 252, 46, 0, 0, 253, - 0, 254, 0, 0, 0, 0, 0, 0, 0, 0, - 255, 0, 0, 154, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 256, 257, + 141, 135, 214, 109, 110, 241, 187, 142, 169, 164, + 228, 188, 131, 212, 189, 112, 92, 269, 74, 319, + 319, 75, 83, 69, 65, 181, 84, 229, 338, 66, + 213, 143, 134, 85, 181, 67, 343, 68, 270, 132, + 133, 72, 139, 190, 70, 144, 264, 265, 145, 97, + 171, 73, 172, 264, 265, 278, 279, 280, 281, 242, + 114, 115, 130, 331, 191, 348, 349, 350, 351, 352, + 116, 86, 360, 117, 207, 118, 121, 125, 111, 126, + 302, 303, 128, 129, 76, 93, 77, 165, 100, 94, + 136, 78, 101, 140, 79, 168, 271, 111, 87, 173, + 272, 146, 170, 174, 218, 219, 220, 221, 222, 223, + 224, 88, 178, 230, 111, 195, 273, 233, 234, 192, + 236, 237, 209, 209, 175, 1, 182, 147, 148, 176, + 2, 3, 196, 183, 177, 102, 4, 5, 6, 89, + 179, 7, 184, 186, 217, 8, 9, 195, 196, 210, + 10, 11, 215, 216, 12, 13, 14, 226, 274, 15, + 275, 227, 232, 235, 246, 284, 285, 16, 238, 103, + 239, 245, 325, 17, 268, 282, 283, 305, 104, 307, + 18, 19, 105, 304, 310, 20, 287, 311, 21, 22, + 312, 313, 23, 24, 288, 314, 317, 106, 315, 318, + 324, 107, 326, 329, 289, 290, 330, 25, 291, 306, + 309, 180, 337, 292, 348, 349, 350, 351, 352, 333, + 26, 335, 345, 27, 338, 28, 342, 29, 30, 362, + 368, 293, 347, 294, 295, 31, 296, 297, 298, 32, + 33, 299, 34, 35, 355, 36, 356, 37, 197, 198, + 199, 200, 316, 38, 357, 240, 358, 39, 40, 41, + 359, 42, 43, 185, 44, 45, 286, 277, 99, 308, + 208, 225, 167, -6, 46, 124, 320, 361, 332, 327, + 328, 344, 0, 0, 0, 0, 2, 3, 300, 0, + 0, 0, 4, 5, 6, 0, 0, 7, 0, 341, + 0, 8, 9, 0, 346, 0, 10, 11, 0, 0, + 12, 13, 14, 0, 0, 15, 0, 363, 364, 365, + 366, 367, 0, 16, 151, 0, 201, 0, 334, 17, + 0, 0, 152, 0, 153, 0, 18, 19, 202, 0, + 0, 20, 203, 204, 21, 22, 0, 0, 23, 24, + 0, 0, 0, 0, 0, 154, 0, 0, 0, 0, + 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 26, 0, 0, 27, + 0, 28, 0, 29, 30, 155, 156, 157, 0, 158, + 159, 31, 0, 160, 0, 32, 33, 0, 34, 35, + 0, 36, 0, 37, 0, 0, 0, 0, 0, 38, + 0, 161, 0, 39, 40, 41, 0, 42, 43, 0, + 44, 45, 0, 0, 0, 2, 3, 0, 0, -6, + 46, 4, 5, 6, 0, 0, 7, 0, 0, 0, + 8, 9, 0, 0, 0, 10, 11, 0, 0, 12, + 13, 14, 0, 0, 15, 0, 0, 0, 0, 0, + 0, 0, 16, 0, 0, 0, 0, 0, 17, 0, + 0, 0, 0, 0, 0, 18, 19, 0, 0, 0, + 20, 0, 0, 21, 22, 0, 0, 23, 24, 0, + 0, 0, 0, 0, 0, 0, 247, 0, 0, 0, + 0, 248, 25, 0, 0, 249, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 26, 0, 0, 27, 0, + 28, 0, 29, 30, 0, 0, 0, 0, 0, 0, + 31, 0, 0, 0, 32, 33, 250, 34, 35, 0, + 36, 0, 37, 0, 0, 251, 0, 0, 38, 0, + 0, 0, 39, 40, 41, 0, 42, 43, 0, 44, + 45, 0, 0, 0, 252, 0, 0, 0, 253, 46, + 254, 0, 0, 0, 0, 0, 0, 0, 0, 255, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 256, 257, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 155, 156, 157, 0, 158, 159, 0, 0, - 160, 0, 0, 0, 0, 0, 0, 258, 0, 259, - 0, 0, 0, 260, 0, 0, 261, 0, 161 + 0, 0, 0, 0, 0, 0, 258, 0, 259, 0, + 0, 0, 260, 0, 0, 261 }; static const yytype_int16 yycheck[] = { - 38, 33, 134, 26, 52, 53, 48, 4, 31, 41, - 25, 34, 33, 5, 3, 16, 90, 9, 44, 117, - 51, 47, 117, 29, 16, 99, 36, 8, 153, 50, - 148, 28, 33, 150, 151, 24, 161, 52, 53, 62, - 25, 25, 50, 50, 50, 42, 92, 50, 45, 126, - 51, 50, 53, 126, 126, 150, 151, 126, 126, 126, - 83, 126, 54, 161, 126, 126, 36, 37, 38, 39, - 126, 126, 114, 104, 197, 198, 199, 200, 126, 50, - 212, 213, 126, 109, 50, 111, 126, 126, 80, 0, - 116, 148, 81, 119, 160, 76, 85, 126, 126, 80, - 97, 93, 126, 50, 142, 143, 144, 145, 146, 147, - 148, 126, 101, 126, 135, 138, 50, 155, 156, 1, - 158, 159, 123, 124, 6, 7, 123, 124, 138, 121, - 12, 13, 14, 126, 50, 17, 50, 29, 126, 21, - 22, 126, 126, 113, 26, 27, 126, 126, 30, 31, - 32, 69, 50, 35, 143, 125, 145, 159, 148, 129, - 130, 43, 50, 50, 50, 203, 204, 49, 126, 50, - 50, 303, 50, 126, 56, 57, 19, 50, 60, 50, - 23, 63, 64, 215, 126, 67, 68, 154, 155, 156, - 157, 158, 50, 50, 161, 154, 155, 156, 157, 158, - 82, 50, 50, 50, 50, 159, 25, 159, 148, 241, - 248, 159, 148, 95, 160, 152, 98, 148, 100, 160, - 102, 103, 65, 153, 159, 148, 159, 159, 110, 148, - 159, 159, 114, 115, 159, 117, 118, 159, 120, 81, - 122, 162, 262, 193, 95, 205, 128, 13, 149, 243, - 132, 133, 134, 119, 136, 137, 99, 139, 140, 43, - 25, 266, 320, 338, 352, 108, 148, 149, -1, 112, - -1, -1, -1, -1, -1, -1, -1, -1, 316, 317, - -1, -1, -1, -1, 127, 6, 7, -1, 131, -1, - -1, 12, 13, 14, -1, -1, 17, -1, 336, -1, - 21, 22, -1, 341, -1, 26, 27, -1, -1, 30, - 31, 32, -1, -1, 35, -1, 354, 355, 356, 357, - 358, -1, 43, -1, -1, -1, -1, 328, 49, -1, - -1, -1, -1, -1, -1, 56, 57, -1, -1, 60, - -1, 40, 63, 64, -1, -1, 67, 68, -1, 48, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 58, - -1, 82, 61, -1, -1, -1, -1, 66, -1, -1, - -1, -1, -1, -1, 95, -1, -1, 98, -1, 100, - -1, 102, 103, -1, -1, 84, -1, 86, 87, 110, - 89, 90, 91, 114, 115, 94, 117, 118, -1, 120, - -1, 122, -1, -1, -1, -1, -1, 128, -1, -1, - -1, 132, 133, 134, -1, 136, 137, -1, 139, 140, - -1, -1, -1, 6, 7, -1, -1, 148, 149, 12, - 13, 14, -1, -1, 17, -1, -1, -1, 21, 22, - -1, -1, 141, 26, 27, -1, -1, 30, 31, 32, - -1, -1, 35, -1, -1, -1, -1, -1, -1, -1, - 43, -1, -1, -1, -1, -1, 49, -1, -1, -1, - -1, -1, -1, 56, 57, -1, -1, 60, -1, -1, - 63, 64, -1, -1, 67, 68, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 6, 82, - -1, -1, -1, 11, -1, -1, -1, 15, -1, -1, - -1, -1, 95, -1, -1, 98, -1, 100, -1, 102, - 103, -1, -1, -1, -1, -1, -1, 110, -1, -1, - -1, 114, 115, -1, 117, 118, -1, 120, 46, 122, - -1, -1, -1, -1, -1, 128, -1, 55, -1, 132, - 133, 134, 10, 136, 137, -1, 139, 140, -1, -1, - 18, -1, 20, -1, -1, 73, 149, -1, -1, 77, - -1, 79, -1, -1, -1, -1, -1, -1, -1, -1, - 88, -1, -1, 41, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 106, 107, + 38, 33, 134, 52, 53, 51, 26, 4, 48, 41, + 33, 31, 25, 25, 34, 16, 8, 3, 44, 118, + 118, 47, 5, 29, 149, 90, 9, 50, 154, 50, + 25, 28, 33, 16, 99, 50, 162, 93, 24, 52, + 53, 50, 36, 63, 50, 42, 151, 152, 45, 127, + 51, 50, 53, 151, 152, 197, 198, 199, 200, 105, + 127, 127, 50, 162, 84, 155, 156, 157, 158, 159, + 127, 54, 162, 127, 114, 127, 127, 127, 127, 127, + 212, 213, 127, 127, 110, 77, 112, 50, 19, 81, + 127, 117, 23, 127, 120, 0, 82, 127, 81, 161, + 86, 98, 149, 127, 142, 143, 144, 145, 146, 147, + 148, 94, 50, 136, 127, 127, 102, 155, 156, 139, + 158, 159, 123, 124, 127, 1, 50, 124, 125, 127, + 6, 7, 127, 50, 127, 66, 12, 13, 14, 122, + 127, 17, 50, 29, 138, 21, 22, 127, 127, 127, + 26, 27, 70, 160, 30, 31, 32, 50, 144, 35, + 146, 50, 50, 50, 149, 203, 204, 43, 50, 100, + 50, 50, 304, 49, 127, 127, 50, 127, 109, 50, + 56, 57, 113, 215, 50, 61, 40, 50, 64, 65, + 50, 50, 68, 69, 48, 50, 160, 128, 50, 160, + 149, 132, 25, 160, 58, 59, 149, 83, 62, 241, + 248, 81, 160, 67, 155, 156, 157, 158, 159, 161, + 96, 153, 149, 99, 154, 101, 160, 103, 104, 149, + 149, 85, 161, 87, 88, 111, 90, 91, 92, 115, + 116, 95, 118, 119, 160, 121, 160, 123, 36, 37, + 38, 39, 262, 129, 160, 162, 160, 133, 134, 135, + 160, 137, 138, 95, 140, 141, 205, 193, 13, 243, + 119, 149, 43, 149, 150, 25, 266, 353, 321, 317, + 318, 339, -1, -1, -1, -1, 6, 7, 142, -1, + -1, -1, 12, 13, 14, -1, -1, 17, -1, 337, + -1, 21, 22, -1, 342, -1, 26, 27, -1, -1, + 30, 31, 32, -1, -1, 35, -1, 355, 356, 357, + 358, 359, -1, 43, 10, -1, 114, -1, 329, 49, + -1, -1, 18, -1, 20, -1, 56, 57, 126, -1, + -1, 61, 130, 131, 64, 65, -1, -1, 68, 69, + -1, -1, -1, -1, -1, 41, -1, -1, -1, -1, + -1, -1, -1, 83, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 96, -1, -1, 99, + -1, 101, -1, 103, 104, 71, 72, 73, -1, 75, + 76, 111, -1, 79, -1, 115, 116, -1, 118, 119, + -1, 121, -1, 123, -1, -1, -1, -1, -1, 129, + -1, 97, -1, 133, 134, 135, -1, 137, 138, -1, + 140, 141, -1, -1, -1, 6, 7, -1, -1, 149, + 150, 12, 13, 14, -1, -1, 17, -1, -1, -1, + 21, 22, -1, -1, -1, 26, 27, -1, -1, 30, + 31, 32, -1, -1, 35, -1, -1, -1, -1, -1, + -1, -1, 43, -1, -1, -1, -1, -1, 49, -1, + -1, -1, -1, -1, -1, 56, 57, -1, -1, -1, + 61, -1, -1, 64, 65, -1, -1, 68, 69, -1, + -1, -1, -1, -1, -1, -1, 6, -1, -1, -1, + -1, 11, 83, -1, -1, 15, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 96, -1, -1, 99, -1, + 101, -1, 103, 104, -1, -1, -1, -1, -1, -1, + 111, -1, -1, -1, 115, 116, 46, 118, 119, -1, + 121, -1, 123, -1, -1, 55, -1, -1, 129, -1, + -1, -1, 133, 134, 135, -1, 137, 138, -1, 140, + 141, -1, -1, -1, 74, -1, -1, -1, 78, 150, + 80, -1, -1, -1, -1, -1, -1, -1, -1, 89, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 70, 71, 72, -1, 74, 75, -1, -1, - 78, -1, -1, -1, -1, -1, -1, 135, -1, 137, - -1, -1, -1, 141, -1, -1, 144, -1, 96 + -1, -1, -1, -1, -1, -1, -1, 107, 108, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 136, -1, 138, -1, + -1, -1, 142, -1, -1, 145 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing @@ -1292,41 +1295,41 @@ static const yytype_uint8 yystos[] = { 0, 1, 6, 7, 12, 13, 14, 17, 21, 22, 26, 27, 30, 31, 32, 35, 43, 49, 56, 57, - 60, 63, 64, 67, 68, 82, 95, 98, 100, 102, - 103, 110, 114, 115, 117, 118, 120, 122, 128, 132, - 133, 134, 136, 137, 139, 140, 149, 163, 164, 165, - 166, 167, 172, 173, 174, 175, 179, 182, 188, 193, - 196, 199, 202, 214, 215, 148, 50, 50, 92, 29, - 50, 213, 50, 50, 44, 47, 109, 111, 116, 119, - 176, 177, 178, 5, 9, 16, 54, 80, 93, 121, - 197, 198, 8, 76, 80, 191, 192, 126, 203, 197, - 19, 23, 65, 99, 108, 112, 127, 131, 184, 52, - 53, 126, 168, 169, 126, 126, 126, 126, 126, 207, - 208, 126, 168, 211, 211, 126, 126, 210, 126, 126, - 50, 25, 52, 53, 168, 169, 126, 204, 183, 184, - 126, 213, 4, 28, 42, 45, 97, 123, 124, 200, - 201, 10, 18, 20, 41, 70, 71, 72, 74, 75, - 78, 96, 180, 181, 169, 50, 209, 209, 0, 165, - 148, 168, 168, 160, 126, 126, 126, 126, 50, 126, - 178, 198, 50, 50, 50, 192, 29, 26, 31, 34, - 62, 83, 138, 185, 186, 126, 126, 36, 37, 38, - 39, 113, 125, 129, 130, 194, 195, 165, 208, 168, - 126, 189, 25, 25, 189, 69, 159, 184, 213, 213, - 213, 213, 213, 213, 213, 201, 50, 50, 33, 50, - 135, 212, 50, 213, 213, 50, 213, 213, 50, 50, - 181, 51, 104, 205, 206, 50, 148, 6, 11, 15, - 46, 55, 73, 77, 79, 88, 106, 107, 135, 137, - 141, 144, 170, 171, 150, 151, 216, 217, 126, 3, - 24, 81, 85, 101, 143, 145, 187, 186, 212, 212, - 212, 212, 126, 50, 213, 213, 195, 40, 48, 58, - 61, 66, 84, 86, 87, 89, 90, 91, 94, 141, - 190, 189, 189, 169, 126, 169, 50, 206, 213, 50, - 50, 50, 50, 50, 50, 171, 159, 159, 117, 217, - 218, 219, 221, 148, 189, 25, 213, 213, 159, 148, - 161, 219, 160, 168, 152, 220, 159, 153, 222, 223, - 213, 159, 161, 223, 148, 213, 160, 154, 155, 156, - 157, 158, 224, 225, 159, 159, 159, 159, 159, 161, - 225, 148, 213, 213, 213, 213, 213, 148 + 61, 64, 65, 68, 69, 83, 96, 99, 101, 103, + 104, 111, 115, 116, 118, 119, 121, 123, 129, 133, + 134, 135, 137, 138, 140, 141, 150, 164, 165, 166, + 167, 168, 173, 174, 175, 176, 180, 183, 189, 194, + 197, 200, 203, 215, 216, 149, 50, 50, 93, 29, + 50, 214, 50, 50, 44, 47, 110, 112, 117, 120, + 177, 178, 179, 5, 9, 16, 54, 81, 94, 122, + 198, 199, 8, 77, 81, 192, 193, 127, 204, 198, + 19, 23, 66, 100, 109, 113, 128, 132, 185, 52, + 53, 127, 169, 170, 127, 127, 127, 127, 127, 208, + 209, 127, 169, 212, 212, 127, 127, 211, 127, 127, + 50, 25, 52, 53, 169, 170, 127, 205, 184, 185, + 127, 214, 4, 28, 42, 45, 98, 124, 125, 201, + 202, 10, 18, 20, 41, 71, 72, 73, 75, 76, + 79, 97, 181, 182, 170, 50, 210, 210, 0, 166, + 149, 169, 169, 161, 127, 127, 127, 127, 50, 127, + 179, 199, 50, 50, 50, 193, 29, 26, 31, 34, + 63, 84, 139, 186, 187, 127, 127, 36, 37, 38, + 39, 114, 126, 130, 131, 195, 196, 166, 209, 169, + 127, 190, 25, 25, 190, 70, 160, 185, 214, 214, + 214, 214, 214, 214, 214, 202, 50, 50, 33, 50, + 136, 213, 50, 214, 214, 50, 214, 214, 50, 50, + 182, 51, 105, 206, 207, 50, 149, 6, 11, 15, + 46, 55, 74, 78, 80, 89, 107, 108, 136, 138, + 142, 145, 171, 172, 151, 152, 217, 218, 127, 3, + 24, 82, 86, 102, 144, 146, 188, 187, 213, 213, + 213, 213, 127, 50, 214, 214, 196, 40, 48, 58, + 59, 62, 67, 85, 87, 88, 90, 91, 92, 95, + 142, 191, 190, 190, 170, 127, 170, 50, 207, 214, + 50, 50, 50, 50, 50, 50, 172, 160, 160, 118, + 218, 219, 220, 222, 149, 190, 25, 214, 214, 160, + 149, 162, 220, 161, 169, 153, 221, 160, 154, 223, + 224, 214, 160, 162, 224, 149, 214, 161, 155, 156, + 157, 158, 159, 225, 226, 160, 160, 160, 160, 160, + 162, 226, 149, 214, 214, 214, 214, 214, 149 }; #define yyerrok (yyerrstatus = 0) @@ -2140,7 +2143,7 @@ yyreduce: case 5: /* Line 1455 of yacc.c */ -#line 287 "ntp_parser.y" +#line 288 "ntp_parser.y" { /* I will need to incorporate much more fine grained * error messages. The following should suffice for @@ -2164,7 +2167,7 @@ yyreduce: case 19: /* Line 1455 of yacc.c */ -#line 328 "ntp_parser.y" +#line 329 "ntp_parser.y" { struct peer_node *my_node = create_peer_node((yyvsp[(1) - (3)].Integer), (yyvsp[(2) - (3)].Address_node), (yyvsp[(3) - (3)].Queue)); if (my_node) @@ -2175,7 +2178,7 @@ yyreduce: case 20: /* Line 1455 of yacc.c */ -#line 334 "ntp_parser.y" +#line 335 "ntp_parser.y" { struct peer_node *my_node = create_peer_node((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Address_node), NULL); if (my_node) @@ -2186,189 +2189,189 @@ yyreduce: case 21: /* Line 1455 of yacc.c */ -#line 342 "ntp_parser.y" +#line 343 "ntp_parser.y" { (yyval.Integer) = T_Server; } break; case 22: /* Line 1455 of yacc.c */ -#line 343 "ntp_parser.y" +#line 344 "ntp_parser.y" { (yyval.Integer) = T_Pool; } break; case 23: /* Line 1455 of yacc.c */ -#line 344 "ntp_parser.y" +#line 345 "ntp_parser.y" { (yyval.Integer) = T_Peer; } break; case 24: /* Line 1455 of yacc.c */ -#line 345 "ntp_parser.y" +#line 346 "ntp_parser.y" { (yyval.Integer) = T_Broadcast; } break; case 25: /* Line 1455 of yacc.c */ -#line 346 "ntp_parser.y" +#line 347 "ntp_parser.y" { (yyval.Integer) = T_Manycastclient; } break; case 26: /* Line 1455 of yacc.c */ -#line 350 "ntp_parser.y" +#line 351 "ntp_parser.y" { (yyval.Address_node) = (yyvsp[(1) - (1)].Address_node); } break; case 27: /* Line 1455 of yacc.c */ -#line 351 "ntp_parser.y" +#line 352 "ntp_parser.y" { (yyval.Address_node) = create_address_node((yyvsp[(2) - (2)].String), AF_INET); } break; case 28: /* Line 1455 of yacc.c */ -#line 352 "ntp_parser.y" +#line 353 "ntp_parser.y" { (yyval.Address_node) = create_address_node((yyvsp[(2) - (2)].String), AF_INET6); } break; case 29: /* Line 1455 of yacc.c */ -#line 356 "ntp_parser.y" +#line 357 "ntp_parser.y" { (yyval.Address_node) = create_address_node((yyvsp[(1) - (1)].String), 0); } break; case 30: /* Line 1455 of yacc.c */ -#line 360 "ntp_parser.y" +#line 361 "ntp_parser.y" { (yyval.Queue) = enqueue((yyvsp[(1) - (2)].Queue), (yyvsp[(2) - (2)].Attr_val)); } break; case 31: /* Line 1455 of yacc.c */ -#line 361 "ntp_parser.y" +#line 362 "ntp_parser.y" { (yyval.Queue) = enqueue_in_new_queue((yyvsp[(1) - (1)].Attr_val)); } break; case 32: /* Line 1455 of yacc.c */ -#line 365 "ntp_parser.y" +#line 366 "ntp_parser.y" { (yyval.Attr_val) = create_attr_ival(T_Flag, FLAG_SKEY); } break; case 33: /* Line 1455 of yacc.c */ -#line 366 "ntp_parser.y" +#line 367 "ntp_parser.y" { (yyval.Attr_val) = create_attr_dval(T_Bias, (yyvsp[(2) - (2)].Double)); } break; case 34: /* Line 1455 of yacc.c */ -#line 367 "ntp_parser.y" +#line 368 "ntp_parser.y" { (yyval.Attr_val) = create_attr_ival(T_Flag, FLAG_BURST); } break; case 35: /* Line 1455 of yacc.c */ -#line 368 "ntp_parser.y" +#line 369 "ntp_parser.y" { (yyval.Attr_val) = create_attr_ival(T_Flag, FLAG_IBURST); } break; case 36: /* Line 1455 of yacc.c */ -#line 369 "ntp_parser.y" +#line 370 "ntp_parser.y" { (yyval.Attr_val) = create_attr_ival(T_Key, (yyvsp[(2) - (2)].Integer)); } break; case 37: /* Line 1455 of yacc.c */ -#line 370 "ntp_parser.y" +#line 371 "ntp_parser.y" { (yyval.Attr_val) = create_attr_ival(T_Minpoll, (yyvsp[(2) - (2)].Integer)); } break; case 38: /* Line 1455 of yacc.c */ -#line 371 "ntp_parser.y" +#line 372 "ntp_parser.y" { (yyval.Attr_val) = create_attr_ival(T_Maxpoll, (yyvsp[(2) - (2)].Integer)); } break; case 39: /* Line 1455 of yacc.c */ -#line 372 "ntp_parser.y" +#line 373 "ntp_parser.y" { (yyval.Attr_val) = create_attr_ival(T_Flag, FLAG_NOSELECT); } break; case 40: /* Line 1455 of yacc.c */ -#line 373 "ntp_parser.y" +#line 374 "ntp_parser.y" { (yyval.Attr_val) = create_attr_ival(T_Flag, FLAG_PREEMPT); } break; case 41: /* Line 1455 of yacc.c */ -#line 374 "ntp_parser.y" +#line 375 "ntp_parser.y" { (yyval.Attr_val) = create_attr_ival(T_Flag, FLAG_PREFER); } break; case 42: /* Line 1455 of yacc.c */ -#line 375 "ntp_parser.y" +#line 376 "ntp_parser.y" { (yyval.Attr_val) = create_attr_ival(T_Flag, FLAG_TRUE); } break; case 43: /* Line 1455 of yacc.c */ -#line 376 "ntp_parser.y" +#line 377 "ntp_parser.y" { (yyval.Attr_val) = create_attr_ival(T_Flag, FLAG_XLEAVE); } break; case 44: /* Line 1455 of yacc.c */ -#line 377 "ntp_parser.y" +#line 378 "ntp_parser.y" { (yyval.Attr_val) = create_attr_ival(T_Ttl, (yyvsp[(2) - (2)].Integer)); } break; case 45: /* Line 1455 of yacc.c */ -#line 378 "ntp_parser.y" +#line 379 "ntp_parser.y" { (yyval.Attr_val) = create_attr_ival(T_Mode, (yyvsp[(2) - (2)].Integer)); } break; case 46: /* Line 1455 of yacc.c */ -#line 379 "ntp_parser.y" +#line 380 "ntp_parser.y" { (yyval.Attr_val) = create_attr_ival(T_Version, (yyvsp[(2) - (2)].Integer)); } break; case 47: /* Line 1455 of yacc.c */ -#line 389 "ntp_parser.y" +#line 390 "ntp_parser.y" { struct unpeer_node *my_node = create_unpeer_node((yyvsp[(2) - (2)].Address_node)); if (my_node) @@ -2379,63 +2382,63 @@ yyreduce: case 48: /* Line 1455 of yacc.c */ -#line 396 "ntp_parser.y" +#line 397 "ntp_parser.y" { (yyval.Integer) = T_Unconfig; } break; case 49: /* Line 1455 of yacc.c */ -#line 397 "ntp_parser.y" +#line 398 "ntp_parser.y" { (yyval.Integer) = T_Unpeer; } break; case 50: /* Line 1455 of yacc.c */ -#line 408 "ntp_parser.y" +#line 409 "ntp_parser.y" { my_config.broadcastclient = SIMPLE; } break; case 51: /* Line 1455 of yacc.c */ -#line 410 "ntp_parser.y" +#line 411 "ntp_parser.y" { my_config.broadcastclient = NOVOLLEY; } break; case 52: /* Line 1455 of yacc.c */ -#line 412 "ntp_parser.y" +#line 413 "ntp_parser.y" { append_queue(my_config.manycastserver, (yyvsp[(2) - (2)].Queue)); } break; case 53: /* Line 1455 of yacc.c */ -#line 414 "ntp_parser.y" +#line 415 "ntp_parser.y" { append_queue(my_config.multicastclient, (yyvsp[(2) - (2)].Queue)); } break; case 54: /* Line 1455 of yacc.c */ -#line 425 "ntp_parser.y" +#line 426 "ntp_parser.y" { my_config.auth.autokey = (yyvsp[(2) - (2)].Integer); } break; case 55: /* Line 1455 of yacc.c */ -#line 427 "ntp_parser.y" +#line 428 "ntp_parser.y" { my_config.auth.control_key = (yyvsp[(2) - (2)].Integer); } break; case 56: /* Line 1455 of yacc.c */ -#line 429 "ntp_parser.y" +#line 430 "ntp_parser.y" { if (my_config.auth.crypto_cmd_list != NULL) append_queue(my_config.auth.crypto_cmd_list, (yyvsp[(2) - (2)].Queue)); @@ -2448,217 +2451,217 @@ yyreduce: case 57: /* Line 1455 of yacc.c */ -#line 437 "ntp_parser.y" +#line 438 "ntp_parser.y" { my_config.auth.keys = (yyvsp[(2) - (2)].String); } break; case 58: /* Line 1455 of yacc.c */ -#line 439 "ntp_parser.y" +#line 440 "ntp_parser.y" { my_config.auth.keysdir = (yyvsp[(2) - (2)].String); } break; case 59: /* Line 1455 of yacc.c */ -#line 441 "ntp_parser.y" +#line 442 "ntp_parser.y" { my_config.auth.request_key = (yyvsp[(2) - (2)].Integer); } break; case 60: /* Line 1455 of yacc.c */ -#line 443 "ntp_parser.y" +#line 444 "ntp_parser.y" { my_config.auth.trusted_key_list = (yyvsp[(2) - (2)].Queue); } break; case 61: /* Line 1455 of yacc.c */ -#line 445 "ntp_parser.y" +#line 446 "ntp_parser.y" { my_config.auth.ntp_signd_socket = (yyvsp[(2) - (2)].String); } break; case 63: /* Line 1455 of yacc.c */ -#line 451 "ntp_parser.y" +#line 452 "ntp_parser.y" { (yyval.Queue) = NULL; } break; case 64: /* Line 1455 of yacc.c */ -#line 455 "ntp_parser.y" +#line 456 "ntp_parser.y" { (yyval.Queue) = enqueue((yyvsp[(1) - (2)].Queue), (yyvsp[(2) - (2)].Attr_val)); } break; case 65: /* Line 1455 of yacc.c */ -#line 456 "ntp_parser.y" +#line 457 "ntp_parser.y" { (yyval.Queue) = enqueue_in_new_queue((yyvsp[(1) - (1)].Attr_val)); } break; case 66: /* Line 1455 of yacc.c */ -#line 461 "ntp_parser.y" +#line 462 "ntp_parser.y" { (yyval.Attr_val) = create_attr_sval(CRYPTO_CONF_PRIV, (yyvsp[(2) - (2)].String)); } break; case 67: /* Line 1455 of yacc.c */ -#line 463 "ntp_parser.y" +#line 464 "ntp_parser.y" { (yyval.Attr_val) = create_attr_sval(CRYPTO_CONF_IDENT, (yyvsp[(2) - (2)].String)); } break; case 68: /* Line 1455 of yacc.c */ -#line 465 "ntp_parser.y" +#line 466 "ntp_parser.y" { (yyval.Attr_val) = create_attr_sval(CRYPTO_CONF_PW, (yyvsp[(2) - (2)].String)); } break; case 69: /* Line 1455 of yacc.c */ -#line 467 "ntp_parser.y" +#line 468 "ntp_parser.y" { (yyval.Attr_val) = create_attr_sval(CRYPTO_CONF_RAND, (yyvsp[(2) - (2)].String)); } break; case 70: /* Line 1455 of yacc.c */ -#line 469 "ntp_parser.y" +#line 470 "ntp_parser.y" { my_config.auth.revoke = (yyvsp[(2) - (2)].Integer); } break; case 71: /* Line 1455 of yacc.c */ -#line 471 "ntp_parser.y" +#line 472 "ntp_parser.y" { (yyval.Attr_val) = create_attr_sval(CRYPTO_CONF_SIGN, (yyvsp[(2) - (2)].String)); } break; case 72: /* Line 1455 of yacc.c */ -#line 481 "ntp_parser.y" +#line 482 "ntp_parser.y" { append_queue(my_config.orphan_cmds,(yyvsp[(2) - (2)].Queue)); } break; case 73: /* Line 1455 of yacc.c */ -#line 485 "ntp_parser.y" +#line 486 "ntp_parser.y" { (yyval.Queue) = enqueue((yyvsp[(1) - (2)].Queue), (yyvsp[(2) - (2)].Attr_val)); } break; case 74: /* Line 1455 of yacc.c */ -#line 486 "ntp_parser.y" +#line 487 "ntp_parser.y" { (yyval.Queue) = enqueue_in_new_queue((yyvsp[(1) - (1)].Attr_val)); } break; case 75: /* Line 1455 of yacc.c */ -#line 491 "ntp_parser.y" +#line 492 "ntp_parser.y" { (yyval.Attr_val) = create_attr_dval(PROTO_CEILING, (double)(yyvsp[(2) - (2)].Integer)); } break; case 76: /* Line 1455 of yacc.c */ -#line 493 "ntp_parser.y" +#line 494 "ntp_parser.y" { (yyval.Attr_val) = create_attr_dval(PROTO_FLOOR, (double)(yyvsp[(2) - (2)].Integer)); } break; case 77: /* Line 1455 of yacc.c */ -#line 495 "ntp_parser.y" +#line 496 "ntp_parser.y" { (yyval.Attr_val) = create_attr_dval(PROTO_COHORT, (double)(yyvsp[(2) - (2)].Integer)); } break; case 78: /* Line 1455 of yacc.c */ -#line 497 "ntp_parser.y" +#line 498 "ntp_parser.y" { (yyval.Attr_val) = create_attr_dval(PROTO_ORPHAN, (double)(yyvsp[(2) - (2)].Integer)); } break; case 79: /* Line 1455 of yacc.c */ -#line 499 "ntp_parser.y" +#line 500 "ntp_parser.y" { (yyval.Attr_val) = create_attr_dval(PROTO_MINDISP, (yyvsp[(2) - (2)].Double)); } break; case 80: /* Line 1455 of yacc.c */ -#line 501 "ntp_parser.y" +#line 502 "ntp_parser.y" { (yyval.Attr_val) = create_attr_dval(PROTO_MAXDIST, (yyvsp[(2) - (2)].Double)); } break; case 81: /* Line 1455 of yacc.c */ -#line 503 "ntp_parser.y" +#line 504 "ntp_parser.y" { (yyval.Attr_val) = create_attr_dval(PROTO_MINCLOCK, (yyvsp[(2) - (2)].Double)); } break; case 82: /* Line 1455 of yacc.c */ -#line 505 "ntp_parser.y" +#line 506 "ntp_parser.y" { (yyval.Attr_val) = create_attr_dval(PROTO_MAXCLOCK, (yyvsp[(2) - (2)].Double)); } break; case 83: /* Line 1455 of yacc.c */ -#line 507 "ntp_parser.y" +#line 508 "ntp_parser.y" { (yyval.Attr_val) = create_attr_dval(PROTO_MINSANE, (double)(yyvsp[(2) - (2)].Integer)); } break; case 84: /* Line 1455 of yacc.c */ -#line 509 "ntp_parser.y" +#line 510 "ntp_parser.y" { (yyval.Attr_val) = create_attr_dval(PROTO_BEACON, (double)(yyvsp[(2) - (2)].Integer)); } break; case 85: /* Line 1455 of yacc.c */ -#line 511 "ntp_parser.y" +#line 512 "ntp_parser.y" { (yyval.Attr_val) = create_attr_dval(PROTO_MAXHOP, (double)(yyvsp[(2) - (2)].Integer)); } break; case 86: /* Line 1455 of yacc.c */ -#line 521 "ntp_parser.y" +#line 522 "ntp_parser.y" { append_queue(my_config.stats_list, (yyvsp[(2) - (2)].Queue)); } break; case 87: /* Line 1455 of yacc.c */ -#line 523 "ntp_parser.y" +#line 524 "ntp_parser.y" { my_config.stats_dir = (yyvsp[(2) - (2)].String); } break; case 88: /* Line 1455 of yacc.c */ -#line 525 "ntp_parser.y" +#line 526 "ntp_parser.y" { enqueue(my_config.filegen_opts, create_filegen_node((yyvsp[(2) - (3)].VoidPtr), (yyvsp[(3) - (3)].Queue))); @@ -2668,182 +2671,182 @@ yyreduce: case 89: /* Line 1455 of yacc.c */ -#line 532 "ntp_parser.y" +#line 533 "ntp_parser.y" { (yyval.Queue) = enqueue((yyvsp[(1) - (2)].Queue), (yyvsp[(2) - (2)].VoidPtr)); } break; case 90: /* Line 1455 of yacc.c */ -#line 533 "ntp_parser.y" +#line 534 "ntp_parser.y" { (yyval.Queue) = enqueue_in_new_queue((yyvsp[(1) - (1)].VoidPtr)); } break; case 91: /* Line 1455 of yacc.c */ -#line 538 "ntp_parser.y" +#line 539 "ntp_parser.y" { (yyval.VoidPtr) = create_pval("clockstats"); } break; case 92: /* Line 1455 of yacc.c */ -#line 540 "ntp_parser.y" +#line 541 "ntp_parser.y" { (yyval.VoidPtr) = create_pval("cryptostats"); } break; case 93: /* Line 1455 of yacc.c */ -#line 542 "ntp_parser.y" +#line 543 "ntp_parser.y" { (yyval.VoidPtr) = create_pval("loopstats"); } break; case 94: /* Line 1455 of yacc.c */ -#line 544 "ntp_parser.y" +#line 545 "ntp_parser.y" { (yyval.VoidPtr) = create_pval("peerstats"); } break; case 95: /* Line 1455 of yacc.c */ -#line 546 "ntp_parser.y" +#line 547 "ntp_parser.y" { (yyval.VoidPtr) = create_pval("rawstats"); } break; case 96: /* Line 1455 of yacc.c */ -#line 548 "ntp_parser.y" +#line 549 "ntp_parser.y" { (yyval.VoidPtr) = create_pval("sysstats"); } break; case 97: /* Line 1455 of yacc.c */ -#line 550 "ntp_parser.y" +#line 551 "ntp_parser.y" { (yyval.VoidPtr) = create_pval("timingstats"); } break; case 98: /* Line 1455 of yacc.c */ -#line 552 "ntp_parser.y" +#line 553 "ntp_parser.y" { (yyval.VoidPtr) = create_pval("protostats"); } break; case 99: /* Line 1455 of yacc.c */ -#line 556 "ntp_parser.y" +#line 557 "ntp_parser.y" { (yyval.Queue) = enqueue((yyvsp[(1) - (2)].Queue), (yyvsp[(2) - (2)].Attr_val)); } break; case 100: /* Line 1455 of yacc.c */ -#line 557 "ntp_parser.y" +#line 558 "ntp_parser.y" { (yyval.Queue) = enqueue_in_new_queue((yyvsp[(1) - (1)].Attr_val)); } break; case 101: /* Line 1455 of yacc.c */ -#line 562 "ntp_parser.y" +#line 563 "ntp_parser.y" { (yyval.Attr_val) = create_attr_sval(T_File, (yyvsp[(2) - (2)].String)); } break; case 102: /* Line 1455 of yacc.c */ -#line 564 "ntp_parser.y" +#line 565 "ntp_parser.y" { (yyval.Attr_val) = create_attr_ival(T_Type, (yyvsp[(2) - (2)].Integer)); } break; case 103: /* Line 1455 of yacc.c */ -#line 565 "ntp_parser.y" +#line 566 "ntp_parser.y" { (yyval.Attr_val) = create_attr_ival(T_Flag, T_Link); } break; case 104: /* Line 1455 of yacc.c */ -#line 566 "ntp_parser.y" +#line 567 "ntp_parser.y" { (yyval.Attr_val) = create_attr_ival(T_Flag, T_Nolink); } break; case 105: /* Line 1455 of yacc.c */ -#line 567 "ntp_parser.y" +#line 568 "ntp_parser.y" { (yyval.Attr_val) = create_attr_ival(T_Flag, T_Enable); } break; case 106: /* Line 1455 of yacc.c */ -#line 568 "ntp_parser.y" +#line 569 "ntp_parser.y" { (yyval.Attr_val) = create_attr_ival(T_Flag, T_Disable); } break; case 107: /* Line 1455 of yacc.c */ -#line 572 "ntp_parser.y" +#line 573 "ntp_parser.y" { (yyval.Integer) = FILEGEN_NONE; } break; case 108: /* Line 1455 of yacc.c */ -#line 573 "ntp_parser.y" +#line 574 "ntp_parser.y" { (yyval.Integer) = FILEGEN_PID; } break; case 109: /* Line 1455 of yacc.c */ -#line 574 "ntp_parser.y" +#line 575 "ntp_parser.y" { (yyval.Integer) = FILEGEN_DAY; } break; case 110: /* Line 1455 of yacc.c */ -#line 575 "ntp_parser.y" +#line 576 "ntp_parser.y" { (yyval.Integer) = FILEGEN_WEEK; } break; case 111: /* Line 1455 of yacc.c */ -#line 576 "ntp_parser.y" +#line 577 "ntp_parser.y" { (yyval.Integer) = FILEGEN_MONTH; } break; case 112: /* Line 1455 of yacc.c */ -#line 577 "ntp_parser.y" +#line 578 "ntp_parser.y" { (yyval.Integer) = FILEGEN_YEAR; } break; case 113: /* Line 1455 of yacc.c */ -#line 578 "ntp_parser.y" +#line 579 "ntp_parser.y" { (yyval.Integer) = FILEGEN_AGE; } break; case 114: /* Line 1455 of yacc.c */ -#line 588 "ntp_parser.y" +#line 589 "ntp_parser.y" { append_queue(my_config.discard_opts, (yyvsp[(2) - (2)].Queue)); } @@ -2852,7 +2855,7 @@ yyreduce: case 115: /* Line 1455 of yacc.c */ -#line 592 "ntp_parser.y" +#line 593 "ntp_parser.y" { enqueue(my_config.restrict_opts, create_restrict_node((yyvsp[(2) - (3)].Address_node), NULL, (yyvsp[(3) - (3)].Queue), ip_file->line_no)); @@ -2862,7 +2865,7 @@ yyreduce: case 116: /* Line 1455 of yacc.c */ -#line 597 "ntp_parser.y" +#line 598 "ntp_parser.y" { enqueue(my_config.restrict_opts, create_restrict_node(NULL, NULL, (yyvsp[(3) - (3)].Queue), ip_file->line_no)); @@ -2872,7 +2875,7 @@ yyreduce: case 117: /* Line 1455 of yacc.c */ -#line 602 "ntp_parser.y" +#line 603 "ntp_parser.y" { enqueue(my_config.restrict_opts, create_restrict_node( @@ -2890,7 +2893,7 @@ yyreduce: case 118: /* Line 1455 of yacc.c */ -#line 615 "ntp_parser.y" +#line 616 "ntp_parser.y" { enqueue(my_config.restrict_opts, create_restrict_node( @@ -2908,7 +2911,7 @@ yyreduce: case 119: /* Line 1455 of yacc.c */ -#line 628 "ntp_parser.y" +#line 629 "ntp_parser.y" { enqueue(my_config.restrict_opts, create_restrict_node((yyvsp[(2) - (5)].Address_node), (yyvsp[(4) - (5)].Address_node), (yyvsp[(5) - (5)].Queue), ip_file->line_no)); @@ -2918,371 +2921,378 @@ yyreduce: case 120: /* Line 1455 of yacc.c */ -#line 635 "ntp_parser.y" +#line 636 "ntp_parser.y" { (yyval.Queue) = create_queue(); } break; case 121: /* Line 1455 of yacc.c */ -#line 636 "ntp_parser.y" +#line 637 "ntp_parser.y" { (yyval.Queue) = enqueue((yyvsp[(1) - (2)].Queue), (yyvsp[(2) - (2)].VoidPtr)); } break; case 122: /* Line 1455 of yacc.c */ -#line 640 "ntp_parser.y" +#line 641 "ntp_parser.y" { (yyval.VoidPtr) = create_ival(RES_TIMEOUT); } break; case 123: /* Line 1455 of yacc.c */ -#line 641 "ntp_parser.y" +#line 642 "ntp_parser.y" { (yyval.VoidPtr) = create_ival(RES_IGNORE); } break; case 124: /* Line 1455 of yacc.c */ -#line 642 "ntp_parser.y" +#line 643 "ntp_parser.y" { (yyval.VoidPtr) = create_ival(RES_KOD); } break; case 125: /* Line 1455 of yacc.c */ -#line 643 "ntp_parser.y" - { (yyval.VoidPtr) = create_ival(RES_LIMITED); } +#line 644 "ntp_parser.y" + { (yyval.VoidPtr) = create_ival(RES_MSSNTP); } break; case 126: /* Line 1455 of yacc.c */ -#line 644 "ntp_parser.y" - { (yyval.VoidPtr) = create_ival(RES_LPTRAP); } +#line 645 "ntp_parser.y" + { (yyval.VoidPtr) = create_ival(RES_LIMITED); } break; case 127: /* Line 1455 of yacc.c */ -#line 645 "ntp_parser.y" - { (yyval.VoidPtr) = create_ival(RES_NOMODIFY); } +#line 646 "ntp_parser.y" + { (yyval.VoidPtr) = create_ival(RES_LPTRAP); } break; case 128: /* Line 1455 of yacc.c */ -#line 646 "ntp_parser.y" - { (yyval.VoidPtr) = create_ival(RES_NOPEER); } +#line 647 "ntp_parser.y" + { (yyval.VoidPtr) = create_ival(RES_NOMODIFY); } break; case 129: /* Line 1455 of yacc.c */ -#line 647 "ntp_parser.y" - { (yyval.VoidPtr) = create_ival(RES_NOQUERY); } +#line 648 "ntp_parser.y" + { (yyval.VoidPtr) = create_ival(RES_NOPEER); } break; case 130: /* Line 1455 of yacc.c */ -#line 648 "ntp_parser.y" - { (yyval.VoidPtr) = create_ival(RES_DONTSERVE); } +#line 649 "ntp_parser.y" + { (yyval.VoidPtr) = create_ival(RES_NOQUERY); } break; case 131: /* Line 1455 of yacc.c */ -#line 649 "ntp_parser.y" - { (yyval.VoidPtr) = create_ival(RES_NOTRAP); } +#line 650 "ntp_parser.y" + { (yyval.VoidPtr) = create_ival(RES_DONTSERVE); } break; case 132: /* Line 1455 of yacc.c */ -#line 650 "ntp_parser.y" - { (yyval.VoidPtr) = create_ival(RES_DONTTRUST); } +#line 651 "ntp_parser.y" + { (yyval.VoidPtr) = create_ival(RES_NOTRAP); } break; case 133: /* Line 1455 of yacc.c */ -#line 651 "ntp_parser.y" - { (yyval.VoidPtr) = create_ival(RESM_NTPONLY); } +#line 652 "ntp_parser.y" + { (yyval.VoidPtr) = create_ival(RES_DONTTRUST); } break; case 134: /* Line 1455 of yacc.c */ -#line 652 "ntp_parser.y" - { (yyval.VoidPtr) = create_ival(RES_VERSION); } +#line 653 "ntp_parser.y" + { (yyval.VoidPtr) = create_ival(RESM_NTPONLY); } break; case 135: /* Line 1455 of yacc.c */ -#line 656 "ntp_parser.y" - { (yyval.Queue) = enqueue((yyvsp[(1) - (2)].Queue), (yyvsp[(2) - (2)].Attr_val)); } +#line 654 "ntp_parser.y" + { (yyval.VoidPtr) = create_ival(RES_VERSION); } break; case 136: /* Line 1455 of yacc.c */ -#line 657 "ntp_parser.y" - { (yyval.Queue) = enqueue_in_new_queue((yyvsp[(1) - (1)].Attr_val)); } +#line 658 "ntp_parser.y" + { (yyval.Queue) = enqueue((yyvsp[(1) - (2)].Queue), (yyvsp[(2) - (2)].Attr_val)); } break; case 137: /* Line 1455 of yacc.c */ -#line 661 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_ival(T_Average, (yyvsp[(2) - (2)].Integer)); } +#line 659 "ntp_parser.y" + { (yyval.Queue) = enqueue_in_new_queue((yyvsp[(1) - (1)].Attr_val)); } break; case 138: /* Line 1455 of yacc.c */ -#line 662 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_ival(T_Minimum, (yyvsp[(2) - (2)].Integer)); } +#line 663 "ntp_parser.y" + { (yyval.Attr_val) = create_attr_ival(T_Average, (yyvsp[(2) - (2)].Integer)); } break; case 139: /* Line 1455 of yacc.c */ -#line 663 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_ival(T_Monitor, (yyvsp[(2) - (2)].Integer)); } +#line 664 "ntp_parser.y" + { (yyval.Attr_val) = create_attr_ival(T_Minimum, (yyvsp[(2) - (2)].Integer)); } break; case 140: /* Line 1455 of yacc.c */ -#line 672 "ntp_parser.y" - { enqueue(my_config.fudge, create_addr_opts_node((yyvsp[(2) - (3)].Address_node), (yyvsp[(3) - (3)].Queue))); } +#line 665 "ntp_parser.y" + { (yyval.Attr_val) = create_attr_ival(T_Monitor, (yyvsp[(2) - (2)].Integer)); } break; case 141: /* Line 1455 of yacc.c */ -#line 676 "ntp_parser.y" - { enqueue((yyvsp[(1) - (2)].Queue), (yyvsp[(2) - (2)].Attr_val)); } +#line 674 "ntp_parser.y" + { enqueue(my_config.fudge, create_addr_opts_node((yyvsp[(2) - (3)].Address_node), (yyvsp[(3) - (3)].Queue))); } break; case 142: /* Line 1455 of yacc.c */ -#line 677 "ntp_parser.y" - { (yyval.Queue) = enqueue_in_new_queue((yyvsp[(1) - (1)].Attr_val)); } +#line 678 "ntp_parser.y" + { enqueue((yyvsp[(1) - (2)].Queue), (yyvsp[(2) - (2)].Attr_val)); } break; case 143: /* Line 1455 of yacc.c */ -#line 682 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_dval(CLK_HAVETIME1, (yyvsp[(2) - (2)].Double)); } +#line 679 "ntp_parser.y" + { (yyval.Queue) = enqueue_in_new_queue((yyvsp[(1) - (1)].Attr_val)); } break; case 144: /* Line 1455 of yacc.c */ #line 684 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_dval(CLK_HAVETIME2, (yyvsp[(2) - (2)].Double)); } + { (yyval.Attr_val) = create_attr_dval(CLK_HAVETIME1, (yyvsp[(2) - (2)].Double)); } break; case 145: /* Line 1455 of yacc.c */ #line 686 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_ival(CLK_HAVEVAL1, (yyvsp[(2) - (2)].Integer)); } + { (yyval.Attr_val) = create_attr_dval(CLK_HAVETIME2, (yyvsp[(2) - (2)].Double)); } break; case 146: /* Line 1455 of yacc.c */ #line 688 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_sval(CLK_HAVEVAL2, (yyvsp[(2) - (2)].String)); } + { (yyval.Attr_val) = create_attr_ival(CLK_HAVEVAL1, (yyvsp[(2) - (2)].Integer)); } break; case 147: /* Line 1455 of yacc.c */ #line 690 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_ival(CLK_HAVEFLAG1, (yyvsp[(2) - (2)].Integer)); } + { (yyval.Attr_val) = create_attr_sval(CLK_HAVEVAL2, (yyvsp[(2) - (2)].String)); } break; case 148: /* Line 1455 of yacc.c */ #line 692 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_ival(CLK_HAVEFLAG2, (yyvsp[(2) - (2)].Integer)); } + { (yyval.Attr_val) = create_attr_ival(CLK_HAVEFLAG1, (yyvsp[(2) - (2)].Integer)); } break; case 149: /* Line 1455 of yacc.c */ #line 694 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_ival(CLK_HAVEFLAG3, (yyvsp[(2) - (2)].Integer)); } + { (yyval.Attr_val) = create_attr_ival(CLK_HAVEFLAG2, (yyvsp[(2) - (2)].Integer)); } break; case 150: /* Line 1455 of yacc.c */ #line 696 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_ival(CLK_HAVEFLAG4, (yyvsp[(2) - (2)].Integer)); } + { (yyval.Attr_val) = create_attr_ival(CLK_HAVEFLAG3, (yyvsp[(2) - (2)].Integer)); } break; case 151: /* Line 1455 of yacc.c */ -#line 705 "ntp_parser.y" - { append_queue(my_config.enable_opts,(yyvsp[(2) - (2)].Queue)); } +#line 698 "ntp_parser.y" + { (yyval.Attr_val) = create_attr_ival(CLK_HAVEFLAG4, (yyvsp[(2) - (2)].Integer)); } break; case 152: /* Line 1455 of yacc.c */ #line 707 "ntp_parser.y" - { append_queue(my_config.disable_opts,(yyvsp[(2) - (2)].Queue)); } + { append_queue(my_config.enable_opts,(yyvsp[(2) - (2)].Queue)); } break; case 153: /* Line 1455 of yacc.c */ -#line 711 "ntp_parser.y" - { (yyval.Queue) = enqueue((yyvsp[(1) - (2)].Queue), (yyvsp[(2) - (2)].Attr_val)); } +#line 709 "ntp_parser.y" + { append_queue(my_config.disable_opts,(yyvsp[(2) - (2)].Queue)); } break; case 154: /* Line 1455 of yacc.c */ -#line 712 "ntp_parser.y" - { (yyval.Queue) = enqueue_in_new_queue((yyvsp[(1) - (1)].Attr_val)); } +#line 713 "ntp_parser.y" + { (yyval.Queue) = enqueue((yyvsp[(1) - (2)].Queue), (yyvsp[(2) - (2)].Attr_val)); } break; case 155: /* Line 1455 of yacc.c */ -#line 716 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_ival(T_Flag, PROTO_AUTHENTICATE); } +#line 714 "ntp_parser.y" + { (yyval.Queue) = enqueue_in_new_queue((yyvsp[(1) - (1)].Attr_val)); } break; case 156: /* Line 1455 of yacc.c */ -#line 717 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_ival(T_Flag, PROTO_BROADCLIENT); } +#line 718 "ntp_parser.y" + { (yyval.Attr_val) = create_attr_ival(T_Flag, PROTO_AUTHENTICATE); } break; case 157: /* Line 1455 of yacc.c */ -#line 718 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_ival(T_Flag, PROTO_CAL); } +#line 719 "ntp_parser.y" + { (yyval.Attr_val) = create_attr_ival(T_Flag, PROTO_BROADCLIENT); } break; case 158: /* Line 1455 of yacc.c */ -#line 719 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_ival(T_Flag, PROTO_KERNEL); } +#line 720 "ntp_parser.y" + { (yyval.Attr_val) = create_attr_ival(T_Flag, PROTO_CAL); } break; case 159: /* Line 1455 of yacc.c */ -#line 720 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_ival(T_Flag, PROTO_MONITOR); } +#line 721 "ntp_parser.y" + { (yyval.Attr_val) = create_attr_ival(T_Flag, PROTO_KERNEL); } break; case 160: /* Line 1455 of yacc.c */ -#line 721 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_ival(T_Flag, PROTO_NTP); } +#line 722 "ntp_parser.y" + { (yyval.Attr_val) = create_attr_ival(T_Flag, PROTO_MONITOR); } break; case 161: /* Line 1455 of yacc.c */ #line 723 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_ival(T_Flag, PROTO_FILEGEN); } + { (yyval.Attr_val) = create_attr_ival(T_Flag, PROTO_NTP); } break; case 162: /* Line 1455 of yacc.c */ -#line 731 "ntp_parser.y" - { append_queue(my_config.tinker, (yyvsp[(2) - (2)].Queue)); } +#line 725 "ntp_parser.y" + { (yyval.Attr_val) = create_attr_ival(T_Flag, PROTO_FILEGEN); } break; case 163: /* Line 1455 of yacc.c */ -#line 735 "ntp_parser.y" - { (yyval.Queue) = enqueue((yyvsp[(1) - (2)].Queue), (yyvsp[(2) - (2)].Attr_val)); } +#line 733 "ntp_parser.y" + { append_queue(my_config.tinker, (yyvsp[(2) - (2)].Queue)); } break; case 164: /* Line 1455 of yacc.c */ -#line 736 "ntp_parser.y" - { (yyval.Queue) = enqueue_in_new_queue((yyvsp[(1) - (1)].Attr_val)); } +#line 737 "ntp_parser.y" + { (yyval.Queue) = enqueue((yyvsp[(1) - (2)].Queue), (yyvsp[(2) - (2)].Attr_val)); } break; case 165: /* Line 1455 of yacc.c */ -#line 740 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_dval(LOOP_ALLAN, (yyvsp[(2) - (2)].Double)); } +#line 738 "ntp_parser.y" + { (yyval.Queue) = enqueue_in_new_queue((yyvsp[(1) - (1)].Attr_val)); } break; case 166: /* Line 1455 of yacc.c */ -#line 741 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_dval(LOOP_PHI, (yyvsp[(2) - (2)].Double)); } +#line 742 "ntp_parser.y" + { (yyval.Attr_val) = create_attr_dval(LOOP_ALLAN, (yyvsp[(2) - (2)].Double)); } break; case 167: /* Line 1455 of yacc.c */ -#line 742 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_dval(LOOP_FREQ, (yyvsp[(2) - (2)].Double)); } +#line 743 "ntp_parser.y" + { (yyval.Attr_val) = create_attr_dval(LOOP_PHI, (yyvsp[(2) - (2)].Double)); } break; case 168: /* Line 1455 of yacc.c */ -#line 743 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_dval(LOOP_HUFFPUFF, (yyvsp[(2) - (2)].Double)); } +#line 744 "ntp_parser.y" + { (yyval.Attr_val) = create_attr_dval(LOOP_FREQ, (yyvsp[(2) - (2)].Double)); } break; case 169: /* Line 1455 of yacc.c */ -#line 744 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_dval(LOOP_PANIC, (yyvsp[(2) - (2)].Double)); } +#line 745 "ntp_parser.y" + { (yyval.Attr_val) = create_attr_dval(LOOP_HUFFPUFF, (yyvsp[(2) - (2)].Double)); } break; case 170: /* Line 1455 of yacc.c */ -#line 745 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_dval(LOOP_MAX, (yyvsp[(2) - (2)].Double)); } +#line 746 "ntp_parser.y" + { (yyval.Attr_val) = create_attr_dval(LOOP_PANIC, (yyvsp[(2) - (2)].Double)); } break; case 171: /* Line 1455 of yacc.c */ -#line 746 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_dval(LOOP_MINSTEP, (yyvsp[(2) - (2)].Double)); } +#line 747 "ntp_parser.y" + { (yyval.Attr_val) = create_attr_dval(LOOP_MAX, (yyvsp[(2) - (2)].Double)); } break; case 172: /* Line 1455 of yacc.c */ -#line 755 "ntp_parser.y" +#line 748 "ntp_parser.y" + { (yyval.Attr_val) = create_attr_dval(LOOP_MINSTEP, (yyvsp[(2) - (2)].Double)); } + break; + + case 173: + +/* Line 1455 of yacc.c */ +#line 757 "ntp_parser.y" { if (curr_include_level >= MAXINCLUDELEVEL) { fprintf(stderr, "getconfig: Maximum include file level exceeded.\n"); @@ -3300,196 +3310,196 @@ yyreduce: } break; - case 173: + case 174: /* Line 1455 of yacc.c */ -#line 771 "ntp_parser.y" +#line 773 "ntp_parser.y" { while (curr_include_level != -1) FCLOSE(fp[curr_include_level--]); } break; - case 174: - -/* Line 1455 of yacc.c */ -#line 777 "ntp_parser.y" - { enqueue(my_config.vars, create_attr_dval(T_Broadcastdelay, (yyvsp[(2) - (2)].Double))); } - break; - case 175: /* Line 1455 of yacc.c */ #line 779 "ntp_parser.y" - { enqueue(my_config.vars, create_attr_ival(T_Calldelay, (yyvsp[(2) - (2)].Integer))); } + { enqueue(my_config.vars, create_attr_dval(T_Broadcastdelay, (yyvsp[(2) - (2)].Double))); } break; case 176: /* Line 1455 of yacc.c */ #line 781 "ntp_parser.y" - { enqueue(my_config.vars, create_attr_dval(T_Tick, (yyvsp[(2) - (2)].Double))); } + { enqueue(my_config.vars, create_attr_ival(T_Calldelay, (yyvsp[(2) - (2)].Integer))); } break; case 177: /* Line 1455 of yacc.c */ #line 783 "ntp_parser.y" - { /* Null action, possibly all null parms */ } + { enqueue(my_config.vars, create_attr_dval(T_Tick, (yyvsp[(2) - (2)].Double))); } break; case 178: /* Line 1455 of yacc.c */ #line 785 "ntp_parser.y" - { enqueue(my_config.vars, create_attr_sval(T_Leapfile, (yyvsp[(2) - (2)].String))); } + { /* Null action, possibly all null parms */ } break; case 179: /* Line 1455 of yacc.c */ -#line 788 "ntp_parser.y" - { enqueue(my_config.vars, create_attr_sval(T_Pidfile, (yyvsp[(2) - (2)].String))); } +#line 787 "ntp_parser.y" + { enqueue(my_config.vars, create_attr_sval(T_Leapfile, (yyvsp[(2) - (2)].String))); } break; case 180: /* Line 1455 of yacc.c */ #line 790 "ntp_parser.y" - { enqueue(my_config.vars, create_attr_sval(T_Logfile, (yyvsp[(2) - (2)].String))); } + { enqueue(my_config.vars, create_attr_sval(T_Pidfile, (yyvsp[(2) - (2)].String))); } break; case 181: /* Line 1455 of yacc.c */ #line 792 "ntp_parser.y" - { enqueue(my_config.vars, create_attr_ival(T_Automax, (yyvsp[(2) - (2)].Integer))); } + { enqueue(my_config.vars, create_attr_sval(T_Logfile, (yyvsp[(2) - (2)].String))); } break; case 182: /* Line 1455 of yacc.c */ -#line 795 "ntp_parser.y" - { append_queue(my_config.logconfig, (yyvsp[(2) - (2)].Queue)); } +#line 794 "ntp_parser.y" + { enqueue(my_config.vars, create_attr_ival(T_Automax, (yyvsp[(2) - (2)].Integer))); } break; case 183: /* Line 1455 of yacc.c */ #line 797 "ntp_parser.y" - { append_queue(my_config.phone, (yyvsp[(2) - (2)].Queue)); } + { append_queue(my_config.logconfig, (yyvsp[(2) - (2)].Queue)); } break; case 184: /* Line 1455 of yacc.c */ #line 799 "ntp_parser.y" - { enqueue(my_config.setvar, (yyvsp[(2) - (2)].Set_var)); } + { append_queue(my_config.phone, (yyvsp[(2) - (2)].Queue)); } break; case 185: /* Line 1455 of yacc.c */ #line 801 "ntp_parser.y" - { enqueue(my_config.trap, create_addr_opts_node((yyvsp[(2) - (3)].Address_node), (yyvsp[(3) - (3)].Queue))); } + { enqueue(my_config.setvar, (yyvsp[(2) - (2)].Set_var)); } break; case 186: /* Line 1455 of yacc.c */ #line 803 "ntp_parser.y" - { append_queue(my_config.ttl, (yyvsp[(2) - (2)].Queue)); } + { enqueue(my_config.trap, create_addr_opts_node((yyvsp[(2) - (3)].Address_node), (yyvsp[(3) - (3)].Queue))); } break; case 187: /* Line 1455 of yacc.c */ #line 805 "ntp_parser.y" - { enqueue(my_config.qos, create_attr_sval(T_Qos, (yyvsp[(2) - (2)].String))); } + { append_queue(my_config.ttl, (yyvsp[(2) - (2)].Queue)); } break; case 188: /* Line 1455 of yacc.c */ -#line 809 "ntp_parser.y" - { enqueue(my_config.vars, create_attr_sval(T_Driftfile, (yyvsp[(1) - (1)].String))); } +#line 807 "ntp_parser.y" + { enqueue(my_config.qos, create_attr_sval(T_Qos, (yyvsp[(2) - (2)].String))); } break; case 189: /* Line 1455 of yacc.c */ #line 811 "ntp_parser.y" - { enqueue(my_config.vars, create_attr_dval(T_WanderThreshold, (yyvsp[(2) - (2)].Double))); - enqueue(my_config.vars, create_attr_sval(T_Driftfile, (yyvsp[(1) - (2)].String))); } + { enqueue(my_config.vars, create_attr_sval(T_Driftfile, (yyvsp[(1) - (1)].String))); } break; case 190: /* Line 1455 of yacc.c */ -#line 814 "ntp_parser.y" - { enqueue(my_config.vars, create_attr_sval(T_Driftfile, "\0")); } +#line 813 "ntp_parser.y" + { enqueue(my_config.vars, create_attr_dval(T_WanderThreshold, (yyvsp[(2) - (2)].Double))); + enqueue(my_config.vars, create_attr_sval(T_Driftfile, (yyvsp[(1) - (2)].String))); } break; case 191: /* Line 1455 of yacc.c */ -#line 819 "ntp_parser.y" - { (yyval.Set_var) = create_setvar_node((yyvsp[(1) - (4)].String), (yyvsp[(3) - (4)].String), DEF); } +#line 816 "ntp_parser.y" + { enqueue(my_config.vars, create_attr_sval(T_Driftfile, "\0")); } break; case 192: /* Line 1455 of yacc.c */ #line 821 "ntp_parser.y" - { (yyval.Set_var) = create_setvar_node((yyvsp[(1) - (3)].String), (yyvsp[(3) - (3)].String), 0); } + { (yyval.Set_var) = create_setvar_node((yyvsp[(1) - (4)].String), (yyvsp[(3) - (4)].String), DEF); } break; case 193: /* Line 1455 of yacc.c */ -#line 826 "ntp_parser.y" - { (yyval.Queue) = enqueue((yyvsp[(1) - (2)].Queue), (yyvsp[(2) - (2)].Attr_val)); } +#line 823 "ntp_parser.y" + { (yyval.Set_var) = create_setvar_node((yyvsp[(1) - (3)].String), (yyvsp[(3) - (3)].String), 0); } break; case 194: /* Line 1455 of yacc.c */ -#line 827 "ntp_parser.y" - { (yyval.Queue) = enqueue_in_new_queue((yyvsp[(1) - (1)].Attr_val)); } +#line 828 "ntp_parser.y" + { (yyval.Queue) = enqueue((yyvsp[(1) - (2)].Queue), (yyvsp[(2) - (2)].Attr_val)); } break; case 195: /* Line 1455 of yacc.c */ -#line 831 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_ival(T_Port, (yyvsp[(2) - (2)].Integer)); } +#line 829 "ntp_parser.y" + { (yyval.Queue) = enqueue_in_new_queue((yyvsp[(1) - (1)].Attr_val)); } break; case 196: /* Line 1455 of yacc.c */ -#line 832 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_pval(T_Interface, (yyvsp[(2) - (2)].Address_node)); } +#line 833 "ntp_parser.y" + { (yyval.Attr_val) = create_attr_ival(T_Port, (yyvsp[(2) - (2)].Integer)); } break; case 197: /* Line 1455 of yacc.c */ -#line 837 "ntp_parser.y" - { (yyval.Queue) = enqueue((yyvsp[(1) - (2)].Queue), (yyvsp[(2) - (2)].Attr_val)); } +#line 834 "ntp_parser.y" + { (yyval.Attr_val) = create_attr_pval(T_Interface, (yyvsp[(2) - (2)].Address_node)); } break; case 198: /* Line 1455 of yacc.c */ -#line 838 "ntp_parser.y" - { (yyval.Queue) = enqueue_in_new_queue((yyvsp[(1) - (1)].Attr_val)); } +#line 839 "ntp_parser.y" + { (yyval.Queue) = enqueue((yyvsp[(1) - (2)].Queue), (yyvsp[(2) - (2)].Attr_val)); } break; case 199: /* Line 1455 of yacc.c */ -#line 843 "ntp_parser.y" +#line 840 "ntp_parser.y" + { (yyval.Queue) = enqueue_in_new_queue((yyvsp[(1) - (1)].Attr_val)); } + break; + + case 200: + +/* Line 1455 of yacc.c */ +#line 845 "ntp_parser.y" { char prefix = (yyvsp[(1) - (1)].String)[0]; char *type = (yyvsp[(1) - (1)].String) + 1; @@ -3503,52 +3513,52 @@ yyreduce: } break; - case 200: + case 201: /* Line 1455 of yacc.c */ -#line 861 "ntp_parser.y" +#line 863 "ntp_parser.y" { (yyval.Queue) = enqueue((yyvsp[(1) - (2)].Queue), create_ival((yyvsp[(2) - (2)].Integer))); } break; - case 201: + case 202: /* Line 1455 of yacc.c */ -#line 862 "ntp_parser.y" +#line 864 "ntp_parser.y" { (yyval.Queue) = enqueue_in_new_queue(create_ival((yyvsp[(1) - (1)].Integer))); } break; - case 202: + case 203: /* Line 1455 of yacc.c */ -#line 866 "ntp_parser.y" +#line 868 "ntp_parser.y" { (yyval.Queue) = enqueue((yyvsp[(1) - (2)].Queue), create_pval((yyvsp[(2) - (2)].String))); } break; - case 203: + case 204: /* Line 1455 of yacc.c */ -#line 867 "ntp_parser.y" +#line 869 "ntp_parser.y" { (yyval.Queue) = enqueue_in_new_queue(create_pval((yyvsp[(1) - (1)].String))); } break; - case 204: + case 205: /* Line 1455 of yacc.c */ -#line 871 "ntp_parser.y" +#line 873 "ntp_parser.y" { (yyval.Queue) = enqueue((yyvsp[(1) - (2)].Queue), (yyvsp[(2) - (2)].Address_node)); } break; - case 205: + case 206: /* Line 1455 of yacc.c */ -#line 872 "ntp_parser.y" +#line 874 "ntp_parser.y" { (yyval.Queue) = enqueue_in_new_queue((yyvsp[(1) - (1)].Address_node)); } break; - case 206: + case 207: /* Line 1455 of yacc.c */ -#line 877 "ntp_parser.y" +#line 879 "ntp_parser.y" { if ((yyvsp[(1) - (1)].Integer) != 0 && (yyvsp[(1) - (1)].Integer) != 1) { yyerror("Integer value is not boolean (0 or 1). Assuming 1"); @@ -3559,38 +3569,38 @@ yyreduce: } break; - case 207: + case 208: /* Line 1455 of yacc.c */ -#line 885 "ntp_parser.y" +#line 887 "ntp_parser.y" { (yyval.Integer) = 1; } break; - case 208: + case 209: /* Line 1455 of yacc.c */ -#line 886 "ntp_parser.y" +#line 888 "ntp_parser.y" { (yyval.Integer) = 0; } break; - case 209: + case 210: /* Line 1455 of yacc.c */ -#line 890 "ntp_parser.y" +#line 892 "ntp_parser.y" { (yyval.Double) = (double)(yyvsp[(1) - (1)].Integer); } break; - case 210: + case 211: /* Line 1455 of yacc.c */ -#line 891 "ntp_parser.y" +#line 893 "ntp_parser.y" { (yyval.Double) = (yyvsp[(1) - (1)].Double); } break; - case 211: + case 212: /* Line 1455 of yacc.c */ -#line 900 "ntp_parser.y" +#line 902 "ntp_parser.y" { my_config.sim_details = create_sim_node((yyvsp[(3) - (5)].Queue), (yyvsp[(4) - (5)].Queue)); @@ -3599,150 +3609,150 @@ yyreduce: } break; - case 212: - -/* Line 1455 of yacc.c */ -#line 914 "ntp_parser.y" - { old_config_style = 0; } - break; - case 213: /* Line 1455 of yacc.c */ -#line 918 "ntp_parser.y" - { (yyval.Queue) = enqueue((yyvsp[(1) - (3)].Queue), (yyvsp[(2) - (3)].Attr_val)); } +#line 916 "ntp_parser.y" + { old_config_style = 0; } break; case 214: /* Line 1455 of yacc.c */ -#line 919 "ntp_parser.y" - { (yyval.Queue) = enqueue_in_new_queue((yyvsp[(1) - (2)].Attr_val)); } +#line 920 "ntp_parser.y" + { (yyval.Queue) = enqueue((yyvsp[(1) - (3)].Queue), (yyvsp[(2) - (3)].Attr_val)); } break; case 215: /* Line 1455 of yacc.c */ -#line 923 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_dval(T_Beep_Delay, (yyvsp[(3) - (3)].Double)); } +#line 921 "ntp_parser.y" + { (yyval.Queue) = enqueue_in_new_queue((yyvsp[(1) - (2)].Attr_val)); } break; case 216: /* Line 1455 of yacc.c */ -#line 924 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_dval(T_Sim_Duration, (yyvsp[(3) - (3)].Double)); } +#line 925 "ntp_parser.y" + { (yyval.Attr_val) = create_attr_dval(T_Beep_Delay, (yyvsp[(3) - (3)].Double)); } break; case 217: /* Line 1455 of yacc.c */ -#line 928 "ntp_parser.y" - { (yyval.Queue) = enqueue((yyvsp[(1) - (2)].Queue), (yyvsp[(2) - (2)].Sim_server)); } +#line 926 "ntp_parser.y" + { (yyval.Attr_val) = create_attr_dval(T_Sim_Duration, (yyvsp[(3) - (3)].Double)); } break; case 218: /* Line 1455 of yacc.c */ -#line 929 "ntp_parser.y" - { (yyval.Queue) = enqueue_in_new_queue((yyvsp[(1) - (1)].Sim_server)); } +#line 930 "ntp_parser.y" + { (yyval.Queue) = enqueue((yyvsp[(1) - (2)].Queue), (yyvsp[(2) - (2)].Sim_server)); } break; case 219: /* Line 1455 of yacc.c */ -#line 934 "ntp_parser.y" - { (yyval.Sim_server) = create_sim_server((yyvsp[(1) - (5)].Address_node), (yyvsp[(3) - (5)].Double), (yyvsp[(4) - (5)].Queue)); } +#line 931 "ntp_parser.y" + { (yyval.Queue) = enqueue_in_new_queue((yyvsp[(1) - (1)].Sim_server)); } break; case 220: /* Line 1455 of yacc.c */ -#line 938 "ntp_parser.y" - { (yyval.Double) = (yyvsp[(3) - (4)].Double); } +#line 936 "ntp_parser.y" + { (yyval.Sim_server) = create_sim_server((yyvsp[(1) - (5)].Address_node), (yyvsp[(3) - (5)].Double), (yyvsp[(4) - (5)].Queue)); } break; case 221: /* Line 1455 of yacc.c */ -#line 942 "ntp_parser.y" - { (yyval.Address_node) = (yyvsp[(3) - (3)].Address_node); } +#line 940 "ntp_parser.y" + { (yyval.Double) = (yyvsp[(3) - (4)].Double); } break; case 222: /* Line 1455 of yacc.c */ -#line 946 "ntp_parser.y" - { (yyval.Queue) = enqueue((yyvsp[(1) - (2)].Queue), (yyvsp[(2) - (2)].Sim_script)); } +#line 944 "ntp_parser.y" + { (yyval.Address_node) = (yyvsp[(3) - (3)].Address_node); } break; case 223: /* Line 1455 of yacc.c */ -#line 947 "ntp_parser.y" - { (yyval.Queue) = enqueue_in_new_queue((yyvsp[(1) - (1)].Sim_script)); } +#line 948 "ntp_parser.y" + { (yyval.Queue) = enqueue((yyvsp[(1) - (2)].Queue), (yyvsp[(2) - (2)].Sim_script)); } break; case 224: /* Line 1455 of yacc.c */ -#line 952 "ntp_parser.y" - { (yyval.Sim_script) = create_sim_script_info((yyvsp[(3) - (6)].Double), (yyvsp[(5) - (6)].Queue)); } +#line 949 "ntp_parser.y" + { (yyval.Queue) = enqueue_in_new_queue((yyvsp[(1) - (1)].Sim_script)); } break; case 225: /* Line 1455 of yacc.c */ -#line 956 "ntp_parser.y" - { (yyval.Queue) = enqueue((yyvsp[(1) - (3)].Queue), (yyvsp[(2) - (3)].Attr_val)); } +#line 954 "ntp_parser.y" + { (yyval.Sim_script) = create_sim_script_info((yyvsp[(3) - (6)].Double), (yyvsp[(5) - (6)].Queue)); } break; case 226: /* Line 1455 of yacc.c */ -#line 957 "ntp_parser.y" - { (yyval.Queue) = enqueue_in_new_queue((yyvsp[(1) - (2)].Attr_val)); } +#line 958 "ntp_parser.y" + { (yyval.Queue) = enqueue((yyvsp[(1) - (3)].Queue), (yyvsp[(2) - (3)].Attr_val)); } break; case 227: /* Line 1455 of yacc.c */ -#line 962 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_dval(T_Freq_Offset, (yyvsp[(3) - (3)].Double)); } +#line 959 "ntp_parser.y" + { (yyval.Queue) = enqueue_in_new_queue((yyvsp[(1) - (2)].Attr_val)); } break; case 228: /* Line 1455 of yacc.c */ #line 964 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_dval(T_Wander, (yyvsp[(3) - (3)].Double)); } + { (yyval.Attr_val) = create_attr_dval(T_Freq_Offset, (yyvsp[(3) - (3)].Double)); } break; case 229: /* Line 1455 of yacc.c */ #line 966 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_dval(T_Jitter, (yyvsp[(3) - (3)].Double)); } + { (yyval.Attr_val) = create_attr_dval(T_Wander, (yyvsp[(3) - (3)].Double)); } break; case 230: /* Line 1455 of yacc.c */ #line 968 "ntp_parser.y" - { (yyval.Attr_val) = create_attr_dval(T_Prop_Delay, (yyvsp[(3) - (3)].Double)); } + { (yyval.Attr_val) = create_attr_dval(T_Jitter, (yyvsp[(3) - (3)].Double)); } break; case 231: /* Line 1455 of yacc.c */ #line 970 "ntp_parser.y" + { (yyval.Attr_val) = create_attr_dval(T_Prop_Delay, (yyvsp[(3) - (3)].Double)); } + break; + + case 232: + +/* Line 1455 of yacc.c */ +#line 972 "ntp_parser.y" { (yyval.Attr_val) = create_attr_dval(T_Proc_Delay, (yyvsp[(3) - (3)].Double)); } break; /* Line 1455 of yacc.c */ -#line 3746 "ntp_parser.c" +#line 3756 "../../ntpd/ntp_parser.c" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); @@ -3954,7 +3964,7 @@ yyreturn: /* Line 1675 of yacc.c */ -#line 974 "ntp_parser.y" +#line 976 "ntp_parser.y" /* KEYWORDS diff --git a/ntpd/ntp_parser.h b/ntpd/ntp_parser.h index 90f6e291d5..ff1dd9d685 100644 --- a/ntpd/ntp_parser.h +++ b/ntpd/ntp_parser.h @@ -95,106 +95,107 @@ T_Keys = 311, T_Keysdir = 312, T_Kod = 313, - T_Leap = 314, - T_Leapfile = 315, - T_Limited = 316, - T_Link = 317, - T_Logconfig = 318, - T_Logfile = 319, - T_Loopstats = 320, - T_Lowpriotrap = 321, - T_Manycastclient = 322, - T_Manycastserver = 323, - T_Mask = 324, - T_Maxclock = 325, - T_Maxdist = 326, - T_Maxhop = 327, - T_Maxpoll = 328, - T_Minclock = 329, - T_Mindist = 330, - T_Minimum = 331, - T_Minpoll = 332, - T_Minsane = 333, - T_Mode = 334, - T_Monitor = 335, - T_Month = 336, - T_Multicastclient = 337, - T_Nolink = 338, - T_Nomodify = 339, - T_None = 340, - T_Nopeer = 341, - T_Noquery = 342, - T_Noselect = 343, - T_Noserve = 344, - T_Notrap = 345, - T_Notrust = 346, - T_Novolley = 347, - T_Ntp = 348, - T_Ntpport = 349, - T_NtpSignDsocket = 350, - T_Orphan = 351, - T_Panic = 352, - T_Peer = 353, - T_Peerstats = 354, - T_Phone = 355, - T_Pid = 356, - T_Pidfile = 357, - T_Pool = 358, - T_Port = 359, - T_Pps = 360, - T_Preempt = 361, - T_Prefer = 362, - T_Protostats = 363, - T_Pw = 364, - T_Qos = 365, - T_RandFile = 366, - T_Rawstats = 367, - T_Refid = 368, - T_Requestkey = 369, - T_Restrict = 370, - T_Revoke = 371, - T_Server = 372, - T_Setvar = 373, - T_Sign = 374, - T_Statistics = 375, - T_Stats = 376, - T_Statsdir = 377, - T_Step = 378, - T_Stepout = 379, - T_Stratum = 380, - T_String = 381, - T_Sysstats = 382, - T_Tick = 383, - T_Time1 = 384, - T_Time2 = 385, - T_Timingstats = 386, - T_Tinker = 387, - T_Tos = 388, - T_Trap = 389, - T_True = 390, - T_Trustedkey = 391, - T_Ttl = 392, - T_Type = 393, - T_Unconfig = 394, - T_Unpeer = 395, - T_Version = 396, - T_WanderThreshold = 397, - T_Week = 398, - T_Xleave = 399, - T_Year = 400, - T_Flag = 401, - T_Void = 402, - T_EOC = 403, - T_Simulate = 404, - T_Beep_Delay = 405, - T_Sim_Duration = 406, - T_Server_Offset = 407, - T_Duration = 408, - T_Freq_Offset = 409, - T_Wander = 410, - T_Jitter = 411, - T_Prop_Delay = 412, - T_Proc_Delay = 413 + T_Mssntp = 314, + T_Leap = 315, + T_Leapfile = 316, + T_Limited = 317, + T_Link = 318, + T_Logconfig = 319, + T_Logfile = 320, + T_Loopstats = 321, + T_Lowpriotrap = 322, + T_Manycastclient = 323, + T_Manycastserver = 324, + T_Mask = 325, + T_Maxclock = 326, + T_Maxdist = 327, + T_Maxhop = 328, + T_Maxpoll = 329, + T_Minclock = 330, + T_Mindist = 331, + T_Minimum = 332, + T_Minpoll = 333, + T_Minsane = 334, + T_Mode = 335, + T_Monitor = 336, + T_Month = 337, + T_Multicastclient = 338, + T_Nolink = 339, + T_Nomodify = 340, + T_None = 341, + T_Nopeer = 342, + T_Noquery = 343, + T_Noselect = 344, + T_Noserve = 345, + T_Notrap = 346, + T_Notrust = 347, + T_Novolley = 348, + T_Ntp = 349, + T_Ntpport = 350, + T_NtpSignDsocket = 351, + T_Orphan = 352, + T_Panic = 353, + T_Peer = 354, + T_Peerstats = 355, + T_Phone = 356, + T_Pid = 357, + T_Pidfile = 358, + T_Pool = 359, + T_Port = 360, + T_Pps = 361, + T_Preempt = 362, + T_Prefer = 363, + T_Protostats = 364, + T_Pw = 365, + T_Qos = 366, + T_RandFile = 367, + T_Rawstats = 368, + T_Refid = 369, + T_Requestkey = 370, + T_Restrict = 371, + T_Revoke = 372, + T_Server = 373, + T_Setvar = 374, + T_Sign = 375, + T_Statistics = 376, + T_Stats = 377, + T_Statsdir = 378, + T_Step = 379, + T_Stepout = 380, + T_Stratum = 381, + T_String = 382, + T_Sysstats = 383, + T_Tick = 384, + T_Time1 = 385, + T_Time2 = 386, + T_Timingstats = 387, + T_Tinker = 388, + T_Tos = 389, + T_Trap = 390, + T_True = 391, + T_Trustedkey = 392, + T_Ttl = 393, + T_Type = 394, + T_Unconfig = 395, + T_Unpeer = 396, + T_Version = 397, + T_WanderThreshold = 398, + T_Week = 399, + T_Xleave = 400, + T_Year = 401, + T_Flag = 402, + T_Void = 403, + T_EOC = 404, + T_Simulate = 405, + T_Beep_Delay = 406, + T_Sim_Duration = 407, + T_Server_Offset = 408, + T_Duration = 409, + T_Freq_Offset = 410, + T_Wander = 411, + T_Jitter = 412, + T_Prop_Delay = 413, + T_Proc_Delay = 414 }; #endif /* Tokens. */ @@ -254,106 +255,107 @@ #define T_Keys 311 #define T_Keysdir 312 #define T_Kod 313 -#define T_Leap 314 -#define T_Leapfile 315 -#define T_Limited 316 -#define T_Link 317 -#define T_Logconfig 318 -#define T_Logfile 319 -#define T_Loopstats 320 -#define T_Lowpriotrap 321 -#define T_Manycastclient 322 -#define T_Manycastserver 323 -#define T_Mask 324 -#define T_Maxclock 325 -#define T_Maxdist 326 -#define T_Maxhop 327 -#define T_Maxpoll 328 -#define T_Minclock 329 -#define T_Mindist 330 -#define T_Minimum 331 -#define T_Minpoll 332 -#define T_Minsane 333 -#define T_Mode 334 -#define T_Monitor 335 -#define T_Month 336 -#define T_Multicastclient 337 -#define T_Nolink 338 -#define T_Nomodify 339 -#define T_None 340 -#define T_Nopeer 341 -#define T_Noquery 342 -#define T_Noselect 343 -#define T_Noserve 344 -#define T_Notrap 345 -#define T_Notrust 346 -#define T_Novolley 347 -#define T_Ntp 348 -#define T_Ntpport 349 -#define T_NtpSignDsocket 350 -#define T_Orphan 351 -#define T_Panic 352 -#define T_Peer 353 -#define T_Peerstats 354 -#define T_Phone 355 -#define T_Pid 356 -#define T_Pidfile 357 -#define T_Pool 358 -#define T_Port 359 -#define T_Pps 360 -#define T_Preempt 361 -#define T_Prefer 362 -#define T_Protostats 363 -#define T_Pw 364 -#define T_Qos 365 -#define T_RandFile 366 -#define T_Rawstats 367 -#define T_Refid 368 -#define T_Requestkey 369 -#define T_Restrict 370 -#define T_Revoke 371 -#define T_Server 372 -#define T_Setvar 373 -#define T_Sign 374 -#define T_Statistics 375 -#define T_Stats 376 -#define T_Statsdir 377 -#define T_Step 378 -#define T_Stepout 379 -#define T_Stratum 380 -#define T_String 381 -#define T_Sysstats 382 -#define T_Tick 383 -#define T_Time1 384 -#define T_Time2 385 -#define T_Timingstats 386 -#define T_Tinker 387 -#define T_Tos 388 -#define T_Trap 389 -#define T_True 390 -#define T_Trustedkey 391 -#define T_Ttl 392 -#define T_Type 393 -#define T_Unconfig 394 -#define T_Unpeer 395 -#define T_Version 396 -#define T_WanderThreshold 397 -#define T_Week 398 -#define T_Xleave 399 -#define T_Year 400 -#define T_Flag 401 -#define T_Void 402 -#define T_EOC 403 -#define T_Simulate 404 -#define T_Beep_Delay 405 -#define T_Sim_Duration 406 -#define T_Server_Offset 407 -#define T_Duration 408 -#define T_Freq_Offset 409 -#define T_Wander 410 -#define T_Jitter 411 -#define T_Prop_Delay 412 -#define T_Proc_Delay 413 +#define T_Mssntp 314 +#define T_Leap 315 +#define T_Leapfile 316 +#define T_Limited 317 +#define T_Link 318 +#define T_Logconfig 319 +#define T_Logfile 320 +#define T_Loopstats 321 +#define T_Lowpriotrap 322 +#define T_Manycastclient 323 +#define T_Manycastserver 324 +#define T_Mask 325 +#define T_Maxclock 326 +#define T_Maxdist 327 +#define T_Maxhop 328 +#define T_Maxpoll 329 +#define T_Minclock 330 +#define T_Mindist 331 +#define T_Minimum 332 +#define T_Minpoll 333 +#define T_Minsane 334 +#define T_Mode 335 +#define T_Monitor 336 +#define T_Month 337 +#define T_Multicastclient 338 +#define T_Nolink 339 +#define T_Nomodify 340 +#define T_None 341 +#define T_Nopeer 342 +#define T_Noquery 343 +#define T_Noselect 344 +#define T_Noserve 345 +#define T_Notrap 346 +#define T_Notrust 347 +#define T_Novolley 348 +#define T_Ntp 349 +#define T_Ntpport 350 +#define T_NtpSignDsocket 351 +#define T_Orphan 352 +#define T_Panic 353 +#define T_Peer 354 +#define T_Peerstats 355 +#define T_Phone 356 +#define T_Pid 357 +#define T_Pidfile 358 +#define T_Pool 359 +#define T_Port 360 +#define T_Pps 361 +#define T_Preempt 362 +#define T_Prefer 363 +#define T_Protostats 364 +#define T_Pw 365 +#define T_Qos 366 +#define T_RandFile 367 +#define T_Rawstats 368 +#define T_Refid 369 +#define T_Requestkey 370 +#define T_Restrict 371 +#define T_Revoke 372 +#define T_Server 373 +#define T_Setvar 374 +#define T_Sign 375 +#define T_Statistics 376 +#define T_Stats 377 +#define T_Statsdir 378 +#define T_Step 379 +#define T_Stepout 380 +#define T_Stratum 381 +#define T_String 382 +#define T_Sysstats 383 +#define T_Tick 384 +#define T_Time1 385 +#define T_Time2 386 +#define T_Timingstats 387 +#define T_Tinker 388 +#define T_Tos 389 +#define T_Trap 390 +#define T_True 391 +#define T_Trustedkey 392 +#define T_Ttl 393 +#define T_Type 394 +#define T_Unconfig 395 +#define T_Unpeer 396 +#define T_Version 397 +#define T_WanderThreshold 398 +#define T_Week 399 +#define T_Xleave 400 +#define T_Year 401 +#define T_Flag 402 +#define T_Void 403 +#define T_EOC 404 +#define T_Simulate 405 +#define T_Beep_Delay 406 +#define T_Sim_Duration 407 +#define T_Server_Offset 408 +#define T_Duration 409 +#define T_Freq_Offset 410 +#define T_Wander 411 +#define T_Jitter 412 +#define T_Prop_Delay 413 +#define T_Proc_Delay 414 @@ -381,7 +383,7 @@ typedef union YYSTYPE /* Line 1676 of yacc.c */ -#line 385 "ntp_parser.h" +#line 387 "../../ntpd/ntp_parser.h" } YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ diff --git a/ntpd/ntp_parser.y b/ntpd/ntp_parser.y index e181c855fa..dff47d82dc 100644 --- a/ntpd/ntp_parser.y +++ b/ntpd/ntp_parser.y @@ -113,6 +113,7 @@ %token T_Keys %token T_Keysdir %token T_Kod +%token T_Mssntp %token T_Leap %token T_Leapfile %token T_Limited @@ -640,6 +641,7 @@ access_control_flag : T_Flake { $$ = create_ival(RES_TIMEOUT); } | T_Ignore { $$ = create_ival(RES_IGNORE); } | T_Kod { $$ = create_ival(RES_KOD); } + | T_Mssntp { $$ = create_ival(RES_MSSNTP); } | T_Limited { $$ = create_ival(RES_LIMITED); } | T_Lowpriotrap { $$ = create_ival(RES_LPTRAP); } | T_Nomodify { $$ = create_ival(RES_NOMODIFY); } diff --git a/ntpd/ntp_proto.c b/ntpd/ntp_proto.c index aebc510f4b..8caf9fc761 100644 --- a/ntpd/ntp_proto.c +++ b/ntpd/ntp_proto.c @@ -126,7 +126,7 @@ static double root_distance (struct peer *); static void clock_combine (struct peer **, int); static void peer_xmit (struct peer *); static void fast_xmit (struct recvbuf *, int, keyid_t, - char *, int); + int); static void clock_update (struct peer *); static int default_get_precision (void); static int peer_unfit (struct peer *); @@ -309,7 +309,6 @@ receive( int authlen; /* offset of MAC field */ int is_authentic = 0; /* cryptosum ok */ int retcode = AM_NOMATCH; /* match code */ - int flags = 0; /* flags with details about the authentication */ keyid_t skeyid = 0; /* key IDs */ u_int32 opcode = 0; /* extension field opcode */ sockaddr_u *dstadr_sin; /* active runway */ @@ -322,9 +321,9 @@ receive( int rval; /* cookie snatcher */ keyid_t pkeyid = 0, tkeyid = 0; /* key IDs */ #endif /* OPENSSL */ -#ifdef WINTIME +#ifdef HAVE_NTP_SIGND static unsigned char zero_key[16]; -#endif /* WINTIME */ +#endif /* HAVE_NTP_SIGND */ /* * Monitor the packet and get restrictions. Note that the packet @@ -482,11 +481,14 @@ receive( return; /* rate exceeded */ if (hismode == MODE_CLIENT) - fast_xmit(rbufp, MODE_SERVER, skeyid, "RATE", 0); + fast_xmit(rbufp, MODE_SERVER, skeyid, + restrict_mask); else - fast_xmit(rbufp, MODE_ACTIVE, skeyid, "RATE", 0); + fast_xmit(rbufp, MODE_ACTIVE, skeyid, + restrict_mask); return; /* rate exceeded */ } + restrict_mask &= ~RES_KOD; /* * We have tossed out as many buggy packets as possible early in @@ -539,6 +541,7 @@ receive( */ if (has_mac == 0) { + restrict_mask &= ~RES_MSSNTP; is_authentic = AUTH_NONE; /* not required */ #ifdef DEBUG if (debug) @@ -549,7 +552,8 @@ receive( authlen); #endif } else if (has_mac == 4) { - is_authentic = AUTH_CRYPTO; /* crypto-NAK */ + restrict_mask &= ~RES_MSSNTP; + is_authentic = AUTH_CRYPTO; /* crypto-NAK */ #ifdef DEBUG if (debug) printf( @@ -559,8 +563,9 @@ receive( authlen + has_mac, is_authentic); #endif -#ifdef WINTIME - /* If the signature is 20 bytes long, the last 16 of +#ifdef HAVE_NTP_SIGND + /* + * If the signature is 20 bytes long, the last 16 of * which are zero, then this is a Microsoft client * wanting AD-style authentication of the server's * reply. @@ -568,18 +573,15 @@ receive( * This is described in Microsoft's WSPP docs, in MS-SNTP: * http://msdn.microsoft.com/en-us/library/cc212930.aspx */ - } else if (has_mac == MAX_MAC_LEN - && (retcode == AM_FXMIT || retcode == AM_NEWPASS) - && (memcmp(zero_key, (char *)pkt + authlen + 4, MAX_MAC_LEN - 4) == 0)) { - - /* Don't try to verify the zeros, just set a - * flag and otherwise pretend we never saw the signature */ + } else if (has_mac == MAX_MAC_LEN && (restrict_mask & RES_MSNTP) && + (retcode == AM_FXMIT || retcode == AM_NEWPASS) && + (memcmp(zero_key, (char *)pkt + authlen + 4, MAX_MAC_LEN - 4) == + 0)) { is_authentic = AUTH_NONE; - - flags = FLAG_ADKEY; -#endif /* WINTIME */ +#endif /* HAVE_NTP_SIGND */ } else { + restrict_mask &= ~RES_MSSNTP; #ifdef OPENSSL /* * For autokey modes, generate the session key @@ -720,9 +722,10 @@ receive( if (AUTH(restrict_mask & RES_DONTTRUST, is_authentic)) { fast_xmit(rbufp, MODE_SERVER, skeyid, - NULL, flags); + restrict_mask); } else if (is_authentic == AUTH_ERROR) { - fast_xmit(rbufp, MODE_SERVER, 0, NULL, 0); + fast_xmit(rbufp, MODE_SERVER, 0, + restrict_mask); sys_badauth++; } else { sys_restricted++; @@ -757,7 +760,8 @@ receive( * crypto-NAK, as that would not be useful. */ if (AUTH(restrict_mask & RES_DONTTRUST, is_authentic)) - fast_xmit(rbufp, MODE_SERVER, skeyid, NULL, 0); + fast_xmit(rbufp, MODE_SERVER, skeyid, + restrict_mask); return; /* hooray */ /* @@ -924,11 +928,12 @@ receive( if (AUTH(restrict_mask & RES_DONTTRUST, is_authentic)) { fast_xmit(rbufp, MODE_PASSIVE, skeyid, - NULL, flags); + restrict_mask); return; /* hooray */ } if (is_authentic == AUTH_ERROR) { - fast_xmit(rbufp, MODE_ACTIVE, 0, NULL, 0); + fast_xmit(rbufp, MODE_ACTIVE, 0, + restrict_mask); sys_restricted++; } } @@ -1117,7 +1122,7 @@ receive( peer->flash |= TEST5; /* bad auth */ peer->badauth++; if (hismode == MODE_ACTIVE || hismode == MODE_PASSIVE) - fast_xmit(rbufp, MODE_ACTIVE, 0, NULL, 0); + fast_xmit(rbufp, MODE_ACTIVE, 0, restrict_mask); if (peer->flags & FLAG_PREEMPT) { unpeer(peer); return; @@ -3185,8 +3190,7 @@ fast_xmit( struct recvbuf *rbufp, /* receive packet pointer */ int xmode, /* receive mode */ keyid_t xkeyid, /* transmit key ID */ - char *mask, /* kiss code */ - int flags /* Flags to indicate signing behaviour */ + int flags /* restrict mask */ ) { struct pkt xpkt; /* transmit packet structure */ @@ -3219,13 +3223,13 @@ fast_xmit( * local time, so these packets can't be used for * synchronization. */ - if (mask != NULL) { + if (flags & RES_KOD) { sys_kodsent++; xpkt.li_vn_mode = PKT_LI_VN_MODE(LEAP_NOTINSYNC, PKT_VERSION(rpkt->li_vn_mode), xmode); xpkt.stratum = STRATUM_PKT_UNSPEC; xpkt.ppoll = max(rpkt->ppoll, ntp_minpoll); - memcpy(&xpkt.refid, mask, 4); + memcpy(&xpkt.refid, "RATE", 4); xpkt.org = rpkt->xmt; xpkt.rec = rpkt->xmt; xpkt.xmt = rpkt->xmt; @@ -3245,14 +3249,12 @@ fast_xmit( HTONL_FP(&sys_reftime, &xpkt.reftime); xpkt.org = rpkt->xmt; HTONL_FP(&rbufp->recv_time, &xpkt.rec); + HTONL_FP(&xmt_tx, &xpkt.xmt); } #ifdef HAVE_NTP_SIGND - if (flags & FLAG_ADKEY) { + if (flags & RES_MSSNTP) { get_systime(&xmt_tx); - if (mask == NULL) { - HTONL_FP(&xmt_tx, &xpkt.xmt); - } send_via_ntp_signd(rbufp, xmode, xkeyid, flags, &xpkt); return; } @@ -3265,10 +3267,7 @@ fast_xmit( */ sendlen = LEN_PKT_NOMAC; if (rbufp->recv_length == sendlen) { - if (mask == NULL) { - get_systime(&xmt_tx); - HTONL_FP(&xmt_tx, &xpkt.xmt); - } + get_systime(&xmt_tx); sendpkt(&rbufp->recv_srcadr, rbufp->dstadr, 0, &xpkt, sendlen); #ifdef DEBUG @@ -3320,9 +3319,6 @@ fast_xmit( } #endif /* OPENSSL */ get_systime(&xmt_tx); - if (mask == NULL) { - HTONL_FP(&xmt_tx, &xpkt.xmt); - } sendlen += authencrypt(xkeyid, (u_int32 *)&xpkt, sendlen); #ifdef OPENSSL if (xkeyid > NTP_MAXKEY)