diff options
Diffstat (limited to 'zebra/zserv.c')
| -rw-r--r-- | zebra/zserv.c | 17 |
1 files changed, 4 insertions, 13 deletions
diff --git a/zebra/zserv.c b/zebra/zserv.c index b08da9cebd..725cc9229c 100644 --- a/zebra/zserv.c +++ b/zebra/zserv.c @@ -640,7 +640,7 @@ static int zserv_handle_client_close(struct thread *thread) * sock * client's socket file descriptor */ -static void zserv_client_create(int sock) +static struct zserv *zserv_client_create(int sock) { struct zserv *client; int i; @@ -696,6 +696,8 @@ static void zserv_client_create(int sock) /* start pthread */ frr_pthread_run(client->pthread, NULL); + + return client; } /* @@ -1022,23 +1024,12 @@ DEFUN (show_zebra_client_summary, void zserv_read_file(char *input) { int fd; - struct zserv *client = NULL; struct thread t; - zserv_client_create(-1); - - frr_pthread_stop(client->pthread, NULL); - frr_pthread_destroy(client->pthread); - client->pthread = NULL; - - t.arg = client; - fd = open(input, O_RDONLY | O_NONBLOCK); t.u.fd = fd; - zserv_read(&t); - - close(fd); + zserv_client_create(fd); } #endif |
