Module Name: src
Committed By: christos
Date: Fri Nov 6 19:32:08 UTC 2015
Modified Files:
src/lib/libc/rpc: clnt_raw.c svc_raw.c
Log Message:
- Use -1 for the fake raw fd since we will be able to go beyond FD_SETSIZE.
- Poster boy for why it is bad to initialize in declarations :-)
To generate a diff of this commit:
cvs rdiff -u -r1.32 -r1.33 src/lib/libc/rpc/clnt_raw.c
cvs rdiff -u -r1.24 -r1.25 src/lib/libc/rpc/svc_raw.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/lib/libc/rpc/clnt_raw.c
diff -u src/lib/libc/rpc/clnt_raw.c:1.32 src/lib/libc/rpc/clnt_raw.c:1.33
--- src/lib/libc/rpc/clnt_raw.c:1.32 Mon Mar 11 16:19:29 2013
+++ src/lib/libc/rpc/clnt_raw.c Fri Nov 6 14:32:08 2015
@@ -1,4 +1,4 @@
-/* $NetBSD: clnt_raw.c,v 1.32 2013/03/11 20:19:29 tron Exp $ */
+/* $NetBSD: clnt_raw.c,v 1.33 2015/11/06 19:32:08 christos Exp $ */
/*
* Copyright (c) 2010, Oracle America, Inc.
@@ -37,7 +37,7 @@
static char *sccsid = "@(#)clnt_raw.c 1.22 87/08/11 Copyr 1984 Sun Micro";
static char *sccsid = "@(#)clnt_raw.c 2.2 88/08/01 4.0 RPCSRC";
#else
-__RCSID("$NetBSD: clnt_raw.c,v 1.32 2013/03/11 20:19:29 tron Exp $");
+__RCSID("$NetBSD: clnt_raw.c,v 1.33 2015/11/06 19:32:08 christos Exp $");
#endif
#endif
@@ -102,13 +102,13 @@ static struct clnt_ops *clnt_raw_ops(voi
CLIENT *
clnt_raw_create(rpcprog_t prog, rpcvers_t vers)
{
- struct clntraw_private *clp = clntraw_private;
+ struct clntraw_private *clp;
struct rpc_msg call_msg;
- XDR *xdrs = &clp->xdr_stream;
- CLIENT *client = &clp->client_object;
+ XDR *xdrs;
+ CLIENT *client;
mutex_lock(&clntraw_lock);
- if (clp == NULL) {
+ if ((clp = clntraw_private) == NULL) {
clp = calloc((size_t)1, sizeof (*clp));
if (clp == NULL)
goto out;
@@ -120,6 +120,10 @@ clnt_raw_create(rpcprog_t prog, rpcvers_
clp->_raw_buf = __rpc_rawcombuf;
clntraw_private = clp;
}
+
+ xdrs = &clp->xdr_stream;
+ client = &clp->client_object;
+
/*
* pre-serialize the static part of the call msg and stash it away
*/
@@ -193,7 +197,7 @@ call_again:
* We have to call server input routine here because this is
* all going on in one process. Yuk.
*/
- svc_getreq_common(FD_SETSIZE);
+ svc_getreq_common(-1);
/*
* get results
Index: src/lib/libc/rpc/svc_raw.c
diff -u src/lib/libc/rpc/svc_raw.c:1.24 src/lib/libc/rpc/svc_raw.c:1.25
--- src/lib/libc/rpc/svc_raw.c:1.24 Mon Mar 11 16:19:29 2013
+++ src/lib/libc/rpc/svc_raw.c Fri Nov 6 14:32:08 2015
@@ -1,4 +1,4 @@
-/* $NetBSD: svc_raw.c,v 1.24 2013/03/11 20:19:29 tron Exp $ */
+/* $NetBSD: svc_raw.c,v 1.25 2015/11/06 19:32:08 christos Exp $ */
/*
* Copyright (c) 2010, Oracle America, Inc.
@@ -41,7 +41,7 @@
#if 0
static char sccsid[] = "@(#)svc_raw.c 1.25 89/01/31 Copyr 1984 Sun Micro";
#else
-__RCSID("$NetBSD: svc_raw.c,v 1.24 2013/03/11 20:19:29 tron Exp $");
+__RCSID("$NetBSD: svc_raw.c,v 1.25 2015/11/06 19:32:08 christos Exp $");
#endif
#endif
@@ -113,7 +113,7 @@ svc_raw_create(void)
srp->raw_buf = __rpc_rawcombuf; /* Share it with the client */
svc_raw_private = srp;
}
- srp->server.xp_fd = FD_SETSIZE;
+ srp->server.xp_fd = -1;
srp->server.xp_port = 0;
srp->server.xp_p3 = NULL;
svc_raw_ops(&srp->server);