func main() { proxy := &httputil.ReverseProxy{ Director: func(r *http.Request) { }, } var cache *httpcache.Cache if useDisk || dir != "" { log.Printf("storing cached resources in %s", dir) if err := os.MkdirAll(dir, 0700); err != nil { log.Fatal(err) } var err error cache, err = httpcache.NewDiskCache(dir) if err != nil { log.Fatal(err) } } else { cache = httpcache.NewMemoryCache() } handler := httpcache.NewHandler(cache, proxy) handler.Shared = !private respLogger := httplog.NewResponseLogger(handler) respLogger.DumpRequests = dumpHttp respLogger.DumpResponses = dumpHttp respLogger.DumpErrors = dumpHttp log.Printf("listening on http://%s", listen) log.Fatal(http.ListenAndServe(listen, respLogger)) }
func testSetup() (*client, *upstreamServer) { upstream := &upstreamServer{ Body: []byte("llamas"), asserts: []func(r *http.Request){}, Now: time.Date(2009, time.November, 10, 23, 0, 0, 0, time.UTC), Header: http.Header{}, } httpcache.Clock = func() time.Time { return upstream.Now } cacheHandler := httpcache.NewHandler( httpcache.NewMemoryCache(), upstream, ) var handler http.Handler = cacheHandler if testing.Verbose() { rlogger := httplog.NewResponseLogger(cacheHandler) rlogger.DumpRequests = true rlogger.DumpResponses = true handler = rlogger httpcache.DebugLogging = true } else { log.SetOutput(ioutil.Discard) } return &client{handler, cacheHandler}, upstream }
func main() { log.Printf("running apt-proxy %s", version) if debug { httpcache.DebugLogging = true } cache, err := httpcache.NewDiskCache(dir) if err != nil { log.Fatal(err) } ap := proxy.NewAptProxyFromDefaults() ap.Handler = httpcache.NewHandler(cache, ap.Handler) logger := httplog.NewResponseLogger(ap.Handler) logger.DumpRequests = debug logger.DumpResponses = debug logger.DumpErrors = debug ap.Handler = logger log.Printf("proxy listening on %s", listen) log.Fatal(http.ListenAndServe(listen, ap)) }