diff options
Diffstat (limited to 'print-sip.c')
| -rw-r--r-- | print-sip.c | 53 | 
1 files changed, 25 insertions, 28 deletions
diff --git a/print-sip.c b/print-sip.c index 540cbf424267..d0fd349f25e7 100644 --- a/print-sip.c +++ b/print-sip.c @@ -11,6 +11,8 @@   * FOR A PARTICULAR PURPOSE.   *   * Original code by Hannes Gredler (hannes@juniper.net) + * Turned into common "text protocol" code, which this uses, by + * Guy Harris.   */  #define NETDISSECT_REWORKED @@ -23,34 +25,29 @@  #include "interface.h"  #include "extract.h" +static const char *sipcmds[] = { +	"ACK", +	"BYE", +	"CANCEL", +	"DO", +	"INFO", +	"INVITE", +	"MESSAGE", +	"NOTIFY", +	"OPTIONS", +	"PRACK", +	"QAUTH", +	"REFER", +	"REGISTER", +	"SPRACK", +	"SUBSCRIBE", +	"UPDATE", +	"PUBLISH", +	NULL +}; +  void -sip_print(netdissect_options *ndo, -          register const u_char *pptr, register u_int len) +sip_print(netdissect_options *ndo, const u_char *pptr, u_int len)  { -    u_int idx; - -    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 (ndo->ndo_vflag < 1) -        return; - -    for (idx = 0; idx < len; idx++) { -        ND_TCHECK2(*(pptr+idx), 2); -        if (EXTRACT_16BITS(pptr+idx) != 0x0d0a) { /* linefeed ? */ -            safeputchar(ndo, *(pptr + idx)); -        } else { -            ND_PRINT((ndo, "\n\t")); -            idx+=1; -        } -    } - -    /* do we want to see an additionally hexdump ? */ -    if (ndo->ndo_vflag > 1) -        print_unknown_data(ndo, pptr, "\n\t", len); - -    return; - -trunc: -    ND_PRINT((ndo, "[|sip]")); +	txtproto_print(ndo, pptr, len, "sip", sipcmds, RESP_CODE_SECOND_TOKEN);  }  | 
