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
}