Esempio n. 1
0
static void tcpdump(uint8_t *pkt, uint16_t len) {
	char prt[41];

	if (((struct uip_eth_hdr *)pkt)->type == UIP_HTONS(UIP_ETHTYPE_IP)) {
		tcpdump_format(pkt + 14, len - 14, prt, sizeof(prt));
		printf_P(PSTR("%s\n"), prt);
	}
	else if (((struct uip_eth_hdr *)pkt)->type == UIP_HTONS(UIP_ETHTYPE_ARP)) {
		printf_P(PSTR("ARP\n"));
	}
	else {
		printf_P(PSTR("Ethertype: %04x\n"),
			uip_ntohs(((struct uip_eth_hdr *)pkt)->type));
	}

#if TCPDUMP_RAWPKT
	for (uint8_t i = 0; i < 64; i++) {
		if (i >= len) {
			printf_P(PSTR("**"));
			break;
		}
		printf("%02x ", *(pkt + i));
		if ((i > 0) && !((i + 1) % 4)) {
			printf_P(PSTR(" "));
		}
	}
	printf("\n");
#endif
}
Esempio n. 2
0
/*---------------------------------------------------------------------------*/
static void
print_packet(uint8_t *packet, int len)
{
  char buf[2000];
  if(should_print) {
    tcpdump_format(packet, len, buf, sizeof(buf));
    printf("%s\n", buf);
  }
}
Esempio n. 3
0
/*---------------------------------------------------------------------------*/
static void
print_packet(char* prefix, uint8_t *packet, int len)
{
  char buf[2000];
  if(should_print) {
    tcpdump_format(packet, len, buf, sizeof(buf));
    fprintf(stderr, "%s: %s\n", prefix, buf);
  }
}