aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xlibexec/rc/rc.d/hostid11
1 files changed, 10 insertions, 1 deletions
diff --git a/libexec/rc/rc.d/hostid b/libexec/rc/rc.d/hostid
index 39a0f4acb498..494e4aba84e1 100755
--- a/libexec/rc/rc.d/hostid
+++ b/libexec/rc/rc.d/hostid
@@ -106,6 +106,8 @@ hostid_hardware()
if valid_hostid $uuid; then
echo "${uuid}"
+ elif [ "$uuid" ]; then
+ echo "INVALID"
fi
}
@@ -113,9 +115,16 @@ hostid_generate()
{
# First look for UUID in hardware.
uuid=`hostid_hardware`
- if [ -z "${uuid}" ]; then
+
+ # Warn about invalid UUIDs
+ if [ "${uuid}" = "INVALID" ]; then
warn "hostid: unable to figure out a UUID from DMI data, generating a new one"
sleep 2
+ uuid=""
+ fi
+
+ # Generate a random UUID if invalid or not found
+ if [ -z "${uuid}" ]; then
# If not found, fall back to software-generated UUID.
uuid=`uuidgen`
fi