Move proxy logic into proxy package

This commit is contained in:
David Stotijn 2019-11-24 17:30:39 +01:00
parent ef4f829572
commit ee8e4330c1
4 changed files with 12 additions and 12 deletions

View file

@ -6,6 +6,8 @@ import (
"flag"
"log"
"net/http"
"github.com/dstotijn/gurp/proxy"
)
var (
@ -26,7 +28,7 @@ func main() {
log.Fatalf("[FATAL] Could not parse CA: %v", err)
}
proxy, err := NewProxy(caCert, tlsCA.PrivateKey)
proxy, err := proxy.NewProxy(caCert, tlsCA.PrivateKey)
if err != nil {
log.Fatalf("[FATAL] Could not create Proxy: %v", err)
}

View file

@ -1,4 +1,4 @@
package main
package proxy
import (
"bytes"

View file

@ -1,4 +1,4 @@
package main
package proxy
import (
"errors"

View file

@ -1,4 +1,4 @@
package main
package proxy
import (
"context"
@ -13,11 +13,8 @@ import (
)
var httpHandler = &httputil.ReverseProxy{
Director: func(r *http.Request) {
r.URL.Host = r.Host
r.URL.Scheme = "http"
},
ErrorHandler: proxyErrorHandler,
Director: func(r *http.Request) {},
ErrorHandler: errorHandler,
}
var httpsHandler = &httputil.ReverseProxy{
@ -25,10 +22,10 @@ var httpsHandler = &httputil.ReverseProxy{
r.URL.Host = r.Host
r.URL.Scheme = "https"
},
ErrorHandler: proxyErrorHandler,
ErrorHandler: errorHandler,
}
func proxyErrorHandler(w http.ResponseWriter, r *http.Request, err error) {
func errorHandler(w http.ResponseWriter, r *http.Request, err error) {
if err == context.Canceled {
return
}
@ -36,7 +33,8 @@ func proxyErrorHandler(w http.ResponseWriter, r *http.Request, err error) {
w.WriteHeader(http.StatusBadGateway)
}
// Proxy is used to forward HTTP requests.
// Proxy implements http.Handler and offers MITM behaviour for modifying
// HTTP requests and responses.
type Proxy struct {
certConfig *CertConfig
}