47 lines
1.8 KiB
Diff
47 lines
1.8 KiB
Diff
From fb971ee6b5403c21e64fa66c8711f688f763518c Mon Sep 17 00:00:00 2001
|
|
From: renmingshuai <renmingshuai@huawei.com>
|
|
Date: Sat, 20 Jan 2024 02:51:53 +0000
|
|
Subject: [PATCH] IAID is output has hexe if it contains '\' or '"'
|
|
|
|
Signed-off-by: renmingshuai <renmingshuai@huawei.com>
|
|
---
|
|
client/dhclient.conf.5 | 6 +++---
|
|
common/print.c | 4 +++-
|
|
2 files changed, 6 insertions(+), 4 deletions(-)
|
|
|
|
diff --git a/client/dhclient.conf.5 b/client/dhclient.conf.5
|
|
index 566a881..2e2dc56 100644
|
|
--- a/client/dhclient.conf.5
|
|
+++ b/client/dhclient.conf.5
|
|
@@ -617,9 +617,9 @@ pairs, separated by colons.
|
|
Currently, the values written out based on lease-id-format are the default-duid
|
|
and the IAID value (DHCPv6 only). The client automatically reads the values
|
|
in either format. Note that when the format is octal, rather than as an octal
|
|
-string, IAID is output as hex if it contains no printable characters or as a
|
|
-string if contains only printable characters. This is done to maintain backward
|
|
-compatibility.
|
|
+string, IAID is output as hex if it contains special character '"', '\' or
|
|
+no printable characters, or as a string if contains only printable characters.
|
|
+This is done to maintain backward compatibility.
|
|
.PP
|
|
\fBreject \fIcidr-ip-address\fR [\fB,\fR \fI...\fB \fIcidr-ip-address\fR ] \fB;\fR
|
|
.PP
|
|
diff --git a/common/print.c b/common/print.c
|
|
index b42e7bc..6835eb1 100644
|
|
--- a/common/print.c
|
|
+++ b/common/print.c
|
|
@@ -427,7 +427,9 @@ 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])) {
|
|
+ /* print as hex if the characters contain '"' or '\' */
|
|
+ if (!isascii(data[i]) || !isprint(data[i]) ||
|
|
+ (data[i] == '"' || data[i] == '\\')) {
|
|
print_hex_only(len, data, limit, buf);
|
|
return;
|
|
}
|
|
--
|
|
2.33.0
|
|
|