]> Cypherpunks.ru repositories - govpn.git/commitdiff
Skip peer creation if either up-script or interface call failed
authorSergey Matveev <stargrave@stargrave.org>
Sun, 15 Nov 2015 10:48:13 +0000 (13:48 +0300)
committerSergey Matveev <stargrave@stargrave.org>
Sun, 15 Nov 2015 10:48:13 +0000 (13:48 +0300)
Signed-off-by: Sergey Matveev <stargrave@stargrave.org>
src/govpn/cmd/govpn-server/common.go
src/govpn/cmd/govpn-server/tcp.go

index f2cc0d324096cb0a0e6037af401624701d36557b..6560cfe1cb8fd01290cc7294febe2546e78326f6 100644 (file)
@@ -20,6 +20,7 @@ package main
 
 import (
        "bytes"
+       "log"
        "sync"
        "time"
 
@@ -68,6 +69,7 @@ Processor:
 func callUp(peerId *govpn.PeerId) (string, error) {
        result, err := govpn.ScriptCall(confs[*peerId].Up, "")
        if err != nil {
+               log.Println("Script", confs[*peerId].Up, "call failed", err)
                return "", err
        }
        sepIndex := bytes.Index(result, []byte{'\n'})
index 437b5005aa8ca11b085419e484bf218108941c3a..dcd9606871894b23eb782c2d8c5100277feaf86f 100644 (file)
@@ -117,11 +117,13 @@ func handleTCP(conn net.Conn) {
                } else {
                        ifaceName, err := callUp(peer.Id)
                        if err != nil {
+                               peer = nil
                                break
                        }
                        tap, err = govpn.TAPListen(ifaceName)
                        if err != nil {
                                log.Println("Unable to create TAP:", err)
+                               peer = nil
                                break
                        }
                        ps = &PeerState{