Validate TTL: it must always be more than zero and less than 28 days

This commit is contained in:
Christian Basler 2017-04-12 17:12:43 +02:00
parent 95c9be4d1c
commit f50d7445c1

View File

@ -3,9 +3,8 @@ package ch.dissem.bitmessage.utils;
import static ch.dissem.bitmessage.utils.UnixTime.DAY; import static ch.dissem.bitmessage.utils.UnixTime.DAY;
/** /**
* Stores times to live for different object types. Usually this shouldn't be messed with, * Stores times to live in seconds for different object types. Usually this shouldn't be messed with, but for tests
* but for tests it might be a good idea to reduce it to a minimum, and on mobile clients * it might be a good idea to reduce it to a minimum, and on mobile clients you might want to optimize it as well.
* you might want to optimize it as well.
* *
* @author Christian Basler * @author Christian Basler
*/ */
@ -19,7 +18,7 @@ public class TTL {
} }
public static void msg(long msg) { public static void msg(long msg) {
TTL.msg = msg; TTL.msg = validate(msg);
} }
public static long getpubkey() { public static long getpubkey() {
@ -27,7 +26,7 @@ public class TTL {
} }
public static void getpubkey(long getpubkey) { public static void getpubkey(long getpubkey) {
TTL.getpubkey = getpubkey; TTL.getpubkey = validate(getpubkey);
} }
public static long pubkey() { public static long pubkey() {
@ -35,6 +34,11 @@ public class TTL {
} }
public static void pubkey(long pubkey) { public static void pubkey(long pubkey) {
TTL.pubkey = pubkey; TTL.pubkey = validate(pubkey);
}
private static long validate(long ttl) {
if (ttl < 0 || ttl > 28 * DAY) throw new IllegalArgumentException("TTL must be between 1 and 28 days");
return ttl;
} }
} }