From Peter Johansson:

the supplied patch fixes a problem where the options value should really be used from the conversation found (using
conversation_lookup_hashtable(...) to create a new conversation based on the already stored conversation template (the CONVERSATION_TEMPLATE bit is set in the stored conversation) rather from the options argument passed to the function(s).

This solves a problem that otherwise shows itself where "DISSECTOR_ASSERT(!(conv->options & CONVERSATION_TEMPLATE) && "Use the conversation_create_from_template function when the CONVERSATION_TEMPLATE bit is set in the options mask");" fails sometimes.

svn path=/trunk/; revision=18825
This commit is contained in:
Anders Broman 2006-08-02 19:50:04 +00:00
parent b380600ab9
commit 6bdffa496e
1 changed files with 9 additions and 9 deletions

View File

@ -790,9 +790,9 @@ find_conversation(guint32 frame_num, address *addr_a, address *addr_b, port_type
* don't get packets in a given direction coming from more than one
* address, unless the CONVERSATION_TEMPLATE option is set.)
*/
if (!(options & NO_ADDR_B) && ptype != PT_UDP)
if (!(conversation->options & NO_ADDR_B) && ptype != PT_UDP)
{
if(!(options & CONVERSATION_TEMPLATE))
if(!(conversation->options & CONVERSATION_TEMPLATE))
{
conversation_set_addr2(conversation, addr_b);
}
@ -829,7 +829,7 @@ find_conversation(guint32 frame_num, address *addr_a, address *addr_b, port_type
* conversation.
*/
if (ptype != PT_UDP) {
if(!(options & CONVERSATION_TEMPLATE))
if(!(conversation->options & CONVERSATION_TEMPLATE))
{
conversation_set_addr2(conversation, addr_a);
}
@ -881,9 +881,9 @@ find_conversation(guint32 frame_num, address *addr_a, address *addr_b, port_type
* get packets in a given direction coming from more than one port,
* unless the CONVERSATION_TEMPLATE option is set.)
*/
if (!(options & NO_PORT_B) && ptype != PT_UDP)
if (!(conversation->options & NO_PORT_B) && ptype != PT_UDP)
{
if(!(options & CONVERSATION_TEMPLATE))
if(!(conversation->options & CONVERSATION_TEMPLATE))
{
conversation_set_port2(conversation, port_b);
}
@ -921,7 +921,7 @@ find_conversation(guint32 frame_num, address *addr_a, address *addr_b, port_type
*/
if (ptype != PT_UDP)
{
if(!(options & CONVERSATION_TEMPLATE))
if(!(conversation->options & CONVERSATION_TEMPLATE))
{
conversation_set_port2(conversation, port_a);
}
@ -963,11 +963,11 @@ find_conversation(guint32 frame_num, address *addr_a, address *addr_b, port_type
*/
if (ptype != PT_UDP)
{
if(!(options & CONVERSATION_TEMPLATE))
if(!(conversation->options & CONVERSATION_TEMPLATE))
{
if (!(options & NO_ADDR_B))
if (!(conversation->options & NO_ADDR_B))
conversation_set_addr2(conversation, addr_b);
if (!(options & NO_PORT_B))
if (!(conversation->options & NO_PORT_B))
conversation_set_port2(conversation, port_b);
}
else