<div dir="ltr"><div><div><div>And I've found the root cause of the problem. Basically it's this code in src/preprocessors/spp_stream5.c:<br><br>static void Stream5RegisterXtraDataLog(LogExtraData f, void *config)<br>
{<br>    extra_data_log = f;<br>    extra_data_config = config;<br>}<br><br></div>Basically, the way this code is written there can only be a single output plugin that gets the extra data. And it will be the last plugin that calls this function to register itself.<br>
<br></div>The registration happens in src/output-plugins/spo_unified2.c:Unified2PostConfig() so happens for any unified2 output, no matter how you configure it.<br><br></div>I noticed this because there was data being logged to the snort.testing.u2 logfile even though no rules matched. What happens is that the extra data will always be logged to the *last* custom ruletype that defines a unified2 output. Because of the way ConfigureOutputPlugins() is written there is no way to give priority to the main output plugins.<br>
<br><div class="gmail_extra">Basically, I think the way this is done is wrong and the extra data callback should be handled the same as the output plugins and should be stored in the ListHead. That's the only way to ensure that the extra data ends up in the same file as the alert and packet.<br clear="all">
</div><div class="gmail_extra"><br></div><div class="gmail_extra">Hope this makes everything clearer.<br></div><div class="gmail_extra">-- <br>Martijn van Oosterhout <<a href="mailto:kleptog@...2499...">kleptog@...1067...2499...</a>> <a href="http://svana.org/kleptog/">http://svana.org/kleptog/</a>
</div></div>