diff options
-rw-r--r-- | zebra/zapi_msg.c | 3 | ||||
-rw-r--r-- | zebra/zserv.c | 7 | ||||
-rw-r--r-- | zebra/zserv.h | 16 |
3 files changed, 21 insertions, 5 deletions
diff --git a/zebra/zapi_msg.c b/zebra/zapi_msg.c index f31fb53a3..7f6af8201 100644 --- a/zebra/zapi_msg.c +++ b/zebra/zapi_msg.c @@ -2507,6 +2507,9 @@ void zserv_handle_commands(struct zserv *client, struct stream *msg) zapi_parse_header(msg, &hdr); + if (IS_ZEBRA_DEBUG_PACKET && IS_ZEBRA_DEBUG_RECV) + zserv_log_message(NULL, msg, &hdr); + #if defined(HANDLE_ZAPI_FUZZING) zserv_write_incoming(msg, hdr.command); #endif diff --git a/zebra/zserv.c b/zebra/zserv.c index df5f236c0..e7b0a2302 100644 --- a/zebra/zserv.c +++ b/zebra/zserv.c @@ -149,8 +149,8 @@ static void zserv_event(struct zserv *client, enum zserv_event event); * hdr (optional) * The message header */ -static void zserv_log_message(const char *errmsg, struct stream *msg, - struct zmsghdr *hdr) +void zserv_log_message(const char *errmsg, struct stream *msg, + struct zmsghdr *hdr) { zlog_debug("Rx'd ZAPI message"); if (errmsg) @@ -411,9 +411,6 @@ static int zserv_read(struct thread *thread) hdr.vrf_id, hdr.length, sock); - if (IS_ZEBRA_DEBUG_PACKET && IS_ZEBRA_DEBUG_RECV) - zserv_log_message(NULL, client->ibuf_work, &hdr); - stream_set_getp(client->ibuf_work, 0); struct stream *msg = stream_dup(client->ibuf_work); diff --git a/zebra/zserv.h b/zebra/zserv.h index 90fd19571..380f23916 100644 --- a/zebra/zserv.h +++ b/zebra/zserv.h @@ -240,6 +240,22 @@ extern struct zserv *zserv_find_client(uint8_t proto, unsigned short instance); */ extern void zserv_close_client(struct zserv *client); + +/* + * Log a ZAPI message hexdump. + * + * errmsg + * Error message to include with packet hexdump + * + * msg + * Message to log + * + * hdr + * Message header + */ +void zserv_log_message(const char *errmsg, struct stream *msg, + struct zmsghdr *hdr); + #if defined(HANDLE_ZAPI_FUZZING) extern void zserv_read_file(char *input); #endif |