[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r13905 - gnunet/src/vpn
From: |
gnunet |
Subject: |
[GNUnet-SVN] r13905 - gnunet/src/vpn |
Date: |
Wed, 15 Dec 2010 09:26:28 +0100 |
Author: toelke
Date: 2010-12-15 09:26:28 +0100 (Wed, 15 Dec 2010)
New Revision: 13905
Modified:
gnunet/src/vpn/gnunet-daemon-vpn.c
Log:
Turn the IP-Address around in the hash.
Modified: gnunet/src/vpn/gnunet-daemon-vpn.c
===================================================================
--- gnunet/src/vpn/gnunet-daemon-vpn.c 2010-12-15 02:34:41 UTC (rev 13904)
+++ gnunet/src/vpn/gnunet-daemon-vpn.c 2010-12-15 08:26:28 UTC (rev 13905)
@@ -379,8 +379,11 @@
static int
address_mapping_exists(unsigned char addr[]) {
GNUNET_HashCode* key = alloca(sizeof(GNUNET_HashCode));
+ unsigned char* k = (unsigned char*)key;
memset(key, 0, sizeof(GNUNET_HashCode));
- memcpy(key, addr, 16);
+ unsigned int i;
+ for (i = 0; i < 16; i++)
+ k[15-i] = addr[i];
return GNUNET_CONTAINER_multihashmap_contains(hashmap, key);
}
@@ -533,9 +536,9 @@
*/
void
new_ip6addr(char* buf, struct answer_packet* pkt) {
- memcpy(buf, (int[]){htons(0x1234)}, 2);
- memcpy(buf+2, &pkt->service_descr.service_descriptor, 6);
- memcpy(buf+8, &pkt->service_descr.peer, 8);
+ memcpy(buf+14, (int[]){htons(0x3412)}, 2);
+ memcpy(buf+8, &pkt->service_descr.service_descriptor, 6);
+ memcpy(buf, &pkt->service_descr.peer, 8);
}
/*}}}*/
@@ -582,7 +585,14 @@
GNUNET_log(GNUNET_ERROR_TYPE_ERROR, "Could not store to hashmap\n");
}
- memcpy(((char*)pkt)+ntohs(pkt->addroffset), &key, 16);
+ /*
+ * Copy the newly generated backward ip-address to the packet
+ */
+ char* c = ((char*)pkt)+ntohs(pkt->addroffset);
+ char* k = (char*)&key;
+ unsigned int i;
+ for (i = 0; i < 16; i++)
+ c[15-i] = k[i];
list = GNUNET_malloc(htons(pkt->hdr.size) + 2*sizeof(struct
answer_packet_list*));
@@ -602,13 +612,13 @@
unsigned char c1 = s[(4*i)+1];
unsigned char c2 = s[(4*i)+3];
if (c1 <= '9')
- k[15-i] = c1 - '0';
+ k[i] = c1 - '0';
else
- k[15-i] = c1 - 87; /* 87 is the difference between 'a' and 10 */
+ k[i] = c1 - 87; /* 87 is the difference between 'a' and 10 */
if (c2 <= '9')
- k[15-i] += 16*(c2 - '0');
+ k[i] += 16*(c2 - '0');
else
- k[15-i] += 16*(c2 - 87);
+ k[i] += 16*(c2 - 87);
}
struct map_entry* map_entry =
GNUNET_CONTAINER_multihashmap_get(hashmap, &key);
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r13905 - gnunet/src/vpn,
gnunet <=