sizeof(state.header_str) - state.hs_len,
", class=%s",
classname_table[cls]);
+ if (state.hs_len >= sizeof(state.header_str) - 1) {
+ goto full;
+ }
}
- if (state.hs_len >= sizeof(state.header_str) - 1) {
- goto full;
+ if (debug_traceid_get() != 0) {
+ state.hs_len += snprintf(state.header_str + state.hs_len,
+ sizeof(state.header_str) - state.hs_len,
+ ", traceid=%" PRIu64,
+ debug_traceid_get());
+ if (state.hs_len >= sizeof(state.header_str) - 1) {
+ goto full;
+ }
}
+
state.header_str[state.hs_len] = ']';
state.hs_len++;
if (state.hs_len < sizeof(state.header_str) - 1) {
return ret;
}
+
+static uint64_t debug_traceid = 0;
+
+uint64_t debug_traceid_set(uint64_t id)
+{
+ uint64_t old_id = debug_traceid;
+ debug_traceid = id;
+ return old_id;
+}
+
+uint64_t debug_traceid_get(void)
+{
+ return debug_traceid;
+}
#ifndef _SAMBA_DEBUG_H
#define _SAMBA_DEBUG_H
+#include <stdint.h>
#include <stdbool.h>
#include <stddef.h>
#include <stdarg.h>
char *debug_get_ringbuf(void);
size_t debug_get_ringbuf_size(void);
+/* Explicitly set new traceid. The old id is returned. */
+uint64_t debug_traceid_set(uint64_t id);
+
+/* Get the current traceid. */
+uint64_t debug_traceid_get(void);
+
#endif /* _SAMBA_DEBUG_H */