Index: /trunk/src/sh_unix.c
===================================================================
--- /trunk/src/sh_unix.c	(revision 216)
+++ /trunk/src/sh_unix.c	(revision 217)
@@ -1663,7 +1663,18 @@
   SL_RET0(_("sh_unix_localhost"));
 }
-#else
+
+#else
+
+/* 
+ * --FreeBSD code 
+ */
+#if defined(HAVE_UNAME)
+#include <sys/utsname.h>
+#endif
 void sh_unix_localhost()
 {
+#if defined(HAVE_UNAME)
+  struct utsname   buf;
+#endif
   struct hostent * he1;
   int              i;
@@ -1674,4 +1685,12 @@
 
   SL_ENTER(_("sh_unix_localhost"));
+
+#if defined(HAVE_UNAME)
+  (void) uname (&buf);
+  /* flawfinder: ignore */ /* ff bug, ff sees system() */
+  sl_strlcpy (sh.host.system,  buf.sysname, SH_MINIBUF);
+  sl_strlcpy (sh.host.release, buf.release, SH_MINIBUF);
+  sl_strlcpy (sh.host.machine, buf.machine, SH_MINIBUF);
+#endif
 
   (void) gethostname (hostname, 1024);
