diff options
author | Christian Grothoff <christian@grothoff.org> | 2013-08-11 22:17:14 +0000 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2013-08-11 22:17:14 +0000 |
commit | a373d56479f2b94028fd79f999094e0147256ca4 (patch) | |
tree | 05df2e8a5ece6fbcfa0858add5c135aa270d5779 /src/fs/fs_uri.c | |
parent | 91e71fcc1220782798e349b66853fda27f2cd108 (diff) |
-round expiration times to full seconds
Diffstat (limited to 'src/fs/fs_uri.c')
-rw-r--r-- | src/fs/fs_uri.c | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/src/fs/fs_uri.c b/src/fs/fs_uri.c index 6724dc6253..72704828d6 100644 --- a/src/fs/fs_uri.c +++ b/src/fs/fs_uri.c @@ -588,7 +588,7 @@ uri_loc_parse (const char *s, char **emsg) SSCANF (&s[pos + sizeof (struct GNUNET_CRYPTO_HashAsciiEncoded) * 2], "%llu", &flen))) { - *emsg = GNUNET_strdup (_("SKS URI malformed")); + *emsg = GNUNET_strdup (_("LOC URI malformed")); return NULL; } ass.fi.file_length = GNUNET_htonll (flen); @@ -598,7 +598,7 @@ uri_loc_parse (const char *s, char **emsg) npos++; if (s[npos] == '\0') { - *emsg = GNUNET_strdup (_("SKS URI malformed")); + *emsg = GNUNET_strdup (_("LOC URI malformed")); goto ERR; } npos++; @@ -608,7 +608,7 @@ uri_loc_parse (const char *s, char **emsg) if (ret == -1) { *emsg = - GNUNET_strdup (_("SKS URI malformed (could not decode public key)")); + GNUNET_strdup (_("LOC URI malformed (could not decode public key)")); goto ERR; } npos += ret; @@ -900,6 +900,7 @@ GNUNET_FS_uri_loc_create (const struct GNUNET_FS_Uri *baseUri, struct GNUNET_CRYPTO_EccPublicKey my_public_key; char *keyfile; struct LocUriAssembly ass; + struct GNUNET_TIME_Absolute et; if (baseUri->type != GNUNET_FS_URI_CHK) return NULL; @@ -919,16 +920,18 @@ GNUNET_FS_uri_loc_create (const struct GNUNET_FS_Uri *baseUri, return NULL; } GNUNET_free (keyfile); + /* we round expiration time to full seconds for SKS URIs */ + et.abs_value_us = (expiration_time.abs_value_us / 1000000LL) * 1000000LL; GNUNET_CRYPTO_ecc_key_get_public (my_private_key, &my_public_key); ass.purpose.size = htonl (sizeof (struct LocUriAssembly)); ass.purpose.purpose = htonl (GNUNET_SIGNATURE_PURPOSE_PEER_PLACEMENT); - ass.exptime = GNUNET_TIME_absolute_hton (expiration_time); + ass.exptime = GNUNET_TIME_absolute_hton (et); ass.fi = baseUri->data.chk; ass.peer = my_public_key; uri = GNUNET_new (struct GNUNET_FS_Uri); uri->type = GNUNET_FS_URI_LOC; uri->data.loc.fi = baseUri->data.chk; - uri->data.loc.expirationTime = expiration_time; + uri->data.loc.expirationTime = et; uri->data.loc.peer = my_public_key; GNUNET_assert (GNUNET_OK == GNUNET_CRYPTO_ecc_sign (my_private_key, &ass.purpose, @@ -2037,7 +2040,7 @@ uri_loc_to_string (const struct GNUNET_FS_Uri *uri) (unsigned long long) GNUNET_ntohll (uri->data.loc. fi.file_length), peerId, peerSig, - (unsigned long long) uri->data.loc.expirationTime.abs_value_us / 1000LL / 1000LL); + (unsigned long long) uri->data.loc.expirationTime.abs_value_us / 1000000LL); GNUNET_free (peerSig); GNUNET_free (peerId); return ret; |