From 184fba37889b87c27af90adf357b38fa95f1e78d Mon Sep 17 00:00:00 2001 From: Csaba Henk Date: Mon, 18 Apr 2011 17:25:25 +0000 Subject: cli: implement "system:: getwd" command Signed-off-by: Csaba Henk Signed-off-by: Anand Avati BUG: 2785 (gsyncd logs on slave side go to /dev/null) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2785 --- rpc/xdr/src/cli1-xdr.c | 20 ++++++++++++++++++++ rpc/xdr/src/cli1-xdr.h | 16 ++++++++++++++++ rpc/xdr/src/cli1-xdr.x | 12 +++++++++++- rpc/xdr/src/cli1.c | 28 ++++++++++++++++++++++++++++ rpc/xdr/src/cli1.h | 12 ++++++++++++ 5 files changed, 87 insertions(+), 1 deletion(-) (limited to 'rpc/xdr/src') diff --git a/rpc/xdr/src/cli1-xdr.c b/rpc/xdr/src/cli1-xdr.c index f1594eb96..0f5dc9866 100644 --- a/rpc/xdr/src/cli1-xdr.c +++ b/rpc/xdr/src/cli1-xdr.c @@ -796,3 +796,23 @@ xdr_gf1_cli_stats_volume_rsp (XDR *xdrs, gf1_cli_stats_volume_rsp *objp) return FALSE; return TRUE; } + +bool_t +xdr_gf1_cli_getwd_req (XDR *xdrs, gf1_cli_getwd_req *objp) +{ + if (!xdr_int (xdrs, &objp->unused)) + return FALSE; + return TRUE; +} + +bool_t +xdr_gf1_cli_getwd_rsp (XDR *xdrs, gf1_cli_getwd_rsp *objp) +{ + if (!xdr_int (xdrs, &objp->op_ret)) + return FALSE; + if (!xdr_int (xdrs, &objp->op_errno)) + return FALSE; + if (!xdr_string (xdrs, &objp->wd, ~0)) + return FALSE; + return TRUE; +} diff --git a/rpc/xdr/src/cli1-xdr.h b/rpc/xdr/src/cli1-xdr.h index 0a4b4ebd5..96f8def58 100644 --- a/rpc/xdr/src/cli1-xdr.h +++ b/rpc/xdr/src/cli1-xdr.h @@ -512,6 +512,18 @@ struct gf1_cli_stats_volume_rsp { }; typedef struct gf1_cli_stats_volume_rsp gf1_cli_stats_volume_rsp; +struct gf1_cli_getwd_req { + int unused; +}; +typedef struct gf1_cli_getwd_req gf1_cli_getwd_req; + +struct gf1_cli_getwd_rsp { + int op_ret; + int op_errno; + char *wd; +}; +typedef struct gf1_cli_getwd_rsp gf1_cli_getwd_rsp; + /* the xdr functions */ #if defined(__STDC__) || defined(__cplusplus) @@ -572,6 +584,8 @@ extern bool_t xdr_gf1_cli_gsync_set_req (XDR *, gf1_cli_gsync_set_req*); extern bool_t xdr_gf1_cli_gsync_set_rsp (XDR *, gf1_cli_gsync_set_rsp*); extern bool_t xdr_gf1_cli_stats_volume_req (XDR *, gf1_cli_stats_volume_req*); extern bool_t xdr_gf1_cli_stats_volume_rsp (XDR *, gf1_cli_stats_volume_rsp*); +extern bool_t xdr_gf1_cli_getwd_req (XDR *, gf1_cli_getwd_req*); +extern bool_t xdr_gf1_cli_getwd_rsp (XDR *, gf1_cli_getwd_rsp*); #else /* K&R C */ extern bool_t xdr_gf1_cluster_type (); @@ -631,6 +645,8 @@ extern bool_t xdr_gf1_cli_gsync_set_req (); extern bool_t xdr_gf1_cli_gsync_set_rsp (); extern bool_t xdr_gf1_cli_stats_volume_req (); extern bool_t xdr_gf1_cli_stats_volume_rsp (); +extern bool_t xdr_gf1_cli_getwd_req (); +extern bool_t xdr_gf1_cli_getwd_rsp (); #endif /* K&R C */ diff --git a/rpc/xdr/src/cli1-xdr.x b/rpc/xdr/src/cli1-xdr.x index fc38cf7b2..99344a949 100644 --- a/rpc/xdr/src/cli1-xdr.x +++ b/rpc/xdr/src/cli1-xdr.x @@ -57,7 +57,7 @@ enum gf1_cli_stats_op { GF_CLI_STATS_NONE = 0, GF_CLI_STATS_START = 1, GF_CLI_STATS_STOP = 2, - GF_CLI_STATS_INFO = 3 + GF_CLI_STATS_INFO = 3, GF_CLI_STATS_TOP = 4 }; @@ -375,3 +375,13 @@ struct gf1_cli_quota_rsp { string limit_list<>; gf_quota_type type; }; + +struct gf1_cli_getwd_req { + int unused; +} ; + +struct gf1_cli_getwd_rsp { + int op_ret; + int op_errno; + string wd<>; +}; diff --git a/rpc/xdr/src/cli1.c b/rpc/xdr/src/cli1.c index bd3cbf0c7..e917929b3 100644 --- a/rpc/xdr/src/cli1.c +++ b/rpc/xdr/src/cli1.c @@ -712,3 +712,31 @@ gf_xdr_from_cli_stats_volume_rsp (struct iovec outmsg, void *args) return xdr_serialize_generic (outmsg, (void *)args, (xdrproc_t)xdr_gf1_cli_stats_volume_rsp); } + +ssize_t +gf_xdr_to_cli_getwd_req (struct iovec inmsg, void *args) +{ + return xdr_to_generic (inmsg, (void *)args, + (xdrproc_t)xdr_gf1_cli_getwd_req); +} + +ssize_t +gf_xdr_from_cli_getwd_req (struct iovec outmsg, void *args) +{ + return xdr_serialize_generic (outmsg, (void *)args, + (xdrproc_t)xdr_gf1_cli_getwd_req); +} + +ssize_t +gf_xdr_to_cli_getwd_rsp (struct iovec inmsg, void *args) +{ + return xdr_to_generic (inmsg, (void *)args, + (xdrproc_t)xdr_gf1_cli_getwd_rsp); +} + +ssize_t +gf_xdr_from_cli_getwd_rsp (struct iovec outmsg, void *args) +{ + return xdr_serialize_generic (outmsg, (void *)args, + (xdrproc_t)xdr_gf1_cli_getwd_rsp); +} diff --git a/rpc/xdr/src/cli1.h b/rpc/xdr/src/cli1.h index 9bc3a196a..32e310aae 100644 --- a/rpc/xdr/src/cli1.h +++ b/rpc/xdr/src/cli1.h @@ -315,4 +315,16 @@ gf_xdr_to_cli_stats_volume_rsp (struct iovec inmsg, void *args); ssize_t gf_xdr_from_cli_stats_volume_rsp (struct iovec outmsg, void *args); + +ssize_t +gf_xdr_to_cli_getwd_req (struct iovec inmsg, void *args); + +ssize_t +gf_xdr_from_cli_getwd_req (struct iovec outmsg, void *args); + +ssize_t +gf_xdr_to_cli_getwd_rsp (struct iovec inmsg, void *args); + +ssize_t +gf_xdr_from_cli_getwd_rsp (struct iovec outmsg, void *args); #endif /* !_CLI1_H */ -- cgit