MM-10703 Adding blank request context to plugin hooks for future use. (#9043)

* Adding blank request context to plugin hooks for future use.

* Rename RequestContext to Context

* Adding context to ServeHTTP and ExecuteCommand

* Fixing import cycle in test.
Этот коммит содержится в:
Christopher Speller
2018-07-06 06:07:09 -07:00
коммит произвёл Joram Wilander
родитель 7bfb5aec26
Коммит 4c1ddcff10
13 изменённых файлов: 890 добавлений и 74 удалений

Просмотреть файл

@@ -226,10 +226,11 @@ func init() {
type ServeHTTPArgs struct {
ResponseWriterStream uint32
Request *http.Request
Context *Context
RequestBodyStream uint32
}
func (g *HooksRPCClient) ServeHTTP(w http.ResponseWriter, r *http.Request) {
func (g *HooksRPCClient) ServeHTTP(c *Context, w http.ResponseWriter, r *http.Request) {
if !g.implemented[ServeHTTPId] {
http.NotFound(w, r)
return
@@ -282,6 +283,7 @@ func (g *HooksRPCClient) ServeHTTP(w http.ResponseWriter, r *http.Request) {
}
if err := g.client.Call("Plugin.ServeHTTP", ServeHTTPArgs{
Context: c,
ResponseWriterStream: serveHTTPStreamId,
Request: forwardedRequest,
RequestBodyStream: requestBodyStreamId,
@@ -314,8 +316,10 @@ func (s *HooksRPCServer) ServeHTTP(args *ServeHTTPArgs, returns *struct{}) error
}
defer r.Body.Close()
if hook, ok := s.impl.(http.Handler); ok {
hook.ServeHTTP(w, r)
if hook, ok := s.impl.(interface {
ServeHTTP(c *Context, w http.ResponseWriter, r *http.Request)
}); ok {
hook.ServeHTTP(args.Context, w, r)
} else {
http.NotFound(w, r)
}