Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 12 additions & 21 deletions lightning/src/ln/msgs.rs
Original file line number Diff line number Diff line change
Expand Up @@ -394,12 +394,10 @@ pub enum NetAddress {
port: u16,
},
/// An old-style Tor onion address/port on which the peer is listening.
OnionV2 {
/// The bytes (usually encoded in base32 with ".onion" appended)
addr: [u8; 10],
/// The port on which the node is listening
port: u16,
},
///
/// This field is deprecated and the Tor network generally no longer supports V2 Onion
/// addresses. Thus, the details are not parsed here.
OnionV2([u8; 12]),
/// A new-style Tor onion address/port on which the peer is listening.
/// To create the human-readable "hostname", concatenate ed25519_pubkey, checksum, and version,
/// wrap as base32 and append ".onion".
Expand All @@ -421,7 +419,7 @@ impl NetAddress {
match self {
&NetAddress::IPv4 {..} => { 1 },
&NetAddress::IPv6 {..} => { 2 },
&NetAddress::OnionV2 {..} => { 3 },
&NetAddress::OnionV2(_) => { 3 },
&NetAddress::OnionV3 {..} => { 4 },
}
}
Expand All @@ -431,7 +429,7 @@ impl NetAddress {
match self {
&NetAddress::IPv4 { .. } => { 6 },
&NetAddress::IPv6 { .. } => { 18 },
&NetAddress::OnionV2 { .. } => { 12 },
&NetAddress::OnionV2(_) => { 12 },
&NetAddress::OnionV3 { .. } => { 37 },
}
}
Expand All @@ -453,10 +451,9 @@ impl Writeable for NetAddress {
addr.write(writer)?;
port.write(writer)?;
},
&NetAddress::OnionV2 { ref addr, ref port } => {
&NetAddress::OnionV2(bytes) => {
3u8.write(writer)?;
addr.write(writer)?;
port.write(writer)?;
bytes.write(writer)?;
},
&NetAddress::OnionV3 { ref ed25519_pubkey, ref checksum, ref version, ref port } => {
4u8.write(writer)?;
Expand Down Expand Up @@ -486,12 +483,7 @@ impl Readable for Result<NetAddress, u8> {
port: Readable::read(reader)?,
}))
},
3 => {
Ok(Ok(NetAddress::OnionV2 {
addr: Readable::read(reader)?,
port: Readable::read(reader)?,
}))
},
3 => Ok(Ok(NetAddress::OnionV2(Readable::read(reader)?))),
4 => {
Ok(Ok(NetAddress::OnionV3 {
ed25519_pubkey: Readable::read(reader)?,
Expand Down Expand Up @@ -1922,10 +1914,9 @@ mod tests {
});
}
if onionv2 {
addresses.push(msgs::NetAddress::OnionV2 {
addr: [255, 254, 253, 252, 251, 250, 249, 248, 247, 246],
port: 9735
});
addresses.push(msgs::NetAddress::OnionV2(
[255, 254, 253, 252, 251, 250, 249, 248, 247, 246, 38, 7]
));
}
if onionv3 {
addresses.push(msgs::NetAddress::OnionV3 {
Expand Down
3 changes: 1 addition & 2 deletions lightning/src/util/ser.rs
Original file line number Diff line number Diff line change
Expand Up @@ -475,10 +475,9 @@ macro_rules! impl_array {
);
}

//TODO: performance issue with [u8; size] with impl_array!()
impl_array!(3); // for rgb
impl_array!(4); // for IPv4
impl_array!(10); // for OnionV2
impl_array!(12); // for OnionV2
impl_array!(16); // for IPv6
impl_array!(32); // for channel id & hmac
impl_array!(PUBLIC_KEY_SIZE); // for PublicKey
Expand Down