diff options
Diffstat (limited to 'rpc')
-rw-r--r-- | rpc/Makefile.am | 17 | ||||
-rw-r--r-- | rpc/block.h | 173 | ||||
-rw-r--r-- | rpc/block_clnt.c | 100 | ||||
-rw-r--r-- | rpc/block_svc.c | 120 | ||||
-rw-r--r-- | rpc/block_svc_routines.c | 13 | ||||
-rw-r--r-- | rpc/block_xdr.c | 105 | ||||
-rw-r--r-- | rpc/rpcl/Makefile.am | 22 | ||||
-rw-r--r-- | rpc/rpcl/block.x | 5 | ||||
-rw-r--r-- | rpc/rpcl/block_svc.h | 20 | ||||
-rw-r--r-- | rpc/rpcl/rpc-pragmas.h | 28 |
10 files changed, 97 insertions, 506 deletions
diff --git a/rpc/Makefile.am b/rpc/Makefile.am index 66717bb..4dd7439 100644 --- a/rpc/Makefile.am +++ b/rpc/Makefile.am @@ -1,16 +1,17 @@ -noinst_LTLIBRARIES = libgbxdr.la +SUBDIRS = rpcl -libgbxdr_la_SOURCES = block_clnt.c block_xdr.c block_svc.c \ - block_svc_routines.c glfs-operations.c +noinst_LTLIBRARIES = libgbrpc.la -noinst_HEADERS = block.h glfs-operations.h +libgbrpc_la_SOURCES = block_svc_routines.c glfs-operations.c -libgbxdr_la_CFLAGS = $(GFAPI_CFLAGS) -DDATADIR=\"$(localstatedir)\" \ - -I$(top_srcdir)/utils/ +noinst_HEADERS = glfs-operations.h -libgbxdr_la_LIBADD = $(GFAPI_LIBS) $(UUID) +libgbrpc_la_CFLAGS = $(GFAPI_CFLAGS) -DDATADIR=\"$(localstatedir)\" \ + -I$(top_srcdir)/utils/ -I$(top_builddir)/rpc/rpcl -libgbxdr_ladir = $(includedir)/gluster-block/rpc +libgbrpc_la_LIBADD = $(GFAPI_LIBS) $(UUID) rpcl/libgbrpcxdr.la + +libgbrpc_ladir = $(includedir)/gluster-block/rpc DISTCLEANFILES = Makefile.in diff --git a/rpc/block.h b/rpc/block.h deleted file mode 100644 index fcf6832..0000000 --- a/rpc/block.h +++ /dev/null @@ -1,173 +0,0 @@ -/* - * Please do not edit this file. - * It was generated using rpcgen. - */ - -#ifndef _BLOCK_H_RPCGEN -#define _BLOCK_H_RPCGEN - -#include <rpc/rpc.h> - - -#ifdef __cplusplus -extern "C" { -#endif - - -struct blockCreate { - char ipaddr[255]; - char volume[255]; - char gbid[127]; - u_quad_t size; - char block_name[255]; -}; -typedef struct blockCreate blockCreate; - -struct blockCreateCli { - char volume[255]; - u_quad_t size; - u_int mpath; - char block_name[255]; - char *block_hosts; -}; -typedef struct blockCreateCli blockCreateCli; - -struct blockDeleteCli { - char block_name[255]; - char volume[255]; -}; -typedef struct blockDeleteCli blockDeleteCli; - -struct blockDelete { - char block_name[255]; - char gbid[127]; -}; -typedef struct blockDelete blockDelete; - -struct blockInfoCli { - char block_name[255]; - char volume[255]; -}; -typedef struct blockInfoCli blockInfoCli; - -struct blockListCli { - char volume[255]; - u_quad_t offset; -}; -typedef struct blockListCli blockListCli; - -struct blockResponse { - int exit; - char *out; - u_quad_t offset; - struct { - u_int xdata_len; - char *xdata_val; - } xdata; -}; -typedef struct blockResponse blockResponse; - -typedef struct blockServerDef { - size_t nhosts; - char **hosts; -} blockServerDef; -typedef blockServerDef *blockServerDefPtr; - -typedef enum operations { - CREATE_SRV = 1, - DELETE_SRV = 2, -} operations; - -void -gluster_block_cli_1(struct svc_req *rqstp, register SVCXPRT *transp); - -void -gluster_block_1(struct svc_req *rqstp, register SVCXPRT *transp); - - -int -glusterBlockCallRPC_1(char *host, void *cobj, operations opt, char **out); - -#define GLUSTER_BLOCK_CLI 212153113 -#define GLUSTER_BLOCK_CLI_VERS 1 - -#if defined(__STDC__) || defined(__cplusplus) -#define BLOCK_CREATE_CLI 1 -extern blockResponse * block_create_cli_1(blockCreateCli *, CLIENT *); -extern blockResponse * block_create_cli_1_svc(blockCreateCli *, struct svc_req *); -#define BLOCK_LIST_CLI 2 -extern blockResponse * block_list_cli_1(blockListCli *, CLIENT *); -extern blockResponse * block_list_cli_1_svc(blockListCli *, struct svc_req *); -#define BLOCK_INFO_CLI 3 -extern blockResponse * block_info_cli_1(blockInfoCli *, CLIENT *); -extern blockResponse * block_info_cli_1_svc(blockInfoCli *, struct svc_req *); -#define BLOCK_DELETE_CLI 4 -extern blockResponse * block_delete_cli_1(blockDeleteCli *, CLIENT *); -extern blockResponse * block_delete_cli_1_svc(blockDeleteCli *, struct svc_req *); -extern int gluster_block_cli_1_freeresult (SVCXPRT *, xdrproc_t, caddr_t); - -#else /* K&R C */ -#define BLOCK_CREATE_CLI 1 -extern blockResponse * block_create_cli_1(); -extern blockResponse * block_create_cli_1_svc(); -#define BLOCK_LIST_CLI 2 -extern blockResponse * block_list_cli_1(); -extern blockResponse * block_list_cli_1_svc(); -#define BLOCK_INFO_CLI 3 -extern blockResponse * block_info_cli_1(); -extern blockResponse * block_info_cli_1_svc(); -#define BLOCK_DELETE_CLI 4 -extern blockResponse * block_delete_cli_1(); -extern blockResponse * block_delete_cli_1_svc(); -extern int gluster_block_cli_1_freeresult (); -#endif /* K&R C */ - -#define GLUSTER_BLOCK 21215311 -#define GLUSTER_BLOCK_VERS 1 - -#if defined(__STDC__) || defined(__cplusplus) -#define BLOCK_CREATE 1 -extern blockResponse * block_create_1(blockCreate *, CLIENT *); -extern blockResponse * block_create_1_svc(blockCreate *, struct svc_req *); -#define BLOCK_DELETE 2 -extern blockResponse * block_delete_1(blockDelete *, CLIENT *); -extern blockResponse * block_delete_1_svc(blockDelete *, struct svc_req *); -extern int gluster_block_1_freeresult (SVCXPRT *, xdrproc_t, caddr_t); - -#else /* K&R C */ -#define BLOCK_CREATE 1 -extern blockResponse * block_create_1(); -extern blockResponse * block_create_1_svc(); -#define BLOCK_DELETE 2 -extern blockResponse * block_delete_1(); -extern blockResponse * block_delete_1_svc(); -extern int gluster_block_1_freeresult (); -#endif /* K&R C */ - -/* the xdr functions */ - -#if defined(__STDC__) || defined(__cplusplus) -extern bool_t xdr_blockCreate (XDR *, blockCreate*); -extern bool_t xdr_blockCreateCli (XDR *, blockCreateCli*); -extern bool_t xdr_blockDeleteCli (XDR *, blockDeleteCli*); -extern bool_t xdr_blockDelete (XDR *, blockDelete*); -extern bool_t xdr_blockInfoCli (XDR *, blockInfoCli*); -extern bool_t xdr_blockListCli (XDR *, blockListCli*); -extern bool_t xdr_blockResponse (XDR *, blockResponse*); - -#else /* K&R C */ -extern bool_t xdr_blockCreate (); -extern bool_t xdr_blockCreateCli (); -extern bool_t xdr_blockDeleteCli (); -extern bool_t xdr_blockDelete (); -extern bool_t xdr_blockInfoCli (); -extern bool_t xdr_blockListCli (); -extern bool_t xdr_blockResponse (); - -#endif /* K&R C */ - -#ifdef __cplusplus -} -#endif - -#endif /* !_BLOCK_H_RPCGEN */ diff --git a/rpc/block_clnt.c b/rpc/block_clnt.c deleted file mode 100644 index 4c10231..0000000 --- a/rpc/block_clnt.c +++ /dev/null @@ -1,100 +0,0 @@ -/* - * Please do not edit this file. - * It was generated using rpcgen. - */ - -#include <memory.h> /* for memset */ -#include "block.h" - -/* Default timeout can be changed using clnt_control() */ -static struct timeval TIMEOUT = { 25, 0 }; - -blockResponse * -block_create_cli_1(blockCreateCli *argp, CLIENT *clnt) -{ - static blockResponse clnt_res; - - memset((char *)&clnt_res, 0, sizeof(clnt_res)); - if (clnt_call (clnt, BLOCK_CREATE_CLI, - (xdrproc_t) xdr_blockCreateCli, (caddr_t) argp, - (xdrproc_t) xdr_blockResponse, (caddr_t) &clnt_res, - TIMEOUT) != RPC_SUCCESS) { - return (NULL); - } - return (&clnt_res); -} - -blockResponse * -block_list_cli_1(blockListCli *argp, CLIENT *clnt) -{ - static blockResponse clnt_res; - - memset((char *)&clnt_res, 0, sizeof(clnt_res)); - if (clnt_call (clnt, BLOCK_LIST_CLI, - (xdrproc_t) xdr_blockListCli, (caddr_t) argp, - (xdrproc_t) xdr_blockResponse, (caddr_t) &clnt_res, - TIMEOUT) != RPC_SUCCESS) { - return (NULL); - } - return (&clnt_res); -} - -blockResponse * -block_info_cli_1(blockInfoCli *argp, CLIENT *clnt) -{ - static blockResponse clnt_res; - - memset((char *)&clnt_res, 0, sizeof(clnt_res)); - if (clnt_call (clnt, BLOCK_INFO_CLI, - (xdrproc_t) xdr_blockInfoCli, (caddr_t) argp, - (xdrproc_t) xdr_blockResponse, (caddr_t) &clnt_res, - TIMEOUT) != RPC_SUCCESS) { - return (NULL); - } - return (&clnt_res); -} - -blockResponse * -block_delete_cli_1(blockDeleteCli *argp, CLIENT *clnt) -{ - static blockResponse clnt_res; - - memset((char *)&clnt_res, 0, sizeof(clnt_res)); - if (clnt_call (clnt, BLOCK_DELETE_CLI, - (xdrproc_t) xdr_blockDeleteCli, (caddr_t) argp, - (xdrproc_t) xdr_blockResponse, (caddr_t) &clnt_res, - TIMEOUT) != RPC_SUCCESS) { - return (NULL); - } - return (&clnt_res); -} - -blockResponse * -block_create_1(blockCreate *argp, CLIENT *clnt) -{ - static blockResponse clnt_res; - - memset((char *)&clnt_res, 0, sizeof(clnt_res)); - if (clnt_call (clnt, BLOCK_CREATE, - (xdrproc_t) xdr_blockCreate, (caddr_t) argp, - (xdrproc_t) xdr_blockResponse, (caddr_t) &clnt_res, - TIMEOUT) != RPC_SUCCESS) { - return (NULL); - } - return (&clnt_res); -} - -blockResponse * -block_delete_1(blockDelete *argp, CLIENT *clnt) -{ - static blockResponse clnt_res; - - memset((char *)&clnt_res, 0, sizeof(clnt_res)); - if (clnt_call (clnt, BLOCK_DELETE, - (xdrproc_t) xdr_blockDelete, (caddr_t) argp, - (xdrproc_t) xdr_blockResponse, (caddr_t) &clnt_res, - TIMEOUT) != RPC_SUCCESS) { - return (NULL); - } - return (&clnt_res); -} diff --git a/rpc/block_svc.c b/rpc/block_svc.c deleted file mode 100644 index 8c94d30..0000000 --- a/rpc/block_svc.c +++ /dev/null @@ -1,120 +0,0 @@ -/* - * Please do not edit this file. - * It was generated using rpcgen. - */ - -#include "block.h" - -#ifndef SIG_PF -#define SIG_PF void(*)(int) -#endif - -void -gluster_block_cli_1(struct svc_req *rqstp, register SVCXPRT *transp) -{ - union { - blockCreateCli block_create_cli_1_arg; - blockListCli block_list_cli_1_arg; - blockInfoCli block_info_cli_1_arg; - blockDeleteCli block_delete_cli_1_arg; - } argument; - char *result; - xdrproc_t _xdr_argument, _xdr_result; - char *(*local)(char *, struct svc_req *); - - switch (rqstp->rq_proc) { - case NULLPROC: - (void) svc_sendreply (transp, (xdrproc_t) xdr_void, (char *)NULL); - return; - - case BLOCK_CREATE_CLI: - _xdr_argument = (xdrproc_t) xdr_blockCreateCli; - _xdr_result = (xdrproc_t) xdr_blockResponse; - local = (char *(*)(char *, struct svc_req *)) block_create_cli_1_svc; - break; - - case BLOCK_LIST_CLI: - _xdr_argument = (xdrproc_t) xdr_blockListCli; - _xdr_result = (xdrproc_t) xdr_blockResponse; - local = (char *(*)(char *, struct svc_req *)) block_list_cli_1_svc; - break; - - case BLOCK_INFO_CLI: - _xdr_argument = (xdrproc_t) xdr_blockInfoCli; - _xdr_result = (xdrproc_t) xdr_blockResponse; - local = (char *(*)(char *, struct svc_req *)) block_info_cli_1_svc; - break; - - case BLOCK_DELETE_CLI: - _xdr_argument = (xdrproc_t) xdr_blockDeleteCli; - _xdr_result = (xdrproc_t) xdr_blockResponse; - local = (char *(*)(char *, struct svc_req *)) block_delete_cli_1_svc; - break; - - default: - svcerr_noproc (transp); - return; - } - memset ((char *)&argument, 0, sizeof (argument)); - if (!svc_getargs (transp, (xdrproc_t) _xdr_argument, (caddr_t) &argument)) { - svcerr_decode (transp); - return; - } - result = (*local)((char *)&argument, rqstp); - if (result != NULL && !svc_sendreply(transp, (xdrproc_t) _xdr_result, result)) { - svcerr_systemerr (transp); - } - if (!svc_freeargs (transp, (xdrproc_t) _xdr_argument, (caddr_t) &argument)) { - fprintf (stderr, "%s", "unable to free arguments"); - exit (1); - } - return; -} - -void -gluster_block_1(struct svc_req *rqstp, register SVCXPRT *transp) -{ - union { - blockCreate block_create_1_arg; - blockDelete block_delete_1_arg; - } argument; - char *result; - xdrproc_t _xdr_argument, _xdr_result; - char *(*local)(char *, struct svc_req *); - - switch (rqstp->rq_proc) { - case NULLPROC: - (void) svc_sendreply (transp, (xdrproc_t) xdr_void, (char *)NULL); - return; - - case BLOCK_CREATE: - _xdr_argument = (xdrproc_t) xdr_blockCreate; - _xdr_result = (xdrproc_t) xdr_blockResponse; - local = (char *(*)(char *, struct svc_req *)) block_create_1_svc; - break; - - case BLOCK_DELETE: - _xdr_argument = (xdrproc_t) xdr_blockDelete; - _xdr_result = (xdrproc_t) xdr_blockResponse; - local = (char *(*)(char *, struct svc_req *)) block_delete_1_svc; - break; - - default: - svcerr_noproc (transp); - return; - } - memset ((char *)&argument, 0, sizeof (argument)); - if (!svc_getargs (transp, (xdrproc_t) _xdr_argument, (caddr_t) &argument)) { - svcerr_decode (transp); - return; - } - result = (*local)((char *)&argument, rqstp); - if (result != NULL && !svc_sendreply(transp, (xdrproc_t) _xdr_result, result)) { - svcerr_systemerr (transp); - } - if (!svc_freeargs (transp, (xdrproc_t) _xdr_argument, (caddr_t) &argument)) { - fprintf (stderr, "%s", "unable to free arguments"); - exit (1); - } - return; -} diff --git a/rpc/block_svc_routines.c b/rpc/block_svc_routines.c index f72ff42..13a1132 100644 --- a/rpc/block_svc_routines.c +++ b/rpc/block_svc_routines.c @@ -37,6 +37,12 @@ pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER; +typedef enum operations { + CREATE_SRV = 1, + DELETE_SRV = 2 +} operations; + + typedef struct blockRemoteObj { struct glfs *glfs; void *obj; @@ -65,6 +71,13 @@ typedef struct blockRemoteCreateResp { } blockRemoteCreateResp; +typedef struct blockServerDef { + size_t nhosts; + char **hosts; +} blockServerDef; +typedef blockServerDef *blockServerDefPtr; + + static char * getLastWordNoDot(char *line) { diff --git a/rpc/block_xdr.c b/rpc/block_xdr.c deleted file mode 100644 index 9a83b42..0000000 --- a/rpc/block_xdr.c +++ /dev/null @@ -1,105 +0,0 @@ -/* - * Please do not edit this file. - * It was generated using rpcgen. - */ - -#include "block.h" - -bool_t -xdr_blockCreate (XDR *xdrs, blockCreate *objp) -{ - if (!xdr_vector (xdrs, (char *)objp->ipaddr, 255, - sizeof (char), (xdrproc_t) xdr_char)) - return FALSE; - if (!xdr_vector (xdrs, (char *)objp->volume, 255, - sizeof (char), (xdrproc_t) xdr_char)) - return FALSE; - if (!xdr_vector (xdrs, (char *)objp->gbid, 127, - sizeof (char), (xdrproc_t) xdr_char)) - return FALSE; - if (!xdr_u_quad_t (xdrs, &objp->size)) - return FALSE; - if (!xdr_vector (xdrs, (char *)objp->block_name, 255, - sizeof (char), (xdrproc_t) xdr_char)) - return FALSE; - return TRUE; -} - -bool_t -xdr_blockCreateCli (XDR *xdrs, blockCreateCli *objp) -{ - if (!xdr_vector (xdrs, (char *)objp->volume, 255, - sizeof (char), (xdrproc_t) xdr_char)) - return FALSE; - if (!xdr_u_quad_t (xdrs, &objp->size)) - return FALSE; - if (!xdr_u_int (xdrs, &objp->mpath)) - return FALSE; - if (!xdr_vector (xdrs, (char *)objp->block_name, 255, - sizeof (char), (xdrproc_t) xdr_char)) - return FALSE; - if (!xdr_string (xdrs, &objp->block_hosts, ~0)) - return FALSE; - return TRUE; -} - -bool_t -xdr_blockDeleteCli (XDR *xdrs, blockDeleteCli *objp) -{ - if (!xdr_vector (xdrs, (char *)objp->block_name, 255, - sizeof (char), (xdrproc_t) xdr_char)) - return FALSE; - if (!xdr_vector (xdrs, (char *)objp->volume, 255, - sizeof (char), (xdrproc_t) xdr_char)) - return FALSE; - return TRUE; -} - -bool_t -xdr_blockDelete (XDR *xdrs, blockDelete *objp) -{ - if (!xdr_vector (xdrs, (char *)objp->block_name, 255, - sizeof (char), (xdrproc_t) xdr_char)) - return FALSE; - if (!xdr_vector (xdrs, (char *)objp->gbid, 127, - sizeof (char), (xdrproc_t) xdr_char)) - return FALSE; - return TRUE; -} - -bool_t -xdr_blockInfoCli (XDR *xdrs, blockInfoCli *objp) -{ - if (!xdr_vector (xdrs, (char *)objp->block_name, 255, - sizeof (char), (xdrproc_t) xdr_char)) - return FALSE; - if (!xdr_vector (xdrs, (char *)objp->volume, 255, - sizeof (char), (xdrproc_t) xdr_char)) - return FALSE; - return TRUE; -} - -bool_t -xdr_blockListCli (XDR *xdrs, blockListCli *objp) -{ - if (!xdr_vector (xdrs, (char *)objp->volume, 255, - sizeof (char), (xdrproc_t) xdr_char)) - return FALSE; - if (!xdr_u_quad_t (xdrs, &objp->offset)) - return FALSE; - return TRUE; -} - -bool_t -xdr_blockResponse (XDR *xdrs, blockResponse *objp) -{ - if (!xdr_int (xdrs, &objp->exit)) - return FALSE; - if (!xdr_string (xdrs, &objp->out, ~0)) - return FALSE; - if (!xdr_u_quad_t (xdrs, &objp->offset)) - return FALSE; - if (!xdr_bytes (xdrs, (char **)&objp->xdata.xdata_val, (u_int *) &objp->xdata.xdata_len, ~0)) - return FALSE; - return TRUE; -} diff --git a/rpc/rpcl/Makefile.am b/rpc/rpcl/Makefile.am new file mode 100644 index 0000000..3aa6f0d --- /dev/null +++ b/rpc/rpcl/Makefile.am @@ -0,0 +1,22 @@ +libgbrpcxdr_la_SOURCES = block_clnt.c block_xdr.c block_svc.c + +noinst_LTLIBRARIES = libgbrpcxdr.la +noinst_HEADERS = block.h block_svc.h rpc-pragmas.h + +EXTRA_DIST = block.x +BUILT_SOURCES = block.h block_clnt.c block_svc.c block_xdr.c + +DISTCLEANFILES = Makefile.in $(BUILT_SOURCES) +CLEANFILES = *~ $(BUILT_SOURCES) + +block.h: block.x + rpcgen -h -o $(top_builddir)/rpc/rpcl/$@ $^ + +block_xdr.c: block.x + rpcgen -c -o $(top_builddir)/rpc/rpcl/$@ $^ + +block_clnt.c: block.x + rpcgen -l -o $(top_builddir)/rpc/rpcl/$@ $^ + +block_svc.c: block.x + rpcgen -m -o $(top_builddir)/rpc/rpcl/$@ $^ diff --git a/rpc/rpcl/block.x b/rpc/rpcl/block.x index e876ba4..4d840ff 100644 --- a/rpc/rpcl/block.x +++ b/rpc/rpcl/block.x @@ -1,3 +1,8 @@ +/* rpcgen generates code that results in unused-variable warnings */ +#ifdef RPC_XDR +%#include "rpc-pragmas.h" +#endif + struct blockCreate { char ipaddr[255]; char volume[255]; diff --git a/rpc/rpcl/block_svc.h b/rpc/rpcl/block_svc.h new file mode 100644 index 0000000..8d1a378 --- /dev/null +++ b/rpc/rpcl/block_svc.h @@ -0,0 +1,20 @@ +/* + Copyright (c) 2017 Red Hat, Inc. <http://www.redhat.com> + This file is part of gluster-block. + + This file is licensed to you under your choice of the GNU Lesser + General Public License, version 3 or any later version (LGPLv3 or + later), or the GNU General Public License, version 2 (GPLv2), in all + cases as published by the Free Software Foundation. +*/ + +# ifndef _BLOCK_SVC_H +# define _BLOCK_SVC_H + +void +gluster_block_cli_1(struct svc_req *rqstp, register SVCXPRT *transp); + +void +gluster_block_1(struct svc_req *rqstp, register SVCXPRT *transp); + +# endif /* _BLOCK_SVC_H */ diff --git a/rpc/rpcl/rpc-pragmas.h b/rpc/rpcl/rpc-pragmas.h new file mode 100644 index 0000000..91bd501 --- /dev/null +++ b/rpc/rpcl/rpc-pragmas.h @@ -0,0 +1,28 @@ +/* + Copyright (c) 2017 Red Hat, Inc. <http://www.redhat.com> + This file is part of gluster-block. + + This file is licensed to you under your choice of the GNU Lesser + General Public License, version 3 or any later version (LGPLv3 or + later), or the GNU General Public License, version 2 (GPLv2), in all + cases as published by the Free Software Foundation. +*/ + +#ifndef RPC_PRAGMAS_H +#define RPC_PRAGMAS_H + +#if defined(__GNUC__) +#if __GNUC__ >= 4 +#if !defined(__clang__) +#if !defined(__NetBSD__) +#pragma GCC diagnostic ignored "-Wunused-but-set-variable" +#pragma GCC diagnostic ignored "-Wunused-variable" +#endif +#else +#pragma clang diagnostic ignored "-Wunused-variable" +#pragma clang diagnostic ignored "-Wunused-value" +#endif +#endif +#endif + +#endif /* RPC_PRAGMAS_H */ |