]> git.ozlabs.org Git - ppp.git/blobdiff - pppd/plugins/pppoe/common.c
pppoe: Do not use %.*v and %.*B formats which are unsupported by C printf()
[ppp.git] / pppd / plugins / pppoe / common.c
index 9140ea90cbee2d8d2cda656157f8505b09ae8910..f57d9de3d0e31d95bd38ca25d835ad7388e3f559 100644 (file)
@@ -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, "]");
     }