summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--zebra/zserv.c15
-rw-r--r--zebra/zserv.h2
2 files changed, 17 insertions, 0 deletions
diff --git a/zebra/zserv.c b/zebra/zserv.c
index b7e45d8df1..a92efa027f 100644
--- a/zebra/zserv.c
+++ b/zebra/zserv.c
@@ -2371,6 +2371,21 @@ zebra_show_client_brief (struct vty *vty, struct zserv *client)
}
+struct zserv *
+zebra_find_client (u_char proto)
+{
+ struct listnode *node, *nnode;
+ struct zserv *client;
+
+ for (ALL_LIST_ELEMENTS (zebrad.client_list, node, nnode, client))
+ {
+ if (client->proto == proto)
+ return client;
+ }
+
+ return NULL;
+}
+
/* Display default rtm_table for all clients. */
DEFUN (show_table,
diff --git a/zebra/zserv.h b/zebra/zserv.h
index a0434d299b..d17a28eb6a 100644
--- a/zebra/zserv.h
+++ b/zebra/zserv.h
@@ -176,4 +176,6 @@ extern void zserv_create_header(struct stream *s, uint16_t cmd, vrf_id_t vrf_id)
extern void zserv_nexthop_num_warn(const char *, const struct prefix *, const unsigned int);
extern int zebra_server_send_message(struct zserv *client);
+extern struct zserv *zebra_find_client (u_char proto);
+
#endif /* _ZEBRA_ZEBRA_H */