Parse uptime into routerinfo

svn:r2247
This commit is contained in:
Nick Mathewson
2004-08-17 05:29:41 +00:00
parent 74621132a9
commit 85a910e085
+11
View File
@@ -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;
}