]> The Tcpdump Group git mirrors - tcpdump/blobdiff - print-sip.c
NDOize EAP, IEEE CFM, lwres, SIP & Syslog decoders
[tcpdump] / print-sip.c
index 71d1bc3434539c86276bf11e9a82d96c7a191fe4..540cbf424267b0d16ab57aeb6a60706ca165a2c6 100644 (file)
  * Original code by Hannes Gredler ([email protected])
  */
 
+#define NETDISSECT_REWORKED
 #ifdef HAVE_CONFIG_H
 #include "config.h"
 #endif
 
 #include <tcpdump-stdinc.h>
 
-#include <stdio.h>
-#include <stdlib.h>
-
 #include "interface.h"
 #include "extract.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++) {
-        TCHECK2(*(pptr+idx), 2);
+        ND_TCHECK2(*(pptr+idx), 2);
         if (EXTRACT_16BITS(pptr+idx) != 0x0d0a) { /* linefeed ? */
-            safeputchar(gndo, *(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(gndo,pptr,"\n\t",len);
+    if (ndo->ndo_vflag > 1)
+        print_unknown_data(ndo, pptr, "\n\t", len);
 
     return;
 
 trunc:
-    printf("[|sip]");
+    ND_PRINT((ndo, "[|sip]"));
 }