Loading src/or/main.c +25 −1 Original line number Diff line number Diff line Loading @@ -3,6 +3,9 @@ /* $Id$ */ #include "or.h" #ifdef HAVE_UNAME #include <sys/utsname.h> #endif /********* START PROTOTYPES **********/ Loading Loading @@ -672,11 +675,28 @@ static void dumpstats(void) { /* dump stats to stdout */ } } static void get_platform_str(char *platform, int len) { #ifdef HAVE_UNAME struct utsname u; if (!uname(&u)) { snprintf(platform, len-1, "Tor %s on %s %s %s %s %s", VERSION, u.sysname, u.nodename, u.release, u.version, u.machine); platform[len-1] = '\0'; return; } else #endif { snprintf(platform, len-1, "Tor %s", VERSION); } } int dump_router_to_string(char *s, int maxlen, routerinfo_t *router, crypto_pk_env_t *ident_key) { char *onion_pkey; char *link_pkey; char *identity_pkey; char platform[256]; char digest[20]; char signature[128]; char published[32]; Loading @@ -685,6 +705,8 @@ int dump_router_to_string(char *s, int maxlen, routerinfo_t *router, int result=0; struct exit_policy_t *tmpe; get_platform_str(platform, 256); if(crypto_pk_write_public_key_to_string(router->onion_pkey, &onion_pkey,&onion_pkeylen)<0) { log_fn(LOG_WARNING,"write onion_pkey to string failed!"); Loading @@ -706,6 +728,7 @@ int dump_router_to_string(char *s, int maxlen, routerinfo_t *router, result = snprintf(s, maxlen, "router %s %s %d %d %d %d\n" "platform %s\n" "published %s\n" "onion-key\n%s" "link-key\n%s" Loading @@ -716,6 +739,7 @@ int dump_router_to_string(char *s, int maxlen, routerinfo_t *router, router->ap_port, router->dir_port, router->bandwidth, platform, published, onion_pkey, link_pkey, identity_pkey); Loading src/or/routers.c +8 −0 Original line number Diff line number Diff line Loading @@ -275,6 +275,7 @@ typedef enum { K_ROUTER_SIGNATURE, K_PUBLISHED, K_RUNNING_ROUTERS, K_PLATFORM, _SIGNATURE, _PUBLIC_KEY, _ERR, Loading @@ -296,6 +297,7 @@ static struct token_table_ent token_table[] = { { "router-signature", K_ROUTER_SIGNATURE }, { "published", K_PUBLISHED }, { "running-routers", K_RUNNING_ROUTERS }, { "platform", K_PLATFORM }, { NULL, -1 } }; Loading Loading @@ -453,6 +455,7 @@ router_dump_token(directory_token_t *tok) { case K_ROUTER_SIGNATURE: printf("Router-signature"); break; case K_PUBLISHED: printf("Published"); break; case K_RUNNING_ROUTERS: printf("Running-routers"); break; case K_PLATFORM: printf("Platform"); break; default: printf("?????? %d\n", tok->tp); return; } Loading Loading @@ -886,7 +889,12 @@ routerinfo_t *router_get_entry_from_string(char**s) { log_fn(LOG_DEBUG,"or_port %d, ap_port %d, dir_port %d, bandwidth %d.", router->or_port, router->ap_port, router->dir_port, router->bandwidth); /* XXX Later, require platform before published. */ NEXT_TOKEN(); if (tok->tp == K_PLATFORM) { NEXT_TOKEN(); } if (tok->tp != K_PUBLISHED) { log_fn(LOG_WARNING, "Missing published time"); goto err; } Loading Loading
src/or/main.c +25 −1 Original line number Diff line number Diff line Loading @@ -3,6 +3,9 @@ /* $Id$ */ #include "or.h" #ifdef HAVE_UNAME #include <sys/utsname.h> #endif /********* START PROTOTYPES **********/ Loading Loading @@ -672,11 +675,28 @@ static void dumpstats(void) { /* dump stats to stdout */ } } static void get_platform_str(char *platform, int len) { #ifdef HAVE_UNAME struct utsname u; if (!uname(&u)) { snprintf(platform, len-1, "Tor %s on %s %s %s %s %s", VERSION, u.sysname, u.nodename, u.release, u.version, u.machine); platform[len-1] = '\0'; return; } else #endif { snprintf(platform, len-1, "Tor %s", VERSION); } } int dump_router_to_string(char *s, int maxlen, routerinfo_t *router, crypto_pk_env_t *ident_key) { char *onion_pkey; char *link_pkey; char *identity_pkey; char platform[256]; char digest[20]; char signature[128]; char published[32]; Loading @@ -685,6 +705,8 @@ int dump_router_to_string(char *s, int maxlen, routerinfo_t *router, int result=0; struct exit_policy_t *tmpe; get_platform_str(platform, 256); if(crypto_pk_write_public_key_to_string(router->onion_pkey, &onion_pkey,&onion_pkeylen)<0) { log_fn(LOG_WARNING,"write onion_pkey to string failed!"); Loading @@ -706,6 +728,7 @@ int dump_router_to_string(char *s, int maxlen, routerinfo_t *router, result = snprintf(s, maxlen, "router %s %s %d %d %d %d\n" "platform %s\n" "published %s\n" "onion-key\n%s" "link-key\n%s" Loading @@ -716,6 +739,7 @@ int dump_router_to_string(char *s, int maxlen, routerinfo_t *router, router->ap_port, router->dir_port, router->bandwidth, platform, published, onion_pkey, link_pkey, identity_pkey); Loading
src/or/routers.c +8 −0 Original line number Diff line number Diff line Loading @@ -275,6 +275,7 @@ typedef enum { K_ROUTER_SIGNATURE, K_PUBLISHED, K_RUNNING_ROUTERS, K_PLATFORM, _SIGNATURE, _PUBLIC_KEY, _ERR, Loading @@ -296,6 +297,7 @@ static struct token_table_ent token_table[] = { { "router-signature", K_ROUTER_SIGNATURE }, { "published", K_PUBLISHED }, { "running-routers", K_RUNNING_ROUTERS }, { "platform", K_PLATFORM }, { NULL, -1 } }; Loading Loading @@ -453,6 +455,7 @@ router_dump_token(directory_token_t *tok) { case K_ROUTER_SIGNATURE: printf("Router-signature"); break; case K_PUBLISHED: printf("Published"); break; case K_RUNNING_ROUTERS: printf("Running-routers"); break; case K_PLATFORM: printf("Platform"); break; default: printf("?????? %d\n", tok->tp); return; } Loading Loading @@ -886,7 +889,12 @@ routerinfo_t *router_get_entry_from_string(char**s) { log_fn(LOG_DEBUG,"or_port %d, ap_port %d, dir_port %d, bandwidth %d.", router->or_port, router->ap_port, router->dir_port, router->bandwidth); /* XXX Later, require platform before published. */ NEXT_TOKEN(); if (tok->tp == K_PLATFORM) { NEXT_TOKEN(); } if (tok->tp != K_PUBLISHED) { log_fn(LOG_WARNING, "Missing published time"); goto err; } Loading