40 lines
563 B
Go
40 lines
563 B
Go
package warewulfd
|
|
|
|
import (
|
|
"net/http"
|
|
"os"
|
|
|
|
"github.com/hpcng/warewulf/internal/pkg/wwlog"
|
|
)
|
|
|
|
func sendFile(
|
|
w http.ResponseWriter,
|
|
req *http.Request,
|
|
filename string,
|
|
sendto string) error {
|
|
|
|
fd, err := os.Open(filename)
|
|
if err != nil {
|
|
w.WriteHeader(http.StatusInternalServerError)
|
|
return err
|
|
}
|
|
defer fd.Close()
|
|
|
|
stat, err := fd.Stat()
|
|
if err != nil {
|
|
w.WriteHeader(http.StatusInternalServerError)
|
|
return err
|
|
}
|
|
|
|
http.ServeContent(
|
|
w,
|
|
req,
|
|
filename,
|
|
stat.ModTime(),
|
|
fd )
|
|
|
|
wwlog.Send("%15s: %s", sendto, filename)
|
|
|
|
return nil
|
|
}
|