From a6c1085e9e65eceadaec538c856f5b77f1aaf76a Mon Sep 17 00:00:00 2001
From: Fabian Seidl <fabian.seidl@h-da.de>
Date: Wed, 8 May 2024 10:36:32 +0000
Subject: [PATCH] Only start quantum gRPC server if necessary

See merge request danet/quant!111
---
 goKMS/kms/kms.go | 22 ++++++++++++----------
 1 file changed, 12 insertions(+), 10 deletions(-)

diff --git a/goKMS/kms/kms.go b/goKMS/kms/kms.go
index 0c9f2be8..393fa043 100644
--- a/goKMS/kms/kms.go
+++ b/goKMS/kms/kms.go
@@ -258,14 +258,19 @@ func (kms *KMS) startGRPC(interComAddr string, quantumAddress string, tlsData km
 		KMS:               kms,
 	})
 
-	quantumLis, err := net.Listen("tcp", quantumAddress)
-	if err != nil {
-		log.Fatalf("failed to listen: %v", err)
+	if quantumAddress != "" {
+		quantumLis, err := net.Listen("tcp", quantumAddress)
+		if err != nil {
+			log.Fatalf("failed to listen: %v", err)
+		}
+		quantumServ := grpc.NewServer()
+		pbQS.RegisterKmsQkdmCommunicationServiceServer(quantumServ, &quipSecServer{
+			KMS: kms,
+		})
+
+		log.Infof("quantum server listening at %v", quantumLis.Addr())
+		go quantumServ.Serve(quantumLis) //nolint:errcheck
 	}
-	quantumServ := grpc.NewServer()
-	pbQS.RegisterKmsQkdmCommunicationServiceServer(quantumServ, &quipSecServer{
-		KMS: kms,
-	})
 
 	go func() {
 		// set status to serving
@@ -275,9 +280,6 @@ func (kms *KMS) startGRPC(interComAddr string, quantumAddress string, tlsData km
 		//    for{}
 	}()
 
-	log.Infof("quantum server listening at %v", quantumLis.Addr())
-	go quantumServ.Serve(quantumLis) //nolint:errcheck
-
 	log.Infof("inter KMS server listening at %v", interKMSLis.Addr())
 	if err := interKMSServer.Serve(interKMSLis); err != nil {
 		log.Fatalf("failed to serve: %v", err)
-- 
GitLab