@@ -391,15 +391,6 @@ pub enum NetAddress {
391
391
} ,
392
392
}
393
393
impl NetAddress {
394
- fn get_id ( & self ) -> u8 {
395
- match self {
396
- & NetAddress :: IPv4 { ..} => { 1 } ,
397
- & NetAddress :: IPv6 { ..} => { 2 } ,
398
- & NetAddress :: OnionV2 { ..} => { 3 } ,
399
- & NetAddress :: OnionV3 { ..} => { 4 } ,
400
- }
401
- }
402
-
403
394
/// Strict byte-length of address descriptor, 1-byte type not recorded
404
395
fn len ( & self ) -> u16 {
405
396
match self {
@@ -1535,14 +1526,12 @@ impl Writeable for UnsignedNodeAnnouncement {
1535
1526
w. write_all ( & self . rgb ) ?;
1536
1527
self . alias . write ( w) ?;
1537
1528
1538
- let mut addrs_to_encode = self . addresses . clone ( ) ;
1539
- addrs_to_encode. sort_by ( |a, b| { a. get_id ( ) . cmp ( & b. get_id ( ) ) } ) ;
1540
1529
let mut addr_len = 0 ;
1541
- for addr in & addrs_to_encode {
1530
+ for addr in self . addresses . iter ( ) {
1542
1531
addr_len += 1 + addr. len ( ) ;
1543
1532
}
1544
1533
( addr_len + self . excess_address_data . len ( ) as u16 ) . write ( w) ?;
1545
- for addr in addrs_to_encode {
1534
+ for addr in self . addresses . iter ( ) {
1546
1535
addr. write ( w) ?;
1547
1536
}
1548
1537
w. write_all ( & self . excess_address_data [ ..] ) ?;
@@ -1562,19 +1551,13 @@ impl Readable for UnsignedNodeAnnouncement {
1562
1551
1563
1552
let addr_len: u16 = Readable :: read ( r) ?;
1564
1553
let mut addresses: Vec < NetAddress > = Vec :: new ( ) ;
1565
- let mut highest_addr_type = 0 ;
1566
1554
let mut addr_readpos = 0 ;
1567
1555
let mut excess = false ;
1568
1556
let mut excess_byte = 0 ;
1569
1557
loop {
1570
1558
if addr_len <= addr_readpos { break ; }
1571
1559
match Readable :: read ( r) {
1572
1560
Ok ( Ok ( addr) ) => {
1573
- if addr. get_id ( ) < highest_addr_type {
1574
- // Addresses must be sorted in increasing order
1575
- return Err ( DecodeError :: InvalidValue ) ;
1576
- }
1577
- highest_addr_type = addr. get_id ( ) ;
1578
1561
if addr_len < addr_readpos + 1 + addr. len ( ) {
1579
1562
return Err ( DecodeError :: BadLengthDescriptor ) ;
1580
1563
}
0 commit comments