diff --git a/server/handlers.go b/server/handlers.go index 1f985fd..3393b22 100644 --- a/server/handlers.go +++ b/server/handlers.go @@ -72,7 +72,11 @@ func (server *Server) generateHandleWS(ctx context.Context, cancel context.Cance } defer conn.Close() - err = server.processWSConn(ctx, conn, r.Header) + if server.options.PassHeaders { + err = server.processWSConn(ctx, conn, r.Header) + } else { + err = server.processWSConn(ctx, conn, nil) + } switch err { case ctx.Err(): diff --git a/server/options.go b/server/options.go index b7dc3d3..b51b03f 100644 --- a/server/options.go +++ b/server/options.go @@ -26,6 +26,7 @@ type Options struct { Once bool `hcl:"once" flagName:"once" flagDescribe:"Accept only one client and exit on disconnection" default:"false"` Timeout int `hcl:"timeout" flagName:"timeout" flagDescribe:"Timeout seconds for waiting a client(0 to disable)" default:"0"` PermitArguments bool `hcl:"permit_arguments" flagName:"permit-arguments" flagDescribe:"Permit clients to send command line arguments in URL (e.g. http://example.com:8080/?arg=AAA&arg=BBB)" default:"false"` + PassHeaders bool `hcl:"pass_headers" flagName:"pass-headers" flagDescribe:"Pass HTTP request headers as environment variables (e.g. Host becomes HTTP_HOST)" default:"false"` Width int `hcl:"width" flagName:"width" flagDescribe:"Static width of the screen, 0(default) means dynamically resize" default:"0"` Height int `hcl:"height" flagName:"height" flagDescribe:"Static height of the screen, 0(default) means dynamically resize" default:"0"` WSOrigin string `hcl:"ws_origin" flagName:"ws-origin" flagDescribe:"A regular expression that matches origin URLs to be accepted by WebSocket. No cross origin requests are acceptable by default" default:""`