[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r12022 - gnunet/src/vpn
From: |
gnunet |
Subject: |
[GNUnet-SVN] r12022 - gnunet/src/vpn |
Date: |
Mon, 28 Jun 2010 14:37:37 +0200 |
Author: toelke
Date: 2010-06-28 14:37:37 +0200 (Mon, 28 Jun 2010)
New Revision: 12022
Modified:
gnunet/src/vpn/packet.c
gnunet/src/vpn/test.c
Log:
some improvements in the test-code for the vpn-functionality
-print continously
-print the complete hexdump
Modified: gnunet/src/vpn/packet.c
===================================================================
--- gnunet/src/vpn/packet.c 2010-06-28 12:37:36 UTC (rev 12021)
+++ gnunet/src/vpn/packet.c 2010-06-28 12:37:37 UTC (rev 12022)
@@ -193,41 +193,67 @@
memcpy(dest+37, tmp, 2);
}}}
-void pp_hexdump(unsigned char* data, char* dest, int max) {
+void pp_hexdump(unsigned char* data, char* dest, int max) {{{
char tmp[3];
- int to = max > 8 ? 8 : max;
+ char tmp2[2];
+ int off = 0;
+ int to = max > 16 ? 16 : max;
for (int i = 0; i < to; i++) {
+ if (i == 8) off = 1;
sprintf(tmp, "%02x", data[i]);
- memcpy(dest+(3*i), tmp, 2);
+ memcpy(dest+(3*i)+off, tmp, 2);
+ if (isprint(data[i])) {
+ sprintf(tmp2, "%c", data[i]);
+ memcpy(dest+51+i, tmp2, 1);
+ }
}
+}}}
+
+void pp_write_header(char* dest, struct ip6_pkt* pkt) {
+ switch (pkt->nxthdr) {
+ case 0x3a:
+ memcpy(dest, "ICMPv6)", 7);
+ break;
+ default:
+ memcpy(dest, "unknown)", 8);
+ break;
+ }
}
void pkt_printf(struct ip6_pkt* pkt) {
char* buf = (char*)malloc(strlen(pretty)+1);
- char tmp[4];
+ char tmp[9];
memcpy(buf, pretty, strlen(pretty)+1);
pp_ip6adr(pkt->sadr, buf+16);
pp_ip6adr(pkt->dadr, buf+76);
- sprintf(tmp, "%03x", (pkt->flowlbl[0] << 16) + (pkt->flowlbl[1] << 8) +
(pkt->flowlbl[2]));
+ int flow = (pkt->flowlbl[0] << 16) + (pkt->flowlbl[1] << 8) +
(pkt->flowlbl[2]);
+ sprintf(tmp, "%03x", flow);
memcpy(buf+138, tmp, 3);
+ sprintf(tmp, "%-8d", flow);
+ memcpy(buf+143, tmp, 8);
- sprintf(tmp, "%02x", (pkt->paylgth[0] << 8) + (pkt->paylgth[1]));
+ int length = (pkt->paylgth[0] << 8) + (pkt->paylgth[1]);
+ sprintf(tmp, "%02x", length);
memcpy(buf+198, tmp, 2);
+ sprintf(tmp, "%-3d", length);
+ memcpy(buf+203, tmp, 3);
sprintf(tmp, "%02x", pkt->nxthdr);
memcpy(buf+258, tmp, 2);
+ pp_write_header(buf+263, pkt);
sprintf(tmp, "%02x", pkt->hoplmt);
memcpy(buf+318, tmp, 2);
+ sprintf(tmp, "%-3d", pkt->hoplmt);
+ memcpy(buf+323, tmp, 3);
int size = payload(pkt);
for(int i = 0; i < 8; i++) {
if (16*i > size) break;
pp_hexdump(pkt->data + (16*i), buf + 420 + (i*70), size - 16*i);
- pp_hexdump(pkt->data + (16*i) + 8, buf + 445 + (i*70), size -
(16*i + 8));
}
printf(buf);
Modified: gnunet/src/vpn/test.c
===================================================================
--- gnunet/src/vpn/test.c 2010-06-28 12:37:36 UTC (rev 12021)
+++ gnunet/src/vpn/test.c 2010-06-28 12:37:37 UTC (rev 12022)
@@ -17,9 +17,9 @@
struct pkt_tun* pkt;
- printf("read %d bytes from socket, now to parse'em\n", recv_pkt(fd,
&pkt));
-
- struct ip6_pkt* pkt6 = parse_ip6(pkt);
-
- pkt_printf(pkt6);
+ for(;;) {
+ printf("read %d bytes from socket, now to parse'em\n",
recv_pkt(fd, &pkt));
+ struct ip6_pkt* pkt6 = parse_ip6(pkt);
+ pkt_printf(pkt6);
+ }
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r12022 - gnunet/src/vpn,
gnunet <=