/* Find or possibly create a peer conversation object for the connection which is associated with the packet info. */
static conversation_t * get_peer_conversation(packet_info *pinfo, jxta_stream_conversation_data *tpt_conv_data, gboolean create)
/* Find or possibly create a peer conversation object for the connection which is associated with the packet info. */
static conversation_t * get_peer_conversation(packet_info *pinfo, jxta_stream_conversation_data *tpt_conv_data, gboolean create)
{
    conversation_t * peer_conversation = NULL;
    if ((AT_NONE != tpt_conv_data->initiator_address.type) && (AT_NONE != tpt_conv_data->receiver_address.type)) {
        peer_conversation = find_conversation(pinfo->num, &tpt_conv_data->initiator_address, &tpt_conv_data->receiver_address,
                                               PT_NONE, 0, 0, NO_PORT_B);
        if (create && (NULL == peer_conversation)) {
            peer_conversation = conversation_new(pinfo->num, &tpt_conv_data->initiator_address,
                                                  &tpt_conv_data->receiver_address, PT_NONE, 0, 0, NO_PORT_B);
            conversation_set_dissector(peer_conversation, stream_jxta_handle);
        }
    }
    return peer_conversation;
}