@@ -134,16 +134,17 @@ func (dps *DomainProxyServer) handleHttpRequest(w http.ResponseWriter, r *http.R
134134 return
135135 }
136136 defer resp .Body .Close ()
137- log .Printf ("Request %d took %d ms" , requestNo , time .Since (startTime ).Milliseconds ())
138137 for k , v := range resp .Header {
139138 for _ , vv := range v {
140139 w .Header ().Add (k , vv )
141140 }
142141 }
143142 w .WriteHeader (resp .StatusCode )
144- if _ , err : = io .CopyBuffer (w , resp .Body , make ([]byte , dps .byteBufferSize )); err != nil {
143+ if _ , err = io .CopyBuffer (w , resp .Body , make ([]byte , dps .byteBufferSize )); err != nil {
145144 log .Printf ("Error copying response body: %v" , err )
146145 }
146+ log .Printf ("Request %d took %d ms" , requestNo , time .Since (startTime ).Milliseconds ())
147+ // TODO log bytes written/read
147148 }
148149}
149150
@@ -165,16 +166,20 @@ func (dps *DomainProxyServer) handleHttpsRequest(sourceConn net.Conn, w http.Res
165166 targetConn , err := net .DialTimeout ("tcp" , fmt .Sprintf ("%s:%d" , targetHost , targetPort ), dps .connectionTimeout )
166167 if err != nil {
167168 dps .handleErrorResponse (w , err , "Failed to connect to target" )
169+ sourceConn .Close ()
168170 return
169171 }
170- log . Printf ( "Request %d took %d ms" , requestNo , time . Since ( startTime ). Milliseconds ())
171- if _ , err := fmt . Fprint ( sourceConn , "HTTP/1.1 200 Connection Established \r \n \r \n " ); err != nil {
172+ if _ , err = fmt . Fprint ( sourceConn , "HTTP/1.1 200 Connection Established \r \n \r \n " ); err != nil {
173+ dps . handleErrorResponse ( w , err , "Failed to send request to target" )
172174 targetConn .Close ()
173175 sourceConn .Close ()
174176 return
175177 }
176178 dps .executor .Add (1 )
177- go BiDirectionalTransfer (sourceConn , targetConn , dps .byteBufferSize , dps .idleTimeout , dps .executor )
179+ go func () {
180+ BiDirectionalTransfer (sourceConn , targetConn , dps .byteBufferSize , dps .idleTimeout , dps .executor )
181+ log .Printf ("Request %d took %d ms" , requestNo , (time .Since (startTime ) - dps .idleTimeout ).Milliseconds ())
182+ }()
178183 }
179184}
180185
0 commit comments