diff options
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 c4fc12a7042..5b6a2c349f7 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 5cce70fa67f..832f762ecdb 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 81948b34aac..56dbef091f3 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 008353b9fcd..65252e3c306 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 ab67084de94..73f9f8d7b41 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 a8af1b7d658..41f43a4855b 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 32e6687c866..3ad32d94889 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 ee5fb9c7db3..2fab3fd3b81 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 76ceea3fda9..6b079f4f450 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 44b1c546502..b4c4e3d71d6 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 935fde4ef1b..f374ea4bff8 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<>; +} ;  | 
