[or-cvs] work on versioning; new log_fn function

Nick Mathewson nickm at seul.org
Fri May 9 02:25:42 UTC 2003


Update of /home/or/cvsroot/src/or
In directory moria.mit.edu:/tmp/cvs-serv23089/src/or

Modified Files:
	directory.c main.c or.h routers.c 
Log Message:
work on versioning; new log_fn function

Index: directory.c
===================================================================
RCS file: /home/or/cvsroot/src/or/directory.c,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -d -r1.13 -r1.14
--- directory.c	9 May 2003 02:20:16 -0000	1.13
+++ directory.c	9 May 2003 02:25:37 -0000	1.14
@@ -157,7 +157,7 @@
       log(LOG_DEBUG,"connection_dir_process_inbuf(): and got a %s directory; updated routers.", 
           conn->pkey ? "authenticated" : "unauthenticated");
     }
-    
+
     if(options.ORPort) { /* connect to them all */
       router_retry_connections();
     }

Index: main.c
===================================================================
RCS file: /home/or/cvsroot/src/or/main.c,v
retrieving revision 1.63
retrieving revision 1.64
diff -u -d -r1.63 -r1.64
--- main.c	9 May 2003 02:20:16 -0000	1.63
+++ main.c	9 May 2003 02:25:37 -0000	1.64
@@ -708,8 +708,7 @@
   eos = s+maxlen;
   strncpy(s, 
           "signed-directory\n"
-          "client-software x y z\n" /* XXX make this real */
-          "server-software a b c\n\n" /* XXX make this real */
+          "recommended-software 0.0.2pre4,0.0.2pre5,0.0.2pre6\n" /* XXX make this real */
           , maxlen);
   
   i = strlen(s);

Index: or.h
===================================================================
RCS file: /home/or/cvsroot/src/or/or.h,v
retrieving revision 1.83
retrieving revision 1.84
diff -u -d -r1.83 -r1.84
--- or.h	9 May 2003 02:12:52 -0000	1.83
+++ or.h	9 May 2003 02:25:37 -0000	1.84
@@ -330,6 +330,7 @@
 typedef struct {
   routerinfo_t **routers;
   int n_routers;
+  char *software_versions;
 } directory_t;
 
 struct crypt_path_t { 

Index: routers.c
===================================================================
RCS file: /home/or/cvsroot/src/or/routers.c,v
retrieving revision 1.31
retrieving revision 1.32
diff -u -d -r1.31 -r1.32
--- routers.c	9 May 2003 02:20:16 -0000	1.31
+++ routers.c	9 May 2003 02:25:37 -0000	1.32
@@ -44,20 +44,20 @@
 
   /* obtain local host information */
   if(gethostname(localhostname,512) < 0) {
-    log(LOG_ERR,"Error obtaining local hostname.");
+    log_fn(LOG_ERR,"Error obtaining local hostname.");
     return -1;
   }
-  log(LOG_DEBUG,"learn_my_address(): localhostname is '%s'.",localhostname);
+  log_fn(LOG_DEBUG,"localhostname is '%s'.",localhostname);
   localhost = gethostbyname(localhostname);
   if (!localhost) {
-    log(LOG_ERR,"Error obtaining local host info.");
+    log_fn(LOG_ERR,"Error obtaining local host info.");
     return -1;
   }
   memset(me,0,sizeof(struct sockaddr_in));
   me->sin_family = AF_INET;
   memcpy((void *)&me->sin_addr,(void *)localhost->h_addr,sizeof(struct in_addr));
   me->sin_port = htons(options.ORPort);
-  log(LOG_DEBUG,"learn_my_address(): chose address as '%s'.",inet_ntoa(me->sin_addr));
+  log_fn(LOG_DEBUG,"chose address as '%s'.",inet_ntoa(me->sin_addr));
 
   return 0;
 }
@@ -69,7 +69,7 @@
   for (i=0;i<directory->n_routers;i++) {
     router = directory->routers[i];
     if(!connection_exact_get_by_addr_port(router->addr,router->or_port)) { /* not in the list */
-      log(LOG_DEBUG,"retry_all_connections(): connecting to OR %s:%u.",router->address,router->or_port);
+      log_fn(LOG_DEBUG,"connecting to OR %s:%u.",router->address,router->or_port);
       connection_or_connect_as_or(router);
     }
   }
