The DCCP service code is a u32 in network byte order.  The current DCCP code
does not call htonl() or equivalent.

Fix attached.

---

diff -crN tcpdump/print-dccp.c tcpdump-sorbo/print-dccp.c
*** tcpdump/print-dccp.c        Mon Dec  5 21:36:24 2005
--- tcpdump-sorbo/print-dccp.c  Wed Jan 25 10:34:50 2006
***************
*** 312,318 ****
                struct dccp_hdr_request *dhr =
                        (struct dccp_hdr_request *)(bp + 
dccp_basic_hdr_len(dh));
                TCHECK(*dhr);
!               (void)printf("request (service=%d) ", dhr->dccph_req_service);
                extlen += 4;
                break;
        }
--- 312,319 ----
                struct dccp_hdr_request *dhr =
                        (struct dccp_hdr_request *)(bp + 
dccp_basic_hdr_len(dh));
                TCHECK(*dhr);
!               (void)printf("request (service=%d) ",
!                            EXTRACT_32BITS(&dhr->dccph_req_service));
                extlen += 4;
                break;
        }
***************
*** 320,326 ****
                struct dccp_hdr_response *dhr =
                        (struct dccp_hdr_response *)(bp + 
dccp_basic_hdr_len(dh));
                TCHECK(*dhr);
!               (void)printf("response (service=%d) ", dhr->dccph_resp_service);
                extlen += 12;
                break;
        }
--- 321,328 ----
                struct dccp_hdr_response *dhr =
                        (struct dccp_hdr_response *)(bp + 
dccp_basic_hdr_len(dh));
                TCHECK(*dhr);
!               (void)printf("response (service=%d) ",
!                            EXTRACT_32BITS(&dhr->dccph_resp_service));
                extlen += 12;
                break;
        }
-
This is the tcpdump-workers list.
Visit https://lists.sandelman.ca/ to unsubscribe.

Reply via email to