Provide access to response writer in Context
Signed-off-by: Stephen J Day <stephen.day@docker.com>master
							parent
							
								
									030006a6d7
								
							
						
					
					
						commit
						cc8285f74c
					
				|  | @ -16,6 +16,7 @@ import ( | |||
| // Common errors used with this package.
 | ||||
| var ( | ||||
| 	ErrNoRequestContext        = errors.New("no http request in context") | ||||
| 	ErrNoResponseWriterContext = errors.New("no http response in context") | ||||
| ) | ||||
| 
 | ||||
| func parseIP(ipStr string) net.IP { | ||||
|  | @ -110,6 +111,20 @@ func WithResponseWriter(ctx Context, w http.ResponseWriter) (Context, http.Respo | |||
| 	return irw, irw | ||||
| } | ||||
| 
 | ||||
| // GetResponseWriter returns the http.ResponseWriter from the provided
 | ||||
| // context. If not present, ErrNoResponseWriterContext is returned. The
 | ||||
| // returned instance provides instrumentation in the context.
 | ||||
| func GetResponseWriter(ctx Context) (http.ResponseWriter, error) { | ||||
| 	v := ctx.Value("http.response") | ||||
| 
 | ||||
| 	rw, ok := v.(http.ResponseWriter) | ||||
| 	if !ok || rw == nil { | ||||
| 		return nil, ErrNoResponseWriterContext | ||||
| 	} | ||||
| 
 | ||||
| 	return rw, nil | ||||
| } | ||||
| 
 | ||||
| // getVarsFromRequest let's us change request vars implementation for testing
 | ||||
| // and maybe future changes.
 | ||||
| var getVarsFromRequest = mux.Vars | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue