138494Sobrien/*
2310490Scy * Copyright (c) 1997-2014 Erez Zadok
338494Sobrien * Copyright (c) 1990 Jan-Simon Pendry
438494Sobrien * Copyright (c) 1990 Imperial College of Science, Technology & Medicine
538494Sobrien * Copyright (c) 1990 The Regents of the University of California.
638494Sobrien * All rights reserved.
738494Sobrien *
838494Sobrien * This code is derived from software contributed to Berkeley by
938494Sobrien * Jan-Simon Pendry at Imperial College, London.
1038494Sobrien *
1138494Sobrien * Redistribution and use in source and binary forms, with or without
1238494Sobrien * modification, are permitted provided that the following conditions
1338494Sobrien * are met:
1438494Sobrien * 1. Redistributions of source code must retain the above copyright
1538494Sobrien *    notice, this list of conditions and the following disclaimer.
1638494Sobrien * 2. Redistributions in binary form must reproduce the above copyright
1738494Sobrien *    notice, this list of conditions and the following disclaimer in the
1838494Sobrien *    documentation and/or other materials provided with the distribution.
19310490Scy * 3. Neither the name of the University nor the names of its contributors
2038494Sobrien *    may be used to endorse or promote products derived from this software
2138494Sobrien *    without specific prior written permission.
2238494Sobrien *
2338494Sobrien * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
2438494Sobrien * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
2538494Sobrien * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
2638494Sobrien * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
2738494Sobrien * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
2838494Sobrien * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
2938494Sobrien * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
3038494Sobrien * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
3138494Sobrien * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
3238494Sobrien * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
3338494Sobrien * SUCH DAMAGE.
3438494Sobrien *
3538494Sobrien *
36174294Sobrien * File: am-utils/amq/amq_clnt.c
3738494Sobrien *
3838494Sobrien */
3938494Sobrien
4038494Sobrien#ifdef HAVE_CONFIG_H
4138494Sobrien# include <config.h>
4238494Sobrien#endif /* HAVE_CONFIG_H */
4338494Sobrien#include <am_defs.h>
4438494Sobrien#include <amq.h>
4538494Sobrien
4638494Sobrien
4738494Sobrienstatic struct timeval TIMEOUT = {ALLOWED_MOUNT_TIME, 0};
4838494Sobrien
4938494Sobrien
5038494Sobrienvoidp
5138494Sobrienamqproc_null_1(voidp argp, CLIENT *clnt)
5238494Sobrien{
5338494Sobrien  static char res;
5438494Sobrien
5538494Sobrien  memset((char *) &res, 0, sizeof(res));
5638494Sobrien  if (clnt_call(clnt, AMQPROC_NULL,
5738494Sobrien		(XDRPROC_T_TYPE) xdr_void, argp,
5838494Sobrien		(XDRPROC_T_TYPE) xdr_void, &res, TIMEOUT)
5938494Sobrien      != RPC_SUCCESS) {
6038494Sobrien    return (NULL);
6138494Sobrien  }
6238494Sobrien  return ((voidp) &res);
6338494Sobrien}
6438494Sobrien
6538494Sobrien
6638494Sobrienamq_mount_tree_p *
6738494Sobrienamqproc_mnttree_1(amq_string *argp, CLIENT *clnt)
6838494Sobrien{
6938494Sobrien  static amq_mount_tree_p res;
7038494Sobrien
7138494Sobrien  memset((char *) &res, 0, sizeof(res));
7238494Sobrien  if (clnt_call(clnt, AMQPROC_MNTTREE,
7338494Sobrien		(XDRPROC_T_TYPE) xdr_amq_string, (SVC_IN_ARG_TYPE) argp,
74174294Sobrien		(XDRPROC_T_TYPE) xdr_amq_mount_tree_p, (SVC_IN_ARG_TYPE) &res,
7538494Sobrien		TIMEOUT) != RPC_SUCCESS) {
7638494Sobrien    return (NULL);
7738494Sobrien  }
7838494Sobrien  return (&res);
7938494Sobrien}
8038494Sobrien
8138494Sobrien
8238494Sobrienvoidp
8338494Sobrienamqproc_umnt_1(amq_string *argp, CLIENT *clnt)
8438494Sobrien{
8538494Sobrien  static char res;
8638494Sobrien
8738494Sobrien  memset((char *) &res, 0, sizeof(res));
8838494Sobrien  if (clnt_call(clnt, AMQPROC_UMNT,
8938494Sobrien		(XDRPROC_T_TYPE) xdr_amq_string, (SVC_IN_ARG_TYPE) argp,
9038494Sobrien		(XDRPROC_T_TYPE) xdr_void, &res,
9138494Sobrien		TIMEOUT) != RPC_SUCCESS) {
9238494Sobrien    return (NULL);
9338494Sobrien  }
9438494Sobrien  return ((voidp) &res);
9538494Sobrien}
9638494Sobrien
9738494Sobrien
98310490Scyamq_sync_umnt *
99310490Scyamqproc_sync_umnt_1(amq_string *argp, CLIENT *clnt)
100310490Scy{
101310490Scy  static amq_sync_umnt res;
102310490Scy  enum clnt_stat rv;
103310490Scy
104310490Scy  memset((char *) &res, 0, sizeof(res));
105310490Scy  if ((rv = clnt_call(clnt, AMQPROC_SYNC_UMNT,
106310490Scy		(XDRPROC_T_TYPE) xdr_amq_string, (SVC_IN_ARG_TYPE) argp,
107310490Scy		(XDRPROC_T_TYPE) xdr_amq_sync_umnt, (SVC_IN_ARG_TYPE) &res,
108310490Scy		TIMEOUT)) != RPC_SUCCESS) {
109310490Scy    return (NULL);
110310490Scy  }
111310490Scy  return &res;
112310490Scy}
113310490Scy
114310490Scy
11538494Sobrienamq_mount_stats *
11638494Sobrienamqproc_stats_1(voidp argp, CLIENT *clnt)
11738494Sobrien{
11838494Sobrien  static amq_mount_stats res;
11938494Sobrien
12038494Sobrien  memset((char *) &res, 0, sizeof(res));
12138494Sobrien  if (clnt_call(clnt, AMQPROC_STATS,
12238494Sobrien		(XDRPROC_T_TYPE) xdr_void, argp,
12338494Sobrien		(XDRPROC_T_TYPE) xdr_amq_mount_stats,
124174294Sobrien		(SVC_IN_ARG_TYPE) &res,
12538494Sobrien		TIMEOUT) != RPC_SUCCESS) {
12638494Sobrien    return (NULL);
12738494Sobrien  }
12838494Sobrien  return (&res);
12938494Sobrien}
13038494Sobrien
13138494Sobrien
13238494Sobrienamq_mount_tree_list *
13338494Sobrienamqproc_export_1(voidp argp, CLIENT *clnt)
13438494Sobrien{
13538494Sobrien  static amq_mount_tree_list res;
13638494Sobrien
13738494Sobrien  memset((char *) &res, 0, sizeof(res));
13838494Sobrien  if (clnt_call(clnt, AMQPROC_EXPORT,
13938494Sobrien		(XDRPROC_T_TYPE) xdr_void, argp,
14038494Sobrien		(XDRPROC_T_TYPE) xdr_amq_mount_tree_list,
141174294Sobrien		(SVC_IN_ARG_TYPE) &res, TIMEOUT) != RPC_SUCCESS) {
14238494Sobrien    return (NULL);
14338494Sobrien  }
14438494Sobrien  return (&res);
14538494Sobrien}
14638494Sobrien
14738494Sobrien
14838494Sobrienint *
14938494Sobrienamqproc_setopt_1(amq_setopt *argp, CLIENT *clnt)
15038494Sobrien{
15138494Sobrien  static int res;
15238494Sobrien
15338494Sobrien  memset((char *) &res, 0, sizeof(res));
15438494Sobrien  if (clnt_call(clnt, AMQPROC_SETOPT, (XDRPROC_T_TYPE) xdr_amq_setopt,
15538494Sobrien		(SVC_IN_ARG_TYPE) argp, (XDRPROC_T_TYPE) xdr_int,
156174294Sobrien		(SVC_IN_ARG_TYPE) &res, TIMEOUT) != RPC_SUCCESS) {
15738494Sobrien    return (NULL);
15838494Sobrien  }
15938494Sobrien  return (&res);
16038494Sobrien}
16138494Sobrien
16238494Sobrien
16338494Sobrienamq_mount_info_list *
16438494Sobrienamqproc_getmntfs_1(voidp argp, CLIENT *clnt)
16538494Sobrien{
16638494Sobrien  static amq_mount_info_list res;
16738494Sobrien
16838494Sobrien  memset((char *) &res, 0, sizeof(res));
16938494Sobrien  if (clnt_call(clnt, AMQPROC_GETMNTFS, (XDRPROC_T_TYPE) xdr_void, argp,
17038494Sobrien		(XDRPROC_T_TYPE) xdr_amq_mount_info_list,
171174294Sobrien		(SVC_IN_ARG_TYPE) &res, TIMEOUT) != RPC_SUCCESS) {
17238494Sobrien    return (NULL);
17338494Sobrien  }
17438494Sobrien  return (&res);
17538494Sobrien}
17638494Sobrien
177310490Scyamq_map_info_list *
178310490Scyamqproc_getmapinfo_1(voidp argp, CLIENT *clnt)
179310490Scy{
180310490Scy  static amq_map_info_list res;
18138494Sobrien
182310490Scy  memset((char *) &res, 0, sizeof(res));
183310490Scy  if (clnt_call(clnt, AMQPROC_GETMAPINFO, (XDRPROC_T_TYPE) xdr_void, argp,
184310490Scy		(XDRPROC_T_TYPE) xdr_amq_map_info_list,
185310490Scy		(SVC_IN_ARG_TYPE) &res, TIMEOUT) != RPC_SUCCESS) {
186310490Scy    return (NULL);
187310490Scy  }
188310490Scy  return (&res);
189310490Scy}
190310490Scy
191310490Scy
19238494Sobrienint *
19338494Sobrienamqproc_mount_1(voidp argp, CLIENT *clnt)
19438494Sobrien{
19538494Sobrien  static int res;
19638494Sobrien
19738494Sobrien  memset((char *) &res, 0, sizeof(res));
19838494Sobrien  if (clnt_call(clnt, AMQPROC_MOUNT, (XDRPROC_T_TYPE) xdr_amq_string, argp,
199174294Sobrien		(XDRPROC_T_TYPE) xdr_int, (SVC_IN_ARG_TYPE) &res,
20038494Sobrien		TIMEOUT) != RPC_SUCCESS) {
20138494Sobrien    return (NULL);
20238494Sobrien  }
20338494Sobrien  return (&res);
20438494Sobrien}
20538494Sobrien
20638494Sobrien
20738494Sobrienamq_string *
20838494Sobrienamqproc_getvers_1(voidp argp, CLIENT *clnt)
20938494Sobrien{
21038494Sobrien  static amq_string res;
21138494Sobrien
21238494Sobrien  memset((char *) &res, 0, sizeof(res));
21338494Sobrien  if (clnt_call(clnt, AMQPROC_GETVERS, (XDRPROC_T_TYPE) xdr_void, argp,
214174294Sobrien		(XDRPROC_T_TYPE) xdr_amq_string, (SVC_IN_ARG_TYPE) &res,
21538494Sobrien		TIMEOUT) != RPC_SUCCESS) {
21638494Sobrien    return (NULL);
21738494Sobrien  }
21838494Sobrien  return (&res);
21938494Sobrien}
22038494Sobrien
22138494Sobrien
22238494Sobrienint *
22338494Sobrienamqproc_getpid_1(voidp argp, CLIENT *clnt)
22438494Sobrien{
22538494Sobrien  static int res;
22638494Sobrien
22738494Sobrien  memset((char *) &res, 0, sizeof(res));
22838494Sobrien  if (clnt_call(clnt, AMQPROC_GETPID, (XDRPROC_T_TYPE) xdr_void, argp,
229174294Sobrien		(XDRPROC_T_TYPE) xdr_int, (SVC_IN_ARG_TYPE) &res,
23038494Sobrien		TIMEOUT) != RPC_SUCCESS) {
23138494Sobrien    return (NULL);
23238494Sobrien  }
23338494Sobrien  return (&res);
23438494Sobrien}
235174294Sobrien
236174294Sobrien
237174294Sobrienamq_string *
238174294Sobrienamqproc_pawd_1(amq_string *argp, CLIENT *clnt)
239174294Sobrien{
240174294Sobrien  static amq_string res;
241174294Sobrien
242174294Sobrien  memset((char *) &res, 0, sizeof(res));
243174294Sobrien  if (clnt_call(clnt, AMQPROC_PAWD,
244174294Sobrien		(XDRPROC_T_TYPE) xdr_amq_string, (SVC_IN_ARG_TYPE) argp,
245174294Sobrien		(XDRPROC_T_TYPE) xdr_amq_string, (SVC_IN_ARG_TYPE) &res,
246174294Sobrien		TIMEOUT) != RPC_SUCCESS) {
247174294Sobrien    return (NULL);
248174294Sobrien  }
249174294Sobrien  return (&res);
250174294Sobrien}
251