diff options
author | Christian Grothoff <christian@grothoff.org> | 2018-05-13 21:17:12 +0200 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2018-05-13 21:17:12 +0200 |
commit | 98ac2b34f979cf10da24c984e690dabf7b34794b (patch) | |
tree | ed4fd15409066b5403f02c23aab9e14b179bc874 /src/zonemaster | |
parent | fa2978883e1585b1eeff3a22b7a9b4f174a45ca3 (diff) | |
download | gnunet-98ac2b34f979cf10da24c984e690dabf7b34794b.tar.gz gnunet-98ac2b34f979cf10da24c984e690dabf7b34794b.zip |
add some extra GNS-record well-formedness checks if logging is enabled
Diffstat (limited to 'src/zonemaster')
-rw-r--r-- | src/zonemaster/gnunet-service-zonemaster-monitor.c | 18 | ||||
-rw-r--r-- | src/zonemaster/gnunet-service-zonemaster.c | 30 |
2 files changed, 22 insertions, 26 deletions
diff --git a/src/zonemaster/gnunet-service-zonemaster-monitor.c b/src/zonemaster/gnunet-service-zonemaster-monitor.c index 46feb117f..f7ae55ba7 100644 --- a/src/zonemaster/gnunet-service-zonemaster-monitor.c +++ b/src/zonemaster/gnunet-service-zonemaster-monitor.c | |||
@@ -214,16 +214,14 @@ convert_records_for_export (const struct GNUNET_GNSRECORD_Data *rd, | |||
214 | rd_public_count = 0; | 214 | rd_public_count = 0; |
215 | now = GNUNET_TIME_absolute_get (); | 215 | now = GNUNET_TIME_absolute_get (); |
216 | for (unsigned int i=0;i<rd_count;i++) | 216 | for (unsigned int i=0;i<rd_count;i++) |
217 | if (0 == (rd[i].flags & GNUNET_GNSRECORD_RF_PRIVATE)) | 217 | { |
218 | { | 218 | if (0 != (rd[i].flags & GNUNET_GNSRECORD_RF_PRIVATE)) |
219 | rd_public[rd_public_count] = rd[i]; | 219 | continue; |
220 | if (rd_public[rd_public_count].expiration_time < now.abs_value_us) | 220 | if ( (0 == (rd[i].flags & GNUNET_GNSRECORD_RF_RELATIVE_EXPIRATION)) && |
221 | { | 221 | (rd[i].expiration_time < now.abs_value_us) ) |
222 | /* record already expired, skip it */ | 222 | continue; /* record already expired, skip it */ |
223 | continue; | 223 | rd_public[rd_public_count++] = rd[i]; |
224 | } | 224 | } |
225 | rd_public_count++; | ||
226 | } | ||
227 | return rd_public_count; | 225 | return rd_public_count; |
228 | } | 226 | } |
229 | 227 | ||
diff --git a/src/zonemaster/gnunet-service-zonemaster.c b/src/zonemaster/gnunet-service-zonemaster.c index 0a562beb1..81d6fa2d9 100644 --- a/src/zonemaster/gnunet-service-zonemaster.c +++ b/src/zonemaster/gnunet-service-zonemaster.c | |||
@@ -540,24 +540,22 @@ convert_records_for_export (const struct GNUNET_GNSRECORD_Data *rd, | |||
540 | rd_public_count = 0; | 540 | rd_public_count = 0; |
541 | now = GNUNET_TIME_absolute_get (); | 541 | now = GNUNET_TIME_absolute_get (); |
542 | for (unsigned int i=0;i<rd_count;i++) | 542 | for (unsigned int i=0;i<rd_count;i++) |
543 | if (0 == (rd[i].flags & GNUNET_GNSRECORD_RF_PRIVATE)) | 543 | { |
544 | if (0 != (rd[i].flags & GNUNET_GNSRECORD_RF_PRIVATE)) | ||
545 | continue; | ||
546 | if ( (0 == (rd[i].flags & GNUNET_GNSRECORD_RF_RELATIVE_EXPIRATION)) && | ||
547 | (rd[i].expiration_time < now.abs_value_us) ) | ||
548 | continue; /* record already expired, skip it */ | ||
549 | if (0 != (rd[i].flags & GNUNET_GNSRECORD_RF_RELATIVE_EXPIRATION)) | ||
544 | { | 550 | { |
545 | rd_public[rd_public_count] = rd[i]; | 551 | /* GNUNET_GNSRECORD_block_create will convert to absolute time; |
546 | if (0 != (rd[i].flags & GNUNET_GNSRECORD_RF_RELATIVE_EXPIRATION)) | 552 | we just need to adjust our iteration frequency */ |
547 | { | 553 | min_relative_record_time.rel_value_us = |
548 | /* GNUNET_GNSRECORD_block_create will convert to absolute time; | 554 | GNUNET_MIN (rd[i].expiration_time, |
549 | we just need to adjust our iteration frequency */ | 555 | min_relative_record_time.rel_value_us); |
550 | min_relative_record_time.rel_value_us = | ||
551 | GNUNET_MIN (rd_public[rd_public_count].expiration_time, | ||
552 | min_relative_record_time.rel_value_us); | ||
553 | } | ||
554 | else if (rd_public[rd_public_count].expiration_time < now.abs_value_us) | ||
555 | { | ||
556 | /* record already expired, skip it */ | ||
557 | continue; | ||
558 | } | ||
559 | rd_public_count++; | ||
560 | } | 556 | } |
557 | rd_public[rd_public_count++] = rd[i]; | ||
558 | } | ||
561 | return rd_public_count; | 559 | return rd_public_count; |
562 | } | 560 | } |
563 | 561 | ||