@@ -199,19 +199,19 @@
   assert(routerfile);
   
   if (strcspn(routerfile,CONFIG_LEGAL_FILENAME_CHARACTERS) != 0) {
-    log(LOG_ERR,"router_get_list_from_file(): Filename %s contains illegal characters.",routerfile);
+    log_fn(LOG_ERR,"Filename %s contains illegal characters.",routerfile);
     return -1;
   }
   
   if(stat(routerfile, &statbuf) < 0) {
-    log(LOG_ERR,"router_get_list_from_file(): Could not stat %s.",routerfile);
+    log_fn(LOG_ERR,"Could not stat %s.",routerfile);
     return -1;
   }
 
   /* open the router list */
   fd = open(routerfile,O_RDONLY,0);
   if (fd<0) {
-    log(LOG_ERR,"router_get_list_from_file(): Could not open %s.",routerfile);
+    log_fn(LOG_ERR,"Could not open %s.",routerfile);
     return -1;
   }
 
@@ -244,11 +244,10 @@
 
 typedef enum {
   K_ACCEPT,
-  K_CLIENT_SOFTWARE, 
   K_DIRECTORY_SIGNATURE,
+  K_RECOMMENDED_SOFTWARE,
   K_REJECT, 
   K_ROUTER, 
-  K_SERVER_SOFTWARE,
   K_SIGNED_DIRECTORY,
   K_SIGNING_KEY,
   _SIGNATURE, 
@@ -261,11 +260,10 @@
 
 static struct token_table_ent token_table[] = {
   { "accept", K_ACCEPT },
-  { "client-software", K_CLIENT_SOFTWARE },
   { "directory-signature", K_DIRECTORY_SIGNATURE },
   { "reject", K_REJECT },
   { "router", K_ROUTER },
-  { "server-software", K_SERVER_SOFTWARE },
+  { "recommended-software", K_RECOMMENDED_SOFTWARE },
   { "signed-directory", K_SIGNED_DIRECTORY },
   { "signing-key", K_SIGNING_KEY },
   { NULL, -1 }
@@ -395,11 +393,10 @@
       puts("EOF");
       return;
     case K_ACCEPT: printf("Accept"); break;
-    case K_CLIENT_SOFTWARE: printf("Client-Software"); break;
     case K_DIRECTORY_SIGNATURE: printf("Directory-Signature"); break;
     case K_REJECT: printf("Reject"); break;
+    case K_RECOMMENDED_SOFTWARE: printf("Server-Software"); break;
     case K_ROUTER: printf("Router"); break;
-    case K_SERVER_SOFTWARE: printf("Server-Software"); break;
     case K_SIGNED_DIRECTORY: printf("Signed-Directory"); break;
     case K_SIGNING_KEY: printf("Signing-Key"); break;
     default:
@@ -518,6 +515,7 @@
     log(LOG_ERR, "Error resolving directory");
     return -1;
   }
+  /* XXXX Check version number */
   return 0;
 }
 
@@ -528,6 +526,7 @@
   char digest[20];
   char signed_digest[128];
   directory_t *new_dir = NULL;
+  char *versions;
   
 #define NEXT_TOK()                                                      \
   do {                                                                  \
@@ -551,16 +550,19 @@
   TOK_IS(K_SIGNED_DIRECTORY, "signed-directory");
 
   NEXT_TOK();
-  TOK_IS(K_CLIENT_SOFTWARE, "client-software");
-
-  NEXT_TOK();
-  TOK_IS(K_SERVER_SOFTWARE, "server-software");
+  TOK_IS(K_RECOMMENDED_SOFTWARE, "recommended-software");
+  if (tok.val.cmd.n_args != 1) {
+    log(LOG_ERR, "Invalid recommded-software line");
+    return -1;
+  }
+  versions = strdup(tok.val.cmd.args[0]);
   
   NEXT_TOK();
   if (router_get_list_from_string_tok(&s, &new_dir, &tok)) {
     log(LOG_ERR, "Error reading routers from directory");
     return -1;
   }
+  new_dir->software_versions = versions;
   
   TOK_IS(K_DIRECTORY_SIGNATURE, "directory-signature");
   NEXT_TOK();



More information about the tor-commits mailing list