- uint8_t *str = malloc((datalen << 1) + 7);
- if(!str) {
- debug("out of memory");
- return;
- }
- memcpy(str, " data=", 6);
- uint8_t *strptr = str + 6;
- const uint8_t *data = pkt;
- const uint8_t *dataend = data + datalen;
-
- while(data != dataend) {
- *strptr = (*data >> 4) > 9? (*data >> 4) + 55 : (*data >> 4) + 48;
- ++strptr;
- *strptr = (*data & 0xf) > 9? (*data & 0xf) + 55 : (*data & 0xf) + 48;
- ++strptr;
- ++data;
+ const uint8_t *data = (uint8_t *)pkt + sizeof hdr;
+ char str[datalen * 2 + 1];
+ char *p = str;
+
+ for(uint32_t i = 0; i < datalen; i++) {
+ *p++ = "0123456789ABCDEF"[data[i] >> 4];
+ *p++ = "0123456789ABCDEF"[data[i] & 15];