Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 18 Apr 2023 18:31:39 GMT
From:      John Baldwin <jhb@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject:   git: 69b503873858 - main - yp: Use more accurate function pointer types.
Message-ID:  <202304181831.33IIVd2e028459@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by jhb:

URL: https://cgit.FreeBSD.org/src/commit/?id=69b50387385884fdc5903e163f3eaa880f394471

commit 69b50387385884fdc5903e163f3eaa880f394471
Author:     John Baldwin <jhb@FreeBSD.org>
AuthorDate: 2023-04-18 18:28:57 +0000
Commit:     John Baldwin <jhb@FreeBSD.org>
CommitDate: 2023-04-18 18:28:57 +0000

    yp: Use more accurate function pointer types.
    
    Trim a few duplicate (but incomplete) function prototypes as well.
    
    Reviewed by:    zlei, imp
    Differential Revision:  https://reviews.freebsd.org/D39532
---
 usr.sbin/ypbind/ypbind.c            | 34 ++++++++++++++++------------------
 usr.sbin/ypserv/common/yplib_host.c |  4 ++--
 2 files changed, 18 insertions(+), 20 deletions(-)

diff --git a/usr.sbin/ypbind/ypbind.c b/usr.sbin/ypbind/ypbind.c
index 60d439d32f09..357e35a9a7b6 100644
--- a/usr.sbin/ypbind/ypbind.c
+++ b/usr.sbin/ypbind/ypbind.c
@@ -91,10 +91,6 @@ struct _dom_binding {
 #define WRITEFD ypdb->dom_pipe_fds[1]
 #define BROADFD broad_domain->dom_pipe_fds[1]
 
-extern bool_t xdr_domainname(), xdr_ypbind_resp();
-extern bool_t xdr_ypreq_key(), xdr_ypresp_val();
-extern bool_t xdr_ypbind_setdom();
-
 void	checkwork(void);
 void	*ypbindproc_null_2_yp(SVCXPRT *, void *, CLIENT *);
 void	*ypbindproc_setdom_2_yp(SVCXPRT *, struct ypbind_setdom *, CLIENT *);
@@ -301,21 +297,23 @@ ypbindprog_2(struct svc_req *rqstp, register SVCXPRT *transp)
 		struct ypbind_setdom ypbindproc_setdom_2_arg;
 	} argument;
 	struct authunix_parms *creds;
-	char *result;
-	bool_t (*xdr_argument)(), (*xdr_result)();
-	char *(*local)();
+	void *result;
+	xdrproc_t xdr_argument, xdr_result;
+	typedef void *(svc_cb)(SVCXPRT *transp, void *arg,
+	    struct svc_req *rqstp);
+	svc_cb *local;
 
 	switch (rqstp->rq_proc) {
 	case YPBINDPROC_NULL:
-		xdr_argument = xdr_void;
-		xdr_result = xdr_void;
-		local = (char *(*)()) ypbindproc_null_2_yp;
+		xdr_argument = (xdrproc_t)xdr_void;
+		xdr_result = (xdrproc_t)xdr_void;
+		local = (svc_cb *)ypbindproc_null_2_yp;
 		break;
 
 	case YPBINDPROC_DOMAIN:
-		xdr_argument = xdr_domainname;
-		xdr_result = xdr_ypbind_resp;
-		local = (char *(*)()) ypbindproc_domain_2_yp;
+		xdr_argument = (xdrproc_t)xdr_domainname;
+		xdr_result = (xdrproc_t)xdr_ypbind_resp;
+		local = (svc_cb *)ypbindproc_domain_2_yp;
 		break;
 
 	case YPBINDPROC_SETDOM:
@@ -332,9 +330,9 @@ ypbindprog_2(struct svc_req *rqstp, register SVCXPRT *transp)
 			return;
 		}
 
-		xdr_argument = xdr_ypbind_setdom;
-		xdr_result = xdr_void;
-		local = (char *(*)()) ypbindproc_setdom_2_yp;
+		xdr_argument = (xdrproc_t)xdr_ypbind_setdom;
+		xdr_result = (xdrproc_t)xdr_void;
+		local = (svc_cb *)ypbindproc_setdom_2_yp;
 		break;
 
 	default:
@@ -342,13 +340,13 @@ ypbindprog_2(struct svc_req *rqstp, register SVCXPRT *transp)
 		return;
 	}
 	bzero(&argument, sizeof(argument));
-	if (!svc_getargs(transp, (xdrproc_t)xdr_argument, &argument)) {
+	if (!svc_getargs(transp, xdr_argument, &argument)) {
 		svcerr_decode(transp);
 		return;
 	}
 	result = (*local)(transp, &argument, rqstp);
 	if (result != NULL &&
-	    !svc_sendreply(transp, (xdrproc_t)xdr_result, result)) {
+	    !svc_sendreply(transp, xdr_result, result)) {
 		svcerr_systemerr(transp);
 	}
 	return;
diff --git a/usr.sbin/ypserv/common/yplib_host.c b/usr.sbin/ypserv/common/yplib_host.c
index 05b6e961314a..dfdfda22ffc8 100644
--- a/usr.sbin/ypserv/common/yplib_host.c
+++ b/usr.sbin/ypserv/common/yplib_host.c
@@ -54,10 +54,10 @@ __FBSDID("$FreeBSD$");
 
 #include "yplib_host.h"
 
+extern bool_t xdr_ypresp_all_seq(XDR *, unsigned long *);
+
 extern int (*ypresp_allfn)(u_long, char *, int, char *, int, void *);
 extern void *ypresp_data;
-extern bool_t xdr_ypreq_key(), xdr_ypresp_val();
-extern bool_t xdr_ypresp_all_seq();
 
 static int _yplib_host_timeout = 10;
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202304181831.33IIVd2e028459>