@@ -2,6 +2,7 @@ package collect
22
33import (
44 "bytes"
5+ "fmt"
56 "net"
67 "regexp"
78 "strconv"
@@ -70,19 +71,20 @@ func isValidLoadBalancerAddress(address string) bool {
7071 return len (errs ) == 0
7172}
7273
73- func checkTCPConnection (progressChan chan <- interface {}, listenAddress string , dialAddress string , timeout time.Duration ) (NetworkStatus , error ) {
74+ func checkTCPConnection (progressChan chan <- interface {}, listenAddress string , dialAddress string , timeout time.Duration ) (NetworkStatus , string , error ) {
7475
7576 if ! isValidLoadBalancerAddress (dialAddress ) {
76- return NetworkStatusInvalidAddress , errors .Errorf ("Invalid Load Balancer Address: %v" , dialAddress )
77+ errMsg := fmt .Sprintf ("Invalid Load Balancer Address: %v" , dialAddress )
78+ return NetworkStatusInvalidAddress , errMsg , errors .New (errMsg )
7779 }
7880
7981 lstn , err := net .Listen ("tcp" , listenAddress )
8082 if err != nil {
8183 if strings .Contains (err .Error (), "address already in use" ) {
82- return NetworkStatusAddressInUse , nil
84+ return NetworkStatusAddressInUse , err . Error (), errors . Wrap ( err , "failed to create listener" )
8385 }
8486
85- return NetworkStatusErrorOther , errors .Wrap (err , "failed to create listener" )
87+ return NetworkStatusErrorOther , err . Error (), errors .Wrap (err , "failed to create listener" )
8688 }
8789 defer lstn .Close ()
8890
@@ -110,7 +112,8 @@ func checkTCPConnection(progressChan chan<- interface{}, listenAddress string, d
110112 if time .Now ().After (stopAfter ) {
111113 debug .Printf ("Timeout" )
112114
113- return NetworkStatusConnectionTimeout , nil
115+ errMsg := "connection timeout"
116+ return NetworkStatusConnectionTimeout , errMsg , errors .New (errMsg )
114117 }
115118
116119 conn , err := net .DialTimeout ("tcp" , dialAddress , 50 * time .Millisecond )
@@ -124,13 +127,13 @@ func checkTCPConnection(progressChan chan<- interface{}, listenAddress string, d
124127 continue
125128 }
126129 if strings .Contains (err .Error (), "connection refused" ) {
127- return NetworkStatusConnectionRefused , nil
130+ return NetworkStatusConnectionRefused , err . Error (), errors . Wrap ( err , "failed to dial" )
128131 }
129- return NetworkStatusErrorOther , errors .Wrap (err , "failed to dial" )
132+ return NetworkStatusErrorOther , err . Error (), errors .Wrap (err , "failed to dial" )
130133 }
131134
132135 if verifyConnectionToServer (conn , requestToken , responseToken ) {
133- return NetworkStatusConnected , nil
136+ return NetworkStatusConnected , "" , nil
134137 }
135138
136139 progressChan <- errors .New ("failed to verify connection to server" )
0 commit comments