aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJeffrey Altman <jaltman@secure-endpoints.com>2008-07-23 20:55:56 +0000
committerJeffrey Altman <jaltman@secure-endpoints.com>2008-07-23 20:55:56 +0000
commit4b6f2fd2ea29a84fec63b328846bfb31bb85268e (patch)
tree4bbaf4d65bd8675864cf9fc63b1d8d178108a84f /src
parent98c76f65487d15d730ff184ef949519ff04e0554 (diff)
downloadkrb5-4b6f2fd2ea29a84fec63b328846bfb31bb85268e.zip
krb5-4b6f2fd2ea29a84fec63b328846bfb31bb85268e.tar.gz
krb5-4b6f2fd2ea29a84fec63b328846bfb31bb85268e.tar.bz2
In the gss rpc package, replace the type used for a
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
Diffstat (limited to 'src')
-rw-r--r--src/include/gssrpc/svc.h4
-rw-r--r--src/lib/rpc/clnt_simple.c5
-rw-r--r--src/lib/rpc/clnt_tcp.c15
-rw-r--r--src/lib/rpc/clnt_udp.c8
-rw-r--r--src/lib/rpc/pmap_rmt.c9
-rw-r--r--src/lib/rpc/svc_tcp.c17
-rw-r--r--src/lib/rpc/svc_udp.c7
7 files changed, 36 insertions, 29 deletions
diff --git a/src/include/gssrpc/svc.h b/src/include/gssrpc/svc.h
index a5198e7..dfe0bec 100644
--- a/src/include/gssrpc/svc.h
+++ b/src/include/gssrpc/svc.h
@@ -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 */
diff --git a/src/lib/rpc/clnt_simple.c b/src/lib/rpc/clnt_simple.c
index d2434a1..65ae5c1 100644
--- a/src/lib/rpc/clnt_simple.c
+++ b/src/lib/rpc/clnt_simple.c
@@ -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);
diff --git a/src/lib/rpc/clnt_tcp.c b/src/lib/rpc/clnt_tcp.c
index 1f8de82..dc7e2ff 100644
--- a/src/lib/rpc/clnt_tcp.c
+++ b/src/lib/rpc/clnt_tcp.c
@@ -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));
diff --git a/src/lib/rpc/clnt_udp.c b/src/lib/rpc/clnt_udp.c
index a8b5956..bb0727d 100644
--- a/src/lib/rpc/clnt_udp.c
+++ b/src/lib/rpc/clnt_udp.c
@@ -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));
diff --git a/src/lib/rpc/pmap_rmt.c b/src/lib/rpc/pmap_rmt.c
index 71804ab..d2e2ccd 100644
--- a/src/lib/rpc/pmap_rmt.c
+++ b/src/lib/rpc/pmap_rmt.c
@@ -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);
}
diff --git a/src/lib/rpc/svc_tcp.c b/src/lib/rpc/svc_tcp.c
index 8220ea2..595723f 100644
--- a/src/lib/rpc/svc_tcp.c
+++ b/src/lib/rpc/svc_tcp.c
@@ -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;
diff --git a/src/lib/rpc/svc_udp.c b/src/lib/rpc/svc_udp.c
index de1b30f..f4cbddd 100644
--- a/src/lib/rpc/svc_udp.c
+++ b/src/lib/rpc/svc_udp.c
@@ -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;