versions.h (1985B)
1 /* Copyright (c) 2001 Matej Pfajfar. 2 * Copyright (c) 2001-2004, Roger Dingledine. 3 * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. 4 * Copyright (c) 2007-2021, The Tor Project, Inc. */ 5 /* See LICENSE for licensing information */ 6 7 /** 8 * \file versions.h 9 * \brief Header file for versions.c. 10 **/ 11 12 #ifndef TOR_VERSIONS_H 13 #define TOR_VERSIONS_H 14 15 /** Possible statuses of a version of Tor, given opinions from the directory 16 * servers. */ 17 typedef enum version_status_t { 18 VS_RECOMMENDED=0, /**< This version is listed as recommended. */ 19 VS_OLD=1, /**< This version is older than any recommended version. */ 20 VS_NEW=2, /**< This version is newer than any recommended version. */ 21 VS_NEW_IN_SERIES=3, /**< This version is newer than any recommended version 22 * in its series, but later recommended versions exist. 23 */ 24 VS_UNRECOMMENDED=4, /**< This version is not recommended (general case). */ 25 VS_EMPTY=5, /**< The version list was empty; no agreed-on versions. */ 26 VS_UNKNOWN, /**< We have no idea. */ 27 } version_status_t; 28 29 time_t tor_get_approx_release_date(void); 30 31 version_status_t tor_version_is_obsolete(const char *myversion, 32 const char *versionlist); 33 int tor_version_parse_platform(const char *platform, 34 tor_version_t *version_out, 35 int strict); 36 int tor_version_as_new_as(const char *platform, const char *cutoff); 37 int tor_version_parse(const char *s, tor_version_t *out); 38 int tor_version_compare(tor_version_t *a, tor_version_t *b); 39 int tor_version_same_series(tor_version_t *a, tor_version_t *b); 40 void sort_version_list(smartlist_t *lst, int remove_duplicates); 41 42 void summarize_protover_flags(protover_summary_flags_t *out, 43 const char *protocols, 44 const char *version); 45 46 void protover_summary_cache_free_all(void); 47 48 #endif /* !defined(TOR_VERSIONS_H) */