Преглед на файлове

Only reject POSTDESCRIPTOR purpose= when the purpose is unrecognized

Fixes bug 30580; bugfix on 0.4.1.1-alpha.
Nick Mathewson преди 5 години
родител
ревизия
57ee0e3af9
променени са 2 файла, в които са добавени 9 реда и са изтрити 3 реда
  1. 4 0
      changes/ticket30580
  2. 5 3
      src/feature/control/control_cmd.c

+ 4 - 0
changes/ticket30580

@@ -0,0 +1,4 @@
+  o Minor bugfixes (controller):
+    - POSTDESCRIPTOR requests should work again. Previously, they were
+      broken if a "purpose=" flag was specified.  Fixes bug 30580;
+      bugfix on 0.4.1.1-alpha.

+ 5 - 3
src/feature/control/control_cmd.c

@@ -1049,9 +1049,11 @@ handle_control_postdescriptor(control_connection_t *conn,
   line = config_line_find_case(args->kwargs, "purpose");
   if (line) {
     purpose = router_purpose_from_string(line->value);
-    control_printf_endreply(conn, 552, "Unknown purpose \"%s\"",
-                            line->value);
-    goto done;
+    if (purpose == ROUTER_PURPOSE_UNKNOWN) {
+      control_printf_endreply(conn, 552, "Unknown purpose \"%s\"",
+                              line->value);
+      goto done;
+    }
   }
   line = config_line_find_case(args->kwargs, "cache");
   if (line) {