void process_promisc(void* buf, uint16_t len) { char* buflen = (char*) buf + len; uint8_t hexdump_cols = 0; uint8_t offset = 0; // RAW packet for (char* ptr = buf; ptr < buflen; ptr++) printf("%c", *ptr); printf("\n\n"); // Hexdump (wireshark-friendly) for (char* ptr = buf; ptr < buflen; ptr++) { // print offset printf("%06X", offset); for (hexdump_cols=0; hexdump_cols < HEX_COLSIZE; hexdump_cols++) printf("%02X ", *ptr + hexdump_cols); offset = offset + HEX_COLSIZE; printf("\n"); } //free(buf); //free(buflen); printf("\n\n"); }