Whoops! Had swapped the IPv6 and Name tags; now Firefox works.

This commit is contained in:
2022-01-21 20:24:23 -08:00
parent 811580c64f
commit d284f60d67

View File

@@ -150,14 +150,14 @@ impl SOCKSv5Address {
Ok(SOCKSv5Address::IP4(Ipv4Addr::from(addr_buffer))) Ok(SOCKSv5Address::IP4(Ipv4Addr::from(addr_buffer)))
} }
3 => { 3 => {
let name = read_string(r).await?;
Ok(SOCKSv5Address::Name(name))
}
4 => {
let mut addr_buffer = [0; 16]; let mut addr_buffer = [0; 16];
read_amt(r, 16, &mut addr_buffer).await?; read_amt(r, 16, &mut addr_buffer).await?;
Ok(SOCKSv5Address::IP6(Ipv6Addr::from(addr_buffer))) Ok(SOCKSv5Address::IP6(Ipv6Addr::from(addr_buffer)))
} }
4 => {
let name = read_string(r).await?;
Ok(SOCKSv5Address::Name(name))
}
x => Err(DeserializationError::InvalidAddressType(x)), x => Err(DeserializationError::InvalidAddressType(x)),
} }
} }
@@ -174,13 +174,13 @@ impl SOCKSv5Address {
.map_err(SerializationError::IOError) .map_err(SerializationError::IOError)
} }
SOCKSv5Address::IP6(x) => { SOCKSv5Address::IP6(x) => {
w.write_all(&[3]).await?; w.write_all(&[4]).await?;
w.write_all(&x.octets()) w.write_all(&x.octets())
.await .await
.map_err(SerializationError::IOError) .map_err(SerializationError::IOError)
} }
SOCKSv5Address::Name(x) => { SOCKSv5Address::Name(x) => {
w.write_all(&[4]).await?; w.write_all(&[3]).await?;
write_string(x, w).await write_string(x, w).await
} }
} }