예제 #1
0
파일: cbridge.c 프로젝트: dpiponi/Moodler
void myReadProc(const MIDIPacketList *packetList, void* readProcRefCon,
      void* srcConnRefCon) {
   MIDIPacket *packet = (MIDIPacket*)packetList->packet;
   int i, j;
   int count = packetList->numPackets;
   for (j=0; j<count; j++) {
      printPacketInfo(packet);
      packet = MIDIPacketNext(packet);
   }
}
예제 #2
0
파일: tunMon.c 프로젝트: origliante/natax
void processPacket(char *p)
{
	struct iphdr *ip = (struct iphdr *)(p + 4); // skip 4 tun info bytes

	if (isNewConnection(ip))
		printPacketInfo(ip);
	free(p);

	return;
}
예제 #3
0
void printIpPacketInfo(struct ip_packet *pkt, struct sockaddr_storage *saddr) {
    if (pkt == NULL) {
        fprintf(stderr, "Unable to print info for null packet\n");
        return;
    }
	printf("Pri %hhu : Sz %lu : Dst %lu %iu : Src %lu %iu", pkt->priority, 
			pkt->length, pkt->dest, pkt->destPort, pkt->src, pkt->srcPort);
	
	printPacketInfo((struct packet *)pkt->payload, saddr);
    /*
    printf("  Packet from %s:%u (%lu payload bytes):\n",ipstr,ipport,pkt->len);
    printf("    type = %c\n", pkt->type);
    printf("    seq  = %lu\n", pkt->seq);
    printf("    len  = %lu\n", pkt->len);
    printf("    data = %s\n", pkt->payload);
    puts("");
    */
}
예제 #4
0
void sendPacketTo(int sockfd, struct packet *pkt, struct sockaddr *addr) {
    struct packet *spkt = serializePacket(pkt);
    size_t bytesSent = sendto(sockfd, spkt, PACKET_SIZE,
                              0, addr, sizeof *addr);

    if (bytesSent == -1) {
        perror("Sendto error");
        fprintf(stderr, "Error sending packet\n");
    } else {
        const char *typeStr;
        if      (pkt->type == 'R') typeStr = "**REQUEST**";
        else if (pkt->type == 'D') typeStr = "DATA";
        else if (pkt->type == 'E') typeStr = "**END***";
        else                       typeStr = "UNDEFINED";

        printf("-> [Sent %s packet] ", typeStr);
        printPacketInfo(pkt, (struct sockaddr_storage *)addr);
    }
}