Esempio n. 1
0
void printGPktPayload(gpacket_t *msg, int level)
{
	int prot;

	prot = printEthernetHeader(msg);
	switch (prot)
	{
	case IP_PROTOCOL:
		prot = printIPPacket(msg);
		switch (prot)
		{
		case ICMP_PROTOCOL:
			printICMPPacket(msg);
			break;
		case UDP_PROTOCOL:
			printUDPPacket(msg);
		case TCP_PROTOCOL:
			printTCPPacket(msg);
		}
		break;
	case ARP_PROTOCOL:
		printARPPacket(msg);
		break;
	default:
		// ignore other cases for now!
		break;
	}
}
Esempio n. 2
0
File: trace.c Progetto: Drin/Brain
void dataFrameHandler(u_char *handlerParams, const struct pcap_pkthdr *header, const u_char *data) {
   struct ethernetHeader *ethHdr;
   static int packetNum = 0;

   ethHdr = (struct ethernetHeader *)(data);

   fprintf(stdout, "\nPacket number: %d  Packet Len: %d\n\n", ++packetNum, header->len);

   printEthernetHeader(ethHdr);

   switch (ntohs(ethHdr->segmentType)) {
      case 0x0800:
         parseIpSegment(data + sizeof(struct ethernetHeader));
         break;
      case 0x806:
         parseArpSegment(data + sizeof(struct ethernetHeader));
         break;
      default:
         break;
   }
}