.
authorJim Meyering <jim@meyering.net>
Mon, 2 May 1994 04:26:07 +0000 (04:26 +0000)
committerJim Meyering <jim@meyering.net>
Mon, 2 May 1994 04:26:07 +0000 (04:26 +0000)
lib/xgethostname.c [new file with mode: 0644]

diff --git a/lib/xgethostname.c b/lib/xgethostname.c
new file mode 100644 (file)
index 0000000..f00d7bd
--- /dev/null
@@ -0,0 +1,29 @@
+#include <sys/types.h>
+
+int gethostname ();
+char *xmalloc ();
+char *xrealloc ();
+
+#define INITIAL_HOSTNAME_LENGTH 33
+
+char *
+xgethostname ()
+{
+  char *hostname;
+  size_t size;
+  int err;
+
+  size = INITIAL_HOSTNAME_LENGTH;
+  while (1)
+    {
+      hostname = xmalloc (size);
+      hostname[size - 1] = '\0';
+      err = gethostname (hostname, size);
+      if (err || hostname[size - 1] == '\0')
+       break;
+      size *= 2;
+      hostname = xrealloc (hostname, size);
+    }
+
+  return hostname;
+}