From 41f3d5c7ac89f51080b4e75513e0be0aac1c9f80 Mon Sep 17 00:00:00 2001 From: William Petit Date: Sun, 7 Apr 2019 09:40:21 +0200 Subject: [PATCH] Update last contact even if the remote peer is not authorized yet --- server/middleware.go | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/server/middleware.go b/server/middleware.go index 16f152d..36a99a9 100644 --- a/server/middleware.go +++ b/server/middleware.go @@ -61,9 +61,17 @@ func Authenticate(store peering.Store, key *rsa.PublicKey, funcs ...OptionFunc) clientClaims, err := assertClientToken(serverClaims.PeerID, store, clientToken) if err != nil { logger.Printf("[ERROR] %s", err) - if err == peering.ErrPeerNotFound || err == ErrNotPeered { + switch err { + case peering.ErrPeerNotFound: sendError(w, http.StatusUnauthorized) - } else { + case ErrNotPeered: + if err := store.UpdateLastContact(serverClaims.PeerID, r.RemoteAddr, time.Now()); err != nil { + logger.Printf("[ERROR] %s", err) + sendError(w, http.StatusInternalServerError) + return + } + sendError(w, http.StatusUnauthorized) + default: sendError(w, http.StatusInternalServerError) } return