diff options
author | Vijay Bellur <vijay@gluster.com> | 2010-07-19 05:54:25 +0000 |
---|---|---|
committer | Anand V. Avati <avati@dev.gluster.com> | 2010-07-19 05:11:05 -0700 |
commit | a6b90707bf68fe62bf115cfb143d9df69627cb64 (patch) | |
tree | 86a98f2e31bd9ec3cdba8b05386ef2d928bc09ed /rpc | |
parent | 87ec1b72dac8f50f9eb4ba3b127baca19993ae94 (diff) |
Changes for volume commands
Signed-off-by: Vijay Bellur <vijay@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 1161 (gluster volume start command segfaults glusterd)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1161
Diffstat (limited to 'rpc')
-rw-r--r-- | rpc/rpc-lib/src/protocol-common.h | 1 | ||||
-rw-r--r-- | rpc/xdr/src/cli1-xdr.c | 37 | ||||
-rw-r--r-- | rpc/xdr/src/cli1-xdr.h | 44 | ||||
-rw-r--r-- | rpc/xdr/src/cli1.c | 29 | ||||
-rw-r--r-- | rpc/xdr/src/cli1.h | 12 | ||||
-rw-r--r-- | rpc/xdr/src/cli1.x | 17 | ||||
-rw-r--r-- | rpc/xdr/src/glusterd1-xdr.c | 40 | ||||
-rw-r--r-- | rpc/xdr/src/glusterd1-xdr.h | 18 | ||||
-rw-r--r-- | rpc/xdr/src/glusterd1.c | 15 | ||||
-rw-r--r-- | rpc/xdr/src/glusterd1.h | 5 | ||||
-rw-r--r-- | rpc/xdr/src/glusterd1.x | 14 |
11 files changed, 217 insertions, 15 deletions
diff --git a/rpc/rpc-lib/src/protocol-common.h b/rpc/rpc-lib/src/protocol-common.h index c4fc12a70..5b6a2c349 100644 --- a/rpc/rpc-lib/src/protocol-common.h +++ b/rpc/rpc-lib/src/protocol-common.h @@ -84,6 +84,7 @@ enum gf_mgmt_procnum { GD_MGMT_STAGE_OP, GD_MGMT_COMMIT_OP, GD_MGMT_FRIEND_REMOVE, + GD_MGMT_FRIEND_UPDATE, GD_MGMT_CLI_PROBE, GD_MGMT_CLI_DEPROBE, GD_MGMT_CLI_LIST_FRIENDS, diff --git a/rpc/xdr/src/cli1-xdr.c b/rpc/xdr/src/cli1-xdr.c index 5cce70fa6..832f762ec 100644 --- a/rpc/xdr/src/cli1-xdr.c +++ b/rpc/xdr/src/cli1-xdr.c @@ -3,7 +3,7 @@ * It was generated using rpcgen. */ -#include "cli1-xdr.h" +#include "cli1.h" bool_t xdr_gf1_cluster_type (XDR *xdrs, gf1_cluster_type *objp) @@ -24,7 +24,16 @@ xdr_gf1_cli_replace_op (XDR *xdrs, gf1_cli_replace_op *objp) } bool_t -xdr_gf1_cli_enum_friends_list (XDR *xdrs, gf1_cli_enum_friends_list *objp) +xdr_gf1_cli_friends_list (XDR *xdrs, gf1_cli_friends_list *objp) +{ + + if (!xdr_enum (xdrs, (enum_t *) objp)) + return FALSE; + return TRUE; +} + +bool_t +xdr_gf1_cli_get_volume (XDR *xdrs, gf1_cli_get_volume *objp) { if (!xdr_enum (xdrs, (enum_t *) objp)) @@ -101,6 +110,30 @@ xdr_gf1_cli_peer_list_rsp (XDR *xdrs, gf1_cli_peer_list_rsp *objp) } bool_t +xdr_gf1_cli_get_vol_req (XDR *xdrs, gf1_cli_get_vol_req *objp) +{ + + if (!xdr_int (xdrs, &objp->flags)) + return FALSE; + if (!xdr_bytes (xdrs, (char **)&objp->dict.dict_val, (u_int *) &objp->dict.dict_len, ~0)) + return FALSE; + return TRUE; +} + +bool_t +xdr_gf1_cli_get_vol_rsp (XDR *xdrs, gf1_cli_get_vol_rsp *objp) +{ + + if (!xdr_int (xdrs, &objp->op_ret)) + return FALSE; + if (!xdr_int (xdrs, &objp->op_errno)) + return FALSE; + if (!xdr_bytes (xdrs, (char **)&objp->volumes.volumes_val, (u_int *) &objp->volumes.volumes_len, ~0)) + return FALSE; + return TRUE; +} + +bool_t xdr_gf1_cli_create_vol_req (XDR *xdrs, gf1_cli_create_vol_req *objp) { diff --git a/rpc/xdr/src/cli1-xdr.h b/rpc/xdr/src/cli1-xdr.h index 81948b34a..56dbef091 100644 --- a/rpc/xdr/src/cli1-xdr.h +++ b/rpc/xdr/src/cli1-xdr.h @@ -3,8 +3,8 @@ * It was generated using rpcgen. */ -#ifndef _GLUSTER1_H_RPCGEN -#define _GLUSTER1_H_RPCGEN +#ifndef _CLI1_H_RPCGEN +#define _CLI1_H_RPCGEN #include <rpc/rpc.h> @@ -31,10 +31,15 @@ enum gf1_cli_replace_op { }; typedef enum gf1_cli_replace_op gf1_cli_replace_op; -enum gf1_cli_enum_friends_list { +enum gf1_cli_friends_list { GF_CLI_LIST_ALL = 1, }; -typedef enum gf1_cli_enum_friends_list gf1_cli_enum_friends_list; +typedef enum gf1_cli_friends_list gf1_cli_friends_list; + +enum gf1_cli_get_volume { + GF_CLI_GET_VOLUME_ALL = 1, +}; +typedef enum gf1_cli_get_volume gf1_cli_get_volume; struct gf1_cli_probe_req { char *hostname; @@ -79,6 +84,25 @@ struct gf1_cli_peer_list_rsp { }; typedef struct gf1_cli_peer_list_rsp gf1_cli_peer_list_rsp; +struct gf1_cli_get_vol_req { + int flags; + struct { + u_int dict_len; + char *dict_val; + } dict; +}; +typedef struct gf1_cli_get_vol_req gf1_cli_get_vol_req; + +struct gf1_cli_get_vol_rsp { + int op_ret; + int op_errno; + struct { + u_int volumes_len; + char *volumes_val; + } volumes; +}; +typedef struct gf1_cli_get_vol_rsp gf1_cli_get_vol_rsp; + struct gf1_cli_create_vol_req { char *volname; gf1_cluster_type type; @@ -236,13 +260,16 @@ typedef struct gf1_cli_set_vol_rsp gf1_cli_set_vol_rsp; #if defined(__STDC__) || defined(__cplusplus) extern bool_t xdr_gf1_cluster_type (XDR *, gf1_cluster_type*); extern bool_t xdr_gf1_cli_replace_op (XDR *, gf1_cli_replace_op*); -extern bool_t xdr_gf1_cli_enum_friends_list (XDR *, gf1_cli_enum_friends_list*); +extern bool_t xdr_gf1_cli_friends_list (XDR *, gf1_cli_friends_list*); +extern bool_t xdr_gf1_cli_get_volume (XDR *, gf1_cli_get_volume*); extern bool_t xdr_gf1_cli_probe_req (XDR *, gf1_cli_probe_req*); extern bool_t xdr_gf1_cli_probe_rsp (XDR *, gf1_cli_probe_rsp*); extern bool_t xdr_gf1_cli_deprobe_req (XDR *, gf1_cli_deprobe_req*); extern bool_t xdr_gf1_cli_deprobe_rsp (XDR *, gf1_cli_deprobe_rsp*); extern bool_t xdr_gf1_cli_peer_list_req (XDR *, gf1_cli_peer_list_req*); extern bool_t xdr_gf1_cli_peer_list_rsp (XDR *, gf1_cli_peer_list_rsp*); +extern bool_t xdr_gf1_cli_get_vol_req (XDR *, gf1_cli_get_vol_req*); +extern bool_t xdr_gf1_cli_get_vol_rsp (XDR *, gf1_cli_get_vol_rsp*); extern bool_t xdr_gf1_cli_create_vol_req (XDR *, gf1_cli_create_vol_req*); extern bool_t xdr_gf1_cli_create_vol_rsp (XDR *, gf1_cli_create_vol_rsp*); extern bool_t xdr_gf1_cli_delete_vol_req (XDR *, gf1_cli_delete_vol_req*); @@ -267,13 +294,16 @@ extern bool_t xdr_gf1_cli_set_vol_rsp (XDR *, gf1_cli_set_vol_rsp*); #else /* K&R C */ extern bool_t xdr_gf1_cluster_type (); extern bool_t xdr_gf1_cli_replace_op (); -extern bool_t xdr_gf1_cli_enum_friends_list (); +extern bool_t xdr_gf1_cli_friends_list (); +extern bool_t xdr_gf1_cli_get_volume (); extern bool_t xdr_gf1_cli_probe_req (); extern bool_t xdr_gf1_cli_probe_rsp (); extern bool_t xdr_gf1_cli_deprobe_req (); extern bool_t xdr_gf1_cli_deprobe_rsp (); extern bool_t xdr_gf1_cli_peer_list_req (); extern bool_t xdr_gf1_cli_peer_list_rsp (); +extern bool_t xdr_gf1_cli_get_vol_req (); +extern bool_t xdr_gf1_cli_get_vol_rsp (); extern bool_t xdr_gf1_cli_create_vol_req (); extern bool_t xdr_gf1_cli_create_vol_rsp (); extern bool_t xdr_gf1_cli_delete_vol_req (); @@ -301,4 +331,4 @@ extern bool_t xdr_gf1_cli_set_vol_rsp (); } #endif -#endif /* !_GLUSTER1_H_RPCGEN */ +#endif /* !_CLI1_H_RPCGEN */ diff --git a/rpc/xdr/src/cli1.c b/rpc/xdr/src/cli1.c index 008353b9f..65252e3c3 100644 --- a/rpc/xdr/src/cli1.c +++ b/rpc/xdr/src/cli1.c @@ -107,6 +107,35 @@ gf_xdr_from_cli_peer_list_req (struct iovec outmsg, void *req) return xdr_serialize_generic (outmsg, (void *)req, (xdrproc_t)xdr_gf1_cli_peer_list_req); } + +ssize_t +gf_xdr_serialize_cli_get_vol_rsp (struct iovec outmsg, void *rsp) +{ + return xdr_serialize_generic (outmsg, (void *)rsp, + (xdrproc_t)xdr_gf1_cli_get_vol_rsp); + +} + +ssize_t +gf_xdr_to_cli_get_vol_req (struct iovec inmsg, void *args) +{ + return xdr_to_generic (inmsg, (void *)args, + (xdrproc_t)xdr_gf1_cli_get_vol_req); +} + +ssize_t +gf_xdr_to_cli_get_vol_rsp (struct iovec inmsg, void *args) +{ + return xdr_to_generic (inmsg, (void *)args, + (xdrproc_t)xdr_gf1_cli_get_vol_rsp); +} + +ssize_t +gf_xdr_from_cli_get_vol_req (struct iovec outmsg, void *req) +{ + return xdr_serialize_generic (outmsg, (void *)req, + (xdrproc_t)xdr_gf1_cli_get_vol_req); +} ssize_t gf_xdr_serialize_cli_create_vol_rsp (struct iovec outmsg, void *rsp) { diff --git a/rpc/xdr/src/cli1.h b/rpc/xdr/src/cli1.h index ab67084de..73f9f8d7b 100644 --- a/rpc/xdr/src/cli1.h +++ b/rpc/xdr/src/cli1.h @@ -181,4 +181,16 @@ gf_xdr_to_cli_set_vol_rsp (struct iovec inmsg, void *args); ssize_t gf_xdr_from_cli_set_vol_req (struct iovec outmsg, void *req); +ssize_t +gf_xdr_serialize_cli_get_vol_rsp (struct iovec outmsg, void *rsp); + +ssize_t +gf_xdr_to_cli_get_vol_req (struct iovec inmsg, void *args); + +ssize_t +gf_xdr_to_cli_get_vol_rsp (struct iovec inmsg, void *args); + +ssize_t +gf_xdr_from_cli_get_vol_req (struct iovec outmsg, void *req); + #endif /* !_CLI1_H */ diff --git a/rpc/xdr/src/cli1.x b/rpc/xdr/src/cli1.x index a8af1b7d6..41f43a485 100644 --- a/rpc/xdr/src/cli1.x +++ b/rpc/xdr/src/cli1.x @@ -13,10 +13,14 @@ GF_REPLACE_OP_STATUS } ; -enum gf1_cli_enum_friends_list { +enum gf1_cli_friends_list { GF_CLI_LIST_ALL = 1 } ; +enum gf1_cli_get_volume { + GF_CLI_GET_VOLUME_ALL = 1 +} ; + struct gf1_cli_probe_req { string hostname<>; } ; @@ -48,6 +52,17 @@ struct gf1_cli_peer_list_rsp { opaque friends<>; } ; +struct gf1_cli_get_vol_req { + int flags; + opaque dict<>; +} ; + +struct gf1_cli_get_vol_rsp { + int op_ret; + int op_errno; + opaque volumes<>; +} ; + struct gf1_cli_create_vol_req { string volname<>; gf1_cluster_type type; diff --git a/rpc/xdr/src/glusterd1-xdr.c b/rpc/xdr/src/glusterd1-xdr.c index 32e6687c8..3ad32d948 100644 --- a/rpc/xdr/src/glusterd1-xdr.c +++ b/rpc/xdr/src/glusterd1-xdr.c @@ -3,11 +3,21 @@ * It was generated using rpcgen. */ -#include "glusterd1-xdr.h" +#include "glusterd1.h" + +bool_t +xdr_glusterd_volume_status (XDR *xdrs, glusterd_volume_status *objp) +{ + + if (!xdr_enum (xdrs, (enum_t *) objp)) + return FALSE; + return TRUE; +} bool_t xdr_gd1_mgmt_probe_req (XDR *xdrs, gd1_mgmt_probe_req *objp) { + if (!xdr_vector (xdrs, (char *)objp->uuid, 16, sizeof (u_char), (xdrproc_t) xdr_u_char)) return FALSE; @@ -19,6 +29,7 @@ xdr_gd1_mgmt_probe_req (XDR *xdrs, gd1_mgmt_probe_req *objp) bool_t xdr_gd1_mgmt_probe_rsp (XDR *xdrs, gd1_mgmt_probe_rsp *objp) { + if (!xdr_vector (xdrs, (char *)objp->uuid, 16, sizeof (u_char), (xdrproc_t) xdr_u_char)) return FALSE; @@ -30,6 +41,7 @@ xdr_gd1_mgmt_probe_rsp (XDR *xdrs, gd1_mgmt_probe_rsp *objp) bool_t xdr_gd1_mgmt_friend_req (XDR *xdrs, gd1_mgmt_friend_req *objp) { + if (!xdr_vector (xdrs, (char *)objp->uuid, 16, sizeof (u_char), (xdrproc_t) xdr_u_char)) return FALSE; @@ -41,6 +53,7 @@ xdr_gd1_mgmt_friend_req (XDR *xdrs, gd1_mgmt_friend_req *objp) bool_t xdr_gd1_mgmt_friend_rsp (XDR *xdrs, gd1_mgmt_friend_rsp *objp) { + if (!xdr_vector (xdrs, (char *)objp->uuid, 16, sizeof (u_char), (xdrproc_t) xdr_u_char)) return FALSE; @@ -56,6 +69,7 @@ xdr_gd1_mgmt_friend_rsp (XDR *xdrs, gd1_mgmt_friend_rsp *objp) bool_t xdr_gd1_mgmt_unfriend_req (XDR *xdrs, gd1_mgmt_unfriend_req *objp) { + if (!xdr_vector (xdrs, (char *)objp->uuid, 16, sizeof (u_char), (xdrproc_t) xdr_u_char)) return FALSE; @@ -67,6 +81,7 @@ xdr_gd1_mgmt_unfriend_req (XDR *xdrs, gd1_mgmt_unfriend_req *objp) bool_t xdr_gd1_mgmt_unfriend_rsp (XDR *xdrs, gd1_mgmt_unfriend_rsp *objp) { + if (!xdr_vector (xdrs, (char *)objp->uuid, 16, sizeof (u_char), (xdrproc_t) xdr_u_char)) return FALSE; @@ -82,6 +97,7 @@ xdr_gd1_mgmt_unfriend_rsp (XDR *xdrs, gd1_mgmt_unfriend_rsp *objp) bool_t xdr_gd1_mgmt_cluster_lock_req (XDR *xdrs, gd1_mgmt_cluster_lock_req *objp) { + if (!xdr_vector (xdrs, (char *)objp->uuid, 16, sizeof (u_char), (xdrproc_t) xdr_u_char)) return FALSE; @@ -91,6 +107,7 @@ xdr_gd1_mgmt_cluster_lock_req (XDR *xdrs, gd1_mgmt_cluster_lock_req *objp) bool_t xdr_gd1_mgmt_cluster_lock_rsp (XDR *xdrs, gd1_mgmt_cluster_lock_rsp *objp) { + if (!xdr_vector (xdrs, (char *)objp->uuid, 16, sizeof (u_char), (xdrproc_t) xdr_u_char)) return FALSE; @@ -104,6 +121,7 @@ xdr_gd1_mgmt_cluster_lock_rsp (XDR *xdrs, gd1_mgmt_cluster_lock_rsp *objp) bool_t xdr_gd1_mgmt_cluster_unlock_req (XDR *xdrs, gd1_mgmt_cluster_unlock_req *objp) { + if (!xdr_vector (xdrs, (char *)objp->uuid, 16, sizeof (u_char), (xdrproc_t) xdr_u_char)) return FALSE; @@ -113,6 +131,7 @@ xdr_gd1_mgmt_cluster_unlock_req (XDR *xdrs, gd1_mgmt_cluster_unlock_req *objp) bool_t xdr_gd1_mgmt_cluster_unlock_rsp (XDR *xdrs, gd1_mgmt_cluster_unlock_rsp *objp) { + if (!xdr_vector (xdrs, (char *)objp->uuid, 16, sizeof (u_char), (xdrproc_t) xdr_u_char)) return FALSE; @@ -126,6 +145,7 @@ xdr_gd1_mgmt_cluster_unlock_rsp (XDR *xdrs, gd1_mgmt_cluster_unlock_rsp *objp) bool_t xdr_gd1_mgmt_stage_op_req (XDR *xdrs, gd1_mgmt_stage_op_req *objp) { + if (!xdr_vector (xdrs, (char *)objp->uuid, 16, sizeof (u_char), (xdrproc_t) xdr_u_char)) return FALSE; @@ -139,6 +159,7 @@ xdr_gd1_mgmt_stage_op_req (XDR *xdrs, gd1_mgmt_stage_op_req *objp) bool_t xdr_gd1_mgmt_stage_op_rsp (XDR *xdrs, gd1_mgmt_stage_op_rsp *objp) { + if (!xdr_vector (xdrs, (char *)objp->uuid, 16, sizeof (u_char), (xdrproc_t) xdr_u_char)) return FALSE; @@ -154,6 +175,7 @@ xdr_gd1_mgmt_stage_op_rsp (XDR *xdrs, gd1_mgmt_stage_op_rsp *objp) bool_t xdr_gd1_mgmt_commit_op_req (XDR *xdrs, gd1_mgmt_commit_op_req *objp) { + if (!xdr_vector (xdrs, (char *)objp->uuid, 16, sizeof (u_char), (xdrproc_t) xdr_u_char)) return FALSE; @@ -167,6 +189,7 @@ xdr_gd1_mgmt_commit_op_req (XDR *xdrs, gd1_mgmt_commit_op_req *objp) bool_t xdr_gd1_mgmt_commit_op_rsp (XDR *xdrs, gd1_mgmt_commit_op_rsp *objp) { + if (!xdr_vector (xdrs, (char *)objp->uuid, 16, sizeof (u_char), (xdrproc_t) xdr_u_char)) return FALSE; @@ -178,3 +201,18 @@ xdr_gd1_mgmt_commit_op_rsp (XDR *xdrs, gd1_mgmt_commit_op_rsp *objp) return FALSE; return TRUE; } + +bool_t +xdr_gd1_mgmt_friend_update (XDR *xdrs, gd1_mgmt_friend_update *objp) +{ + + if (!xdr_vector (xdrs, (char *)objp->uuid, 16, + sizeof (u_char), (xdrproc_t) xdr_u_char)) + return FALSE; + if (!xdr_vector (xdrs, (char *)objp->friend_uuid, 16, + sizeof (u_char), (xdrproc_t) xdr_u_char)) + return FALSE; + if (!xdr_string (xdrs, &objp->hostname, ~0)) + return FALSE; + return TRUE; +} diff --git a/rpc/xdr/src/glusterd1-xdr.h b/rpc/xdr/src/glusterd1-xdr.h index ee5fb9c7d..2fab3fd3b 100644 --- a/rpc/xdr/src/glusterd1-xdr.h +++ b/rpc/xdr/src/glusterd1-xdr.h @@ -14,6 +14,13 @@ extern "C" { #endif +enum glusterd_volume_status { + GLUSTERD_STATUS_NONE = 0, + GLUSTERD_STATUS_STARTED = 0 + 1, + GLUSTERD_STATUS_STOPPED = 0 + 2, +}; +typedef enum glusterd_volume_status glusterd_volume_status; + struct gd1_mgmt_probe_req { u_char uuid[16]; char *hostname; @@ -114,9 +121,17 @@ struct gd1_mgmt_commit_op_rsp { }; typedef struct gd1_mgmt_commit_op_rsp gd1_mgmt_commit_op_rsp; +struct gd1_mgmt_friend_update { + u_char uuid[16]; + u_char friend_uuid[16]; + char *hostname; +}; +typedef struct gd1_mgmt_friend_update gd1_mgmt_friend_update; + /* the xdr functions */ #if defined(__STDC__) || defined(__cplusplus) +extern bool_t xdr_glusterd_volume_status (XDR *, glusterd_volume_status*); extern bool_t xdr_gd1_mgmt_probe_req (XDR *, gd1_mgmt_probe_req*); extern bool_t xdr_gd1_mgmt_probe_rsp (XDR *, gd1_mgmt_probe_rsp*); extern bool_t xdr_gd1_mgmt_friend_req (XDR *, gd1_mgmt_friend_req*); @@ -131,8 +146,10 @@ extern bool_t xdr_gd1_mgmt_stage_op_req (XDR *, gd1_mgmt_stage_op_req*); extern bool_t xdr_gd1_mgmt_stage_op_rsp (XDR *, gd1_mgmt_stage_op_rsp*); extern bool_t xdr_gd1_mgmt_commit_op_req (XDR *, gd1_mgmt_commit_op_req*); extern bool_t xdr_gd1_mgmt_commit_op_rsp (XDR *, gd1_mgmt_commit_op_rsp*); +extern bool_t xdr_gd1_mgmt_friend_update (XDR *, gd1_mgmt_friend_update*); #else /* K&R C */ +extern bool_t xdr_glusterd_volume_status (); extern bool_t xdr_gd1_mgmt_probe_req (); extern bool_t xdr_gd1_mgmt_probe_rsp (); extern bool_t xdr_gd1_mgmt_friend_req (); @@ -147,6 +164,7 @@ extern bool_t xdr_gd1_mgmt_stage_op_req (); extern bool_t xdr_gd1_mgmt_stage_op_rsp (); extern bool_t xdr_gd1_mgmt_commit_op_req (); extern bool_t xdr_gd1_mgmt_commit_op_rsp (); +extern bool_t xdr_gd1_mgmt_friend_update (); #endif /* K&R C */ diff --git a/rpc/xdr/src/glusterd1.c b/rpc/xdr/src/glusterd1.c index 76ceea3fd..6b079f4f4 100644 --- a/rpc/xdr/src/glusterd1.c +++ b/rpc/xdr/src/glusterd1.c @@ -86,6 +86,13 @@ gd_xdr_to_mgmt_friend_req (struct iovec inmsg, void *args) } ssize_t +gd_xdr_to_mgmt_friend_update (struct iovec inmsg, void *args) +{ + return xdr_to_generic (inmsg, (void *)args, + (xdrproc_t)xdr_gd1_mgmt_friend_update); +} + +ssize_t gd_xdr_to_mgmt_cluster_lock_req (struct iovec inmsg, void *args) { return xdr_to_generic (inmsg, (void *)args, @@ -165,6 +172,14 @@ gd_xdr_from_mgmt_probe_req (struct iovec outmsg, void *req) } ssize_t +gd_xdr_from_mgmt_friend_update (struct iovec outmsg, void *req) +{ + return xdr_serialize_generic (outmsg, (void *)req, + (xdrproc_t)xdr_gd1_mgmt_friend_update); + +} + +ssize_t gd_xdr_from_mgmt_friend_req (struct iovec outmsg, void *req) { return xdr_serialize_generic (outmsg, (void *)req, diff --git a/rpc/xdr/src/glusterd1.h b/rpc/xdr/src/glusterd1.h index 44b1c5465..b4c4e3d71 100644 --- a/rpc/xdr/src/glusterd1.h +++ b/rpc/xdr/src/glusterd1.h @@ -98,4 +98,9 @@ gd_xdr_serialize_mgmt_commit_op_rsp (struct iovec outmsg, void *rsp); ssize_t gd_xdr_from_mgmt_commit_op_req (struct iovec outmsg, void *req); +ssize_t +gd_xdr_to_mgmt_friend_update (struct iovec outmsg, void *req); + +ssize_t +gd_xdr_from_mgmt_friend_update (struct iovec outmsg, void *req); #endif /* !_MSG_GD_XDR_H */ diff --git a/rpc/xdr/src/glusterd1.x b/rpc/xdr/src/glusterd1.x index 935fde4ef..f374ea4bf 100644 --- a/rpc/xdr/src/glusterd1.x +++ b/rpc/xdr/src/glusterd1.x @@ -1,3 +1,8 @@ + enum glusterd_volume_status { + GLUSTERD_STATUS_NONE = 0, + GLUSTERD_STATUS_STARTED, + GLUSTERD_STATUS_STOPPED +} ; struct gd1_mgmt_probe_req { unsigned char uuid[16]; @@ -81,7 +86,8 @@ struct gd1_mgmt_commit_op_rsp { int op_errno; } ; - - - - +struct gd1_mgmt_friend_update { + unsigned char uuid[16]; + unsigned char friend_uuid[16]; + string hostname<>; +} ; |