Преглед изворни кода

Added better error checking. Fixed documentation typo.

mfallone пре 10 година
родитељ
комит
14c7fef021
3 измењених фајлова са 15 додато и 5 уклоњено
  1. 10 2
      ConsoleClient/psiphonClient.go
  2. 1 1
      psiphon/config.go
  3. 4 2
      psiphon/networkInterface.go

+ 10 - 2
ConsoleClient/psiphonClient.go

@@ -158,11 +158,19 @@ func main() {
 
 	if interfaceName != "" {
 		config.ListenInterface = interfaceName
-		config.ListenIP = psiphon.GetInterfaceIPAddress(interfaceName)
+		config.ListenIP, err = psiphon.GetInterfaceIPAddress(interfaceName)
+		if err != nil {
+			psiphon.NoticeError("error getting listener IP: %s", err)
+			os.Exit(1)
+		}
 		psiphon.NoticeAlert("Listening on interface: %s : %s", config.ListenInterface, config.ListenIP)
 	} else {
 		if config.ListenInterface != "" {
-			config.ListenIP = psiphon.GetInterfaceIPAddress(config.ListenInterface)
+			config.ListenIP, err = psiphon.GetInterfaceIPAddress(config.ListenInterface)
+			if err != nil {
+				psiphon.NoticeError("error getting listener IP: %s", err)
+				os.Exit(1)
+			}
 		} else {
 			config.ListenIP = "127.0.0.1"
 		}

+ 1 - 1
psiphon/config.go

@@ -144,7 +144,7 @@ type Config struct {
 	// the controller will keep trying indefinitely.
 	EstablishTunnelTimeoutSeconds *int
 
-	// ListenInterface specifies whic interface to listen on.  If no interface
+	// ListenInterface specifies which interface to listen on.  If no interface
 	// is provided then listen on 127.0.0.1.
 	// If 'any' is provided then use 0.0.0.0
 	ListenInterface string

+ 4 - 2
psiphon/networkInterface.go

@@ -23,7 +23,7 @@ import (
 	"net"
 )
 
-func GetInterfaceIPAddress(interfaceName string) string {
+func GetInterfaceIPAddress(interfaceName string) (string, error) {
 	var selectedInterface net.Interface
 	var ip net.IP
 
@@ -31,6 +31,7 @@ func GetInterfaceIPAddress(interfaceName string) string {
 	availableInterfaces, err := net.Interfaces()
 	if err != nil {
 		NoticeAlert("%s", ContextError(err))
+		return "", err
 	}
 
 	if interfaceName == "any" {
@@ -55,6 +56,7 @@ func GetInterfaceIPAddress(interfaceName string) string {
 	netAddrs, err := selectedInterface.Addrs()
 	if err != nil {
 		NoticeAlert("Error : %s", err.Error())
+		return "", err
 	}
 
 	for _, ipAddr := range netAddrs {
@@ -67,5 +69,5 @@ func GetInterfaceIPAddress(interfaceName string) string {
 		}
 	}
 
-	return ip.String()
+	return ip.String(), nil
 }