summaryrefslogtreecommitdiff
path: root/src/or/main.c
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2003-09-30 22:44:33 +0000
committerNick Mathewson <nickm@torproject.org>2003-09-30 22:44:33 +0000
commitbd7db5bd87c0282f37f92b35ca88b4e1a2f61a1d (patch)
treea9290806e6d3dd03ca45a999e04cbc08c13ff9dd /src/or/main.c
parent8551509d5c2979c435d32e21591247682b0f8e41 (diff)
downloadtor-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.c26
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);