From f013a44581472c2361083eadbd8b4cc046028fa1 Mon Sep 17 00:00:00 2001
From: Stephan Renatus <srenatus@chef.io>
Date: Mon, 11 Dec 2017 08:25:25 +0100
Subject: [PATCH] handlers/connector_login: check before update (optimization)

Signed-off-by: Stephan Renatus <srenatus@chef.io>
---
 server/handlers.go | 18 ++++++++++--------
 1 file changed, 10 insertions(+), 8 deletions(-)

diff --git a/server/handlers.go b/server/handlers.go
index d36c55bc..430253c3 100644
--- a/server/handlers.go
+++ b/server/handlers.go
@@ -224,14 +224,16 @@ func (s *Server) handleConnectorLogin(w http.ResponseWriter, r *http.Request) {
 	}
 
 	// Set the connector being used for the login.
-	updater := func(a storage.AuthRequest) (storage.AuthRequest, error) {
-		a.ConnectorID = connID
-		return a, nil
-	}
-	if err := s.storage.UpdateAuthRequest(authReqID, updater); err != nil {
-		s.logger.Errorf("Failed to set connector ID on auth request: %v", err)
-		s.renderError(w, http.StatusInternalServerError, "Database error.")
-		return
+	if authReq.ConnectorID != connID {
+		updater := func(a storage.AuthRequest) (storage.AuthRequest, error) {
+			a.ConnectorID = connID
+			return a, nil
+		}
+		if err := s.storage.UpdateAuthRequest(authReqID, updater); err != nil {
+			s.logger.Errorf("Failed to set connector ID on auth request: %v", err)
+			s.renderError(w, http.StatusInternalServerError, "Database error.")
+			return
+		}
 	}
 
 	scopes := parseScopes(authReq.Scopes)
-- 
GitLab