Make use the netdb error codes.
authorDaniel Kouřil <kouril@ics.muni.cz>
Tue, 13 Dec 2011 10:00:52 +0000 (10:00 +0000)
committerDaniel Kouřil <kouril@ics.muni.cz>
Tue, 13 Dec 2011 10:00:52 +0000 (10:00 +0000)
emi.canl.canl-c/src/canl.c
emi.canl.canl-c/src/canl_locl.h

index 3bcdeae..0459408 100644 (file)
@@ -109,25 +109,19 @@ int canl_io_connect(canl_ctx cc, canl_io_handler io, char * host, int port,
                 err = 0;
                 break;
             case TRY_AGAIN:
-                err = ETIMEDOUT;
+               err = set_error(glb_cc, ETIMEDOUT, posix_error,
+                               "Cannot resolve the server hostname (%s)", host);
                 goto end;
             case NETDB_INTERNAL:
-                err = EHOSTUNREACH; //TODO check
-                set_error(glb_cc, err, posix_error, "Cannot resolve"
-                        " the server hostname (%s)", host);
+               err = set_error(glb_cc, h_errno, netdb_error,
+                               "Cannot resolve the server hostname (%s)", host);
                 goto end;
             default:
-                err = EHOSTUNREACH; //TODO check
-                set_error(glb_cc, err, posix_error, "Cannot resolve"
-                        " the server hostname (%s)", host);
+               err = set_error(glb_cc, h_errno, netdb_error,
+                               "Cannot resolve the server hostname (%s)", host);
                 goto end; /* XXX continue */
         }
 
-        if (err)
-            /* XXX add error msg from ares */
-            return set_error(cc, err, posix_error,
-                    "Cannot resolve the server hostname (%s)", host);
-
         i = 0;
         /* XXX can the list be empty? */
         while (ar.ent->h_addr_list[i])
index 2906440..4d4bee4 100644 (file)
@@ -43,7 +43,8 @@ typedef enum _CANL_ERROR_ORIGIN
     unknown_error = 0,
     posix_error = 1,
     ssl_error,
-    colin_error
+    colin_error,
+    netdb_error,
 } CANL_ERROR_ORIGIN;