summaryrefslogtreecommitdiffstats
path: root/lib/libc
diff options
context:
space:
mode:
authorpfg <pfg@FreeBSD.org>2012-09-27 19:10:25 +0000
committerpfg <pfg@FreeBSD.org>2012-09-27 19:10:25 +0000
commit17db4cd864106dba20aafa24d8c6717ec0aa080e (patch)
treeb0021cc6cf8711340229a2a7f6fc07dfc953a425 /lib/libc
parent8f394b36947fe1d8e82fef172f40b2901063475d (diff)
downloadFreeBSD-src-17db4cd864106dba20aafa24d8c6717ec0aa080e.zip
FreeBSD-src-17db4cd864106dba20aafa24d8c6717ec0aa080e.tar.gz
Complete revert of r239963:
The attempt to merge changes from the linux libtirpc caused rpc.lockd to exit after startup under unclear conditions. After many hours of selective experiments and inconsistent results the conclusion is that it's better to just revert everything and restart in a future time with a much smaller subset of the changes. ____ MFC after: 3 days Reported by: David Wolfskill Tested by: David Wolfskill
Diffstat (limited to 'lib/libc')
-rw-r--r--lib/libc/rpc/auth_unix.c10
-rw-r--r--lib/libc/rpc/authunix_prot.c6
-rw-r--r--lib/libc/rpc/clnt_perror.c19
-rw-r--r--lib/libc/rpc/rpc_generic.c9
-rw-r--r--lib/libc/rpc/rpc_soc.32
-rw-r--r--lib/libc/rpc/rpcb_clnt.c7
-rw-r--r--lib/libc/rpc/svc_auth_unix.c2
-rw-r--r--lib/libc/rpc/svc_run.c5
8 files changed, 19 insertions, 41 deletions
diff --git a/lib/libc/rpc/auth_unix.c b/lib/libc/rpc/auth_unix.c
index 4d7a89b..c0d2548 100644
--- a/lib/libc/rpc/auth_unix.c
+++ b/lib/libc/rpc/auth_unix.c
@@ -94,10 +94,10 @@ struct audata {
AUTH *
authunix_create(machname, uid, gid, len, aup_gids)
char *machname;
- uid_t uid;
- gid_t gid;
+ int uid;
+ int gid;
int len;
- gid_t *aup_gids;
+ int *aup_gids;
{
struct authunix_parms aup;
char mymem[MAX_AUTH_BYTES];
@@ -207,7 +207,9 @@ authunix_create_default()
abort();
if (ngids > NGRPS)
ngids = NGRPS;
- auth = authunix_create(machname, uid, gid, ngids, gids);
+ /* XXX: interface problem; those should all have been unsigned */
+ auth = authunix_create(machname, (int)uid, (int)gid, ngids,
+ (int *)gids);
free(gids);
return (auth);
}
diff --git a/lib/libc/rpc/authunix_prot.c b/lib/libc/rpc/authunix_prot.c
index dd84810..7699e28 100644
--- a/lib/libc/rpc/authunix_prot.c
+++ b/lib/libc/rpc/authunix_prot.c
@@ -60,7 +60,7 @@ xdr_authunix_parms(xdrs, p)
XDR *xdrs;
struct authunix_parms *p;
{
- gid_t **paup_gids;
+ int **paup_gids;
assert(xdrs != NULL);
assert(p != NULL);
@@ -69,8 +69,8 @@ xdr_authunix_parms(xdrs, p)
if (xdr_u_long(xdrs, &(p->aup_time))
&& xdr_string(xdrs, &(p->aup_machname), MAX_MACHINE_NAME)
- && xdr_u_int(xdrs, &(p->aup_uid))
- && xdr_u_int(xdrs, &(p->aup_gid))
+ && xdr_int(xdrs, &(p->aup_uid))
+ && xdr_int(xdrs, &(p->aup_gid))
&& xdr_array(xdrs, (char **) paup_gids,
&(p->aup_len), NGRPS, sizeof(int), (xdrproc_t)xdr_int) ) {
return (TRUE);
diff --git a/lib/libc/rpc/clnt_perror.c b/lib/libc/rpc/clnt_perror.c
index 87ad3c1..efe9043 100644
--- a/lib/libc/rpc/clnt_perror.c
+++ b/lib/libc/rpc/clnt_perror.c
@@ -242,7 +242,7 @@ char *
clnt_spcreateerror(s)
const char *s;
{
- char *str, *err;
+ char *str;
size_t len, i;
assert(s != NULL);
@@ -258,21 +258,8 @@ clnt_spcreateerror(s)
switch (rpc_createerr.cf_stat) {
case RPC_PMAPFAILURE:
(void) strncat(str, " - ", len - 1);
- err = clnt_sperrno(rpc_createerr.cf_error.re_status);
- if (err)
- (void) strncat(str, err+5, len-5);
- switch(rpc_createerr.cf_error.re_status) {
- case RPC_CANTSEND:
- case RPC_CANTRECV:
- i = strlen(str);
- len -= i;
- snprintf(str+i, len, ": errno %d (%s)",
- rpc_createerr.cf_error.re_errno,
- strerror(rpc_createerr.cf_error.re_errno));
- break;
- default:
- break;
- }
+ (void) strncat(str,
+ clnt_sperrno(rpc_createerr.cf_error.re_status), len - 4);
break;
case RPC_SYSTEMERROR:
diff --git a/lib/libc/rpc/rpc_generic.c b/lib/libc/rpc/rpc_generic.c
index e592878..ab259d5 100644
--- a/lib/libc/rpc/rpc_generic.c
+++ b/lib/libc/rpc/rpc_generic.c
@@ -269,8 +269,7 @@ __rpc_getconfip(nettype)
}
while ((nconf = getnetconfig(confighandle)) != NULL) {
if (strcmp(nconf->nc_protofmly, NC_INET) == 0) {
- if (strcmp(nconf->nc_proto, NC_TCP) == 0 &&
- netid_tcp == NULL) {
+ if (strcmp(nconf->nc_proto, NC_TCP) == 0) {
netid_tcp = strdup(nconf->nc_netid);
if (main_thread)
netid_tcp_main = netid_tcp;
@@ -278,8 +277,7 @@ __rpc_getconfip(nettype)
thr_setspecific(tcp_key,
(void *) netid_tcp);
} else
- if (strcmp(nconf->nc_proto, NC_UDP) == 0 &&
- netid_udp == NULL) {
+ if (strcmp(nconf->nc_proto, NC_UDP) == 0) {
netid_udp = strdup(nconf->nc_netid);
if (main_thread)
netid_udp_main = netid_udp;
@@ -618,9 +616,6 @@ __rpc_taddr2uaddr_af(int af, const struct netbuf *nbuf)
#endif
u_int16_t port;
- if (nbuf->len <= 0)
- return NULL;
-
switch (af) {
case AF_INET:
sin = nbuf->buf;
diff --git a/lib/libc/rpc/rpc_soc.3 b/lib/libc/rpc/rpc_soc.3
index a049a83..8dedaa8 100644
--- a/lib/libc/rpc/rpc_soc.3
+++ b/lib/libc/rpc/rpc_soc.3
@@ -148,7 +148,7 @@ default authentication used by
.Ft "AUTH *"
.Xc
.It Xo
-.Fn authunix_create "char *host" "uid_t uid" "gid_t gid" "int len" "gid_t *aup_gids"
+.Fn authunix_create "char *host" "int uid" "int gid" "int len" "int *aup_gids"
.Xc
.Pp
Create and return an
diff --git a/lib/libc/rpc/rpcb_clnt.c b/lib/libc/rpc/rpcb_clnt.c
index b123c32..afef806 100644
--- a/lib/libc/rpc/rpcb_clnt.c
+++ b/lib/libc/rpc/rpcb_clnt.c
@@ -770,13 +770,6 @@ __rpcb_findaddr_timed(program, version, nconf, host, clpp, tp)
}
parms.r_addr = NULL;
- parms.r_netid = nconf->nc_netid;
-
- /*
- * According to wire captures, the reference implementation
- * (OpenSolaris) sends a blank string here too.
- */
- parms.r_owner = "";
/*
* Use default total timeout if no timeout is specified.
diff --git a/lib/libc/rpc/svc_auth_unix.c b/lib/libc/rpc/svc_auth_unix.c
index f889d81..4d6f102 100644
--- a/lib/libc/rpc/svc_auth_unix.c
+++ b/lib/libc/rpc/svc_auth_unix.c
@@ -68,7 +68,7 @@ _svcauth_unix(rqst, msg)
struct area {
struct authunix_parms area_aup;
char area_machname[MAX_MACHINE_NAME+1];
- gid_t area_gids[NGRPS];
+ int area_gids[NGRPS];
} *area;
u_int auth_len;
size_t str_len, gid_len;
diff --git a/lib/libc/rpc/svc_run.c b/lib/libc/rpc/svc_run.c
index e6345a6..b4627d6 100644
--- a/lib/libc/rpc/svc_run.c
+++ b/lib/libc/rpc/svc_run.c
@@ -60,13 +60,14 @@ svc_run()
fd_set readfds, cleanfds;
struct timeval timeout;
+ timeout.tv_sec = 30;
+ timeout.tv_usec = 0;
+
for (;;) {
rwlock_rdlock(&svc_fd_lock);
readfds = svc_fdset;
cleanfds = svc_fdset;
rwlock_unlock(&svc_fd_lock);
- timeout.tv_sec = 30;
- timeout.tv_usec = 0;
switch (_select(svc_maxfd+1, &readfds, NULL, NULL, &timeout)) {
case -1:
FD_ZERO(&readfds);
OpenPOWER on IntegriCloud