Fix panic when peer is not yet associated
Cadoles/go-http-peering/pipeline/head This commit is unstable Details

This commit is contained in:
wpetit 2023-09-04 21:08:46 -06:00
parent d38f0be312
commit 891cfa7540
1 changed files with 2 additions and 4 deletions

View File

@ -8,14 +8,13 @@ import (
"errors" "errors"
"io" "io"
"io/ioutil" "io/ioutil"
"net/http"
"time" "time"
peeringCrypto "forge.cadoles.com/Cadoles/go-http-peering/crypto" peeringCrypto "forge.cadoles.com/Cadoles/go-http-peering/crypto"
peering "forge.cadoles.com/Cadoles/go-http-peering" peering "forge.cadoles.com/Cadoles/go-http-peering"
jwt "github.com/dgrijalva/jwt-go" jwt "github.com/dgrijalva/jwt-go"
"net/http"
) )
const ( const (
@ -38,7 +37,6 @@ func Authenticate(store peering.Store, key *rsa.PublicKey, funcs ...OptionFunc)
middleware := func(next http.Handler) http.Handler { middleware := func(next http.Handler) http.Handler {
fn := func(w http.ResponseWriter, r *http.Request) { fn := func(w http.ResponseWriter, r *http.Request) {
serverToken := r.Header.Get(ServerTokenHeader) serverToken := r.Header.Get(ServerTokenHeader)
if serverToken == "" { if serverToken == "" {
sendError(w, http.StatusUnauthorized) sendError(w, http.StatusUnauthorized)
@ -77,6 +75,7 @@ func Authenticate(store peering.Store, key *rsa.PublicKey, funcs ...OptionFunc)
return return
} }
sendError(w, http.StatusUnauthorized) sendError(w, http.StatusUnauthorized)
return
case ErrPeerRejected: case ErrPeerRejected:
if err := store.UpdateLastContact(serverClaims.PeerID, r.RemoteAddr, time.Now()); err != nil { if err := store.UpdateLastContact(serverClaims.PeerID, r.RemoteAddr, time.Now()); err != nil {
logger.Printf("[ERROR] %s", err) logger.Printf("[ERROR] %s", err)
@ -115,7 +114,6 @@ func Authenticate(store peering.Store, key *rsa.PublicKey, funcs ...OptionFunc)
r.Body = ioutil.NopCloser(bytes.NewBuffer(body)) r.Body = ioutil.NopCloser(bytes.NewBuffer(body))
next.ServeHTTP(w, r) next.ServeHTTP(w, r)
} }
return http.HandlerFunc(fn) return http.HandlerFunc(fn)
} }