]> diplodocus.org Git - nmh/blobdiff - test/getcanon.c
new.c: Order two return statements to match comment.
[nmh] / test / getcanon.c
index 8d7f15fdc4163b322cda795041a91d2cf7e6e324..3e75f32f2b311505aa000cda068152b6259b3014 100644 (file)
@@ -20,37 +20,36 @@ int
 main(int argc, char *argv[])
 {
   char buf[_POSIX_HOST_NAME_MAX + 1];
-  const char *hostname = buf;
+  const char *hostname;
   struct addrinfo hints, *res;
-  int status = 0;
 
   /* Borrowed the important code below from LocalName() in sbr/mts.c. */
 
-  if (argc < 2) {
-    /* First get our local name. */
-    status = gethostname(buf, sizeof buf);
-  } else if (argc == 2) {
-    hostname = argv[1];
-  } else if (argc > 2) {
+  if (argc > 2) {
     fprintf(stderr, "usage: %s [hostname]\n", argv[0]);
     return 1;
   }
-
-  if (status == 0) {
-    /* Now fully qualify the hostname. */
-    memset(&hints, 0, sizeof hints);
-    hints.ai_flags = AI_CANONNAME;
-    hints.ai_family = AF_UNSPEC;
-
-    if ((status = getaddrinfo(hostname, NULL, &hints, &res)) == 0) {
-      printf("%s\n", res->ai_canonname);
-      freeaddrinfo(res);
-    } else {
-      printf("%s\n", hostname);
+  if (argc == 2)
+    hostname = argv[1];
+  else {
+    /* First get our local name. */
+    if (gethostname(buf, sizeof buf)) {
+        fprintf(stderr, "gethostname() failed: %s\n", strerror(errno));
+        return 1;
     }
-  } else {
-    fprintf(stderr, "gethostname() failed: %s\n", strerror(errno));
+    hostname = buf;
+  }
+
+  /* Now fully qualify the hostname. */
+  memset(&hints, 0, sizeof hints);
+  hints.ai_flags = AI_CANONNAME;
+  hints.ai_family = AF_UNSPEC;
+
+  if (getaddrinfo(hostname, NULL, &hints, &res)) {
+    puts(hostname);
+    return 1;
   }
+  puts(res->ai_canonname);
 
-  return status;
+  return 0;
 }