diff options
author | Nick Mathewson <nickm@torproject.org> | 2003-09-30 22:44:33 +0000 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2003-09-30 22:44:33 +0000 |
commit | bd7db5bd87c0282f37f92b35ca88b4e1a2f61a1d (patch) | |
tree | a9290806e6d3dd03ca45a999e04cbc08c13ff9dd /src/or/main.c | |
parent | 8551509d5c2979c435d32e21591247682b0f8e41 (diff) | |
download | tor-bd7db5bd87c0282f37f92b35ca88b4e1a2f61a1d.tar.gz tor-bd7db5bd87c0282f37f92b35ca88b4e1a2f61a1d.zip |
Add "platform" to router descriptors.
svn:r522
Diffstat (limited to 'src/or/main.c')
-rw-r--r-- | src/or/main.c | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/src/or/main.c b/src/or/main.c index 1c4fa09a23..3151a2d974 100644 --- a/src/or/main.c +++ b/src/or/main.c @@ -3,6 +3,9 @@ /* $Id$ */ #include "or.h" +#ifdef HAVE_UNAME +#include <sys/utsname.h> +#endif /********* START PROTOTYPES **********/ @@ -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]; @@ -684,6 +704,8 @@ int dump_router_to_string(char *s, int maxlen, routerinfo_t *router, int written; 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) { @@ -706,16 +728,18 @@ 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" "signing-key\n%s", - router->nickname, + router->nickname, router->address, router->or_port, router->ap_port, router->dir_port, router->bandwidth, + platform, published, onion_pkey, link_pkey, identity_pkey); |