]> andersk Git - moira.git/blobdiff - lib/fixhost.c
Use krb5_error_code for return value of krb5 library functions.
[moira.git] / lib / fixhost.c
index 6bdb70f91dd4999620b2aa575e53f748c52e17ea..ae574ada446fc7fb96a86dc9e39ab7c54b96ffe1 100644 (file)
 #include <moira.h>
 
 #include <sys/types.h>
-#include <sys/socket.h>
+
+#ifdef HAVE_UNAME
 #include <sys/utsname.h>
+#endif
 
+#ifndef _WIN32
+#include <sys/socket.h>
 #include <netdb.h>
 #include <netinet/in.h>
+#endif /* _WIN32 */
 
 #include <ctype.h>
 #include <stdio.h>
 
 RCSID("$Header$");
 
+static struct hostent *local_gethostbyname(void)
+{
+#ifdef HAVE_UNAME
+  struct utsname name;
+  uname(&name);
+  return gethostbyname(name.nodename);
+#else
+  char hostname[128];
+  gethostname(hostname, sizeof(hostname));
+  hostname[sizeof(hostname)-1] = 0;
+  return gethostbyname(hostname);
+#endif
+}
+
 static char *local_domain(void)
 {
   static char *domain = NULL;
@@ -42,9 +61,7 @@ static char *local_domain(void)
        }
       else
        {
-         struct utsname name;
-         uname(&name);
-         hp = gethostbyname(name.nodename);
+         hp = local_gethostbyname();
          if (hp)
            {
              cp = strchr(hp->h_name, '.');
This page took 0.027595 seconds and 4 git commands to generate.