X-Git-Url: http://www.git.cypherpunks.ru/?a=blobdiff_plain;f=src%2Fsp.go;h=37cf265ead11ac3588fcb66eab69f7641599cc9c;hb=f3d5c49c31c59f699288799353b7bc1ba9211f38;hp=1d4e1c60c271ada75da2e3c22b1a0b91d086b9dd;hpb=fe84fe8198d77c4dca3bd16fd95b88e199904ad8;p=nncp.git diff --git a/src/sp.go b/src/sp.go index 1d4e1c6..37cf265 100644 --- a/src/sp.go +++ b/src/sp.go @@ -22,7 +22,6 @@ import ( "crypto/subtle" "errors" "io" - "net" "os" "path/filepath" "sort" @@ -335,14 +334,14 @@ func (state *SPState) StartI(conn ConnDeadlined) error { } var rxLock *os.File if !state.listOnly && (state.xxOnly == "" || state.xxOnly == TRx) { - rxLock, err = state.Ctx.LockDir(nodeId, TRx) + rxLock, err = state.Ctx.LockDir(nodeId, string(TRx)) if err != nil { return err } } var txLock *os.File if !state.listOnly && (state.xxOnly == "" || state.xxOnly == TTx) { - txLock, err = state.Ctx.LockDir(nodeId, TTx) + txLock, err = state.Ctx.LockDir(nodeId, string(TTx)) if err != nil { return err } @@ -481,7 +480,7 @@ func (state *SPState) StartR(conn ConnDeadlined) error { } var rxLock *os.File if xxOnly == "" || xxOnly == TRx { - rxLock, err = state.Ctx.LockDir(node.Id, TRx) + rxLock, err = state.Ctx.LockDir(node.Id, string(TRx)) if err != nil { return err } @@ -489,7 +488,7 @@ func (state *SPState) StartR(conn ConnDeadlined) error { state.rxLock = rxLock var txLock *os.File if xxOnly == "" || xxOnly == TTx { - txLock, err = state.Ctx.LockDir(node.Id, TTx) + txLock, err = state.Ctx.LockDir(node.Id, string(TTx)) if err != nil { return err } @@ -606,7 +605,6 @@ func (state *SPState) StartWorkers( go func() { state.pings <- struct{}{} state.wg.Done() - state.Ctx.LogD("HERE", SDS{}, "PING GOROUTINE QUIT") }() } } @@ -768,8 +766,7 @@ func (state *SPState) StartWorkers( break } unmarshalErr := err.(*xdr.UnmarshalError) - netErr, ok := unmarshalErr.Err.(net.Error) - if ok && netErr.Timeout() { + if os.IsTimeout(unmarshalErr.Err) { continue } if unmarshalErr.ErrorCode == xdr.ErrIO { @@ -854,6 +851,9 @@ func (state *SPState) ProcessSP(payload []byte) ([][]byte, error) { state.Ctx.LogE("sp-process", sds, err, "") return nil, err } + if head.Type != SPTypePing { + state.RxLastNonPing = state.RxLastSeen + } switch head.Type { case SPTypeHalt: state.Ctx.LogD("sp-process", SdsAdd(sds, SDS{"type": "halt"}), "") @@ -1089,9 +1089,6 @@ func (state *SPState) ProcessSP(payload []byte) ([][]byte, error) { ) return nil, BadPktType } - if head.Type != SPTypePing { - state.RxLastNonPing = state.RxLastSeen - } } if infosGot { var pkts int