Changed errno to SOCKET_ERRNO/SOCKET_SET_ERRNO for Mac OT SocketsLib
[krb5.git] / src / lib / krb5 / os / changepw.c
index 75f04cb6bdc63e90186c7985f0d3898f0be168f4..e159f2090497e676894d4341cf88939da4241856 100644 (file)
@@ -30,7 +30,7 @@
 #include <errno.h>
 
 /* Win32 defines. */
-#if defined(_WIN32) && !defined(__CYGWIN32__)
+#if defined(_WIN16) || (defined(_WIN32) && !defined(__CYGWIN32__))
 #ifndef ECONNABORTED
 #define ECONNABORTED WSAECONNABORTED
 #endif
@@ -64,7 +64,7 @@ krb5_change_password(context, creds, newpw, result_code,
     struct sockaddr_in *sin_p;
     struct hostent *hp;
     struct servent *sp;
-#ifdef KRB5_USE_INET
+#ifdef HAVE_NETINET_IN_H
     u_short udpport = htons(KRB5_DEFAULT_PORT);
 #endif
     int cc, local_result_code, tmp_len;
@@ -112,7 +112,7 @@ krb5_change_password(context, creds, newpw, result_code,
     else if (code)
        return code;
 
-#ifdef KRB5_USE_INET
+#ifdef HAVE_NETINET_IN_H
     /* XXX should look for "kpasswd" in /etc/services */
     udpport = htons(DEFAULT_KPASSWD_PORT);
 #endif
@@ -154,7 +154,7 @@ krb5_change_password(context, creds, newpw, result_code,
 
     if (hp != 0) {
        switch (hp->h_addrtype) {
-#ifdef KRB5_USE_INET
+#ifdef HAVE_NETINET_IN_H
        case AF_INET:
            for (j=0; hp->h_addr_list[j]; j++) {
                sin_p = (struct sockaddr_in *) &addr_p[out++];
@@ -207,39 +207,35 @@ krb5_change_password(context, creds, newpw, result_code,
 
     if ((s1 = socket(AF_INET, SOCK_DGRAM, 0)) == INVALID_SOCKET) {
        free(addr_p);
-       return(errno);
+       return(SOCKET_ERRNO);
     }
 
     if ((s2 = socket(AF_INET, SOCK_DGRAM, 0)) == INVALID_SOCKET) {
        free(addr_p);
-       return(errno);
+       return(SOCKET_ERRNO);
     }
 
     for (i=0; i<out; i++) {
        if (connect(s2, &addr_p[i], sizeof(addr_p[i])) == SOCKET_ERROR) {
-#ifndef HAVE_MACSOCK_H
-           if ((cc < 0) && ((errno == ECONNREFUSED) ||
-                            (errno == EHOSTUNREACH)))
-#endif
+           if ((cc < 0) && ((SOCKET_ERRNO == ECONNREFUSED) ||
+                            (SOCKET_ERRNO == EHOSTUNREACH)))
                continue; /* try the next addr */
            free(addr_p);
            closesocket(s1);
            closesocket(s2);
-           return(errno);
+           return(SOCKET_ERRNO);
        }
 
        addrlen = sizeof(local_addr);
 
        if (getsockname(s2, &local_addr, &addrlen) < 0) {
-#ifndef HAVE_MACSOCK_H
-           if ((errno == ECONNREFUSED) ||
-               (errno == EHOSTUNREACH))
-#endif
+           if ((SOCKET_ERRNO == ECONNREFUSED) ||
+               (SOCKET_ERRNO == EHOSTUNREACH))
                continue; /* try the next addr */
            free(addr_p);
            closesocket(s1);
            closesocket(s2);
-           return(errno);
+           return(SOCKET_ERRNO);
        }
 
        /* some brain-dead OS's don't return useful information from
@@ -250,7 +246,7 @@ krb5_change_password(context, creds, newpw, result_code,
            local_kaddr.length =
              sizeof(((struct sockaddr_in *) &local_addr)->sin_addr);
            local_kaddr.contents = 
-             (char *) &(((struct sockaddr_in *) &local_addr)->sin_addr);
+             (krb5_octet *) &(((struct sockaddr_in *) &local_addr)->sin_addr);
        } else {
            krb5_address **addrs;
 
@@ -266,22 +262,20 @@ krb5_change_password(context, creds, newpw, result_code,
 
        addrlen = sizeof(remote_addr);
        if (getpeername(s2, &remote_addr, &addrlen) < 0) {
-#ifndef HAVE_MACSOCK_H
-           if ((errno == ECONNREFUSED) ||
-               (errno == EHOSTUNREACH))
-#endif
+           if ((SOCKET_ERRNO == ECONNREFUSED) ||
+               (SOCKET_ERRNO == EHOSTUNREACH))
                continue; /* try the next addr */
            free(addr_p);
            closesocket(s1);
            closesocket(s2);
-           return(errno);
+           return(SOCKET_ERRNO);
        }
 
        remote_kaddr.addrtype = ADDRTYPE_INET;
        remote_kaddr.length =
            sizeof(((struct sockaddr_in *) &remote_addr)->sin_addr);
        remote_kaddr.contents = 
-           (char *) &(((struct sockaddr_in *) &remote_addr)->sin_addr);
+           (krb5_octet *) &(((struct sockaddr_in *) &remote_addr)->sin_addr);
 
        /* mk_priv requires that the local address be set.
          getsockname is used for this.  rd_priv requires that the
@@ -317,15 +311,13 @@ krb5_change_password(context, creds, newpw, result_code,
                         (struct sockaddr *) &addr_p[i],
                         sizeof(addr_p[i]))) !=
            chpw_req.length) {
-#ifndef HAVE_MACSOCK_H
-           if ((cc < 0) && ((errno == ECONNREFUSED) ||
-                            (errno == EHOSTUNREACH)))
-#endif
+           if ((cc < 0) && ((SOCKET_ERRNO == ECONNREFUSED) ||
+                            (SOCKET_ERRNO == EHOSTUNREACH)))
                continue; /* try the next addr */
            free(addr_p);
            closesocket(s1);
            closesocket(s2);
-           return((cc < 0)?errno:ECONNABORTED);
+           return((cc < 0)?SOCKET_ERRNO:ECONNABORTED);
        }
 
        krb5_xfree(chpw_req.data);
@@ -348,7 +340,7 @@ krb5_change_password(context, creds, newpw, result_code,
            free(addr_p);
            closesocket(s1);
            closesocket(s2);
-           return(errno);
+           return(SOCKET_ERRNO);
        }
 
        closesocket(s1);
@@ -395,5 +387,5 @@ krb5_change_password(context, creds, newpw, result_code,
     free(addr_p);
     closesocket(s1);
     closesocket(s2);
-    return(errno);
+    return(SOCKET_ERRNO);
 }