Don't enable anonymous ports by default

This commit is contained in:
John Doty 2024-08-10 06:58:22 -07:00
parent de06612eb1
commit b86a09131b

View file

@ -605,12 +605,21 @@ impl UI {
listener.connect(self.socks_port, port_desc); listener.connect(self.socks_port, port_desc);
} else { } else {
assert!(!self.config.contains_key(port_desc.port)); assert!(!self.config.contains_key(port_desc.port));
// The server can send us these ports it knows nothing about.
// These might be dangerous to enable by default, so don't.
let enabled = if port_desc.desc.is_empty() {
false
} else {
self.config.auto()
};
self.ports.insert( self.ports.insert(
port_desc.port, port_desc.port,
Listener::from_desc( Listener::from_desc(
self.socks_port, self.socks_port,
port_desc, port_desc,
self.config.auto(), enabled,
), ),
); );
} }
@ -1135,4 +1144,21 @@ mod tests {
drop(sender); drop(sender);
} }
#[test]
fn empty_port_desc_disabled_by_default() {
let (sender, receiver) = mpsc::channel(64);
let config = ServerConfig::default();
let mut ui = UI::new(receiver, config);
ui.handle_internal_event(Some(UIEvent::Ports(vec![PortDesc {
port: 8080,
desc: "".to_string(),
}])));
let listener = ui.ports.get(&8080).unwrap();
assert_eq!(listener.state(), State::Disabled);
drop(sender);
}
} }