This is a preparation patch. Currently we don't have a way of enumerating entire information of clients. This patch adds a single list for doing it.
Signed-off-by: Hitoshi Mitake <mitake.hito...@lab.ntt.co.jp> --- sheep/request.c | 6 ++++++ sheep/sheep_priv.h | 2 ++ 2 files changed, 8 insertions(+), 0 deletions(-) diff --git a/sheep/request.c b/sheep/request.c index e0aa4d5..6a6b61f 100644 --- a/sheep/request.c +++ b/sheep/request.c @@ -885,6 +885,7 @@ static void destroy_client(struct client_info *ci) { sd_debug("connection from: %s:%d", ci->conn.ipstr, ci->conn.port); close(ci->conn.fd); + list_del(&ci->list); free(ci); } @@ -910,6 +911,8 @@ static void clear_client_info(struct client_info *ci) destroy_client(ci); } +static LIST_HEAD(client_list); + static struct client_info *create_client(int fd, struct cluster_info *cluster) { struct client_info *ci; @@ -944,6 +947,9 @@ static struct client_info *create_client(int fd, struct cluster_info *cluster) INIT_LIST_HEAD(&ci->done_reqs); + INIT_LIST_NODE(&ci->list); + list_add_tail(&ci->list, &client_list); + return ci; } diff --git a/sheep/sheep_priv.h b/sheep/sheep_priv.h index 2c106ee..fdf07e0 100644 --- a/sheep/sheep_priv.h +++ b/sheep/sheep_priv.h @@ -75,6 +75,8 @@ struct client_info { struct list_head done_reqs; refcnt_t refcnt; + + struct list_node list; }; enum REQUST_STATUS { -- 1.7.1 -- sheepdog mailing list sheepdog@lists.wpkg.org http://lists.wpkg.org/mailman/listinfo/sheepdog