diff --git a/src/shared/mgmt.c b/src/shared/mgmt.c
index c7e6a6c..cf518cc 100644
--- a/src/shared/mgmt.c
+++ b/src/shared/mgmt.c
mgmt_debug_func_t debug_callback;
mgmt_destroy_func_t debug_destroy;
void *debug_data;
+ bool verbose;
};
struct mgmt_request {
va_end(ap);
}
+static void mgmt_hexdump(struct mgmt *mgmt, char dir, const void *data,
+ size_t len)
+{
+ if (!mgmt->verbose)
+ return;
+
+ util_hexdump(dir, data, len, mgmt->debug_callback, mgmt->debug_data);
+}
+
static bool send_request(struct mgmt *mgmt, struct mgmt_request *request)
{
struct iovec iov;
DBG(mgmt, "[0x%04x] command 0x%04x", request->index, request->opcode);
- util_hexdump('<', request->buf, ret, mgmt->debug_callback,
- mgmt->debug_data);
+ mgmt_hexdump(mgmt, '<', request->buf, ret);
queue_push_tail(mgmt->pending_list, request);
if (bytes_read < 0)
return false;
- util_hexdump('>', mgmt->buf, bytes_read,
- mgmt->debug_callback, mgmt->debug_data);
+ mgmt_hexdump(mgmt, '>', mgmt->buf, bytes_read);
if (bytes_read < MGMT_HDR_SIZE)
return true;
return true;
}
+void mgmt_set_verbose(struct mgmt *mgmt, bool value)
+{
+ if (!mgmt)
+ return;
+
+ mgmt->verbose = value;
+}
+
bool mgmt_set_close_on_unref(struct mgmt *mgmt, bool do_close)
{
if (!mgmt)
diff --git a/src/shared/mgmt.h b/src/shared/mgmt.h
index b413cea..0f3e54c 100644
--- a/src/shared/mgmt.h
+++ b/src/shared/mgmt.h
bool mgmt_set_debug(struct mgmt *mgmt, mgmt_debug_func_t callback,
void *user_data, mgmt_destroy_func_t destroy);
+void mgmt_set_verbose(struct mgmt *mgmt, bool value);
bool mgmt_set_close_on_unref(struct mgmt *mgmt, bool do_close);