@@ -94,7 +94,9 @@ static int format_rfc5424(Manager *m,
9494 const char * message ,
9595 const char * hostname ,
9696 const char * pid ,
97- const struct timeval * tv ) {
97+ const struct timeval * tv ,
98+ const char * syslog_structured_data ,
99+ const char * syslog_msgid ) {
98100
99101 char header_time [FORMAT_TIMESTAMP_MAX ];
100102 char header_priority [sizeof ("< >1 " )];
@@ -140,12 +142,18 @@ static int format_rfc5424(Manager *m,
140142 IOVEC_SET_STRING (iov [n ++ ], " " );
141143
142144 /* Seventh: msgid */
143- IOVEC_SET_STRING (iov [n ++ ], RFC_5424_NILVALUE );
145+ if (syslog_msgid )
146+ IOVEC_SET_STRING (iov [n ++ ], syslog_msgid );
147+ else
148+ IOVEC_SET_STRING (iov [n ++ ], RFC_5424_NILVALUE );
149+
144150 IOVEC_SET_STRING (iov [n ++ ], " " );
145151
146152 /* Eighth: [structured-data] */
147153 if (m -> structured_data )
148154 IOVEC_SET_STRING (iov [n ++ ], m -> structured_data );
155+ else if (syslog_structured_data )
156+ IOVEC_SET_STRING (iov [n ++ ], syslog_structured_data );
149157 else
150158 IOVEC_SET_STRING (iov [n ++ ], RFC_5424_NILVALUE );
151159
@@ -238,7 +246,9 @@ int manager_push_to_network(Manager *m,
238246 const char * message ,
239247 const char * hostname ,
240248 const char * pid ,
241- const struct timeval * tv ) {
249+ const struct timeval * tv ,
250+ const char * syslog_structured_data ,
251+ const char * syslog_msgid ) {
242252
243253 int r ;
244254
@@ -248,7 +258,7 @@ int manager_push_to_network(Manager *m,
248258 return 0 ;
249259
250260 if (m -> log_format == SYSLOG_TRANSMISSION_LOG_FORMAT_RFC_5424 )
251- r = format_rfc5424 (m , severity , facility , identifier , message , hostname , pid , tv );
261+ r = format_rfc5424 (m , severity , facility , identifier , message , hostname , pid , tv , syslog_structured_data , syslog_msgid );
252262 else
253263 r = format_rfc3339 (m , severity , facility , identifier , message , hostname , pid , tv );
254264
0 commit comments