fix: use ip discovery address as string, not as Vec<u8>

This commit is contained in:
kozabrada123 2024-01-20 12:18:03 +01:00
parent eeb3b4a304
commit 577726f3bd
2 changed files with 6 additions and 5 deletions

View File

@ -39,10 +39,9 @@ pub enum VoiceProtocol {
/// ///
/// See <https://discord-userdoccers.vercel.app/topics/voice-connections#protocol-data-structure> /// See <https://discord-userdoccers.vercel.app/topics/voice-connections#protocol-data-structure>
pub struct SelectProtocolData { pub struct SelectProtocolData {
/// Our external ip /// Our external ip we got from ip discovery
// FIXME: This is a string pub address: String,
pub address: Vec<u8>, /// Our external udp port we got from id discovery
/// Our external udp port
pub port: u16, pub port: u16,
/// The mode of encryption to use /// The mode of encryption to use
pub mode: VoiceEncryptionMode, pub mode: VoiceEncryptionMode,

View File

@ -111,6 +111,8 @@ impl Observer<VoiceReady> for VoiceHandler {
*self.voice_udp_connection.lock().await = Some(udp_handle.clone()); *self.voice_udp_connection.lock().await = Some(udp_handle.clone());
let string_ip_address = String::from_utf8(ip_discovery.address).expect("Ip discovery gave non string ip");
self.voice_gateway_connection self.voice_gateway_connection
.lock() .lock()
.await .await
@ -119,7 +121,7 @@ impl Observer<VoiceReady> for VoiceHandler {
.send_select_protocol(SelectProtocol { .send_select_protocol(SelectProtocol {
protocol: VoiceProtocol::Udp, protocol: VoiceProtocol::Udp,
data: SelectProtocolData { data: SelectProtocolData {
address: ip_discovery.address, address: string_ip_address,
port: ip_discovery.port, port: ip_discovery.port,
mode: VoiceEncryptionMode::Xsalsa20Poly1305, mode: VoiceEncryptionMode::Xsalsa20Poly1305,
}, },