diff options
-rw-r--r-- | src/vpn/gnunet-service-dns.c | 34 |
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 | ||
208 | static void | ||
209 | publish_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); |