Skip to content

Commit cb42bd1

Browse files
committed
fakechanbackup: fix onion address parsing
Fixes #24 by correctly parsing Tor addresses that contain a .onion hostname.
1 parent 0242b40 commit cb42bd1

File tree

1 file changed

+20
-2
lines changed

1 file changed

+20
-2
lines changed

cmd/chantools/fakechanbackup.go

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -167,9 +167,27 @@ func (c *fakeChanBackupCommand) Execute(_ *cobra.Command, _ []string) error {
167167
if err != nil {
168168
return fmt.Errorf("could not parse pubkey: %s", err)
169169
}
170-
addr, err := net.ResolveTCPAddr("tcp", splitNodeInfo[1])
170+
host, portStr, err := net.SplitHostPort(splitNodeInfo[1])
171171
if err != nil {
172-
return fmt.Errorf("could not parse addr: %s", err)
172+
return fmt.Errorf("could not split host and port: %v",
173+
err)
174+
}
175+
176+
var addr net.Addr
177+
if tor.IsOnionHost(host) {
178+
port, err := strconv.Atoi(portStr)
179+
if err != nil {
180+
return fmt.Errorf("could not parse port: %v", err)
181+
}
182+
addr = &tor.OnionAddr{
183+
OnionService: host,
184+
Port: port,
185+
}
186+
} else {
187+
addr, err = net.ResolveTCPAddr("tcp", splitNodeInfo[1])
188+
if err != nil {
189+
return fmt.Errorf("could not parse addr: %s", err)
190+
}
173191
}
174192

175193
// Parse the short channel ID.

0 commit comments

Comments
 (0)