Commit b45fafa3 authored by Nick Mathewson's avatar Nick Mathewson 🐚
Browse files

Split directory/router parsing functionality into separate file from routerlist.c


svn:r1846
parent cfcb032a
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -8,7 +8,7 @@ tor_SOURCES = buffers.c circuit.c command.c config.c \
	connection.c connection_edge.c connection_or.c \
	cpuworker.c directory.c dirserv.c dns.c main.c \
	onion.c rendcommon.c rendclient.c rendmid.c \
	rendservice.c rephist.c router.c routerlist.c \
	rendservice.c rephist.c router.c routerlist.c routerparse.c \
	tor_main.c

tor_LDADD = ../common/libor.a
@@ -17,7 +17,7 @@ test_SOURCES = buffers.c circuit.c command.c config.c \
	connection.c connection_edge.c connection_or.c \
	cpuworker.c directory.c dirserv.c dns.c main.c \
	onion.c rendcommon.c rendclient.c rendmid.c \
	rendservice.c rephist.c router.c routerlist.c \
	rendservice.c rephist.c router.c routerlist.c routerparse.c \
	test.c

test_LDADD = ../common/libor.a
+1 −1
Original line number Diff line number Diff line
@@ -268,7 +268,7 @@ dirserv_add_descriptor(const char **desc)
  cp = desc_tmp = tor_strndup(start, desc_len);

  /* Check: is the descriptor syntactically valid? */
  ri = router_get_entry_from_string(cp, NULL);
  ri = router_parse_entry_from_string(cp, NULL);
  tor_free(desc_tmp);
  if (!ri) {
    log(LOG_WARN, "Couldn't parse descriptor");
+15 −4
Original line number Diff line number Diff line
@@ -1185,16 +1185,13 @@ routerinfo_t *router_choose_random_node(routerlist_t *dir,
routerinfo_t *router_get_by_addr_port(uint32_t addr, uint16_t port);
routerinfo_t *router_get_by_nickname(char *nickname);
void router_get_routerlist(routerlist_t **prouterlist);
void routerlist_free(routerlist_t *routerlist);
void routerinfo_free(routerinfo_t *router);
routerinfo_t *routerinfo_copy(const routerinfo_t *router);
void router_mark_as_down(char *nickname);
int router_set_routerlist_from_file(char *routerfile);
int router_set_routerlist_from_string(const char *s);
int router_get_dir_hash(const char *s, char *digest);
int router_get_router_hash(const char *s, char *digest);
int router_set_routerlist_from_directory(const char *s, crypto_pk_env_t *pkey);
routerinfo_t *router_get_entry_from_string(const char *s, const char *end);
int router_add_exit_policy_from_string(routerinfo_t *router, const char *s);
int router_compare_addr_to_exit_policy(uint32_t addr, uint16_t port,
                                       struct exit_policy_t *policy);
#define ADDR_POLICY_ACCEPTED 0
@@ -1203,6 +1200,20 @@ int router_compare_addr_to_exit_policy(uint32_t addr, uint16_t port,
int router_exit_policy_all_routers_reject(uint32_t addr, uint16_t port);
int router_exit_policy_rejects_all(routerinfo_t *router);

/********************************* routerparse.c ************************/

int router_get_router_hash(const char *s, char *digest);
int router_get_dir_hash(const char *s, char *digest);
int router_parse_list_from_string(const char **s,
                                       routerlist_t **dest,
                                       int n_good_nicknames,
                                       const char **good_nickname_lst);
int router_parse_routerlist_from_directory(const char *s,
                                           routerlist_t **dest,
                                           crypto_pk_env_t *pkey);
routerinfo_t *router_parse_entry_from_string(const char *s, const char *end);
int router_add_exit_policy_from_string(routerinfo_t *router, const char *s);

/********************************* dirserv.c ***************************/
int dirserv_add_own_fingerprint(const char *nickname, crypto_pk_env_t *pk);
int dirserv_parse_fingerprint_file(const char *fname);
+1 −1
Original line number Diff line number Diff line
@@ -652,7 +652,7 @@ int router_dump_router_to_string(char *s, int maxlen, routerinfo_t *router,

#ifdef DEBUG_ROUTER_DUMP_ROUTER_TO_STRING
  cp = s_tmp = s_dup = tor_strdup(s);
  ri_tmp = router_get_entry_from_string(cp, NULL);
  ri_tmp = router_parse_entry_from_string(cp, NULL);
  if (!ri_tmp) {
    log_fn(LOG_ERR, "We just generated a router descriptor we can't parse: <<%s>>",
           s);
+8 −1051

File changed.

Preview size limit exceeded, changes collapsed.

Loading