Skip to content

Commit 3962df2

Browse files
committed
Some minor refactoring
1 parent 67d580d commit 3962df2

File tree

2 files changed

+14
-25
lines changed

2 files changed

+14
-25
lines changed

main.go

+4-12
Original file line numberDiff line numberDiff line change
@@ -6,20 +6,12 @@ import (
66
"net/url"
77
)
88

9-
// Configuration options
10-
// TODO: Read from file or flags
11-
const (
12-
listenOn string = ":8080" // Address to listen for incoming connections
13-
originHost string = "localhost:8081" // Origin server to forward requests
14-
)
15-
169
func main() {
1710
log.SetFlags(log.Lshortfile | log.Ltime | log.Lmicroseconds)
1811

19-
// Register proxy
20-
http.Handle("/", &Reverso{originURL: url.URL{Scheme: "http", Host: originHost},
21-
cache: *NewCacheMiddleware()})
12+
http.Handle("/", &Reverso{originURL: url.URL{Scheme: "http", Host: "localhost:8081"}, cache: *NewCacheMiddleware()})
2213

23-
log.Printf("Listen on: '%v'", listenOn)
24-
log.Fatal(http.ListenAndServe(listenOn, nil))
14+
const addr string = ":8080"
15+
log.Printf("Listen address: '%s'", addr)
16+
log.Fatal(http.ListenAndServe(addr, nil))
2517
}

util.go

+10-13
Original file line numberDiff line numberDiff line change
@@ -10,17 +10,11 @@ import (
1010

1111
// Writes response into response writer
1212
func WriteResponse(rw http.ResponseWriter, res *http.Response) {
13-
// Write header
14-
for key, values := range res.Header {
15-
for _, value := range values {
16-
rw.Header().Add(key, value)
17-
}
18-
}
13+
copyHeaders(rw.Header(), res.Header)
1914

2015
// The preferred way to send Trailers is to predeclare in the headers
2116
// which trailers you will later send by setting the "Trailer" header
2217
// to the names of the trailer keys which will come later.
23-
// See Examples on https://pkg.go.dev/net/http#ResponseWriter
2418
for key := range res.Trailer {
2519
rw.Header().Add("Trailer", key)
2620
}
@@ -30,12 +24,7 @@ func WriteResponse(rw http.ResponseWriter, res *http.Response) {
3024
// Write body
3125
io.Copy(rw, res.Body)
3226

33-
// Write Trailers headers
34-
for key, values := range res.Trailer {
35-
for _, value := range values {
36-
rw.Header().Add(key, value)
37-
}
38-
}
27+
copyHeaders(rw.Header(), res.Trailer)
3928
}
4029

4130
// Dumps a http.Response into a bytes.Buffer
@@ -54,3 +43,11 @@ func ReadResponse(resData []byte, req *http.Request) *http.Response {
5443
}
5544
return res
5645
}
46+
47+
func copyHeaders(dst, src http.Header) {
48+
for key, values := range src {
49+
for _, value := range values {
50+
dst.Add(key, value)
51+
}
52+
}
53+
}

0 commit comments

Comments
 (0)