diff --git a/server.go b/server.go index 4d82266..d79555a 100644 --- a/server.go +++ b/server.go @@ -60,8 +60,8 @@ func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) { } } -func (s *Server) Error(w http.ResponseWriter, err error) { - log.Println(err) +func (s *Server) Error(r *http.Request, w http.ResponseWriter, err error) { + log.Printf("err: %s: %v", r.URL.String(), err) http.Error(w, err.Error(), http.StatusServiceUnavailable) return } @@ -69,13 +69,13 @@ func (s *Server) Error(w http.ResponseWriter, err error) { func (s *Server) Connect(w http.ResponseWriter, r *http.Request) { host, err := s.dig(r.Context(), r.Host) if err != nil { - s.Error(w, err) + s.Error(r, w, err) return } dest, err := net.DialTimeout("tcp", host, 30*time.Second) if err != nil { - s.Error(w, err) + s.Error(r, w, err) return } @@ -83,13 +83,13 @@ func (s *Server) Connect(w http.ResponseWriter, r *http.Request) { hijacker, ok := w.(http.Hijacker) if !ok { - s.Error(w, errors.New("hijack not available")) + s.Error(r, w, errors.New("hijack not available")) return } client, _, err := hijacker.Hijack() if err != nil { - s.Error(w, err) + s.Error(r, w, err) return } @@ -100,7 +100,7 @@ func (s *Server) Connect(w http.ResponseWriter, r *http.Request) { func (s *Server) Serve(w http.ResponseWriter, r *http.Request) { resp, err := s.Transport.RoundTrip(r) if err != nil { - s.Error(w, err) + s.Error(r, w, err) return } defer resp.Body.Close()