X-Git-Url: http://www.git.cypherpunks.ru/?p=govpn.git;a=blobdiff_plain;f=src%2Fcypherpunks.ru%2Fgovpn%2Fcmd%2Fgovpn-server%2Fcommon.go;h=f18d34b420c964a644dcbc4ae76170c1672e8800;hp=eac8a98097b10ac1c4c11f2ca7e55ab6505072c3;hb=f47fff1e42f75b736e7067ec06c2e81394833d46;hpb=cecb63f12f4a9f523276a0c19c7feb7437c7f53a diff --git a/src/cypherpunks.ru/govpn/cmd/govpn-server/common.go b/src/cypherpunks.ru/govpn/cmd/govpn-server/common.go index eac8a98..f18d34b 100644 --- a/src/cypherpunks.ru/govpn/cmd/govpn-server/common.go +++ b/src/cypherpunks.ru/govpn/cmd/govpn-server/common.go @@ -1,6 +1,6 @@ /* GoVPN -- simple secure free software virtual private network daemon -Copyright (C) 2014-2016 Sergey Matveev +Copyright (C) 2014-2017 Sergey Matveev This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -20,9 +20,7 @@ package main import ( "bytes" - "log" "sync" - "time" "cypherpunks.ru/govpn" ) @@ -37,41 +35,27 @@ var ( handshakes map[string]*govpn.Handshake = make(map[string]*govpn.Handshake) hsLock sync.RWMutex - peers map[string]*PeerState = make(map[string]*PeerState) + peers = make(map[string]*PeerState) peersLock sync.RWMutex - peersById map[govpn.PeerId]string = make(map[govpn.PeerId]string) - peersByIdLock sync.RWMutex + peersByID = make(map[govpn.PeerID]string) + peersByIDLock sync.RWMutex knownPeers govpn.KnownPeers kpLock sync.RWMutex ) -func peerReady(ps PeerState) { - var data []byte - heartbeat := time.NewTicker(ps.peer.Timeout) -Processor: - for { - select { - case <-heartbeat.C: - ps.peer.EthProcess(nil) - case <-ps.terminator: - break Processor - case data = <-ps.tap.Sink: - ps.peer.EthProcess(data) - } - } - close(ps.terminator) - ps.peer.Zero() - heartbeat.Stop() -} - -func callUp(peerId *govpn.PeerId) (string, error) { - ifaceName := confs[*peerId].Iface - if confs[*peerId].Up != "" { - result, err := govpn.ScriptCall(confs[*peerId].Up, "") +func callUp(peerID *govpn.PeerID, remoteAddr string) (string, error) { + ifaceName := confs[*peerID].Iface + if confs[*peerID].Up != "" { + result, err := govpn.ScriptCall(confs[*peerID].Up, ifaceName, remoteAddr) if err != nil { - log.Println("Script", confs[*peerId].Up, "call failed", err) + govpn.Printf( + `[script-failed bind="%s" path="%s" err="%s"]`, + *bindAddr, + confs[*peerID].Up, + err, + ) return "", err } if ifaceName == "" { @@ -83,7 +67,7 @@ func callUp(peerId *govpn.PeerId) (string, error) { } } if ifaceName == "" { - log.Println("Can not obtain interface name for", *peerId) + govpn.Printf(`[tap-failed bind="%s" peer="%s"]`, *bindAddr, *peerID) } return ifaceName, nil }