summaryrefslogtreecommitdiff
path: root/treat-underscore-as-valid-hostname-char.patch
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2024-12-12 02:54:13 +0000
committerCoprDistGit <infra@openeuler.org>2024-12-12 02:54:13 +0000
commita35fcc8b3fc340a6b874440b2a87e155c807ece5 (patch)
tree02ca631dd69c05a4dfcbd98a0ed12e2b0d2cd035 /treat-underscore-as-valid-hostname-char.patch
parentb7abaf7e217d7948f8101d25013189a9322dd6ef (diff)
automatic import of systemdopeneuler24.03_LTS
Diffstat (limited to 'treat-underscore-as-valid-hostname-char.patch')
-rw-r--r--treat-underscore-as-valid-hostname-char.patch72
1 files changed, 72 insertions, 0 deletions
diff --git a/treat-underscore-as-valid-hostname-char.patch b/treat-underscore-as-valid-hostname-char.patch
new file mode 100644
index 0000000..6472129
--- /dev/null
+++ b/treat-underscore-as-valid-hostname-char.patch
@@ -0,0 +1,72 @@
+From c04904a4f54f8949a6a7821a0859e2732366259b Mon Sep 17 00:00:00 2001
+From: licunlong <licunlong1@huawei.com>
+Date: Tue, 24 Nov 2020 19:57:38 +0800
+Subject: [PATCH] treat underscore as valid hostname char
+
+---
+ src/basic/hostname-util.c | 14 ++++++++++++--
+ test/test-network-generator-conversion.sh | 2 +-
+ 2 files changed, 13 insertions(+), 3 deletions(-)
+
+diff --git a/src/basic/hostname-util.c b/src/basic/hostname-util.c
+index e743033..8464164 100644
+--- a/src/basic/hostname-util.c
++++ b/src/basic/hostname-util.c
+@@ -80,6 +80,16 @@ bool valid_ldh_char(char c) {
+ c == '-';
+ }
+
++static bool hostname_valid_char(char c) {
++ return
++ (c >= 'a' && c <= 'z') ||
++ (c >= 'A' && c <= 'Z') ||
++ (c >= '0' && c <= '9') ||
++ c == '-' ||
++ c == '_' ||
++ c == '.';
++}
++
+ bool hostname_is_valid(const char *s, ValidHostnameFlags flags) {
+ unsigned n_dots = 0;
+ const char *p;
+@@ -116,7 +126,7 @@ bool hostname_is_valid(const char *s, ValidHostnameFlags flags) {
+ hyphen = true;
+
+ } else {
+- if (!valid_ldh_char(*p))
++ if (!hostname_valid_char(*p))
+ return false;
+
+ dot = false;
+@@ -158,7 +168,7 @@ char* hostname_cleanup(char *s) {
+ dot = false;
+ hyphen = true;
+
+- } else if (valid_ldh_char(*p)) {
++ } else if (hostname_valid_char(*p)) {
+ *(d++) = *p;
+ dot = false;
+ hyphen = false;
+diff --git a/test/test-network-generator-conversion.sh b/test/test-network-generator-conversion.sh
+index 6224a4d..05ef833 100755
+--- a/test/test-network-generator-conversion.sh
++++ b/test/test-network-generator-conversion.sh
+@@ -283,6 +283,7 @@ COMMAND_LINES=(
+ "ip=:::::dhcp99:dhcp6:10.0.0.128:[fdef:c400:bd01:1096::bbbb]"
+ "ip=::::::any"
+ "ip=::::::ibft"
++ "ip=10.0.0.1:::255.255.255.0:valid_hostname:foo99:off"
+ )
+ for cmdline in "${COMMAND_LINES[@]}"; do
+ check_one_long "$cmdline"
+@@ -294,7 +295,6 @@ INVALID_COMMAND_LINES=(
+ "ip=:::::::foo"
+ "ip=10.0.0:::255.255.255.0::foo99:off"
+ "ip=10.0.0.1:::255.255.255::foo99:off"
+- "ip=10.0.0.1:::255.255.255.0:invalid_hostname:foo99:off"
+ "ip=10.0.0.1:::255.255.255.0::verylonginterfacename:off"
+ "ip=:::::dhcp99:dhcp6:0"
+ "ip=:::::dhcp99:dhcp6:-1"
+--
+2.39.1
+