diff --git a/ekms/internal/kms/kmsintercom.go b/ekms/internal/kms/kmsintercom.go index c74fda38ac0028f513700223e2922a7b55e9bbaa..583b46a25fb7360910c5b3197c21fda9cec7ee68 100644 --- a/ekms/internal/kms/kmsintercom.go +++ b/ekms/internal/kms/kmsintercom.go @@ -61,7 +61,11 @@ func (s *kmsTalkerServer) KeyIdNotification(ctx context.Context, in *pb.KeyIdNot return nil, err } - defer resp.Body.Close() + defer func() { + if closeError := resp.Body.Close(); closeError != nil { + log.Errorf("KeyIdNotification: response closing failure: %s", err) + } + }() // TODO: add proper status code handling if resp.StatusCode != 200 { @@ -226,8 +230,12 @@ func (s *kmsTalkerServer) KeyForwarding(ctx context.Context, in *pb.KeyForwardin log.Infof("%s received a payload: %s, from %s", s.eKMS.kmsName, decryptedPayload, route.Previous.tcpSocketStr) if route.Next != nil { - log.Infof("%s forwards payload to : %s", s.eKMS.kmsName, route.Next.tcpSocketStr) - go route.Next.SendPayload(decryptedPayload, pathId) + log.Infof("%s is trying to forward payload to : %s", s.eKMS.kmsName, route.Next.tcpSocketStr) + err := route.Next.SendPayload(decryptedPayload, pathId) + if err != nil { + return nil, status.Errorf(codes.Internal, "%s", err) + } + log.Infof("%s forwarded the payload to : %s successfully", s.eKMS.kmsName, route.Next.tcpSocketStr) } else { log.Infof("%s received the final payload: %s", s.eKMS.kmsName, string(decryptedPayload)) } diff --git a/ekms/restserver/restserver.go b/ekms/restserver/restserver.go index c9f12329138514788667315b51e117828a136b3f..26c38ed7ab8b8a8813cf9e96ce937df5f9f697c3 100644 --- a/ekms/restserver/restserver.go +++ b/ekms/restserver/restserver.go @@ -22,7 +22,8 @@ func SetupETSI14RestServer(etsi14RESTService *ETSI14RESTService) { etsi14APIController := restserver.NewDefaultAPIController(etsi14RESTService) router := restserver.NewRouter(etsi14APIController) - go http.ListenAndServe(etsi14RESTService.serviceAddress, router) + // NOTE check again, currently ignoring + go http.ListenAndServe(etsi14RESTService.serviceAddress, router) //nolint:errcheck logrus.Info("Server started") } diff --git a/quantumlayer/example/main.go b/quantumlayer/example/main.go index 686ccc87b872c74708db1dce0cf6c277de185a01..f29635658d51596bd8435a0bb892fc1ddf4e7b9d 100644 --- a/quantumlayer/example/main.go +++ b/quantumlayer/example/main.go @@ -52,7 +52,7 @@ func main() { return } - stopChan := make(chan os.Signal) + stopChan := make(chan os.Signal, 1) signal.Notify(stopChan, os.Interrupt, syscall.SIGTERM) ql := quantumlayer.NewQuantumlayerEmuPRNG(kmsClient, os.Stdout, logrus.GetLevel(), false) diff --git a/quantumlayer/quantumlayer-emu-prng.go b/quantumlayer/quantumlayer-emu-prng.go index b252dbf68f224ce7408ed4f7843b3478a905849f..d989fc102a6caf4be35c3673447c6fdecad79c48 100644 --- a/quantumlayer/quantumlayer-emu-prng.go +++ b/quantumlayer/quantumlayer-emu-prng.go @@ -134,7 +134,11 @@ func (qlemuprng *QuantumlayerEmuPRNG) PowerOn() { log.Fatalf("QuantumlayerEmuPRNG: UDP failure: %s", err) return } - defer qlemuprng.udpSrvConn.Close() + defer func() { + if closeError := qlemuprng.udpSrvConn.Close(); closeError != nil { + log.Errorf("QuantumlayerEmuPRNG: udpSrvConn closing failure: %s", err) + } + }() // Retrieve local UDP address and store it for further actions. tempPort, ok := qlemuprng.udpSrvConn.LocalAddr().(*net.UDPAddr)