X-Git-Url: https://git.tcpdump.org/tcpdump/blobdiff_plain/5d697464b483ef5a20bf14df470ce5c08ccfcc89..f58b1c21204c3fe61daff89c8e3bdec9bb44b6f0:/print-sip.c?ds=sidebyside diff --git a/print-sip.c b/print-sip.c index 48562f8c..540cbf42 100644 --- a/print-sip.c +++ b/print-sip.c @@ -13,48 +13,44 @@ * Original code by Hannes Gredler (hannes@juniper.net) */ -#ifndef lint -static const char rcsid[] _U_ = - "@(#) $Header: /tcpdump/master/tcpdump/print-sip.c,v 1.1 2004-07-27 17:04:20 hannes Exp $"; -#endif - +#define NETDISSECT_REWORKED #ifdef HAVE_CONFIG_H #include "config.h" #endif #include -#include -#include - #include "interface.h" #include "extract.h" -#include "udp.h" - void -sip_print(register const u_char *pptr, register u_int len) +sip_print(netdissect_options *ndo, + register const u_char *pptr, register u_int len) { u_int idx; - printf("SIP, length: %u%s", len, vflag ? "\n\t" : ""); + ND_PRINT((ndo, "SIP, length: %u%s", len, ndo->ndo_vflag ? "\n\t" : "")); /* in non-verbose mode just lets print the protocol and length */ - if (vflag < 1) + if (ndo->ndo_vflag < 1) return; for (idx = 0; idx < len; idx++) { + ND_TCHECK2(*(pptr+idx), 2); if (EXTRACT_16BITS(pptr+idx) != 0x0d0a) { /* linefeed ? */ - safeputchar(*(pptr+idx)); + safeputchar(ndo, *(pptr + idx)); } else { - printf("\n\t"); + ND_PRINT((ndo, "\n\t")); idx+=1; } } /* do we want to see an additionally hexdump ? */ - if (vflag> 1) - print_unknown_data(pptr,"\n\t",len); + if (ndo->ndo_vflag > 1) + print_unknown_data(ndo, pptr, "\n\t", len); return; + +trunc: + ND_PRINT((ndo, "[|sip]")); }