Add 'Server' HTTP header with current GoTTY version

$ curl -I http://gotty.server/
    HTTP/1.1 200 OK
    Accept-Ranges: bytes
    Content-Length: 407
    Content-Type: text/html; charset=utf-8
    Last-Modified: Fri, 02 Oct 2015 08:04:28 GMT
    Server: GoTTY/0.0.10
    Date: Fri, 02 Oct 2015 08:04:28 GMT
This commit is contained in:
Manfred Touron 2015-10-02 10:01:37 +02:00
parent 096f77c780
commit f75cc9771a
No known key found for this signature in database
GPG Key ID: 0DCB9CE0CABAE1B5
2 changed files with 12 additions and 1 deletions

View File

@ -53,6 +53,8 @@ type Options struct {
Preferences map[string]interface{} `hcl:"preferences"` Preferences map[string]interface{} `hcl:"preferences"`
} }
var Version = "0.0.10"
var DefaultOptions = Options{ var DefaultOptions = Options{
Address: "", Address: "",
Port: "8080", Port: "8080",
@ -154,6 +156,8 @@ func (app *App) Run() error {
siteHandler = wrapBasicAuth(siteHandler, app.options.Credential) siteHandler = wrapBasicAuth(siteHandler, app.options.Credential)
} }
siteHandler = wrapHeaders(siteHandler)
wsMux := http.NewServeMux() wsMux := http.NewServeMux()
wsMux.Handle("/", siteHandler) wsMux.Handle("/", siteHandler)
wsMux.Handle(path+"/ws", wsHandler) wsMux.Handle(path+"/ws", wsHandler)
@ -277,6 +281,13 @@ func wrapLogger(handler http.Handler) http.Handler {
}) })
} }
func wrapHeaders(handler http.Handler) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Server", "GoTTY/"+Version)
handler.ServeHTTP(w, r)
})
}
func wrapBasicAuth(handler http.Handler, credential string) http.Handler { func wrapBasicAuth(handler http.Handler, credential string) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
token := strings.SplitN(r.Header.Get("Authorization"), " ", 2) token := strings.SplitN(r.Header.Get("Authorization"), " ", 2)

View File

@ -13,7 +13,7 @@ import (
func main() { func main() {
cmd := cli.NewApp() cmd := cli.NewApp()
cmd.Version = "0.0.10" cmd.Version = app.Version
cmd.Name = "gotty" cmd.Name = "gotty"
cmd.Usage = "Share your terminal as a web application" cmd.Usage = "Share your terminal as a web application"
cmd.HideHelp = true cmd.HideHelp = true