func()

in proxy.go [31:55]


func (s *ProxyServer) ListenAndServe() {
	mux := http.NewServeMux()
	mux.HandleFunc("/", s.handleAzureRequests)

	server := &http.Server{
		Addr:    fmt.Sprintf(":%d", s.port),
		Handler: s.throttle.NewThrottle(mux),
	}

	go func() {
		s.logger.Info("Start listening")
		if err := server.ListenAndServe(); err != nil {
			s.logger.Fatal("Failed to listen on proxy address: ", err)
		}
	}()

	// listening to OS shutdown singal
	signalChan := make(chan os.Signal, 1)
	signal.Notify(signalChan, syscall.SIGINT, syscall.SIGTERM)
	<-signalChan

	s.logger.Infof("Got shutdown signal, shutting down webhook server gracefully...")

	server.Shutdown(context.Background()) // nolint: errcheck
}