static void debug_systemd_log(int msg_level, const char *msg, size_t msg_len)
{
if (state.hs_len > 0) {
- ensure_copy_no_nl(state.header_str_no_nl,
- sizeof(state.header_str_no_nl),
- state.header_str,
- state.hs_len);
- sd_journal_send("MESSAGE=%s",
- state.header_str_no_nl,
+ size_t len = state.hs_len;
+
+ if (state.header_str[len - 1] == '\n') {
+ len -= 1;
+ }
+
+ sd_journal_send("MESSAGE=%.*s",
+ (int)len,
+ state.header_str,
"PRIORITY=%d",
debug_level_to_priority(msg_level),
"LEVEL=%d",
msg_level,
NULL);
}
- ensure_copy_no_nl(state.msg_no_nl,
- sizeof(state.msg_no_nl),
- msg, msg_len);
- sd_journal_send("MESSAGE=%s", state.msg_no_nl,
- "PRIORITY=%d", debug_level_to_priority(msg_level),
- "LEVEL=%d", msg_level,
+
+ if ((msg_len > 0) && (msg[msg_len - 1] == '\n')) {
+ msg_len -= 1;
+ }
+
+ sd_journal_send("MESSAGE=%.*s",
+ (int)msg_len,
+ msg,
+ "PRIORITY=%d",
+ debug_level_to_priority(msg_level),
+ "LEVEL=%d",
+ msg_level,
NULL);
}
#endif