diff options
author | William A. Kennington III <wak@google.com> | 2023-02-16 03:42:29 +0300 |
---|---|---|
committer | William A. Kennington III <wak@google.com> | 2023-02-18 01:06:40 +0300 |
commit | ba60019ab6f314758a37c1e44e2b962d10fb38c2 (patch) | |
tree | d75c0658f7f95ecaa802779aafd1ebb526ce05f6 /meta-google | |
parent | e6f9056548fa082778270d0f40ca644b8e81b7e0 (diff) | |
download | openbmc-ba60019ab6f314758a37c1e44e2b962d10fb38c2.tar.xz |
meta-google: gbmc-ncsi-config: Fix hostname parsing
This makes it more flexible and supports hostnames that have extra
hyphens.
Tested: Against a number of hostnames to verify correctness
ytbbg7-n18.prod.google.com
ytbbg7
prod.google.com
ytbbg7.prod.google.com
ytbbg7
prod.google.com
ytbbg7-n18.google.com
ytbbg7
google.com
ytbbg7.google.com
ytbbg7
google.com
ndn44-nfd01.corp.google.com
ndn44
corp.google.com
ndn44.corp.google.com
ndn44
corp.google.com
pnhuna-bf4-nfd01.prod.google.com
pnhuna-bf4
prod.google.com
pnhuna-bf4.prod.google.com
pnhuna-bf4
prod.google.com
ytbbg7-n18.prod.bhgoogle.com
ytbbg7.prod.bhgoogle.com
pnhuna-nzf0.prod.google.com
pnhuna-nzf0
prod.google.com
Change-Id: I4de218a4d77a34985d21098bf05db6ece990bb8f
Signed-off-by: William A. Kennington III <wak@google.com>
Diffstat (limited to 'meta-google')
-rwxr-xr-x | meta-google/recipes-google/ncsi/files/gbmc-ncsi-ip-from-ra.sh.in | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/meta-google/recipes-google/ncsi/files/gbmc-ncsi-ip-from-ra.sh.in b/meta-google/recipes-google/ncsi/files/gbmc-ncsi-ip-from-ra.sh.in index 5daa1527a3..6b823363c8 100755 --- a/meta-google/recipes-google/ncsi/files/gbmc-ncsi-ip-from-ra.sh.in +++ b/meta-google/recipes-google/ncsi/files/gbmc-ncsi-ip-from-ra.sh.in @@ -71,9 +71,15 @@ while true; do (( t_pfx_b[9] |= 1 )) hextet="fd$(printf '%02x' ${t_pfx_b[9]})" pfx="$(ip_bytes_to_str t_pfx_b)" - elif [[ "$line" =~ ^'DNS search list'' '*:' '*([a-z]+[0-9]+)[^.]*[.](.*.google.com)$ ]]; then + elif [[ "$line" =~ ^'DNS search list'' '*:' '*([^.]+)(.*[.]google[.]com)$ ]]; then + # Ideally, we use PCRE and with lookahead and can do this in a single regex + # ^([a-zA-Z0-9-]+(?=-n[a-fA-F0-9]{1,4})|[a-zA-Z0-9-]+(?!-n[a-fA-F0-9]{1,4}))[^.]*[.]((?:[a-zA-Z0-9]*[.])*google[.]com)$ + # Instead we do multiple steps to extract the needed info host="${BASH_REMATCH[1]}" - domain="${BASH_REMATCH[2]}" + domain="${BASH_REMATCH[2]#.}" + if [[ "$host" =~ (-n[a-fA-F0-9]{1,4})$ ]]; then + host="${host%${BASH_REMATCH[1]}}" + fi elif [[ "$line" =~ ^from' '(.*)$ ]]; then rtr="${BASH_REMATCH[1]}" set_net || true |