aboutsummaryrefslogtreecommitdiff
path: root/src/gns
diff options
context:
space:
mode:
Diffstat (limited to 'src/gns')
-rw-r--r--src/gns/gnunet-service-gns_resolver.c7
-rw-r--r--src/gns/plugin_gnsrecord_gns.c15
2 files changed, 21 insertions, 1 deletions
diff --git a/src/gns/gnunet-service-gns_resolver.c b/src/gns/gnunet-service-gns_resolver.c
index 51e650b4f..f232fb272 100644
--- a/src/gns/gnunet-service-gns_resolver.c
+++ b/src/gns/gnunet-service-gns_resolver.c
@@ -2393,12 +2393,17 @@ handle_gns_resolution_result (void *cls,
2393 &rd[0]); 2393 &rd[0]);
2394 return; 2394 return;
2395 2395
2396 default: 2396 case GNUNET_GNSRECORD_TYPE_GNS2DNS:
2397 if (GNUNET_OK == 2397 if (GNUNET_OK ==
2398 recursive_gns2dns_resolution (rh, 2398 recursive_gns2dns_resolution (rh,
2399 rd_count, 2399 rd_count,
2400 rd)) 2400 rd))
2401 return; 2401 return;
2402 default:
2403 if (GNUNET_YES != GNUNET_GNSRECORD_is_critical (rd[0].record_type))
2404 return;
2405 GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
2406 _ ("Unable to process critical delegation record\n"));
2402 break; 2407 break;
2403 } 2408 }
2404fail: 2409fail:
diff --git a/src/gns/plugin_gnsrecord_gns.c b/src/gns/plugin_gnsrecord_gns.c
index b37e84ea3..f270e4473 100644
--- a/src/gns/plugin_gnsrecord_gns.c
+++ b/src/gns/plugin_gnsrecord_gns.c
@@ -323,6 +323,7 @@ static struct
323 { "VPN", GNUNET_GNSRECORD_TYPE_VPN }, 323 { "VPN", GNUNET_GNSRECORD_TYPE_VPN },
324 { "GNS2DNS", GNUNET_GNSRECORD_TYPE_GNS2DNS }, 324 { "GNS2DNS", GNUNET_GNSRECORD_TYPE_GNS2DNS },
325 { "BOX", GNUNET_GNSRECORD_TYPE_BOX }, 325 { "BOX", GNUNET_GNSRECORD_TYPE_BOX },
326 { "REDIRECT", GNUNET_GNSRECORD_TYPE_REDIRECT },
326 { NULL, UINT32_MAX } }; 327 { NULL, UINT32_MAX } };
327 328
328 329
@@ -365,6 +366,19 @@ gns_number_to_typename (void *cls, uint32_t type)
365} 366}
366 367
367 368
369static enum GNUNET_GenericReturnValue
370gns_is_critical (void *cls, uint32_t type)
371{
372 return ((type == GNUNET_GNSRECORD_TYPE_PKEY) ||
373 (type == GNUNET_GNSRECORD_TYPE_EDKEY) ||
374 (type == GNUNET_GNSRECORD_TYPE_GNS2DNS) ||
375 (type == GNUNET_GNSRECORD_TYPE_REDIRECT) ?
376 GNUNET_YES : GNUNET_NO);
377}
378
379
380
381
368/** 382/**
369 * Entry point for the plugin. 383 * Entry point for the plugin.
370 * 384 *
@@ -381,6 +395,7 @@ libgnunet_plugin_gnsrecord_gns_init (void *cls)
381 api->string_to_value = &gns_string_to_value; 395 api->string_to_value = &gns_string_to_value;
382 api->typename_to_number = &gns_typename_to_number; 396 api->typename_to_number = &gns_typename_to_number;
383 api->number_to_typename = &gns_number_to_typename; 397 api->number_to_typename = &gns_number_to_typename;
398 api->is_critical = &gns_is_critical;
384 return api; 399 return api;
385} 400}
386 401