package main

import (
	"net/http"
)

func headerClone(h http.Header) http.Header {
	h2 := make(http.Header, len(h))
	for k, vv := range h {
		vv2 := make([]string, len(vv))
		copy(vv2, vv)
		h2[k] = vv2
	}
	return h2
}

func proxyRequest(w http.ResponseWriter, r *gitRequest) {
	// Clone request
	req := *r.Request
	req.Header = headerClone(r.Header)

	// Set Workhorse version
	req.Header.Set("Gitlab-Workhorse", Version)
	rw := newSendFileResponseWriter(w, &req)
	defer rw.Flush()
	r.u.httpProxy.ServeHTTP(&rw, &req)
}