]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
protover: Add missing Padding to translate_to_rust
authorDavid Goulet <dgoulet@torproject.org>
Fri, 1 Mar 2019 18:50:00 +0000 (13:50 -0500)
committerDavid Goulet <dgoulet@torproject.org>
Tue, 5 Mar 2019 17:33:43 +0000 (12:33 -0500)
This commit also explicitly set the value of the PRT enum so we can match/pin
the C enum values to the Rust one in protover/ffi.rs.

Fixes #29631

Signed-off-by: David Goulet <dgoulet@torproject.org>
changes/ticket29631 [new file with mode: 0644]
src/core/or/protover.h
src/rust/protover/ffi.rs

diff --git a/changes/ticket29631 b/changes/ticket29631
new file mode 100644 (file)
index 0000000..9fc194b
--- /dev/null
@@ -0,0 +1,4 @@
+  o Minor bugfixes (Rust, protover):
+    - The Rust implementation of protover was missing the "Padding" value in
+      the translate function from C to Rust. Fixes bug 29631; bugfix on
+      0.4.0.1-alpha.
index 27106d4bec8cd0a418ce94b59316b65c45aa5a0e..567b94a168663cbc1e37872e8b3ca17c1a277e2b 100644 (file)
@@ -33,17 +33,17 @@ struct smartlist_t;
 /// C_RUST_COUPLED: src/rust/protover/ffi.rs `translate_to_rust`
 /// C_RUST_COUPLED: src/rust/protover/protover.rs `Proto`
 typedef enum protocol_type_t {
-  PRT_LINK,
-  PRT_LINKAUTH,
-  PRT_RELAY,
-  PRT_DIRCACHE,
-  PRT_HSDIR,
-  PRT_HSINTRO,
-  PRT_HSREND,
-  PRT_DESC,
-  PRT_MICRODESC,
-  PRT_CONS,
-  PRT_PADDING,
+  PRT_LINK      = 0,
+  PRT_LINKAUTH  = 1,
+  PRT_RELAY     = 2,
+  PRT_DIRCACHE  = 3,
+  PRT_HSDIR     = 4,
+  PRT_HSINTRO   = 5,
+  PRT_HSREND    = 6,
+  PRT_DESC      = 7,
+  PRT_MICRODESC = 8,
+  PRT_CONS      = 9,
+  PRT_PADDING   = 10,
 } protocol_type_t;
 
 bool protover_contains_long_protocol_names(const char *s);
index 6ee63adb10171099159627d91663194aba4ddfec..066b08eddbfafccbace857c0ea9e177235c5ea6f 100644 (file)
@@ -30,6 +30,7 @@ fn translate_to_rust(c_proto: uint32_t) -> Result<Protocol, ProtoverError> {
         7 => Ok(Protocol::Desc),
         8 => Ok(Protocol::Microdesc),
         9 => Ok(Protocol::Cons),
+        10 => Ok(Protocol::Padding),
         _ => Err(ProtoverError::UnknownProtocol),
     }
 }