summaryrefslogtreecommitdiff
path: root/libc/inet/rpc
diff options
context:
space:
mode:
Diffstat (limited to 'libc/inet/rpc')
-rw-r--r--libc/inet/rpc/auth_unix.c4
-rw-r--r--libc/inet/rpc/authunix_prot.c2
-rw-r--r--libc/inet/rpc/clnt_tcp.c6
-rw-r--r--libc/inet/rpc/clnt_udp.c6
-rw-r--r--libc/inet/rpc/get_myaddress.c4
-rw-r--r--libc/inet/rpc/getrpcent.c19
-rw-r--r--libc/inet/rpc/getrpcport.c1
-rw-r--r--libc/inet/rpc/pmap_clnt.c8
-rw-r--r--libc/inet/rpc/pmap_getmaps.c6
-rw-r--r--libc/inet/rpc/pmap_getport.c7
-rw-r--r--libc/inet/rpc/pmap_prot2.c3
-rw-r--r--libc/inet/rpc/pmap_rmt.c14
-rw-r--r--libc/inet/rpc/rpc_callmsg.c2
-rw-r--r--libc/inet/rpc/rpc_dtablesize.c4
-rw-r--r--libc/inet/rpc/rpc_prot.c12
-rw-r--r--libc/inet/rpc/svc.c2
-rw-r--r--libc/inet/rpc/svc_auth.c6
-rw-r--r--libc/inet/rpc/svc_auth_unix.c2
-rw-r--r--libc/inet/rpc/svc_run.c2
-rw-r--r--libc/inet/rpc/svc_simple.c10
-rw-r--r--libc/inet/rpc/svc_tcp.c5
-rw-r--r--libc/inet/rpc/svc_udp.c15
-rw-r--r--libc/inet/rpc/xdr.c3
-rw-r--r--libc/inet/rpc/xdr_array.c2
-rw-r--r--libc/inet/rpc/xdr_mem.c10
-rw-r--r--libc/inet/rpc/xdr_rec.c18
-rw-r--r--libc/inet/rpc/xdr_reference.c2
-rw-r--r--libc/inet/rpc/xdr_stdio.c4
28 files changed, 109 insertions, 70 deletions
diff --git a/libc/inet/rpc/auth_unix.c b/libc/inet/rpc/auth_unix.c
index 373e32bb1..34b89dc0c 100644
--- a/libc/inet/rpc/auth_unix.c
+++ b/libc/inet/rpc/auth_unix.c
@@ -82,7 +82,7 @@ struct audata {
#define AUTH_PRIVATE(auth) ((struct audata *)auth->ah_private)
-static bool_t marshal_new_auth();
+static void marshal_new_auth();
/*
@@ -292,7 +292,7 @@ register AUTH *auth;
* Marshals (pre-serializes) an auth struct.
* sets private data, au_marshed and au_mpos
*/
-static bool_t marshal_new_auth(auth)
+static void marshal_new_auth(auth)
register AUTH *auth;
{
XDR xdr_stream;
diff --git a/libc/inet/rpc/authunix_prot.c b/libc/inet/rpc/authunix_prot.c
index 34d1d70e7..07a2ca906 100644
--- a/libc/inet/rpc/authunix_prot.c
+++ b/libc/inet/rpc/authunix_prot.c
@@ -56,7 +56,7 @@ register struct authunix_parms *p;
&& xdr_int(xdrs, &(p->aup_uid))
&& xdr_int(xdrs, &(p->aup_gid))
&& xdr_array(xdrs, (caddr_t *) & (p->aup_gids),
- &(p->aup_len), NGRPS, sizeof(int), xdr_int)) {
+ &(p->aup_len), NGRPS, sizeof(int), (xdrproc_t) xdr_int)) {
return (TRUE);
}
return (FALSE);
diff --git a/libc/inet/rpc/clnt_tcp.c b/libc/inet/rpc/clnt_tcp.c
index e48974fcd..051f1eb45 100644
--- a/libc/inet/rpc/clnt_tcp.c
+++ b/libc/inet/rpc/clnt_tcp.c
@@ -55,6 +55,7 @@
#include <netdb.h>
#include <errno.h>
#include <rpc/pmap_clnt.h>
+#include <unistd.h>
#define MCALL_MSG_SIZE 24
@@ -118,6 +119,7 @@ u_int recvsz;
struct timeval now;
struct rpc_msg call_msg;
+ ct = NULL; /* in case of fooy */
h = (CLIENT *) mem_alloc(sizeof(*h));
if (h == NULL) {
(void) fprintf(stderr, "clnttcp_create: out of memory\n");
@@ -279,7 +281,7 @@ struct timeval timeout;
while (TRUE) {
reply_msg.acpted_rply.ar_verf = _null_auth;
reply_msg.acpted_rply.ar_results.where = NULL;
- reply_msg.acpted_rply.ar_results.proc = xdr_void;
+ reply_msg.acpted_rply.ar_results.proc = (xdrproc_t) xdr_void;
if (!xdrrec_skiprecord(xdrs))
return (ct->ct_error.re_status);
/* now decode and validate the response header */
@@ -411,7 +413,7 @@ register int len;
while (TRUE) {
readfds = mask;
switch (select
- (_rpc_dtablesize(), &readfds, (int *) NULL, (int *) NULL,
+ (_rpc_dtablesize(), &readfds, NULL, NULL,
&(ct->ct_wait))) {
case 0:
ct->ct_error.re_status = RPC_TIMEDOUT;
diff --git a/libc/inet/rpc/clnt_udp.c b/libc/inet/rpc/clnt_udp.c
index d1128734c..7ecafbc78 100644
--- a/libc/inet/rpc/clnt_udp.c
+++ b/libc/inet/rpc/clnt_udp.c
@@ -43,6 +43,7 @@
#include <netdb.h>
#include <errno.h>
#include <rpc/pmap_clnt.h>
+#include <unistd.h>
extern int errno;
@@ -115,6 +116,7 @@ u_int recvsz;
struct timeval now;
struct rpc_msg call_msg;
+ cu = NULL; /* in case of fooy */
cl = (CLIENT *) mem_alloc(sizeof(CLIENT));
if (cl == NULL) {
(void) fprintf(stderr, "clntudp_create: out of memory\n");
@@ -284,8 +286,8 @@ struct timeval utimeout; /* seconds to wait before giving up */
#endif /* def FD_SETSIZE */
for (;;) {
readfds = mask;
- switch (select(_rpc_dtablesize(), &readfds, (int *) NULL,
- (int *) NULL, &(cu->cu_wait))) {
+ switch (select(_rpc_dtablesize(), &readfds, NULL,
+ NULL, &(cu->cu_wait))) {
case 0:
time_waited.tv_sec += cu->cu_wait.tv_sec;
diff --git a/libc/inet/rpc/get_myaddress.c b/libc/inet/rpc/get_myaddress.c
index b25fb8216..53cebe81c 100644
--- a/libc/inet/rpc/get_myaddress.c
+++ b/libc/inet/rpc/get_myaddress.c
@@ -45,11 +45,13 @@
#include <sys/ioctl.h>
#include <arpa/inet.h>
#include <netinet/in.h>
+#include <rpc/clnt.h>
+#include <unistd.h>
#ifdef __linux__
/* DO use gethostbyname because it's portable */
#include <netdb.h>
-get_myaddress(addr)
+void get_myaddress(addr)
struct sockaddr_in *addr;
{
char localhost[256 + 1];
diff --git a/libc/inet/rpc/getrpcent.c b/libc/inet/rpc/getrpcent.c
index 02f0eac78..00e67ee6b 100644
--- a/libc/inet/rpc/getrpcent.c
+++ b/libc/inet/rpc/getrpcent.c
@@ -54,9 +54,9 @@ struct rpcdata {
struct rpcent rpc;
char line[BUFSIZ + 1];
char *domain;
-} *rpcdata, *_rpcdata();
+} *rpcdata;
-static struct rpcent *interpret();
+static struct rpcent *interpret(const char *val, int len);
struct hostent *gethostent();
char *inet_ntoa();
@@ -85,14 +85,11 @@ register int number;
{
register struct rpcdata *d = _rpcdata();
register struct rpcent *p;
- int reason;
- char adrstr[16], *val = NULL;
- int vallen;
if (d == 0)
return (0);
setrpcent(0);
- while (p = getrpcent()) {
+ while ((p = getrpcent())) {
if (p->r_number == number)
break;
}
@@ -112,7 +109,7 @@ char *name;
char **rp;
setrpcent(0);
- while (rpc = getrpcent()) {
+ while ((rpc = getrpcent())) {
if (strcmp(rpc->r_name, name) == 0)
return (rpc);
for (rp = rpc->r_aliases; *rp != NULL; rp++) {
@@ -165,10 +162,6 @@ endrpcent()
struct rpcent *getrpcent()
{
- struct rpcent *hp;
- int reason;
- char *key = NULL, *val = NULL;
- int keylen, vallen;
register struct rpcdata *d = _rpcdata();
if (d == 0)
@@ -198,14 +191,14 @@ char *s;
}
#endif
-static struct rpcent *interpret(val, len)
+static struct rpcent *interpret(const char *val, int len)
{
register struct rpcdata *d = _rpcdata();
char *p;
register char *cp, **q;
if (d == 0)
- return;
+ return NULL;
strncpy(d->line, val, len);
p = d->line;
d->line[len] = '\n';
diff --git a/libc/inet/rpc/getrpcport.c b/libc/inet/rpc/getrpcport.c
index 2c20282fe..7fd3aa631 100644
--- a/libc/inet/rpc/getrpcport.c
+++ b/libc/inet/rpc/getrpcport.c
@@ -38,6 +38,7 @@
#include <rpc/rpc.h>
#include <netdb.h>
#include <sys/socket.h>
+#include <rpc/pmap_clnt.h>
extern int getrpcport (const char * host, u_long prognum,
u_long versnum, u_int proto)
diff --git a/libc/inet/rpc/pmap_clnt.c b/libc/inet/rpc/pmap_clnt.c
index c1c38d89a..bff3bb236 100644
--- a/libc/inet/rpc/pmap_clnt.c
+++ b/libc/inet/rpc/pmap_clnt.c
@@ -40,6 +40,7 @@
#include <rpc/rpc.h>
#include <rpc/pmap_prot.h>
#include <rpc/pmap_clnt.h>
+#include <unistd.h>
static struct timeval timeout = { 5, 0 };
static struct timeval tottimeout = { 60, 0 };
@@ -73,7 +74,8 @@ u_short port;
parms.pm_vers = version;
parms.pm_prot = protocol;
parms.pm_port = port;
- if (CLNT_CALL(client, PMAPPROC_SET, xdr_pmap, &parms, xdr_bool, &rslt,
+ if (CLNT_CALL(client, PMAPPROC_SET, (xdrproc_t) xdr_pmap, (caddr_t) &parms,
+ (xdrproc_t) xdr_bool, (caddr_t) &rslt,
tottimeout) != RPC_SUCCESS) {
clnt_perror(client, "Cannot register service");
return (FALSE);
@@ -106,8 +108,8 @@ u_long version;
parms.pm_prog = program;
parms.pm_vers = version;
parms.pm_port = parms.pm_prot = 0;
- CLNT_CALL(client, PMAPPROC_UNSET, xdr_pmap, &parms, xdr_bool, &rslt,
- tottimeout);
+ CLNT_CALL(client, PMAPPROC_UNSET, (xdrproc_t) xdr_pmap, (caddr_t) &parms,
+ (xdrproc_t) xdr_bool, (caddr_t) &rslt, tottimeout);
CLNT_DESTROY(client);
(void) close(socket);
return (rslt);
diff --git a/libc/inet/rpc/pmap_getmaps.c b/libc/inet/rpc/pmap_getmaps.c
index e1685b595..58fc0c25b 100644
--- a/libc/inet/rpc/pmap_getmaps.c
+++ b/libc/inet/rpc/pmap_getmaps.c
@@ -47,6 +47,7 @@
#include <errno.h>
//#include <net/if.h>
#include <sys/ioctl.h>
+#include <unistd.h>
#define NAMELEN 255
#define MAX_BROADCAST_SIZE 1400
@@ -69,8 +70,9 @@ struct sockaddr_in *address;
address->sin_port = htons(PMAPPORT);
client = clnttcp_create(address, PMAPPROG, PMAPVERS, &socket, 50, 500);
if (client != (CLIENT *) NULL) {
- if (CLNT_CALL(client, PMAPPROC_DUMP, xdr_void, NULL, xdr_pmaplist,
- &head, minutetimeout) != RPC_SUCCESS) {
+ if (CLNT_CALL(client, PMAPPROC_DUMP, (xdrproc_t) xdr_void, NULL,
+ (xdrproc_t) xdr_pmaplist, (caddr_t) &head,
+ minutetimeout) != RPC_SUCCESS) {
clnt_perror(client, "pmap_getmaps rpc problem");
}
CLNT_DESTROY(client);
diff --git a/libc/inet/rpc/pmap_getport.c b/libc/inet/rpc/pmap_getport.c
index eee4f5d27..519d7d933 100644
--- a/libc/inet/rpc/pmap_getport.c
+++ b/libc/inet/rpc/pmap_getport.c
@@ -41,6 +41,7 @@
#include <rpc/pmap_prot.h>
#include <rpc/pmap_clnt.h>
#include <sys/socket.h>
+#include <unistd.h>
//#include <net/if.h>
static struct timeval timeout = { 5, 0 };
@@ -71,8 +72,10 @@ u_int protocol;
parms.pm_vers = version;
parms.pm_prot = protocol;
parms.pm_port = 0; /* not needed or used */
- if (CLNT_CALL(client, PMAPPROC_GETPORT, xdr_pmap, &parms,
- xdr_u_short, &port, tottimeout) != RPC_SUCCESS) {
+ if (CLNT_CALL(client, PMAPPROC_GETPORT,
+ (xdrproc_t) xdr_pmap, (caddr_t) &parms,
+ (xdrproc_t) xdr_u_short, (caddr_t) &port,
+ tottimeout) != RPC_SUCCESS) {
rpc_createerr.cf_stat = RPC_PMAPFAILURE;
clnt_geterr(client, &rpc_createerr.cf_error);
} else if (port == 0) {
diff --git a/libc/inet/rpc/pmap_prot2.c b/libc/inet/rpc/pmap_prot2.c
index bdd3ec0e3..028e85d76 100644
--- a/libc/inet/rpc/pmap_prot2.c
+++ b/libc/inet/rpc/pmap_prot2.c
@@ -92,6 +92,7 @@ register struct pmaplist **rp;
bool_t more_elements;
register int freeing = (xdrs->x_op == XDR_FREE);
register struct pmaplist **next;
+#warning expect "next" might be unitialized
while (TRUE) {
more_elements = (bool_t) (*rp != NULL);
@@ -107,7 +108,7 @@ register struct pmaplist **rp;
if (freeing)
next = &((*rp)->pml_next);
if (!xdr_reference(xdrs, (caddr_t *) rp,
- (u_int) sizeof(struct pmaplist), xdr_pmap))
+ (u_int) sizeof(struct pmaplist), (xdrproc_t) xdr_pmap))
return (FALSE);
rp = (freeing) ? next : &((*rp)->pml_next);
diff --git a/libc/inet/rpc/pmap_rmt.c b/libc/inet/rpc/pmap_rmt.c
index a79c34954..f330db07d 100644
--- a/libc/inet/rpc/pmap_rmt.c
+++ b/libc/inet/rpc/pmap_rmt.c
@@ -92,8 +92,9 @@ u_long *port_ptr;
r.port_ptr = port_ptr;
r.results_ptr = resp;
r.xdr_results = xdrres;
- stat = CLNT_CALL(client, PMAPPROC_CALLIT, xdr_rmtcall_args, &a,
- xdr_rmtcallres, &r, tout);
+ stat = CLNT_CALL(client, PMAPPROC_CALLIT,
+ (xdrproc_t) xdr_rmtcall_args, (caddr_t) &a,
+ (xdrproc_t) xdr_rmtcallres, (caddr_t) &r, tout);
CLNT_DESTROY(client);
} else {
stat = RPC_FAILED;
@@ -143,7 +144,7 @@ register struct rmtcallres *crp;
port_ptr = (caddr_t) crp->port_ptr;
if (xdr_reference(xdrs, &port_ptr, sizeof(u_long),
- xdr_u_long) && xdr_u_long(xdrs, &crp->resultslen)) {
+ (xdrproc_t) xdr_u_long) && xdr_u_long(xdrs, &crp->resultslen)) {
crp->port_ptr = (u_long *) port_ptr;
return ((*(crp->xdr_results)) (xdrs, crp->results_ptr));
}
@@ -341,10 +342,9 @@ resultproc_t eachresult; /* call with each result obtained */
recv_again:
msg.acpted_rply.ar_verf = _null_auth;
msg.acpted_rply.ar_results.where = (caddr_t) & r;
- msg.acpted_rply.ar_results.proc = xdr_rmtcallres;
+ msg.acpted_rply.ar_results.proc = (xdrproc_t) xdr_rmtcallres;
readfds = mask;
- switch (select(_rpc_dtablesize(), &readfds, (int *) NULL,
- (int *) NULL, &t)) {
+ switch (select(_rpc_dtablesize(), &readfds, NULL, NULL, &t)) {
case 0: /* timed out */
stat = RPC_TIMEDOUT;
@@ -394,7 +394,7 @@ resultproc_t eachresult; /* call with each result obtained */
#endif
}
xdrs->x_op = XDR_FREE;
- msg.acpted_rply.ar_results.proc = xdr_void;
+ msg.acpted_rply.ar_results.proc = (xdrproc_t) xdr_void;
(void) xdr_replymsg(xdrs, &msg);
(void) (*xresults) (xdrs, resultsp);
xdr_destroy(xdrs);
diff --git a/libc/inet/rpc/rpc_callmsg.c b/libc/inet/rpc/rpc_callmsg.c
index 46ffa7b36..0a7c5c952 100644
--- a/libc/inet/rpc/rpc_callmsg.c
+++ b/libc/inet/rpc/rpc_callmsg.c
@@ -48,7 +48,7 @@ bool_t xdr_callmsg(xdrs, cmsg)
register XDR *xdrs;
register struct rpc_msg *cmsg;
{
- register long *buf;
+ register void *buf;
register struct opaque_auth *oa;
if (xdrs->x_op == XDR_ENCODE) {
diff --git a/libc/inet/rpc/rpc_dtablesize.c b/libc/inet/rpc/rpc_dtablesize.c
index 9ddbb63fc..69669459e 100644
--- a/libc/inet/rpc/rpc_dtablesize.c
+++ b/libc/inet/rpc/rpc_dtablesize.c
@@ -30,11 +30,13 @@
#define __FORCE_GLIBC__
#include <features.h>
+#include <rpc/clnt.h>
+#include <unistd.h>
/*
* Cache the result of getdtablesize(), so we don't have to do an
* expensive system call every time.
*/
-_rpc_dtablesize()
+int _rpc_dtablesize(void)
{
static int size;
diff --git a/libc/inet/rpc/rpc_prot.c b/libc/inet/rpc/rpc_prot.c
index 1a9534435..866c2f704 100644
--- a/libc/inet/rpc/rpc_prot.c
+++ b/libc/inet/rpc/rpc_prot.c
@@ -98,6 +98,7 @@ register struct accepted_reply *ar;
if (!xdr_u_long(xdrs, &(ar->ar_vers.low)))
return (FALSE);
return (xdr_u_long(xdrs, &(ar->ar_vers.high)));
+ default: /* silence the warnings */
}
return (TRUE); /* TRUE => open ended set of problems */
}
@@ -122,13 +123,14 @@ register struct rejected_reply *rr;
case AUTH_ERROR:
return (xdr_enum(xdrs, (enum_t *) & (rr->rj_why)));
+ default: /* silence the warnings */
}
return (FALSE);
}
static struct xdr_discrim reply_dscrm[3] = {
- {(int) MSG_ACCEPTED, xdr_accepted_reply},
- {(int) MSG_DENIED, xdr_rejected_reply},
+ {(int) MSG_ACCEPTED, (xdrproc_t) xdr_accepted_reply},
+ {(int) MSG_DENIED, (xdrproc_t) xdr_rejected_reply},
{__dontcare__, NULL_xdrproc_t}
};
@@ -203,6 +205,8 @@ register struct rpc_err *error;
case SUCCESS:
error->re_status = RPC_SUCCESS;
return;
+
+ default: /* silence the warnings */
}
/* something's wrong, but we don't know what ... */
error->re_status = RPC_FAILED;
@@ -224,6 +228,8 @@ register struct rpc_err *error;
case AUTH_ERROR:
error->re_status = RPC_AUTHERROR;
return;
+
+ default: /* silence the warnings */
}
/* something's wrong, but we don't know what ... */
error->re_status = RPC_FAILED;
@@ -274,5 +280,7 @@ register struct rpc_err *error;
error->re_vers.low = msg->acpted_rply.ar_vers.low;
error->re_vers.high = msg->acpted_rply.ar_vers.high;
break;
+
+ default: /* silence the warnings */
}
}
diff --git a/libc/inet/rpc/svc.c b/libc/inet/rpc/svc.c
index 059da5cc6..0436e3042 100644
--- a/libc/inet/rpc/svc.c
+++ b/libc/inet/rpc/svc.c
@@ -409,7 +409,7 @@ int *readfds;
maskp = (u_long *) readfds->fds_bits;
#endif
for (sock = 0; sock < setsize; sock += NFDBITS) {
- for (mask = *maskp++; bit = ffs(mask); mask ^= (1 << (bit - 1))) {
+ for (mask = *maskp++; (bit = ffs(mask)); mask ^= (1 << (bit - 1))) {
/* sock has input waiting */
xprt = xports[sock + bit - 1];
#else
diff --git a/libc/inet/rpc/svc_auth.c b/libc/inet/rpc/svc_auth.c
index 435f816d5..29e893a88 100644
--- a/libc/inet/rpc/svc_auth.c
+++ b/libc/inet/rpc/svc_auth.c
@@ -60,9 +60,9 @@ enum auth_stat _svcauth_short(); /* short hand unix style */
static struct {
enum auth_stat (*authenticator) ();
} svcauthsw[] = {
- _svcauth_null, /* AUTH_NULL */
- _svcauth_unix, /* AUTH_UNIX */
- _svcauth_short, /* AUTH_SHORT */
+ {_svcauth_null}, /* AUTH_NULL */
+ {_svcauth_unix}, /* AUTH_UNIX */
+ {_svcauth_short}, /* AUTH_SHORT */
};
#define AUTH_MAX 2 /* HIGHEST AUTH NUMBER */
diff --git a/libc/inet/rpc/svc_auth_unix.c b/libc/inet/rpc/svc_auth_unix.c
index 7e6628a78..6b11ee6a0 100644
--- a/libc/inet/rpc/svc_auth_unix.c
+++ b/libc/inet/rpc/svc_auth_unix.c
@@ -71,7 +71,7 @@ register struct rpc_msg *msg;
auth_len = (u_int) msg->rm_call.cb_cred.oa_length;
xdrmem_create(&xdrs, msg->rm_call.cb_cred.oa_base, auth_len,
XDR_DECODE);
- buf = XDR_INLINE(&xdrs, auth_len);
+ buf = (long *)XDR_INLINE(&xdrs, auth_len);
if (buf != NULL) {
aup->aup_time = IXDR_GET_LONG(buf);
str_len = IXDR_GET_U_LONG(buf);
diff --git a/libc/inet/rpc/svc_run.c b/libc/inet/rpc/svc_run.c
index db7d8e755..01e387ad0 100644
--- a/libc/inet/rpc/svc_run.c
+++ b/libc/inet/rpc/svc_run.c
@@ -53,7 +53,7 @@ void svc_run()
#else
readfds = svc_fds;
#endif /* def FD_SETSIZE */
- switch (select(_rpc_dtablesize(), &readfds, (int *) 0, (int *) 0,
+ switch (select(_rpc_dtablesize(), &readfds, NULL, NULL,
(struct timeval *) 0)) {
case -1:
if (errno == EINTR) {
diff --git a/libc/inet/rpc/svc_simple.c b/libc/inet/rpc/svc_simple.c
index e6e9f8620..5d5c76ad4 100644
--- a/libc/inet/rpc/svc_simple.c
+++ b/libc/inet/rpc/svc_simple.c
@@ -53,14 +53,16 @@ static void universal();
static SVCXPRT *transp;
struct proglst *pl;
-registerrpc(prognum, versnum, procnum, progname, inproc, outproc)
+extern bool_t pmap_unset(u_long program, u_long version);
+
+int registerrpc(prognum, versnum, procnum, progname, inproc, outproc)
char *(*progname) ();
xdrproc_t inproc, outproc;
{
if (procnum == NULLPROC) {
(void) fprintf(stderr,
- "can't reassign procedure number %d\n", NULLPROC);
+ "can't reassign procedure number %lu\n", NULLPROC);
return (-1);
}
if (transp == 0) {
@@ -106,7 +108,7 @@ SVCXPRT *transp;
* enforce "procnum 0 is echo" convention
*/
if (rqstp->rq_proc == NULLPROC) {
- if (svc_sendreply(transp, xdr_void, (char *) NULL) == FALSE) {
+ if (svc_sendreply(transp, (xdrproc_t) xdr_void, (char *) NULL) == FALSE) {
(void) fprintf(stderr, "xxx\n");
exit(1);
}
@@ -123,7 +125,7 @@ SVCXPRT *transp;
return;
}
outdata = (*(pl->p_progname)) (xdrbuf);
- if (outdata == NULL && pl->p_outproc != xdr_void)
+ if (outdata == NULL && pl->p_outproc != (xdrproc_t) xdr_void)
/* there was an error */
return;
if (!svc_sendreply(transp, pl->p_outproc, outdata)) {
diff --git a/libc/inet/rpc/svc_tcp.c b/libc/inet/rpc/svc_tcp.c
index 64527f84d..082f51464 100644
--- a/libc/inet/rpc/svc_tcp.c
+++ b/libc/inet/rpc/svc_tcp.c
@@ -45,7 +45,7 @@
#include <rpc/rpc.h>
#include <sys/socket.h>
#include <errno.h>
-extern errno;
+#include <unistd.h>
/*
* Ops vector for TCP/IP based rpc service handle
@@ -72,6 +72,7 @@ static struct xp_ops svctcp_op = {
static bool_t rendezvous_request();
static enum xprt_stat rendezvous_stat();
+#warning Expect 3 warnings for initialization from incompatible pointer type
static struct xp_ops svctcp_rendezvous_op = {
rendezvous_request,
rendezvous_stat,
@@ -300,7 +301,7 @@ register int len;
#endif /* def FD_SETSIZE */
do {
readfds = mask;
- if (select(_rpc_dtablesize(), &readfds, (int *) NULL, (int *) NULL,
+ if (select(_rpc_dtablesize(), &readfds, NULL, NULL,
&wait_per_try) <= 0) {
if (errno == EINTR) {
continue;
diff --git a/libc/inet/rpc/svc_udp.c b/libc/inet/rpc/svc_udp.c
index 208fbf281..c0b0c2237 100644
--- a/libc/inet/rpc/svc_udp.c
+++ b/libc/inet/rpc/svc_udp.c
@@ -42,10 +42,13 @@
#include <rpc/rpc.h>
#include <sys/socket.h>
#include <errno.h>
+#include <unistd.h>
#define rpc_buffer(xprt) ((xprt)->xp_p1)
+#ifndef MAX
#define MAX(a, b) ((a > b) ? a : b)
+#endif
static bool_t svcudp_recv();
static bool_t svcudp_reply();
@@ -54,6 +57,10 @@ static bool_t svcudp_getargs();
static bool_t svcudp_freeargs();
static void svcudp_destroy();
+static void cache_set(SVCXPRT *xprt, u_long replylen);
+static int cache_get(SVCXPRT *xprt, struct rpc_msg *msg,
+ char **replyp, u_long *replylenp);
+
static struct xp_ops svcudp_op = {
svcudp_recv,
svcudp_stat,
@@ -63,8 +70,6 @@ static struct xp_ops svcudp_op = {
svcudp_destroy
};
-extern int errno;
-
/*
* kept in xprt->xp_p2
*/
@@ -329,7 +334,7 @@ struct udp_cache {
* Enable use of the cache.
* Note: there is no disable.
*/
-svcudp_enablecache(transp, size)
+int svcudp_enablecache(transp, size)
SVCXPRT *transp;
u_long size;
{
@@ -367,7 +372,7 @@ u_long size;
/*
* Set an entry in the cache
*/
-static cache_set(xprt, replylen)
+static void cache_set(xprt, replylen)
SVCXPRT *xprt;
u_long replylen;
{
@@ -432,7 +437,7 @@ u_long replylen;
* Try to get an entry from the cache
* return 1 if found, 0 if not found
*/
-static cache_get(xprt, msg, replyp, replylenp)
+static int cache_get(xprt, msg, replyp, replylenp)
SVCXPRT *xprt;
struct rpc_msg *msg;
char **replyp;
diff --git a/libc/inet/rpc/xdr.c b/libc/inet/rpc/xdr.c
index a13090c3f..c26b481d7 100644
--- a/libc/inet/rpc/xdr.c
+++ b/libc/inet/rpc/xdr.c
@@ -337,7 +337,7 @@ register u_int cnt;
}
if (rndup == 0)
return (TRUE);
- return (XDR_GETBYTES(xdrs, crud, rndup));
+ return (XDR_GETBYTES(xdrs, (caddr_t) crud, rndup));
}
if (xdrs->x_op == XDR_ENCODE) {
@@ -503,6 +503,7 @@ u_int maxsize;
case XDR_ENCODE:
size = strlen(sp);
break;
+ default: /* silence the warnings */
}
if (!xdr_u_int(xdrs, &size)) {
return (FALSE);
diff --git a/libc/inet/rpc/xdr_array.c b/libc/inet/rpc/xdr_array.c
index 26dd7beb7..de3ebbad3 100644
--- a/libc/inet/rpc/xdr_array.c
+++ b/libc/inet/rpc/xdr_array.c
@@ -40,6 +40,7 @@
*/
#include <stdio.h>
+#include <string.h>
#include <rpc/types.h>
#include <rpc/xdr.h>
@@ -97,6 +98,7 @@ xdrproc_t elproc; /* xdr routine to handle each element */
case XDR_FREE:
return (TRUE);
+ default: /* silence the warnings */
}
/*
diff --git a/libc/inet/rpc/xdr_mem.c b/libc/inet/rpc/xdr_mem.c
index 17707f8ff..5dbebae8d 100644
--- a/libc/inet/rpc/xdr_mem.c
+++ b/libc/inet/rpc/xdr_mem.c
@@ -41,7 +41,7 @@
*
*/
-
+#include <string.h>
#include <rpc/types.h>
#include <rpc/xdr.h>
#include <netinet/in.h>
@@ -52,7 +52,7 @@ static bool_t xdrmem_getbytes();
static bool_t xdrmem_putbytes();
static u_int xdrmem_getpos();
static bool_t xdrmem_setpos();
-static long *xdrmem_inline();
+static int32_t *xdrmem_inline();
static void xdrmem_destroy();
static struct xdr_ops xdrmem_ops = {
@@ -163,15 +163,15 @@ u_int pos;
return (TRUE);
}
-static long *xdrmem_inline(xdrs, len)
+static int32_t *xdrmem_inline(xdrs, len)
register XDR *xdrs;
int len;
{
- long *buf = 0;
+ int32_t *buf = 0;
if (xdrs->x_handy >= len) {
xdrs->x_handy -= len;
- buf = (long *) xdrs->x_private;
+ buf = (int32_t *) xdrs->x_private;
xdrs->x_private += len;
}
return (buf);
diff --git a/libc/inet/rpc/xdr_rec.c b/libc/inet/rpc/xdr_rec.c
index 57e6f6f6c..b68424f7d 100644
--- a/libc/inet/rpc/xdr_rec.c
+++ b/libc/inet/rpc/xdr_rec.c
@@ -48,6 +48,7 @@
*/
#include <stdio.h>
+#include <string.h>
#include <rpc/types.h>
#include <rpc/xdr.h>
#include <netinet/in.h>
@@ -62,7 +63,7 @@ static bool_t xdrrec_getbytes();
static bool_t xdrrec_putbytes();
static u_int xdrrec_getpos();
static bool_t xdrrec_setpos();
-static long *xdrrec_inline();
+static int32_t *xdrrec_inline();
static void xdrrec_destroy();
static struct xdr_ops xdrrec_ops = {
@@ -117,6 +118,11 @@ typedef struct rec_strm {
u_int recvsize;
} RECSTREAM;
+static bool_t flush_out(register RECSTREAM *rstrm, bool_t eor);
+static bool_t set_input_fragment(register RECSTREAM *rstrm);
+static bool_t get_input_bytes(register RECSTREAM *rstrm,
+ register caddr_t addr, register int len);
+static bool_t skip_input_bytes(register RECSTREAM *rstrm, long cnt);
/*
* Create an xdr handle for xdrrec
@@ -342,22 +348,23 @@ u_int pos;
return (TRUE);
}
break;
+ default: /* silence the warnings */
}
return (FALSE);
}
-static long *xdrrec_inline(xdrs, len)
+static int32_t *xdrrec_inline(xdrs, len)
register XDR *xdrs;
int len;
{
register RECSTREAM *rstrm = (RECSTREAM *) xdrs->x_private;
- long *buf = NULL;
+ int32_t *buf = NULL;
switch (xdrs->x_op) {
case XDR_ENCODE:
if ((rstrm->out_finger + len) <= rstrm->out_boundry) {
- buf = (long *) rstrm->out_finger;
+ buf = (int32_t *) rstrm->out_finger;
rstrm->out_finger += len;
}
break;
@@ -365,11 +372,12 @@ int len;
case XDR_DECODE:
if ((len <= rstrm->fbtbc) &&
((rstrm->in_finger + len) <= rstrm->in_boundry)) {
- buf = (long *) rstrm->in_finger;
+ buf = (int32_t *) rstrm->in_finger;
rstrm->fbtbc -= len;
rstrm->in_finger += len;
}
break;
+ default: /* silence the warnings */
}
return (buf);
}
diff --git a/libc/inet/rpc/xdr_reference.c b/libc/inet/rpc/xdr_reference.c
index 4d3d99278..dfb9ac49e 100644
--- a/libc/inet/rpc/xdr_reference.c
+++ b/libc/inet/rpc/xdr_reference.c
@@ -40,6 +40,7 @@
*/
#include <stdio.h>
+#include <string.h>
#include <rpc/types.h>
#include <rpc/xdr.h>
@@ -76,6 +77,7 @@ xdrproc_t proc; /* xdr routine to handle the object */
}
bzero(loc, (int) size);
break;
+ default: /* silence the warnings */
}
stat = (*proc) (xdrs, loc, LASTUNSIGNED);
diff --git a/libc/inet/rpc/xdr_stdio.c b/libc/inet/rpc/xdr_stdio.c
index 828bcbf39..cd9d67cf3 100644
--- a/libc/inet/rpc/xdr_stdio.c
+++ b/libc/inet/rpc/xdr_stdio.c
@@ -50,7 +50,7 @@ static bool_t xdrstdio_getbytes();
static bool_t xdrstdio_putbytes();
static u_int xdrstdio_getpos();
static bool_t xdrstdio_setpos();
-static long *xdrstdio_inline();
+static int32_t *xdrstdio_inline();
static void xdrstdio_destroy();
/*
@@ -166,7 +166,7 @@ u_int pos;
FALSE : TRUE);
}
-static long *xdrstdio_inline(xdrs, len)
+static int32_t *xdrstdio_inline(xdrs, len)
XDR *xdrs;
u_int len;
{