aboutsummaryrefslogtreecommitdiff
path: root/src/core/or/versions.c
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2018-11-24 20:40:48 -0500
committerNick Mathewson <nickm@torproject.org>2018-11-24 20:44:37 -0500
commit7da06e43da96f4253a756af546f27f03141b3784 (patch)
treec3208afde1bb9ce2470032268066cfe42c75be11 /src/core/or/versions.c
parentb16d6453adde2b13d2aa95a74ec3c09a259f185f (diff)
downloadtor-7da06e43da96f4253a756af546f27f03141b3784.tar.gz
tor-7da06e43da96f4253a756af546f27f03141b3784.zip
No longer exit for missing required protocolversions on an old consensus
Specifically, if the consensus is older than the (estimted or measured) release date for this version of tor, we assume that the required versions may have changed in between that consensus and this release. Implements ticket 27735 and proposal 297.
Diffstat (limited to 'src/core/or/versions.c')
-rw-r--r--src/core/or/versions.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/core/or/versions.c b/src/core/or/versions.c
index 5d4effcaf8..d978935f4f 100644
--- a/src/core/or/versions.c
+++ b/src/core/or/versions.c
@@ -16,6 +16,25 @@
#include "core/or/tor_version_st.h"
+/**
+ * Return the approximate date when this release came out, or was
+ * scheduled to come out, according to the APPROX_RELEASE_DATE set in
+ * configure.ac
+ **/
+time_t
+tor_get_approx_release_date(void)
+{
+ char tbuf[ISO_TIME_LEN+1];
+ tor_snprintf(tbuf, sizeof(tbuf),
+ "%s 00:00:00", APPROX_RELEASE_DATE);
+ time_t result = 0;
+ int r = parse_iso_time(tbuf, &result);
+ if (BUG(r < 0)) {
+ result = 0;
+ }
+ return result;
+}
+
/** Return VS_RECOMMENDED if <b>myversion</b> is contained in
* <b>versionlist</b>. Else, return VS_EMPTY if versionlist has no
* entries. Else, return VS_OLD if every member of