Explorar el Código

successfully parse exit policies on future attempts too

svn:r558
Roger Dingledine hace 20 años
padre
commit
aca4bc5126
Se han modificado 1 ficheros con 10 adiciones y 6 borrados
  1. 10 6
      src/or/routers.c

+ 10 - 6
src/or/routers.c

@@ -950,6 +950,7 @@ static void router_free_exit_policy(routerinfo_t *router) {
 void router_add_exit_policy_from_config(routerinfo_t *router) {
   char *s = options.ExitPolicy, *e;
   int last=0;
+  char line[1024];
 
   if(!s) {
     log_fn(LOG_INFO,"No exit policy configured. Ok.");
@@ -962,13 +963,16 @@ void router_add_exit_policy_from_config(routerinfo_t *router) {
 
   for(;;) {
     e = strchr(s,',');
-    if(!e)
+    if(!e) {
       last = 1;
-    else
-      *e = 0;
-    log_fn(LOG_DEBUG,"Adding new entry '%s'",s);
-    if(router_add_exit_policy_from_string(router,s) < 0)
-      log_fn(LOG_WARNING,"Malformed exit policy %s; skipping.", s);
+      strcpy(line,s);
+    } else {
+      memcpy(line,s,e-s);
+      line[e-s] = 0;
+    }
+    log_fn(LOG_DEBUG,"Adding new entry '%s'",line);
+    if(router_add_exit_policy_from_string(router,line) < 0)
+      log_fn(LOG_WARNING,"Malformed exit policy %s; skipping.", line);
     if(last)
       return;
     s = e+1;