aboutsummaryrefslogtreecommitdiff
path: root/src/vpn/gnunet-service-dns.c
diff options
context:
space:
mode:
authorPhilipp Tölke <toelke@in.tum.de>2010-10-08 09:03:38 +0000
committerPhilipp Tölke <toelke@in.tum.de>2010-10-08 09:03:38 +0000
commit759a00471b2b21d3b3eb593fa616e4ce67ade816 (patch)
tree55c2830eeee6b515840bf1d8090ba7d1ee12c843 /src/vpn/gnunet-service-dns.c
parent0abacda3aa7a008b9a7f1fcdc2737a6fb8f788f2 (diff)
downloadgnunet-759a00471b2b21d3b3eb593fa616e4ce67ade816.tar.gz
gnunet-759a00471b2b21d3b3eb593fa616e4ce67ade816.zip
pyblish a dns-record for testing
Diffstat (limited to 'src/vpn/gnunet-service-dns.c')
-rw-r--r--src/vpn/gnunet-service-dns.c34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/vpn/gnunet-service-dns.c b/src/vpn/gnunet-service-dns.c
index 1bf94ce48..14cd07f7a 100644
--- a/src/vpn/gnunet-service-dns.c
+++ b/src/vpn/gnunet-service-dns.c
@@ -205,6 +205,38 @@ cleanup_task (void *cls,
205 GNUNET_DHT_disconnect(mycls.dht); 205 GNUNET_DHT_disconnect(mycls.dht);
206} 206}
207 207
208static void
209publish_name (void *cls,
210 const struct GNUNET_SCHEDULER_TaskContext *tc)
211{
212 if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
213 return;
214
215 char* name = "philipptoelke.gnunet";
216 size_t size = sizeof(struct GNUNET_DNS_Record) + strlen(name) - 1;
217 struct GNUNET_DNS_Record *data = alloca(size);
218 memset(data, 0, size);
219 memcpy(data->name, name, strlen(name));
220 data->namelen = strlen(name);
221 *((unsigned int*)&data->service_descriptor) = 0x11223344;
222 *((unsigned int*)&data->peer) = 0x55667788;
223
224 GNUNET_HashCode key;
225 GNUNET_CRYPTO_hash(name, strlen(name), &key);
226 GNUNET_DHT_put(mycls.dht,
227 &key,
228 GNUNET_DHT_RO_NONE,
229 GNUNET_BLOCK_TYPE_DNS,
230 size,
231 (char*)data,
232 GNUNET_TIME_relative_to_absolute(GNUNET_TIME_UNIT_HOURS),
233 GNUNET_TIME_UNIT_MINUTES,
234 NULL,
235 NULL);
236
237 GNUNET_SCHEDULER_add_delayed (mycls.sched, GNUNET_TIME_UNIT_MINUTES, publish_name, NULL);
238}
239
208/** 240/**
209 * @param cls closure 241 * @param cls closure
210 * @param sched scheduler to use 242 * @param sched scheduler to use
@@ -257,6 +289,8 @@ run (void *cls,
257 289
258 hijack(htons(addr.sin_port)); 290 hijack(htons(addr.sin_port));
259 291
292 GNUNET_SCHEDULER_add_now (mycls.sched, publish_name, NULL);
293
260 GNUNET_SCHEDULER_add_read_net(sched, GNUNET_TIME_UNIT_FOREVER_REL, mycls.dnsout, &read_response, NULL); 294 GNUNET_SCHEDULER_add_read_net(sched, GNUNET_TIME_UNIT_FOREVER_REL, mycls.dnsout, &read_response, NULL);
261 295
262 GNUNET_SERVER_add_handlers (server, handlers); 296 GNUNET_SERVER_add_handlers (server, handlers);