diff options
author | Nick Mathewson <nickm@torproject.org> | 2018-09-30 18:27:23 -0500 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2018-10-01 00:04:58 -0500 |
commit | 2f5dc486993b88eb23de7f06043991f08e4d0d73 (patch) | |
tree | d56ea5c1cd515f0ce635812f6ec6974d8b337d4a /src/core/or/versions.h | |
parent | fec3b3bb9389d9d9f927c370d560fc50ec65c93b (diff) | |
download | tor-2f5dc486993b88eb23de7f06043991f08e4d0d73.tar.gz tor-2f5dc486993b88eb23de7f06043991f08e4d0d73.zip |
Extract the version-managing code from routerparse.c
Leave the versions.h include in routerparse.h for now; I'll remove
it later.
Diffstat (limited to 'src/core/or/versions.h')
-rw-r--r-- | src/core/or/versions.h | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/src/core/or/versions.h b/src/core/or/versions.h new file mode 100644 index 0000000000..a2353bcae3 --- /dev/null +++ b/src/core/or/versions.h @@ -0,0 +1,40 @@ +/* Copyright (c) 2001 Matej Pfajfar. + * Copyright (c) 2001-2004, Roger Dingledine. + * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. + * Copyright (c) 2007-2018, The Tor Project, Inc. */ +/* See LICENSE for licensing information */ + +/** + * \file versions.h + * \brief Header file for versions.c. + **/ + +#ifndef TOR_VERSIONS_H +#define TOR_VERSIONS_H + +/** Possible statuses of a version of Tor, given opinions from the directory + * servers. */ +typedef enum version_status_t { + VS_RECOMMENDED=0, /**< This version is listed as recommended. */ + VS_OLD=1, /**< This version is older than any recommended version. */ + VS_NEW=2, /**< This version is newer than any recommended version. */ + VS_NEW_IN_SERIES=3, /**< This version is newer than any recommended version + * in its series, but later recommended versions exist. + */ + VS_UNRECOMMENDED=4, /**< This version is not recommended (general case). */ + VS_EMPTY=5, /**< The version list was empty; no agreed-on versions. */ + VS_UNKNOWN, /**< We have no idea. */ +} version_status_t; + +version_status_t tor_version_is_obsolete(const char *myversion, + const char *versionlist); +int tor_version_parse_platform(const char *platform, + tor_version_t *version_out, + int strict); +int tor_version_as_new_as(const char *platform, const char *cutoff); +int tor_version_parse(const char *s, tor_version_t *out); +int tor_version_compare(tor_version_t *a, tor_version_t *b); +int tor_version_same_series(tor_version_t *a, tor_version_t *b); +void sort_version_list(smartlist_t *lst, int remove_duplicates); + +#endif /* !defined(TOR_VERSIONS_H) */ |