Skip to content

Commit 020e801

Browse files
committed
Improve error handling and eliminate side effects in getPortFromAddress
1 parent 790fae0 commit 020e801

File tree

1 file changed

+12
-5
lines changed

1 file changed

+12
-5
lines changed

daemon/algod/server.go

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -271,16 +271,16 @@ func makeListener(addr string) (net.Listener, error) {
271271
}
272272

273273
// helper to get port from an address
274-
func getPortFromAddress(addr string, logger logging.Logger) string {
274+
func getPortFromAddress(addr string) (string, error) {
275275
u, err := url.Parse(addr)
276276
if err == nil && u.Scheme != "" {
277277
addr = u.Host
278278
}
279279
_, port, err := net.SplitHostPort(addr)
280280
if err != nil {
281-
logger.Warnf("Error parsing address: %v", err)
281+
return "", fmt.Errorf("Error parsing address: %v", err)
282282
}
283-
return port
283+
return port, nil
284284
}
285285

286286
// Start starts a Node instance and its network services
@@ -374,8 +374,15 @@ func (s *Server) Start() {
374374
os.Exit(1)
375375
}
376376

377-
addrPort := getPortFromAddress(addr, s.log)
378-
listenAddrPort := getPortFromAddress(listenAddr, s.log)
377+
addrPort, err := getPortFromAddress(addr)
378+
if err != nil {
379+
s.log.Errorf("Error getting port from EndpointAddress: %v", err)
380+
}
381+
382+
listenAddrPort, err := getPortFromAddress(listenAddr)
383+
if err != nil {
384+
s.log.Errorf("Error getting port from NetAddress: %v", err)
385+
}
379386

380387
if addrPort == listenAddrPort {
381388
s.log.Warnf("EndpointAddress port %v matches NetAddress port %v. This may lead to unexpected results when accessing endpoints.", addrPort, listenAddrPort)

0 commit comments

Comments
 (0)