Browse Source
			
			
			httpcaddyfile: static_response -> respond; minor cleanups
			
			
				master
			
			
		 
		
			
				
					
						 Matthew Holt
					
					6 years ago
						Matthew Holt
					
					6 years ago
					
				 
				
			 
		 
		
			
				
					
					No known key found for this signature in database
					
						
							GPG Key ID: 2A349DD577D586A5
						
					
				
			
		
		
		
	
		
			
				 5 changed files with 
17 additions and 
11 deletions
			 
			
		 
		
			
				- 
					
					
					 
					caddyconfig/caddyfile/parse_test.go
				
- 
					
					
					 
					caddyconfig/httpcaddyfile/builtins.go
				
- 
					
					
					 
					caddyconfig/httpcaddyfile/directives.go
				
- 
					
					
					 
					modules/caddyhttp/encode/caddyfile.go
				
- 
					
					
					 
					modules/caddyhttp/staticresp.go
				
				
				
					
						
							
								
									
	
		
			
				
					|  |  | @ -22,8 +22,6 @@ import ( | 
			
		
	
		
			
				
					|  |  |  | 	"testing" | 
			
		
	
		
			
				
					|  |  |  | ) | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | // TODO: re-enable all tests
 | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | func TestAllTokens(t *testing.T) { | 
			
		
	
		
			
				
					|  |  |  | 	input := strings.NewReader("a b c\nd e") | 
			
		
	
		
			
				
					|  |  |  | 	expected := []string{"a", "b", "c", "d", "e"} | 
			
		
	
	
		
			
				
					|  |  | 
 | 
			
		
	
								
							
						
					 
					
				 
			 
		
			
			
			
			
			
			
				
				
					
						
							
								
									
	
		
			
				
					|  |  | @ -31,6 +31,7 @@ func init() { | 
			
		
	
		
			
				
					|  |  |  | 	RegisterDirective("root", parseRoot) | 
			
		
	
		
			
				
					|  |  |  | 	RegisterDirective("tls", parseTLS) | 
			
		
	
		
			
				
					|  |  |  | 	RegisterHandlerDirective("redir", parseRedir) | 
			
		
	
		
			
				
					|  |  |  | 	RegisterHandlerDirective("respond", parseRespond) | 
			
		
	
		
			
				
					|  |  |  | } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | func parseBind(h Helper) ([]ConfigValue, error) { | 
			
		
	
	
		
			
				
					|  |  | @ -253,3 +254,12 @@ func parseRedir(h Helper) (caddyhttp.MiddlewareHandler, error) { | 
			
		
	
		
			
				
					|  |  |  | 		Body:       body, | 
			
		
	
		
			
				
					|  |  |  | 	}, nil | 
			
		
	
		
			
				
					|  |  |  | } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | func parseRespond(h Helper) (caddyhttp.MiddlewareHandler, error) { | 
			
		
	
		
			
				
					|  |  |  | 	sr := new(caddyhttp.StaticResponse) | 
			
		
	
		
			
				
					|  |  |  | 	err := sr.UnmarshalCaddyfile(h.Dispenser) | 
			
		
	
		
			
				
					|  |  |  | 	if err != nil { | 
			
		
	
		
			
				
					|  |  |  | 		return nil, err | 
			
		
	
		
			
				
					|  |  |  | 	} | 
			
		
	
		
			
				
					|  |  |  | 	return sr, nil | 
			
		
	
		
			
				
					|  |  |  | } | 
			
		
	
	
		
			
				
					|  |  | 
 | 
			
		
	
								
							
						
					 
					
				 
			 
		
			
			
			
			
			
			
				
				
					
						
							
								
									
	
		
			
				
					|  |  | @ -25,7 +25,6 @@ import ( | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | // defaultDirectiveOrder specifies the order
 | 
			
		
	
		
			
				
					|  |  |  | // to apply directives in HTTP routes.
 | 
			
		
	
		
			
				
					|  |  |  | // TODO: finish the ability to customize this
 | 
			
		
	
		
			
				
					|  |  |  | var defaultDirectiveOrder = []string{ | 
			
		
	
		
			
				
					|  |  |  | 	"rewrite", | 
			
		
	
		
			
				
					|  |  |  | 	"try_files", | 
			
		
	
	
		
			
				
					|  |  | @ -34,7 +33,7 @@ var defaultDirectiveOrder = []string{ | 
			
		
	
		
			
				
					|  |  |  | 	"encode", | 
			
		
	
		
			
				
					|  |  |  | 	"templates", | 
			
		
	
		
			
				
					|  |  |  | 	"redir", | 
			
		
	
		
			
				
					|  |  |  | 	"static_response", // TODO: "reply" or "respond"?
 | 
			
		
	
		
			
				
					|  |  |  | 	"respond", | 
			
		
	
		
			
				
					|  |  |  | 	"reverse_proxy", | 
			
		
	
		
			
				
					|  |  |  | 	"php_fastcgi", | 
			
		
	
		
			
				
					|  |  |  | 	"file_server", | 
			
		
	
	
		
			
				
					|  |  | 
 | 
			
		
	
								
							
						
					 
					
				 
			 
		
			
			
			
			
			
			
				
				
					
						
							
								
									
	
		
			
				
					|  |  | @ -29,7 +29,6 @@ func init() { | 
			
		
	
		
			
				
					|  |  |  | 	httpcaddyfile.RegisterHandlerDirective("encode", parseCaddyfile) | 
			
		
	
		
			
				
					|  |  |  | } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | // TODO: This is a good example of why UnmarshalCaddyfile is still a good idea... hmm.
 | 
			
		
	
		
			
				
					|  |  |  | func parseCaddyfile(h httpcaddyfile.Helper) (caddyhttp.MiddlewareHandler, error) { | 
			
		
	
		
			
				
					|  |  |  | 	enc := new(Encode) | 
			
		
	
		
			
				
					|  |  |  | 	err := enc.UnmarshalCaddyfile(h.Dispenser) | 
			
		
	
	
		
			
				
					|  |  | @ -39,8 +38,6 @@ func parseCaddyfile(h httpcaddyfile.Helper) (caddyhttp.MiddlewareHandler, error) | 
			
		
	
		
			
				
					|  |  |  | 	return enc, nil | 
			
		
	
		
			
				
					|  |  |  | } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | // TODO: Keep UnmarshalCaddyfile pattern?
 | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | // UnmarshalCaddyfile sets up the handler from Caddyfile tokens. Syntax:
 | 
			
		
	
		
			
				
					|  |  |  | //
 | 
			
		
	
		
			
				
					|  |  |  | //     encode [<matcher>] <formats...> {
 | 
			
		
	
	
		
			
				
					|  |  | 
 | 
			
		
	
								
							
						
					 
					
				 
			 
		
			
			
			
			
			
			
				
				
					
						
							
								
									
	
		
			
				
					|  |  | @ -25,7 +25,6 @@ import ( | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | func init() { | 
			
		
	
		
			
				
					|  |  |  | 	caddy.RegisterModule(StaticResponse{}) | 
			
		
	
		
			
				
					|  |  |  | 	// TODO: Caddyfile directive
 | 
			
		
	
		
			
				
					|  |  |  | } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | // StaticResponse implements a simple responder for static responses.
 | 
			
		
	
	
		
			
				
					|  |  | @ -46,7 +45,7 @@ func (StaticResponse) CaddyModule() caddy.ModuleInfo { | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | // UnmarshalCaddyfile sets up the handler from Caddyfile tokens. Syntax:
 | 
			
		
	
		
			
				
					|  |  |  | //
 | 
			
		
	
		
			
				
					|  |  |  | //     static_response [<matcher>] <status> {
 | 
			
		
	
		
			
				
					|  |  |  | //     respond [<matcher>] <status> {
 | 
			
		
	
		
			
				
					|  |  |  | //         body <text>
 | 
			
		
	
		
			
				
					|  |  |  | //         close
 | 
			
		
	
		
			
				
					|  |  |  | //     }
 | 
			
		
	
	
		
			
				
					|  |  | @ -119,5 +118,8 @@ func (s StaticResponse) ServeHTTP(w http.ResponseWriter, r *http.Request, _ Hand | 
			
		
	
		
			
				
					|  |  |  | 	return nil | 
			
		
	
		
			
				
					|  |  |  | } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | // Interface guard
 | 
			
		
	
		
			
				
					|  |  |  | var _ MiddlewareHandler = (*StaticResponse)(nil) | 
			
		
	
		
			
				
					|  |  |  | // Interface guards
 | 
			
		
	
		
			
				
					|  |  |  | var ( | 
			
		
	
		
			
				
					|  |  |  | 	_ MiddlewareHandler     = (*StaticResponse)(nil) | 
			
		
	
		
			
				
					|  |  |  | 	_ caddyfile.Unmarshaler = (*StaticResponse)(nil) | 
			
		
	
		
			
				
					|  |  |  | ) | 
			
		
	
	
		
			
				
					|  |  | 
 |