Skip to content

Commit b5c89cc

Browse files
Use PrintableString for displaying errors in PeerManager
We currently just print "with non-ASCII error message" to log when we see non-ASCII chars, but should instead use our fancy PrintableString type to display the untrusted string and ignore control chars.
1 parent fb140b5 commit b5c89cc

File tree

1 file changed

+3
-26
lines changed

1 file changed

+3
-26
lines changed

lightning/src/ln/peer_handler.rs

Lines changed: 3 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ use crate::onion_message::{CustomOnionMessageContents, CustomOnionMessageHandler
3131
use crate::routing::gossip::{NetworkGraph, P2PGossipSync, NodeId, NodeAlias};
3232
use crate::util::atomic_counter::AtomicCounter;
3333
use crate::util::logger::Logger;
34+
use crate::util::string::PrintableString;
3435

3536
use crate::prelude::*;
3637
use crate::io;
@@ -1536,38 +1537,14 @@ impl<Descriptor: SocketDescriptor, CM: Deref, RM: Deref, OM: Deref, L: Deref, CM
15361537
// Handled above
15371538
},
15381539
wire::Message::Error(msg) => {
1539-
let mut data_is_printable = true;
1540-
for b in msg.data.bytes() {
1541-
if b < 32 || b > 126 {
1542-
data_is_printable = false;
1543-
break;
1544-
}
1545-
}
1546-
1547-
if data_is_printable {
1548-
log_debug!(self.logger, "Got Err message from {}: {}", log_pubkey!(their_node_id), msg.data);
1549-
} else {
1550-
log_debug!(self.logger, "Got Err message from {} with non-ASCII error message", log_pubkey!(their_node_id));
1551-
}
1540+
log_debug!(self.logger, "Got Err message from {}: {}", log_pubkey!(their_node_id), PrintableString(&msg.data));
15521541
self.message_handler.chan_handler.handle_error(&their_node_id, &msg);
15531542
if msg.channel_id == [0; 32] {
15541543
return Err(PeerHandleError { }.into());
15551544
}
15561545
},
15571546
wire::Message::Warning(msg) => {
1558-
let mut data_is_printable = true;
1559-
for b in msg.data.bytes() {
1560-
if b < 32 || b > 126 {
1561-
data_is_printable = false;
1562-
break;
1563-
}
1564-
}
1565-
1566-
if data_is_printable {
1567-
log_debug!(self.logger, "Got warning message from {}: {}", log_pubkey!(their_node_id), msg.data);
1568-
} else {
1569-
log_debug!(self.logger, "Got warning message from {} with non-ASCII error message", log_pubkey!(their_node_id));
1570-
}
1547+
log_debug!(self.logger, "Got warning message from {}: {}", log_pubkey!(their_node_id), PrintableString(&msg.data));
15711548
},
15721549

15731550
wire::Message::Ping(msg) => {

0 commit comments

Comments
 (0)