diff options
author | Martin Schanzenbach <schanzen@gnunet.org> | 2022-02-05 17:17:37 +0100 |
---|---|---|
committer | Martin Schanzenbach <schanzen@gnunet.org> | 2022-02-05 17:17:37 +0100 |
commit | aa85ac347e31b22bcd86c6fbe9875dc4ffa93229 (patch) | |
tree | 91ed15a290b2a81ee4e8993e486d5a0de54cec37 /src/gns/plugin_gnsrecord_gns.c | |
parent | 32da9a943942efc8a1384f5a6839cc84f79a42db (diff) | |
download | gnunet-aa85ac347e31b22bcd86c6fbe9875dc4ffa93229.tar.gz gnunet-aa85ac347e31b22bcd86c6fbe9875dc4ffa93229.zip |
GNS: Add tombstone string processing; also handle tombstones in monitor properly
Diffstat (limited to 'src/gns/plugin_gnsrecord_gns.c')
-rw-r--r-- | src/gns/plugin_gnsrecord_gns.c | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/src/gns/plugin_gnsrecord_gns.c b/src/gns/plugin_gnsrecord_gns.c index e74ec96ad..694dc6351 100644 --- a/src/gns/plugin_gnsrecord_gns.c +++ b/src/gns/plugin_gnsrecord_gns.c | |||
@@ -132,7 +132,12 @@ gns_value_to_string (void *cls, | |||
132 | GNUNET_free (ival); | 132 | GNUNET_free (ival); |
133 | return box_str; | 133 | return box_str; |
134 | } | 134 | } |
135 | 135 | case GNUNET_GNSRECORD_TYPE_TOMBSTONE: { | |
136 | const struct GNUNET_GNSRECORD_TombstoneRecord *ts = data; | ||
137 | struct GNUNET_TIME_Absolute tod; | ||
138 | tod = GNUNET_TIME_absolute_ntoh (ts->time_of_death); | ||
139 | return GNUNET_strdup (GNUNET_STRINGS_absolute_time_to_string (tod)); | ||
140 | } | ||
136 | default: | 141 | default: |
137 | return NULL; | 142 | return NULL; |
138 | } | 143 | } |
@@ -183,7 +188,7 @@ gns_string_to_value (void *cls, | |||
183 | if (record_type != type) | 188 | if (record_type != type) |
184 | { | 189 | { |
185 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, | 190 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, |
186 | _("Record type does not match parsed record type\n")); | 191 | _ ("Record type does not match parsed record type\n")); |
187 | return GNUNET_SYSERR; | 192 | return GNUNET_SYSERR; |
188 | } | 193 | } |
189 | return GNUNET_OK; | 194 | return GNUNET_OK; |
@@ -297,6 +302,19 @@ gns_string_to_value (void *cls, | |||
297 | GNUNET_free (bval); | 302 | GNUNET_free (bval); |
298 | return GNUNET_OK; | 303 | return GNUNET_OK; |
299 | } | 304 | } |
305 | case GNUNET_GNSRECORD_TYPE_TOMBSTONE: { | ||
306 | struct GNUNET_TIME_Absolute tod; | ||
307 | struct GNUNET_TIME_AbsoluteNBO *tod_nbo; | ||
308 | if (GNUNET_OK != GNUNET_STRINGS_fancy_time_to_absolute (s, | ||
309 | &tod)) | ||
310 | return GNUNET_SYSERR; | ||
311 | tod_nbo = GNUNET_new (struct GNUNET_TIME_AbsoluteNBO); | ||
312 | *tod_nbo = GNUNET_TIME_absolute_hton (tod); | ||
313 | *data_size = sizeof (*tod_nbo); | ||
314 | *data = tod_nbo; | ||
315 | return GNUNET_OK; | ||
316 | } | ||
317 | |||
300 | 318 | ||
301 | default: | 319 | default: |
302 | return GNUNET_SYSERR; | 320 | return GNUNET_SYSERR; |
@@ -320,6 +338,7 @@ static struct | |||
320 | { "GNS2DNS", GNUNET_GNSRECORD_TYPE_GNS2DNS }, | 338 | { "GNS2DNS", GNUNET_GNSRECORD_TYPE_GNS2DNS }, |
321 | { "BOX", GNUNET_GNSRECORD_TYPE_BOX }, | 339 | { "BOX", GNUNET_GNSRECORD_TYPE_BOX }, |
322 | { "REDIRECT", GNUNET_GNSRECORD_TYPE_REDIRECT }, | 340 | { "REDIRECT", GNUNET_GNSRECORD_TYPE_REDIRECT }, |
341 | { "TOMBSTONE", GNUNET_GNSRECORD_TYPE_TOMBSTONE }, | ||
323 | { NULL, UINT32_MAX } }; | 342 | { NULL, UINT32_MAX } }; |
324 | 343 | ||
325 | 344 | ||