summaryrefslogtreecommitdiffstats
path: root/rpc
diff options
context:
space:
mode:
authorCsaba Henk <csaba@gluster.com>2011-04-18 17:25:25 +0000
committerAnand Avati <avati@gluster.com>2011-04-19 02:30:18 -0700
commit184fba37889b87c27af90adf357b38fa95f1e78d (patch)
treef87f0cef7efeac01a7cd0bc520e640928f221004 /rpc
parentcc6d5c66090f576383c26bd0bdefadbcad708435 (diff)
cli: implement "system:: getwd" command
Signed-off-by: Csaba Henk <csaba@lowlife.hu> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2785 (gsyncd logs on slave side go to /dev/null) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2785
Diffstat (limited to 'rpc')
-rw-r--r--rpc/rpc-lib/src/protocol-common.h1
-rw-r--r--rpc/xdr/src/cli1-xdr.c20
-rw-r--r--rpc/xdr/src/cli1-xdr.h16
-rw-r--r--rpc/xdr/src/cli1-xdr.x12
-rw-r--r--rpc/xdr/src/cli1.c28
-rw-r--r--rpc/xdr/src/cli1.h12
6 files changed, 88 insertions, 1 deletions
diff --git a/rpc/rpc-lib/src/protocol-common.h b/rpc/rpc-lib/src/protocol-common.h
index 8483fbcf459..a54c29fc55a 100644
--- a/rpc/rpc-lib/src/protocol-common.h
+++ b/rpc/rpc-lib/src/protocol-common.h
@@ -198,6 +198,7 @@ enum gluster_cli_procnum {
GLUSTER_CLI_PROFILE_VOLUME,
GLUSTER_CLI_QUOTA,
GLUSTER_CLI_TOP_VOLUME,
+ GLUSTER_CLI_GETWD,
GLUSTER_CLI_MAXVALUE,
};
diff --git a/rpc/xdr/src/cli1-xdr.c b/rpc/xdr/src/cli1-xdr.c
index f1594eb9662..0f5dc98669c 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 0a4b4ebd5f5..96f8def58c7 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 fc38cf7b252..99344a94909 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 bd3cbf0c7bd..e917929b349 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 9bc3a196ae5..32e310aae83 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 */