X-Git-Url: https://git.ozlabs.org/?a=blobdiff_plain;f=pppd%2Fplugins%2Fpppoe%2Fcommon.c;h=f57d9de3d0e31d95bd38ca25d835ad7388e3f559;hb=8a244973b319be723a6e817dd123b558f528d6c9;hp=9140ea90cbee2d8d2cda656157f8505b09ae8910;hpb=379943e12ea96f9133f3765e5c36c3405babada2;p=ppp.git diff --git a/pppd/plugins/pppoe/common.c b/pppd/plugins/pppoe/common.c index 9140ea9..f57d9de 100644 --- a/pppd/plugins/pppoe/common.c +++ b/pppd/plugins/pppoe/common.c @@ -203,7 +203,7 @@ void pppoe_printpkt(PPPoEPacket *packet, void (*printer)(void *, char *, ...), void *arg) { int len = ntohs(packet->length); - int i, tag, tlen, text; + int i, j, tag, tlen, text; switch (ntohs(packet->ethHdr.h_proto)) { case ETH_PPPOE_DISCOVERY: @@ -300,12 +300,13 @@ void pppoe_printpkt(PPPoEPacket *packet, } if (tlen) { if (text) - printer(arg, " %.*v", tlen, &packet->payload[i]); - else if (tlen <= 32) - printer(arg, " %.*B", tlen, &packet->payload[i]); - else - printer(arg, " %.32B... (length %d)", - &packet->payload[i], tlen); + printer(arg, " %.*s", tlen, &packet->payload[i]); + else { + for (j = 0; j < tlen && j < 32; j++) + printer(arg, " %02x", (unsigned) *(&packet->payload[i]+j)); + if (j < tlen) + printer(arg, "... (length %d)", tlen); + } } printer(arg, "]"); }