/*
This file is part of GNUnet.
- (C) 2009-2013 Christian Grothoff (and other contributing authors)
+ Copyright (C) 2009-2013 GNUnet e.V.
GNUnet is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published
You should have received a copy of the GNU General Public License
along with GNUnet; see the file COPYING. If not, write to the
- Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA.
+ Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA.
*/
/**
rdc[i] = rd[i];
if (0 != (rd[i].flags & GNUNET_GNSRECORD_RF_RELATIVE_EXPIRATION))
{
+ struct GNUNET_TIME_Relative t;
+
/* encrypted blocks must never have relative expiration times, convert! */
rdc[i].flags &= ~GNUNET_GNSRECORD_RF_RELATIVE_EXPIRATION;
- rdc[i].expiration_time += now.abs_value_us;
+ t.rel_value_us = rdc[i].expiration_time;
+ rdc[i].expiration_time = GNUNET_TIME_absolute_add (now, t).abs_value_us;
}
}
/* serialize */
GNUNET_GNSRECORD_RecordCallback proc,
void *proc_cls)
{
- struct GNUNET_TIME_Absolute exp;
size_t payload_len = ntohl (block->purpose.size) -
sizeof (struct GNUNET_CRYPTO_EccSignaturePurpose) -
sizeof (struct GNUNET_TIME_AbsoluteNBO);
j = 0;
for (i=0;i<rd_count;i++)
{
- if (0 != (rd[i].flags & GNUNET_GNSRECORD_RF_PENDING))
- continue; /* PENDING should never be used */
if (0 != (rd[i].flags & GNUNET_GNSRECORD_RF_RELATIVE_EXPIRATION))
{
/* encrypted blocks must never have relative expiration times, skip! */
continue;
}
- exp.abs_value_us = GNUNET_ntohll (rd[i].expiration_time);
if (0 != (rd[i].flags & GNUNET_GNSRECORD_RF_SHADOW_RECORD))
{
int include_record = GNUNET_YES;
{
if (k == i)
continue;
- if (exp.abs_value_us < now.abs_value_us)
- {
+ if (rd[i].expiration_time < now.abs_value_us)
include_record = GNUNET_NO; /* Shadow record is expired */
- }
if ((rd[k].record_type == rd[i].record_type)
- && (GNUNET_ntohll (rd[k].expiration_time) >= now.abs_value_us)
+ && (rd[k].expiration_time >= now.abs_value_us)
&& (0 == (rd[k].flags & GNUNET_GNSRECORD_RF_SHADOW_RECORD)))
include_record = GNUNET_NO; /* We have a non-expired, non-shadow record of the same type */
}
j++;
}
}
- else if (exp.abs_value_us >= now.abs_value_us)
+ else if (rd[i].expiration_time >= now.abs_value_us)
{
/* Include this record */
if (j != i)