mirror of
https://gitlab.isc.org/isc-projects/dhcp
synced 2025-08-31 06:15:55 +00:00
- A bug was fixed that caused the 'conflict-done' state to fail to be parsed
in failover state records. [ISC-Bugs #19739]
This commit is contained in:
3
RELNOTES
3
RELNOTES
@@ -134,6 +134,9 @@ work on other platforms. Please report any problems and suggested fixes to
|
|||||||
failover connect yet (e.g.: connection refused, asynch socket connect()
|
failover connect yet (e.g.: connection refused, asynch socket connect()
|
||||||
timeouts).
|
timeouts).
|
||||||
|
|
||||||
|
- A bug was fixed that caused the 'conflict-done' state to fail to be parsed
|
||||||
|
in failover state records.
|
||||||
|
|
||||||
Changes since 4.1.0b1
|
Changes since 4.1.0b1
|
||||||
|
|
||||||
- A missing "else" in dhcrelay.c could have caused an interface not to
|
- A missing "else" in dhcrelay.c could have caused an interface not to
|
||||||
|
@@ -778,46 +778,69 @@ intern(char *atom, enum dhcp_token dfv) {
|
|||||||
return BOUND;
|
return BOUND;
|
||||||
break;
|
break;
|
||||||
case 'c':
|
case 'c':
|
||||||
if (!strcasecmp (atom + 1, "ase"))
|
if (!strcasecmp(atom + 1, "ase"))
|
||||||
return CASE;
|
return CASE;
|
||||||
if (!strcasecmp (atom + 1, "ommit"))
|
if (!strcasecmp(atom + 1, "heck"))
|
||||||
return COMMIT;
|
|
||||||
if (!strcasecmp (atom + 1, "ode"))
|
|
||||||
return CODE;
|
|
||||||
if (!strcasecmp (atom + 1, "onfig-option"))
|
|
||||||
return CONFIG_OPTION;
|
|
||||||
if (!strcasecmp (atom + 1, "heck"))
|
|
||||||
return CHECK;
|
return CHECK;
|
||||||
if (!strcasecmp (atom + 1, "lass"))
|
if (!strcasecmp(atom + 1, "iaddr"))
|
||||||
return CLASS;
|
|
||||||
if (!strcasecmp (atom + 1, "lose"))
|
|
||||||
return TOKEN_CLOSE;
|
|
||||||
if (!strcasecmp(atom + 1, "ompressed"))
|
|
||||||
return COMPRESSED;
|
|
||||||
if (!strcasecmp (atom + 1, "reate"))
|
|
||||||
return TOKEN_CREATE;
|
|
||||||
if (!strcasecmp (atom + 1, "iaddr"))
|
|
||||||
return CIADDR;
|
return CIADDR;
|
||||||
if (!strncasecmp (atom + 1, "lient", 5)) {
|
if (isascii(atom[1]) &&
|
||||||
if (!strcasecmp (atom + 6, "-identifier"))
|
tolower((unsigned char)atom[1]) == 'l') {
|
||||||
return CLIENT_IDENTIFIER;
|
if (!strcasecmp(atom + 2, "ass"))
|
||||||
if (!strcasecmp (atom + 6, "-hostname"))
|
return CLASS;
|
||||||
return CLIENT_HOSTNAME;
|
if (!strncasecmp(atom + 2, "ient", 4)) {
|
||||||
if (!strcasecmp (atom + 6, "-state"))
|
if (!strcasecmp(atom + 6, "s"))
|
||||||
return CLIENT_STATE;
|
return CLIENTS;
|
||||||
if (!strcasecmp (atom + 6, "-updates"))
|
if (atom[7] == '-') {
|
||||||
return CLIENT_UPDATES;
|
if (!strcasecmp(atom + 7, "hostname"))
|
||||||
if (!strcasecmp (atom + 6, "s"))
|
return CLIENT_HOSTNAME;
|
||||||
return CLIENTS;
|
if (!strcasecmp(atom + 7, "identifier"))
|
||||||
|
return CLIENT_IDENTIFIER;
|
||||||
|
if (!strcasecmp(atom + 7, "state"))
|
||||||
|
return CLIENT_STATE;
|
||||||
|
if (!strcasecmp(atom + 7, "updates"))
|
||||||
|
return CLIENT_UPDATES;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (!strcasecmp(atom + 2, "ose"))
|
||||||
|
return TOKEN_CLOSE;
|
||||||
|
if (!strcasecmp(atom + 2, "tt"))
|
||||||
|
return CLTT;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
if (!strcasecmp (atom + 1, "oncat"))
|
if (isascii(atom[1]) &&
|
||||||
return CONCAT;
|
tolower((unsigned char)atom[1]) == 'o') {
|
||||||
if (!strcasecmp (atom + 1, "onnect"))
|
if (!strcasecmp(atom + 2, "de"))
|
||||||
return CONNECT;
|
return CODE;
|
||||||
if (!strcasecmp (atom + 1, "ommunications-interrupted"))
|
if (isascii(atom[2]) &&
|
||||||
return COMMUNICATIONS_INTERRUPTED;
|
tolower((unsigned char)atom[2]) == 'm') {
|
||||||
if (!strcasecmp (atom + 1, "ltt"))
|
if (!strcasecmp(atom + 3, "mit"))
|
||||||
return CLTT;
|
return COMMIT;
|
||||||
|
if (!strcasecmp(atom + 3,
|
||||||
|
"munications-interrupted"))
|
||||||
|
return COMMUNICATIONS_INTERRUPTED;
|
||||||
|
if (!strcasecmp(atom + 3, "pressed"))
|
||||||
|
return COMPRESSED;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (isascii(atom[2]) &&
|
||||||
|
tolower((unsigned char)atom[2]) == 'n') {
|
||||||
|
if (!strcasecmp(atom + 3, "cat"))
|
||||||
|
return CONCAT;
|
||||||
|
if (!strcasecmp(atom + 3, "fig-option"))
|
||||||
|
return CONFIG_OPTION;
|
||||||
|
if (!strcasecmp(atom + 3, "flict-done"))
|
||||||
|
return CONFLICT_DONE;
|
||||||
|
if (!strcasecmp(atom + 3, "nect"))
|
||||||
|
return CONNECT;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (!strcasecmp(atom + 1, "reate"))
|
||||||
|
return TOKEN_CREATE;
|
||||||
break;
|
break;
|
||||||
case 'd':
|
case 'd':
|
||||||
if (!strcasecmp(atom + 1, "b-time-format"))
|
if (!strcasecmp(atom + 1, "b-time-format"))
|
||||||
|
@@ -353,8 +353,8 @@ enum dhcp_token {
|
|||||||
TEMPORARY = 656,
|
TEMPORARY = 656,
|
||||||
PREFIX6 = 657,
|
PREFIX6 = 657,
|
||||||
FIXED_PREFIX6 = 658,
|
FIXED_PREFIX6 = 658,
|
||||||
ANYCAST_MAC = 659
|
ANYCAST_MAC = 659,
|
||||||
|
CONFLICT_DONE = 660
|
||||||
};
|
};
|
||||||
|
|
||||||
#define is_identifier(x) ((x) >= FIRST_TOKEN && \
|
#define is_identifier(x) ((x) >= FIRST_TOKEN && \
|
||||||
|
@@ -1315,6 +1315,10 @@ void parse_failover_state (cfile, state, stos)
|
|||||||
state_in = communications_interrupted;
|
state_in = communications_interrupted;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case CONFLICT_DONE:
|
||||||
|
state_in = conflict_done;
|
||||||
|
break;
|
||||||
|
|
||||||
case RESOLUTION_INTERRUPTED:
|
case RESOLUTION_INTERRUPTED:
|
||||||
state_in = resolution_interrupted;
|
state_in = resolution_interrupted;
|
||||||
break;
|
break;
|
||||||
|
Reference in New Issue
Block a user