summaryrefslogtreecommitdiff
path: root/usr.sbin/amd/rpcx/amq_svc.c
diff options
context:
space:
mode:
authorPhilip Guenther <guenther@cvs.openbsd.org>2015-01-21 08:24:42 +0000
committerPhilip Guenther <guenther@cvs.openbsd.org>2015-01-21 08:24:42 +0000
commit6940a6bb6b4138cdf3ab0376eb8cd926b8637d3b (patch)
tree40cca83314d2e5fc9cba75b238a54348a5500d0a /usr.sbin/amd/rpcx/amq_svc.c
parentcbd81d83646bab2761557075c6c163a0d4ade90d (diff)
Regenerate the amq RPC stubs with a -current rpcgen, with some
post-processing of the server stub to match previous local changes. This corrects the type handling of mt_mounttime, so "amq /mountpoint" doesn't segv trying to treat a time_t as a pointer. With the file (re)generation fixed, we can more easily update the protocol to support 64bit time_t...
Diffstat (limited to 'usr.sbin/amd/rpcx/amq_svc.c')
-rw-r--r--usr.sbin/amd/rpcx/amq_svc.c141
1 files changed, 67 insertions, 74 deletions
diff --git a/usr.sbin/amd/rpcx/amq_svc.c b/usr.sbin/amd/rpcx/amq_svc.c
index d9d3a98b61c..fff6090fd08 100644
--- a/usr.sbin/amd/rpcx/amq_svc.c
+++ b/usr.sbin/amd/rpcx/amq_svc.c
@@ -1,50 +1,42 @@
/*
- * Copyright (c) 1990 Jan-Simon Pendry
- * Copyright (c) 1990 Imperial College of Science, Technology & Medicine
- * Copyright (c) 1990, 1993
- * The Regents of the University of California. All rights reserved.
- *
- * This code is derived from software contributed to Berkeley by
- * Jan-Simon Pendry at Imperial College, London.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * from: @(#)amq_svc.c 8.1 (Berkeley) 6/6/93
- * $Id: amq_svc.c,v 1.8 2014/10/26 03:03:34 guenther Exp $
- *
+ * Please do not edit this file.
+ * It was generated using rpcgen.
*/
-#include <sys/types.h>
+#include "amq.h"
+#include "am.h"
+#include <arpa/inet.h>
+#include <unistd.h>
+#include <stdio.h>
+#include <stdlib.h>/* getenv, exit */
+#include <rpc/pmap_clnt.h> /* for pmap_unset */
+#include <string.h> /* strcmp */
+#include <netdb.h>
+#include <signal.h>
+#include <sys/ttycom.h>/* TIOCNOTTY */
+#ifdef __cplusplus
+#include <sysent.h> /* getdtablesize, open */
+#endif /* __cplusplus */
+#include <memory.h>
#include <sys/socket.h>
#include <netinet/in.h>
-#include <arpa/inet.h>
#include <syslog.h>
+#include <errno.h>
-#include "am.h"
-#include "amq.h"
-extern bool_t xdr_amq_mount_info_qelem();
+#ifdef __STDC__
+#define SIG_PF void(*)(int)
+#endif
+
+#ifdef DEBUG
+#define RPC_SVC_FG
+#endif
+
+#define _RPCSVC_CLOSEDOWN 120
+extern int _rpcpmstart; /* Started by a port monitor ? */
+extern int _rpcfdtype; /* Whether Stream or Datagram ? */
+
+
+void amq_program_1(struct svc_req *rqstp, SVCXPRT *transp);
void
amq_program_1(struct svc_req *rqstp, SVCXPRT *transp)
@@ -56,8 +48,8 @@ amq_program_1(struct svc_req *rqstp, SVCXPRT *transp)
amq_string amqproc_mount_1_arg;
} argument;
char *result;
- bool_t (*xdr_argument)(), (*xdr_result)();
- char *(*local)();
+ xdrproc_t xdr_argument, xdr_result;
+ char *(*local)(char *, struct svc_req *);
extern SVCXPRT *lamqp;
if (transp != lamqp) {
@@ -72,74 +64,75 @@ amq_program_1(struct svc_req *rqstp, SVCXPRT *transp)
switch (rqstp->rq_proc) {
case AMQPROC_NULL:
- xdr_argument = xdr_void;
- xdr_result = xdr_void;
- local = (char *(*)()) amqproc_null_1_svc;
+ xdr_argument = (xdrproc_t) xdr_void;
+ xdr_result = (xdrproc_t) xdr_void;
+ local = (char *(*)(char *, struct svc_req *)) amqproc_null_1_svc;
break;
case AMQPROC_MNTTREE:
- xdr_argument = xdr_amq_string;
- xdr_result = xdr_amq_mount_tree_p;
- local = (char *(*)()) amqproc_mnttree_1_svc;
+ xdr_argument = (xdrproc_t) xdr_amq_string;
+ xdr_result = (xdrproc_t) xdr_amq_mount_tree_p;
+ local = (char *(*)(char *, struct svc_req *)) amqproc_mnttree_1_svc;
break;
case AMQPROC_UMNT:
- xdr_argument = xdr_amq_string;
- xdr_result = xdr_void;
- local = (char *(*)()) amqproc_umnt_1_svc;
+ xdr_argument = (xdrproc_t) xdr_amq_string;
+ xdr_result = (xdrproc_t) xdr_void;
+ local = (char *(*)(char *, struct svc_req *)) amqproc_umnt_1_svc;
break;
case AMQPROC_STATS:
- xdr_argument = xdr_void;
- xdr_result = xdr_amq_mount_stats;
- local = (char *(*)()) amqproc_stats_1_svc;
+ xdr_argument = (xdrproc_t) xdr_void;
+ xdr_result = (xdrproc_t) xdr_amq_mount_stats;
+ local = (char *(*)(char *, struct svc_req *)) amqproc_stats_1_svc;
break;
case AMQPROC_EXPORT:
- xdr_argument = xdr_void;
- xdr_result = xdr_amq_mount_tree_list;
- local = (char *(*)()) amqproc_export_1_svc;
+ xdr_argument = (xdrproc_t) xdr_void;
+ xdr_result = (xdrproc_t) xdr_amq_mount_tree_list;
+ local = (char *(*)(char *, struct svc_req *)) amqproc_export_1_svc;
break;
case AMQPROC_SETOPT:
- xdr_argument = xdr_amq_setopt;
- xdr_result = xdr_int;
- local = (char *(*)()) amqproc_setopt_1_svc;
+ xdr_argument = (xdrproc_t) xdr_amq_setopt;
+ xdr_result = (xdrproc_t) xdr_int;
+ local = (char *(*)(char *, struct svc_req *)) amqproc_setopt_1_svc;
break;
case AMQPROC_GETMNTFS:
- xdr_argument = xdr_void;
- xdr_result = xdr_amq_mount_info_qelem;
- local = (char *(*)()) amqproc_getmntfs_1_svc;
+ xdr_argument = (xdrproc_t) xdr_void;
+ xdr_result = (xdrproc_t) xdr_amq_mount_info_list;
+ local = (char *(*)(char *, struct svc_req *)) amqproc_getmntfs_1_svc;
break;
case AMQPROC_MOUNT:
- xdr_argument = xdr_amq_string;
- xdr_result = xdr_int;
- local = (char *(*)()) amqproc_mount_1_svc;
+ xdr_argument = (xdrproc_t) xdr_amq_string;
+ xdr_result = (xdrproc_t) xdr_int;
+ local = (char *(*)(char *, struct svc_req *)) amqproc_mount_1_svc;
break;
case AMQPROC_GETVERS:
- xdr_argument = xdr_void;
- xdr_result = xdr_amq_string;
- local = (char *(*)()) amqproc_getvers_1_svc;
+ xdr_argument = (xdrproc_t) xdr_void;
+ xdr_result = (xdrproc_t) xdr_amq_string;
+ local = (char *(*)(char *, struct svc_req *)) amqproc_getvers_1_svc;
break;
default:
svcerr_noproc(transp);
return;
}
- bzero((char *)&argument, sizeof(argument));
- if (!svc_getargs(transp, xdr_argument, (char *)&argument)) {
+ (void) memset((char *)&argument, 0, sizeof (argument));
+ if (!svc_getargs(transp, xdr_argument, (caddr_t) &argument)) {
svcerr_decode(transp);
return;
}
- result = (*local)(&argument, rqstp);
+ result = (*local)((char *)&argument, rqstp);
if (result != NULL && !svc_sendreply(transp, xdr_result, result)) {
svcerr_systemerr(transp);
}
- if (!svc_freeargs(transp, xdr_argument, (char *)&argument)) {
- plog(XLOG_FATAL, "unable to free rpc arguments in amqprog_1");
+ if (!svc_freeargs(transp, xdr_argument, (caddr_t) &argument)) {
+ plog(XLOG_FATAL, "unable to free rpc arguments in amqprog");
going_down(1);
}
+ return;
}