summaryrefslogtreecommitdiff
path: root/zebra/zserv.c
diff options
context:
space:
mode:
Diffstat (limited to 'zebra/zserv.c')
-rw-r--r--zebra/zserv.c17
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