[sheepdog] [PATCH v3 1/2] move node_to_str() and str_to_node() from sheep/cluster.h to include/internal_proto.h
MORITA Kazutaka
morita.kazutaka at lab.ntt.co.jp
Fri Nov 16 09:28:38 CET 2012
At Wed, 14 Nov 2012 15:44:07 +0900,
Hitoshi Mitake wrote:
>
> sheepkeeper uses node_to_str() and str_to_node(), so they should be
> moved to the header which can be included by other directories of
> sheep/.
>
> Signed-off-by: Hitoshi Mitake <mitake.hitoshi at lab.ntt.co.jp>
> ---
> include/internal_proto.h | 41 +++++++++++++++++++++++++++++++++++++++++
> sheep/cluster.h | 40 ----------------------------------------
> 2 files changed, 41 insertions(+), 40 deletions(-)
>
> diff --git a/include/internal_proto.h b/include/internal_proto.h
> index a45b818..722fab0 100644
> --- a/include/internal_proto.h
> +++ b/include/internal_proto.h
> @@ -19,6 +19,7 @@
>
> #include <stdint.h>
> #include "sheepdog_proto.h"
The current master doesn't contain this line. Please rebase before
sending patches.
Thanks,
Kazutaka
> +#include "net.h"
>
> #define SD_SHEEP_PROTO_VER 0x06
>
> @@ -223,4 +224,44 @@ struct vdi_op_message {
> uint8_t data[0];
> };
>
> +static inline char *node_to_str(const struct sd_node *id)
> +{
> + static char str[256];
> + char name[256];
> + int af = AF_INET6;
> + const uint8_t *addr = id->nid.addr;
> +
> + /* Find address family type */
> + if (addr[12]) {
> + int oct_no = 0;
> + while (!addr[oct_no] && oct_no++ < 12)
> + ;
> + if (oct_no == 12)
> + af = AF_INET;
> + }
> +
> + snprintf(str, sizeof(str), "%s ip:%s port:%d",
> + (af == AF_INET) ? "IPv4" : "IPv6",
> + addr_to_str(name, sizeof(name), id->nid.addr, 0), id->nid.port);
> +
> + return str;
> +}
> +
> +static inline struct sd_node *str_to_node(const char *str, struct sd_node *id)
> +{
> + int port, af = AF_INET6;
> + char v[8], ip[256];
> +
> + sscanf(str, "%s ip:%s port:%d", v, ip, &port);
> + id->nid.port = port;
> +
> + if (strcmp(v, "IPv4") == 0)
> + af = AF_INET;
> +
> + if (!str_to_addr(af, ip, id->nid.addr))
> + return NULL;
> +
> + return id;
> +}
> +
> #endif /* __INTERNAL_PROTO_H__ */
> diff --git a/sheep/cluster.h b/sheep/cluster.h
> index 2679c19..aa0ede6 100644
> --- a/sheep/cluster.h
> +++ b/sheep/cluster.h
> @@ -153,46 +153,6 @@ static inline const char *get_cdrv_option(const struct cluster_driver *cdrv,
> return NULL;
> }
>
> -static inline char *node_to_str(const struct sd_node *id)
> -{
> - static char str[256];
> - char name[256];
> - int af = AF_INET6;
> - const uint8_t *addr = id->nid.addr;
> -
> - /* Find address family type */
> - if (addr[12]) {
> - int oct_no = 0;
> - while (!addr[oct_no] && oct_no++ < 12)
> - ;
> - if (oct_no == 12)
> - af = AF_INET;
> - }
> -
> - snprintf(str, sizeof(str), "%s ip:%s port:%d",
> - (af == AF_INET) ? "IPv4" : "IPv6",
> - addr_to_str(name, sizeof(name), id->nid.addr, 0), id->nid.port);
> -
> - return str;
> -}
> -
> -static inline struct sd_node *str_to_node(const char *str, struct sd_node *id)
> -{
> - int port, af = AF_INET6;
> - char v[8], ip[256];
> -
> - sscanf(str, "%s ip:%s port:%d", v, ip, &port);
> - id->nid.port = port;
> -
> - if (strcmp(v, "IPv4") == 0)
> - af = AF_INET;
> -
> - if (!str_to_addr(af, ip, id->nid.addr))
> - return NULL;
> -
> - return id;
> -}
> -
> /* callbacks back into sheepdog from the cluster drivers */
> void sd_join_handler(const struct sd_node *joined,
> const struct sd_node *members,
> --
> 1.7.2.5
>
> --
> sheepdog mailing list
> sheepdog at lists.wpkg.org
> http://lists.wpkg.org/mailman/listinfo/sheepdog
More information about the sheepdog
mailing list