The dhclient cannot parse the IAID successfully,when it is written as string which contains '"' character
As we all know, the IAID values in lease is written as quoted strings with the default format. Generally, the dhclient can successfully parse the IAID value from the IAID string in the lease, but fails to parse the IAID value from the IAID string which contains '"'. The reason is that when the dhclient parses the IAID character string, the character '“' is used as the end of the string. Modifying the condition for writing the IAID value as a string rather than modifying the code for parsing leases is a better way to solve this problem.
diff --git a/common/print.c b/common/print.c
index ebe985d..536e8b4 100644
--- a/common/print.c
+++ b/common/print.c
@@ -427,7 +427,7 @@ void print_hex_or_string (len, data, limit, buf)
return;
for (i = 0; (i < (limit - 3)) && (i < len); i++) {
- if (!isascii(data[i]) || !isprint(data[i])) {
+ if (!isascii(data[i]) || !isprint(data[i]) || (data[i] == '"')) {
print_hex_only(len, data, limit, buf);
return;
}