zebra: fix zapi fuzzing infra

Some of this stuff got broken with the introduction of pthreads.

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
This commit is contained in:
Quentin Young 2018-07-18 16:32:07 +00:00
parent bf03267495
commit 2875801fa3
2 changed files with 12 additions and 19 deletions

View File

@ -349,13 +349,6 @@ int main(int argc, char **argv)
/* For debug purpose. */
/* SET_FLAG (zebra_debug_event, ZEBRA_DEBUG_EVENT); */
#if defined(HANDLE_ZAPI_FUZZING)
if (fuzzing) {
zserv_read_file(fuzzing);
exit(0);
}
#endif
/* Process the configuration file. Among other configuration
* directives we can meet those installing static routes. Such
* requests will not be executed immediately, but queued in
@ -391,6 +384,14 @@ int main(int argc, char **argv)
/* RNH init */
zebra_rnh_init();
#if defined(HANDLE_ZAPI_FUZZING)
if (fuzzing) {
zserv_read_file(fuzzing);
exit(0);
}
#endif
frr_run(zebrad.master);
/* Not reached... */

View File

@ -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;
}
/*
@ -1025,20 +1027,10 @@ void zserv_read_file(char *input)
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