#define HEXDUMP_HEXSTUFF_PER_LINE \
(HEXDUMP_HEXSTUFF_PER_SHORT * HEXDUMP_SHORTS_PER_LINE)
+static void hex_and_ascii_print_with_offset(netdissect_options *, const char *, const u_char *, u_int, u_int);
+
void
ascii_print(netdissect_options *ndo,
const u_char *cp, u_int length)
u_int caplength;
u_char s;
- caplength = (ndo->ndo_snapend >= cp) ? ndo->ndo_snapend - cp : 0;
+ ndo->ndo_protocol = "ascii";
+ caplength = (ndo->ndo_snapend > cp) ? ndo->ndo_snapend - cp : 0;
if (length > caplength)
length = caplength;
ND_PRINT("\n");
}
}
-void
+static void
hex_and_ascii_print_with_offset(netdissect_options *ndo, const char *ident,
const u_char *cp, u_int length, u_int oset)
{
char hexstuff[HEXDUMP_SHORTS_PER_LINE*HEXDUMP_HEXSTUFF_PER_SHORT+1], *hsp;
char asciistuff[ASCII_LINELENGTH+1], *asp;
- caplength = (ndo->ndo_snapend >= cp) ? ndo->ndo_snapend - cp : 0;
+ caplength = (ndo->ndo_snapend > cp) ? ndo->ndo_snapend - cp : 0;
if (length > caplength)
length = caplength;
nshorts = length / sizeof(u_short);
cp++;
s2 = EXTRACT_U_1(cp);
cp++;
- (void)snprintf(hsp, sizeof(hexstuff) - (hsp - hexstuff),
+ (void)nd_snprintf(hsp, sizeof(hexstuff) - (hsp - hexstuff),
" %02x%02x", s1, s2);
hsp += HEXDUMP_HEXSTUFF_PER_SHORT;
*(asp++) = (ND_ISGRAPH(s1) ? s1 : '.');
if (length & 1) {
s1 = EXTRACT_U_1(cp);
cp++;
- (void)snprintf(hsp, sizeof(hexstuff) - (hsp - hexstuff),
+ (void)nd_snprintf(hsp, sizeof(hexstuff) - (hsp - hexstuff),
" %02x", s1);
hsp += 3;
*(asp++) = (ND_ISGRAPH(s1) ? s1 : '.');
u_int i, s;
int nshorts;
- caplength = (ndo->ndo_snapend >= cp) ? ndo->ndo_snapend - cp : 0;
+ caplength = (ndo->ndo_snapend > cp) ? ndo->ndo_snapend - cp : 0;
if (length > caplength)
length = caplength;
nshorts = (u_int) length / sizeof(u_short);