Commit a999cb43 authored by David Goulet's avatar David Goulet 🐼
Browse files

protover: Add missing Padding to translate_to_rust



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's avatarDavid Goulet <dgoulet@torproject.org>
parent 955a6223
Loading
Loading
Loading
Loading

changes/ticket29631

0 → 100644
+4 −0
Original line number Diff line number Diff line
  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.
+11 −11
Original line number Diff line number Diff line
@@ -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);
+1 −0
Original line number Diff line number Diff line
@@ -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),
    }
}