In the gss rpc package, replace the type used for a
authorJeffrey Altman <jaltman@secure-endpoints.com>
Wed, 23 Jul 2008 20:55:56 +0000 (20:55 +0000)
committerJeffrey Altman <jaltman@secure-endpoints.com>
Wed, 23 Jul 2008 20:55:56 +0000 (20:55 +0000)
socket on Windows with SOCKET (instead of int) and
replace all calls to close() that are used to close
sockets with closesocket().

src/include/port-sockets.h includes the definitions
of SOCKET and closesocket() for non-Windows systems.

ticket: 6041
tags: pullup

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@20578 dc483132-0cff-0310-8789-dd5450dbe970

src/include/gssrpc/svc.h
src/lib/rpc/clnt_simple.c
src/lib/rpc/clnt_tcp.c
src/lib/rpc/clnt_udp.c
src/lib/rpc/pmap_rmt.c
src/lib/rpc/svc_tcp.c
src/lib/rpc/svc_udp.c

index a5198e7771544ad84e2708bf898fb4da3f0436dc..dfe0bec654e6fa9633dab2f9183ce51f16651ff0 100644 (file)
@@ -72,7 +72,11 @@ enum xprt_stat {
  * Server side transport handle
  */
 typedef struct SVCXPRT {
+#ifdef _WIN32
+        SOCKET          xp_sock;
+#else
        int             xp_sock;
+#endif
        u_short         xp_port;         /* associated port number */
        struct xp_ops {
            /* receive incomming requests */
index d2434a13c3a233615f1aa3f505577b511ae00452..65ae5c17651b62c2df4c4dc92054f2f6ea4ce6c3 100644 (file)
@@ -45,11 +45,12 @@ static char sccsid[] = "@(#)clnt_simple.c 1.35 87/08/11 Copyr 1984 Sun Micro";
 #include <sys/socket.h>
 #include <netdb.h>
 #include <string.h>
+#include <port-sockets.h>
 #include "autoconf.h"
 
 static struct callrpc_private {
        CLIENT  *client;
-       int     socket;
+        SOCKET  socket;
        int     oldprognum, oldversnum, valid;
        char    *oldhost;
 } *callrpc_private;
@@ -89,7 +90,7 @@ callrpc(
                /* reuse old client */          
        } else {
                crp->valid = 0;
-               (void)close(crp->socket);
+                (void)closesocket(crp->socket);
                crp->socket = RPC_ANYSOCK;
                if (crp->client) {
                        clnt_destroy(crp->client);
index 1f8de82762e6cf354274df4ca95b806464f2c8b2..dc7e2ff5087c0f877cb55d91e0d9ddf8d287d4df 100644 (file)
@@ -60,6 +60,7 @@ static char sccsid[] = "@(#)clnt_tcp.c 1.37 87/10/05 Copyr 1984 Sun Micro";
 #include <gssrpc/pmap_clnt.h>
 /* FD_ZERO may need memset declaration (e.g., Solaris 9) */
 #include <string.h>
+#include <port-sockets.h>
 
 #define MCALL_MSG_SIZE 24
 
@@ -118,7 +119,7 @@ clnttcp_create(
        struct sockaddr_in *raddr,
        rpcprog_t prog,
        rpcvers_t vers,
-       register int *sockp,
+        SOCKET *sockp,
        u_int sendsz,
        u_int recvsz)
 {
@@ -166,7 +167,7 @@ clnttcp_create(
                    sizeof(*raddr)) < 0)) {
                        rpc_createerr.cf_stat = RPC_SYSTEMERROR;
                        rpc_createerr.cf_error.re_errno = errno;
-                       (void)close(*sockp);
+                        (void)closesocket(*sockp);
                        goto fooy;
                }
                ct->ct_closeit = TRUE;
@@ -198,9 +199,8 @@ clnttcp_create(
        xdrmem_create(&(ct->ct_xdrs), ct->ct_u.ct_mcall, MCALL_MSG_SIZE,
            XDR_ENCODE);
        if (! xdr_callhdr(&(ct->ct_xdrs), &call_msg)) {
-               if (ct->ct_closeit) {
-                       (void)close(*sockp);
-               }
+               if (ct->ct_closeit)
+                        (void)closesocket(*sockp);
                goto fooy;
        }
        ct->ct_mpos = XDR_GETPOS(&(ct->ct_xdrs));
@@ -404,9 +404,8 @@ clnttcp_destroy(CLIENT *h)
        register struct ct_data *ct =
            (struct ct_data *) h->cl_private;
 
-       if (ct->ct_closeit) {
-               (void)close(ct->ct_sock);
-       }
+       if (ct->ct_closeit)
+                (void)closesocket(ct->ct_sock);
        XDR_DESTROY(&(ct->ct_xdrs));
        mem_free((caddr_t)ct, sizeof(struct ct_data));
        mem_free((caddr_t)h, sizeof(CLIENT));
index a8b59563f014f8e0825f9a4937de0b879c642daa..bb0727d11f44693669255dda4792d3d458e941c0 100644 (file)
@@ -49,6 +49,7 @@ static char sccsid[] = "@(#)clnt_udp.c 1.39 87/08/11 Copyr 1984 Sun Micro";
 #include <errno.h>
 #include <string.h>
 #include <gssrpc/pmap_clnt.h>
+#include <port-sockets.h>
 #include <errno.h>
 
 
@@ -76,7 +77,7 @@ static struct clnt_ops udp_ops = {
  * Private data kept per client handle
  */
 struct cu_data {
-       int                cu_sock;
+        SOCKET             cu_sock;
        bool_t             cu_closeit;
        struct sockaddr_in cu_raddr;
        int                cu_rlen;
@@ -475,9 +476,8 @@ clntudp_destroy(CLIENT *cl)
 {
        register struct cu_data *cu = (struct cu_data *)cl->cl_private;
 
-       if (cu->cu_closeit) {
-               (void)close(cu->cu_sock);
-       }
+       if (cu->cu_closeit)
+                (void)closesocket(cu->cu_sock);
        XDR_DESTROY(&(cu->cu_outxdrs));
        mem_free((caddr_t)cu, (sizeof(*cu) + cu->cu_sendsz + cu->cu_recvsz));
        mem_free((caddr_t)cl, sizeof(CLIENT));
index 71804ab7e74a5fef32c057be31379027fd5846b4..d2e2ccdbc21019774751f241764fcfc1865162bc 100644 (file)
@@ -59,6 +59,7 @@ static char sccsid[] = "@(#)pmap_rmt.c 1.21 87/08/27 Copyr 1984 Sun Micro";
 #include <arpa/inet.h>
 #define MAX_BROADCAST_SIZE 1400
 #include <string.h>
+#include <port-sockets.h>
 #include "k5-platform.h"       /* set_cloexec_fd */
 
 static struct timeval timeout = { 3, 0 };
@@ -84,7 +85,7 @@ pmap_rmtcall(
        struct timeval tout,
        rpcport_t *port_ptr)
 {
-       int sock = -1;
+        SOCKET sock = INVALID_SOCKET;
        register CLIENT *client;
        struct rmtcallargs a;
        struct rmtcallres r;
@@ -107,7 +108,7 @@ pmap_rmtcall(
        } else {
                stat = RPC_FAILED;
        }
-       (void)close(sock);
+        (void)closesocket(sock);
        addr->sin_port = 0;
        return (stat);
 }
@@ -245,7 +246,7 @@ clnt_broadcast(
        XDR xdr_stream;
        register XDR *xdrs = &xdr_stream;
        int outlen, inlen, fromlen, nets;
-       register int sock;
+        SOCKET sock;
        int on = 1;
 #ifdef FD_SETSIZE
        fd_set mask;
@@ -412,7 +413,7 @@ clnt_broadcast(
                }
        }
 done_broad:
-       (void)close(sock);
+        (void)closesocket(sock);
        AUTH_DESTROY(unix_auth);
        return (stat);
 }
index 8220ea2ab66013855583a8d2ab4b370b722a793a..595723f043a5fa9a4272aa1ada217091726b2368 100644 (file)
@@ -50,6 +50,7 @@ static char sccsid[] = "@(#)svc_tcp.c 1.21 87/08/11 Copyr 1984 Sun Micro";
 #include <stdlib.h>
 #include "autoconf.h"
 #include "k5-platform.h"       /* set_cloexec_fd */
+#include <port-sockets.h>
 /*extern bool_t abort();
 extern errno;
 */
@@ -137,7 +138,7 @@ struct tcp_conn {  /* kept in xprt->xp_p1 */
  */
 SVCXPRT *
 svctcp_create(
-       register int sock,
+        SOCKET sock,
        u_int sendsize,
        u_int recvsize)
 {
@@ -166,14 +167,14 @@ svctcp_create(
        }
        if (getsockname(sock, (struct sockaddr *)&addr, &len) != 0) {
                perror("svc_tcp.c - cannot getsockname");
-               if (madesock)
-                       (void) close(sock);
+                if (madesock)
+                        (void)closesocket(sock);
                return ((SVCXPRT *)NULL);
        }
        if (listen(sock, 2) != 0) {
                perror("svctcp_.c - cannot listen");
-               if (madesock)
-                       (void)close(sock);
+                if (madesock)
+                        (void)closesocket(sock);
                return ((SVCXPRT *)NULL);
        }
        r = (struct tcp_rendezvous *)mem_alloc(sizeof(*r));
@@ -270,7 +271,7 @@ rendezvous_request(
        register SVCXPRT *xprt,
        struct rpc_msg *msg)
 {
-       int sock;
+        SOCKET sock;
        struct tcp_rendezvous *r;
        struct sockaddr_in addr, laddr;
        int len, llen;
@@ -293,7 +294,7 @@ rendezvous_request(
         */
        xprt = makefd_xprt(sock, r->sendsize, r->recvsize);
        if (xprt == NULL) {
-               close(sock);
+                (void)closesocket(sock);
                return (FALSE);
        }
        xprt->xp_raddr = addr;
@@ -316,7 +317,7 @@ svctcp_destroy(register SVCXPRT *xprt)
        register struct tcp_conn *cd = (struct tcp_conn *)xprt->xp_p1;
 
        xprt_unregister(xprt);
-       (void)close(xprt->xp_sock);
+        (void)closesocket(xprt->xp_sock);
        if (xprt->xp_port != 0) {
                /* a rendezvouser socket */
                xprt->xp_port = 0;
index de1b30f4fc9cb395ad6980a86914af67cea8e920..f4cbddd561087cc05bb7f971feac6aeb110c82af 100644 (file)
@@ -49,6 +49,7 @@ static char sccsid[] = "@(#)svc_udp.c 1.24 87/08/11 Copyr 1984 Sun Micro";
 #ifdef HAVE_SYS_UIO_H
 #include <sys/uio.h>
 #endif
+#include <port-sockets.h>
 #include "k5-platform.h"
 
 
@@ -305,9 +306,9 @@ svcudp_destroy(register SVCXPRT *xprt)
        register struct svcudp_data *su = su_data(xprt);
 
        xprt_unregister(xprt);
-       if (xprt->xp_sock != -1)
-               (void)close(xprt->xp_sock);
-       xprt->xp_sock = -1;
+        if (xprt->xp_sock != INVALID_SOCKET)
+                (void)closesocket(xprt->xp_sock);
+        xprt->xp_sock = INVALID_SOCKET;
        if (xprt->xp_auth != NULL) {
                SVCAUTH_DESTROY(xprt->xp_auth);
                xprt->xp_auth = NULL;