mirror of
https://github.com/containers/podman.git
synced 2025-05-20 00:27:03 +08:00

The docker client expects to read the OSType header from the `/_ping` response in order to determine the OS type of the server, for example, when running `docker run --device=/dev/fuse ...` https://github.com/moby/moby/blob/master/client/ping.go#L57 Signed-off-by: chnrxn <cohawk@yahoo.com>
32 lines
898 B
Go
32 lines
898 B
Go
package compat
|
|
|
|
import (
|
|
"fmt"
|
|
"net/http"
|
|
"runtime"
|
|
|
|
"github.com/containers/buildah"
|
|
)
|
|
|
|
// Ping returns headers to client about the service
|
|
//
|
|
// This handler must always be the same for the compatibility and libpod URL trees!
|
|
// Clients will use the Header availability to test which backend engine is in use.
|
|
// Note: Additionally handler supports GET and HEAD methods
|
|
func Ping(w http.ResponseWriter, r *http.Request) {
|
|
// Note: API-Version and Libpod-API-Version are set in handler_api.go
|
|
w.Header().Set("BuildKit-Version", "")
|
|
w.Header().Set("Builder-Version", "")
|
|
w.Header().Set("Docker-Experimental", "true")
|
|
w.Header().Set("Cache-Control", "no-cache")
|
|
w.Header().Set("OSType", runtime.GOOS)
|
|
w.Header().Set("Pragma", "no-cache")
|
|
|
|
w.Header().Set("Libpod-Buildah-Version", buildah.Version)
|
|
w.WriteHeader(http.StatusOK)
|
|
|
|
if r.Method == http.MethodGet {
|
|
fmt.Fprint(w, "OK")
|
|
}
|
|
}
|