X-Git-Url: http://www.git.cypherpunks.ru/?a=blobdiff_plain;f=src%2Fgovpn%2Fcmd%2Fgovpn-server%2Fcommon.go;h=313fc394aed7b70fc21e28d32b7f01bf5236ac9b;hb=af08408334c3e2f23acde5f74e77f628c85b532a;hp=3b3fcdae97f6168feeea8dccbcb067a694caca1a;hpb=933703051138e099c2fde03861278477058c3517;p=govpn.git diff --git a/src/govpn/cmd/govpn-server/common.go b/src/govpn/cmd/govpn-server/common.go index 3b3fcda..313fc39 100644 --- a/src/govpn/cmd/govpn-server/common.go +++ b/src/govpn/cmd/govpn-server/common.go @@ -67,15 +67,23 @@ 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 + ifaceName := confs[*peerId].Iface + if confs[*peerId].Up != "" { + result, err := govpn.ScriptCall(confs[*peerId].Up, "") + if err != nil { + log.Println("Script", confs[*peerId].Up, "call failed", err) + return "", err + } + if ifaceName == "" { + sepIndex := bytes.Index(result, []byte{'\n'}) + if sepIndex < 0 { + sepIndex = len(result) + } + ifaceName = string(result[:sepIndex]) + } } - sepIndex := bytes.Index(result, []byte{'\n'}) - if sepIndex < 0 { - sepIndex = len(result) + if ifaceName == "" { + log.Println("Can not obtain interface name for", *peerId) } - ifaceName := string(result[:sepIndex]) return ifaceName, nil }