fix ws
This commit is contained in:
parent
80b2e7b9da
commit
3dfb612e6f
@ -231,7 +231,23 @@ impl Network {
|
|||||||
match unord.next().timeout_at(stop_token.clone()).await {
|
match unord.next().timeout_at(stop_token.clone()).await {
|
||||||
Ok(Some(Some(ddi))) => {
|
Ok(Some(Some(ddi))) => {
|
||||||
// Found some new dial info for this protocol/address combination
|
// Found some new dial info for this protocol/address combination
|
||||||
self.update_with_detected_dial_info(ddi).await?
|
self.update_with_detected_dial_info(ddi.clone()).await?;
|
||||||
|
|
||||||
|
// Add WS dialinfo as well if it is on the same port as TCP
|
||||||
|
if let DetectedDialInfo::Detected(did) = &ddi {
|
||||||
|
if did.dial_info.protocol_type() == ProtocolType::TCP && tcp_same_port {
|
||||||
|
// Make WS dialinfo as well with same socket address as TCP
|
||||||
|
let ws_ddi = DetectedDialInfo::Detected(DialInfoDetail {
|
||||||
|
dial_info: self.make_dial_info(
|
||||||
|
did.dial_info.socket_address(),
|
||||||
|
ProtocolType::WS,
|
||||||
|
),
|
||||||
|
class: did.class,
|
||||||
|
});
|
||||||
|
// Add additional WS dialinfo
|
||||||
|
self.update_with_detected_dial_info(ws_ddi).await?;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Ok(Some(None)) => {
|
Ok(Some(None)) => {
|
||||||
// Found no new dial info for this protocol/address combination
|
// Found no new dial info for this protocol/address combination
|
||||||
@ -285,4 +301,21 @@ impl Network {
|
|||||||
|
|
||||||
out
|
out
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Make a dialinfo from an address and protocol type
|
||||||
|
pub fn make_dial_info(&self, addr: SocketAddress, protocol_type: ProtocolType) -> DialInfo {
|
||||||
|
match protocol_type {
|
||||||
|
ProtocolType::UDP => DialInfo::udp(addr),
|
||||||
|
ProtocolType::TCP => DialInfo::tcp(addr),
|
||||||
|
ProtocolType::WS => {
|
||||||
|
let c = self.config.get();
|
||||||
|
DialInfo::try_ws(
|
||||||
|
addr,
|
||||||
|
format!("ws://{}/{}", addr, c.network.protocol.ws.path),
|
||||||
|
)
|
||||||
|
.unwrap()
|
||||||
|
}
|
||||||
|
ProtocolType::WSS => panic!("none of the discovery functions are used for wss"),
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user