[OpenAFS-devel] ethereal 0.10.12 AFS "conversation" broken

Harald Barth haba@pdc.kth.se
Thu, 20 Oct 2005 00:37:42 +0200 (MEST)


Ethereal 0.10.12 seems to dribble away itself at times when it tries
to follow what is a "conversation" or stream. I have a capture which
makes ethereal show different data for the same packet in its 2nd and
3rd subwindow. My patch disables all "conversation" guessing in the
code. After that the broken packet in my capture shows as a such. Of
course it would be better to fix the conversation functionality
instead of just turning it off. So take a stab at it if you want. It
is probably a bit more tricky for AFS than the original author aqqqof
the code expected. Addition of more opcodes should not hurt either ;-)

Anyone on this list involved with "ethereal devel"?

Harald.

--- epan/dissectors/packet-afs.c.orig   2005-07-26 21:26:42.000000000 +0200
+++ epan/dissectors/packet-afs.c        2005-10-20 00:00:49.000000000 +0200
@@ -216,6 +216,7 @@
         * packets from A:X to B:Y as being part of the same conversation as
         * packets from B:Y to A:X.
         */
+#if 0
        conversation = find_conversation(pinfo->fd->num, &pinfo->src, &pinfo->dst, pinfo->ptype,
            pinfo->srcport, pinfo->destport, 0);
        if (conversation == NULL) {
@@ -256,7 +257,18 @@
        if ( request_val ) {
                opcode = request_val->opcode;
        }
+#else
 
+       new_request_key = g_mem_chunk_alloc(afs_request_keys);
+       *new_request_key = request_key;
+       request_val = g_mem_chunk_alloc(afs_request_vals);
+       opcode = request_val -> opcode = tvb_get_ntohl(tvb, offset);
+       request_val -> req_num = pinfo->fd->num;
+       request_val -> rep_num = 0;
+       request_val -> req_time.secs=pinfo->fd->abs_secs;
+       request_val -> req_time.nsecs=pinfo->fd->abs_usecs*1000;
+
+#endif
 
        node = 0;
        typenode = 0;