aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPhilipp Tölke <toelke@in.tum.de>2010-11-17 08:55:35 +0000
committerPhilipp Tölke <toelke@in.tum.de>2010-11-17 08:55:35 +0000
commit923eaac23b3e718df6bd9520e786c597033f351d (patch)
tree89350947c6da277bba4198204a59009264fee17d /src
parentc067a0511a17c0aae8f978f45d6160f480655028 (diff)
downloadgnunet-923eaac23b3e718df6bd9520e786c597033f351d.tar.gz
gnunet-923eaac23b3e718df6bd9520e786c597033f351d.zip
new Struct (it will be saved to the hashmap)
Diffstat (limited to 'src')
-rw-r--r--src/vpn/gnunet-daemon-vpn.c4
-rw-r--r--src/vpn/gnunet-service-dns-p.h12
-rw-r--r--src/vpn/gnunet-service-dns.c10
3 files changed, 15 insertions, 11 deletions
diff --git a/src/vpn/gnunet-daemon-vpn.c b/src/vpn/gnunet-daemon-vpn.c
index c92508a78..3ec02ee3c 100644
--- a/src/vpn/gnunet-daemon-vpn.c
+++ b/src/vpn/gnunet-daemon-vpn.c
@@ -501,8 +501,8 @@ connect_to_service_dns (void *cls,
501void 501void
502new_ip6addr(char* buf, struct answer_packet* pkt) { 502new_ip6addr(char* buf, struct answer_packet* pkt) {
503 memcpy(buf, (int[]){htons(0x1234)}, 2); 503 memcpy(buf, (int[]){htons(0x1234)}, 2);
504 memcpy(buf+2, &pkt->service_descriptor, 6); 504 memcpy(buf+2, &pkt->service_descr.service_descriptor, 6);
505 memcpy(buf+8, &pkt->peer, 8); 505 memcpy(buf+8, &pkt->service_descr.peer, 8);
506} 506}
507/*}}}*/ 507/*}}}*/
508 508
diff --git a/src/vpn/gnunet-service-dns-p.h b/src/vpn/gnunet-service-dns-p.h
index a8944fbae..dd564f434 100644
--- a/src/vpn/gnunet-service-dns-p.h
+++ b/src/vpn/gnunet-service-dns-p.h
@@ -47,6 +47,13 @@ enum GNUNET_DNS_ANSWER_Subtype {
47 GNUNET_DNS_ANSWER_TYPE_REV 47 GNUNET_DNS_ANSWER_TYPE_REV
48}; 48};
49 49
50struct GNUNET_vpn_service_descriptor {
51 GNUNET_HashCode peer GNUNET_PACKED;
52 GNUNET_HashCode service_descriptor GNUNET_PACKED;
53 uint64_t ports GNUNET_PACKED;
54 uint32_t service_type GNUNET_PACKED;
55};
56
50struct answer_packet { 57struct answer_packet {
51 struct GNUNET_MessageHeader hdr; 58 struct GNUNET_MessageHeader hdr;
52 enum GNUNET_DNS_ANSWER_Subtype subtype GNUNET_PACKED; 59 enum GNUNET_DNS_ANSWER_Subtype subtype GNUNET_PACKED;
@@ -56,10 +63,7 @@ struct answer_packet {
56 unsigned dst_port:16 GNUNET_PACKED; 63 unsigned dst_port:16 GNUNET_PACKED;
57 64
58 /* Only sensible when subtype == GNUNET_DNS_ANSWER_TYPE_SERVICE */ 65 /* Only sensible when subtype == GNUNET_DNS_ANSWER_TYPE_SERVICE */
59 GNUNET_HashCode peer; 66 struct GNUNET_vpn_service_descriptor service_descr;
60 GNUNET_HashCode service_descriptor;
61 uint64_t ports;
62 uint32_t service_type;
63 67
64 /* The offsett in octets from the beginning of the struct to the field 68 /* The offsett in octets from the beginning of the struct to the field
65 * in data where the IP-Address has to go. */ 69 * in data where the IP-Address has to go. */
diff --git a/src/vpn/gnunet-service-dns.c b/src/vpn/gnunet-service-dns.c
index 3fd4db534..7d9826547 100644
--- a/src/vpn/gnunet-service-dns.c
+++ b/src/vpn/gnunet-service-dns.c
@@ -283,15 +283,15 @@ receive_dht(void *cls,
283 283
284 GNUNET_CRYPTO_hash(&rec->peer, 284 GNUNET_CRYPTO_hash(&rec->peer,
285 sizeof(struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded), 285 sizeof(struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded),
286 &answer->pkt.peer); 286 &answer->pkt.service_descr.peer);
287 287
288 memcpy(&answer->pkt.service_descriptor, 288 memcpy(&answer->pkt.service_descr.service_descriptor,
289 &rec->service_descriptor, 289 &rec->service_descriptor,
290 sizeof(GNUNET_HashCode)); 290 sizeof(GNUNET_HashCode));
291 memcpy(&answer->pkt.service_type, 291 memcpy(&answer->pkt.service_descr.service_type,
292 &rec->service_type, 292 &rec->service_type,
293 sizeof(answer->pkt.service_type)); 293 sizeof(answer->pkt.service_descr.service_type));
294 memcpy(&answer->pkt.ports, &rec->ports, sizeof(answer->pkt.ports)); 294 memcpy(&answer->pkt.service_descr.ports, &rec->ports, sizeof(answer->pkt.service_descr.ports));
295 295
296 answer->pkt.from = query_states[id].remote_ip; 296 answer->pkt.from = query_states[id].remote_ip;
297 297