From 85a910e0850d8f5b85f52ccf767f96b0f42a904f Mon Sep 17 00:00:00 2001 From: Nick Mathewson Date: Tue, 17 Aug 2004 05:29:41 +0000 Subject: [PATCH] Parse uptime into routerinfo svn:r2247 --- src/or/routerparse.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/or/routerparse.c b/src/or/routerparse.c index 0fd041060c..7ee2512d6d 100644 --- a/src/or/routerparse.c +++ b/src/or/routerparse.c @@ -39,6 +39,7 @@ typedef enum { K_DIRCACHEPORT, K_CONTACT, K_NETWORK_STATUS, + K_UPTIME, _UNRECOGNIZED, _ERR, _EOF, @@ -111,6 +112,7 @@ static struct { { "dircacheport", K_DIRCACHEPORT, ARGS, NO_OBJ, RTR_ONLY }, { "contact", K_CONTACT, CONCAT_ARGS, NO_OBJ, ANY }, { "network-status", K_NETWORK_STATUS, NO_ARGS, NO_OBJ, DIR_ONLY }, + { "uptime", K_UPTIME, ARGS, NO_OBJ, RTR_ONLY }, { NULL, -1 } }; @@ -642,6 +644,7 @@ routerinfo_t *router_parse_entry_from_string(const char *s, smartlist_t *tokens = NULL, *exit_policy_tokens = NULL; directory_token_t *tok; int t; + long lng; int ports_set, bw_set; if (!end) { @@ -745,6 +748,14 @@ routerinfo_t *router_parse_entry_from_string(const char *s, bw_set = 1; } + if ((tok = find_first_by_keyword(tokens, K_UPTIME))) { + if (tok->n_args != 1) { + log_fn(LOG_WARN, "Unrecognized number of args on K_UPTIME; skipping."); + } else { + router->uptime = atol(tok->args[0]); + } + } + if (!(tok = find_first_by_keyword(tokens, K_PUBLISHED))) { log_fn(LOG_WARN, "Missing published time"); goto err; } -- 2.47.3