Matthew Holt 
							
						 
					 
					
						
						
						
						
							
						
						
							d49f762f6d 
							
						 
					 
					
						
						
							
							Various bug fixes and minor improvements  
						
						... 
						
						
						
						- Fix static responder so it doesn't replace its own headers config,
  and instead replaces the actual response header values
- caddyhttp.ResponseRecorder type optionally buffers response
- Add interface guards to ensure regexp matchers get provisioned
- Use default HTTP port if one is not explicitly set
- Encode middleware writes status code 200 if not written upstream
- Templates and markdown only try to execute on text responses
- Static file server sets Content-Type based on file extension only
  (this whole thing -- MIME sniffing, etc -- needs more configurability) 
						
						
					 
					
						2019-06-21 14:36:26 -06:00 
						 
				 
			
				
					
						
							
							
								Matthew Holt 
							
						 
					 
					
						
						
						
						
							
						
						
							81a9e125b5 
							
						 
					 
					
						
						
							
							Oops  
						
						
						
						
					 
					
						2019-06-21 08:52:15 -06:00 
						 
				 
			
				
					
						
							
							
								Matthew Holt 
							
						 
					 
					
						
						
						
						
							
						
						
							70c788ce0c 
							
						 
					 
					
						
						
							
							Minor cleanups/improvements  
						
						
						
						
					 
					
						2019-06-21 08:08:26 -06:00 
						 
				 
			
				
					
						
							
							
								Matthew Holt 
							
						 
					 
					
						
						
						
						
							
						
						
							1c443beb9c 
							
						 
					 
					
						
						
							
							caddyhttp: ResponseRecorder type for middlewares to buffer responses  
						
						... 
						
						
						
						Unfortunately, templates and markdown require buffering the full
response before it can be processed and written to the client 
						
						
					 
					
						2019-06-20 21:49:45 -06:00 
						 
				 
			
				
					
						
							
							
								Matthew Holt 
							
						 
					 
					
						
						
						
						
							
						
						
							6d0350d04e 
							
						 
					 
					
						
						
							
							caddyhttp: Fix host matching when host has a port  
						
						
						
						
					 
					
						2019-06-20 20:24:46 -06:00 
						 
				 
			
				
					
						
							
							
								Matthew Holt 
							
						 
					 
					
						
						
						
						
							
						
						
							15647bdfb7 
							
						 
					 
					
						
						
							
							templates: Remove context functions implemented by sprig  
						
						
						
						
					 
					
						2019-06-18 15:43:51 -06:00 
						 
				 
			
				
					
						
							
							
								Matthew Holt 
							
						 
					 
					
						
						
						
						
							
						
						
							2663dd176d 
							
						 
					 
					
						
						
							
							Refactor templates execution; add sprig functions  
						
						
						
						
					 
					
						2019-06-18 15:17:48 -06:00 
						 
				 
			
				
					
						
							
							
								Matthew Holt 
							
						 
					 
					
						
						
						
						
							
						
						
							6706c9225a 
							
						 
					 
					
						
						
							
							Implement templates handler; various minor cleanups and bug fixes  
						
						
						
						
					 
					
						2019-06-18 11:13:12 -06:00 
						 
				 
			
				
					
						
							
							
								Matthew Holt 
							
						 
					 
					
						
						
						
						
							
						
						
							5137859e47 
							
						 
					 
					
						
						
							
							Rename caddy2 -> caddy  
						
						... 
						
						
						
						Removes the version from the package name 
						
						
					 
					
						2019-06-14 11:58:28 -06:00 
						 
				 
			
				
					
						
							
							
								Matthew Holt 
							
						 
					 
					
						
						
						
						
							
						
						
							b8e7453fef 
							
						 
					 
					
						
						
							
							Implement brotli encoder; improve validation of other encoders  
						
						
						
						
					 
					
						2019-06-13 11:20:43 -06:00 
						 
				 
			
				
					
						
							
							
								Matthew Holt 
							
						 
					 
					
						
						
						
						
							
						
						
							0c8763a728 
							
						 
					 
					
						
						
							
							Add simple tests for static responder  
						
						
						
						
					 
					
						2019-06-11 17:46:11 -06:00 
						 
				 
			
				
					
						
							
							
								Matt Holt 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							f5b4f268dc 
							
						 
					 
					
						
						
							
							Implement encode middleware ( #2 )  
						
						... 
						
						
						
						* Implement encode middleware
* Add missing break; and add missing JSON struct field tag 
						
						
					 
					
						2019-06-10 10:21:25 -06:00 
						 
				 
			
				
					
						
							
							
								Matthew Holt 
							
						 
					 
					
						
						
						
						
							
						
						
							ef5f29cfb2 
							
						 
					 
					
						
						
							
							Do not allow Go standard lib to sniff Content-Type header  
						
						
						
						
					 
					
						2019-06-07 19:59:25 -06:00 
						 
				 
			
				
					
						
							
							
								dev 
							
						 
					 
					
						
						
						
						
							
						
						
							878ae0002a 
							
						 
					 
					
						
						
							
							fix goroutine leak in healthcheckers  
						
						
						
						
					 
					
						2019-06-07 15:52:10 -04:00 
						 
				 
			
				
					
						
							
							
								Matthew Holt 
							
						 
					 
					
						
						
						
						
							
						
						
							b79f86f256 
							
						 
					 
					
						
						
							
							Fix bugs related to auto HTTPS and alternate port configurations  
						
						
						
						
					 
					
						2019-06-04 22:43:21 -06:00 
						 
				 
			
				
					
						
							
							
								Matthew Holt 
							
						 
					 
					
						
						
						
						
							
						
						
							613aecb898 
							
						 
					 
					
						
						
							
							Change import paths to GitHub package names  
						
						
						
						
					 
					
						2019-06-04 13:52:37 -06:00 
						 
				 
			
				
					
						
							
							
								Matthew Holt 
							
						 
					 
					
						
						
						
						
							
						
						
							39db06d9c4 
							
						 
					 
					
						
						
							
							Implement IP/CIDR matcher and Not (negated) matcher  
						
						
						
						
					 
					
						2019-06-04 13:42:54 -06:00 
						 
				 
			
				
					
						
							
							
								Matthew Holt 
							
						 
					 
					
						
						
						
						
							
						
						
							bf54615efc 
							
						 
					 
					
						
						
							
							ResponseMatcher for conditional logic of response headers  
						
						
						
						
					 
					
						2019-05-28 18:53:08 -06:00 
						 
				 
			
				
					
						
							
							
								Matthew Holt 
							
						 
					 
					
						
						
						
						
							
						
						
							da6a8cfc86 
							
						 
					 
					
						
						
							
							Minor cleanups  
						
						
						
						
					 
					
						2019-05-28 18:52:21 -06:00 
						 
				 
			
				
					
						
							
							
								Matthew Holt 
							
						 
					 
					
						
						
						
						
							
						
						
							5a4a1421de 
							
						 
					 
					
						
						
							
							Fix error handling and matching catch-all routes  
						
						
						
						
					 
					
						2019-05-23 14:42:14 -06:00 
						 
				 
			
				
					
						
							
							
								Matthew Holt 
							
						 
					 
					
						
						
						
						
							
						
						
							34a25dd558 
							
						 
					 
					
						
						
							
							Add very simple markdown middleware for now  
						
						
						
						
					 
					
						2019-05-23 14:41:43 -06:00 
						 
				 
			
				
					
						
							
							
								Matthew Holt 
							
						 
					 
					
						
						
						
						
							
						
						
							9e576c76e7 
							
						 
					 
					
						
						
							
							Add request_body middleware and some limits to HTTP servers  
						
						
						
						
					 
					
						2019-05-23 13:16:34 -06:00 
						 
				 
			
				
					
						
							
							
								Matthew Holt 
							
						 
					 
					
						
						
						
						
							
						
						
							869fbac632 
							
						 
					 
					
						
						
							
							Don't use auto HTTPS for servers with only HTTP port listeners  
						
						
						
						
					 
					
						2019-05-22 14:14:26 -06:00 
						 
				 
			
				
					
						
							
							
								Matthew Holt 
							
						 
					 
					
						
						
						
						
							
						
						
							284fb3a98c 
							
						 
					 
					
						
						
							
							Allow multiple matcher sets in routes (OR'ed together)  
						
						... 
						
						
						
						Also export MatchRegexp in case other matcher modules find it useful.
Add comments to the exported matchers. 
						
						
					 
					
						2019-05-22 13:13:39 -06:00 
						 
				 
			
				
					
						
							
							
								Matthew Holt 
							
						 
					 
					
						
						
						
						
							
						
						
							bc00d840e8 
							
						 
					 
					
						
						
							
							Export types and fields necessary to build configs (for config adapters)  
						
						... 
						
						
						
						Also flag most fields with 'omitempty' for JSON marshaling 
						
						
					 
					
						2019-05-22 12:32:36 -06:00 
						 
				 
			
				
					
						
							
							
								Matthew Holt 
							
						 
					 
					
						
						
						
						
							
						
						
							2fd98cb040 
							
						 
					 
					
						
						
							
							Module.New() does not need to return an error  
						
						
						
						
					 
					
						2019-05-21 14:22:21 -06:00 
						 
				 
			
				
					
						
							
							
								Matthew Holt 
							
						 
					 
					
						
						
						
						
							
						
						
							67d32e6779 
							
						 
					 
					
						
						
							
							Fix up matchers tests and take care of TODO in rewrite  
						
						
						
						
					 
					
						2019-05-21 13:10:14 -06:00 
						 
				 
			
				
					
						
							
							
								Matthew Holt 
							
						 
					 
					
						
						
						
						
							
						
						
							9d54f655aa 
							
						 
					 
					
						
						
							
							Take care of remaining TODOs in the browse responder  
						
						
						
						
					 
					
						2019-05-21 13:03:52 -06:00 
						 
				 
			
				
					
						
							
							
								Matthew Holt 
							
						 
					 
					
						
						
						
						
							
						
						
							65195a726d 
							
						 
					 
					
						
						
							
							Implement rewrite middleware; fix middleware stack bugs  
						
						
						
						
					 
					
						2019-05-20 23:48:43 -06:00 
						 
				 
			
				
					
						
							
							
								Matthew Holt 
							
						 
					 
					
						
						
						
						
							
						
						
							b84cb05848 
							
						 
					 
					
						
						
							
							Fix deferred header ops  
						
						
						
						
					 
					
						2019-05-20 22:00:54 -06:00 
						 
				 
			
				
					
						
							
							
								Matthew Holt 
							
						 
					 
					
						
						
						
						
							
						
						
							a969872850 
							
						 
					 
					
						
						
							
							Default error handler; rename StaticFiles -> FileServer  
						
						
						
						
					 
					
						2019-05-20 21:21:33 -06:00 
						 
				 
			
				
					
						
							
							
								Matthew Holt 
							
						 
					 
					
						
						
						
						
							
						
						
							aaacab1bc3 
							
						 
					 
					
						
						
							
							Sanitize paths in static file server; some cleanup  
						
						... 
						
						
						
						Also remove AutomaticHTTPSError for now 
						
						
					 
					
						2019-05-20 17:15:38 -06:00 
						 
				 
			
				
					
						
							
							
								Matthew Holt 
							
						 
					 
					
						
						
						
						
							
						
						
							d22f64e6d4 
							
						 
					 
					
						
						
							
							Implement headers middleware  
						
						
						
						
					 
					
						2019-05-20 15:46:52 -06:00 
						 
				 
			
				
					
						
							
							
								Matthew Holt 
							
						 
					 
					
						
						
						
						
							
						
						
							22995e5655 
							
						 
					 
					
						
						
							
							Implement most of browse; fix a couple obvious bugs; some cleanup  
						
						
						
						
					 
					
						2019-05-20 15:46:52 -06:00 
						 
				 
			
				
					
						
							
							
								dev 
							
						 
					 
					
						
						
						
						
							
						
						
							043eb1d9e5 
							
						 
					 
					
						
						
							
							move internal packages to pkg folder and update reverse proxy  
						
						... 
						
						
						
						* set automatic https error type for cert-magic failures
* add state to onload and unload methods
* update reverse proxy to use Provision() and Cleanup() 
						
						
					 
					
						2019-05-20 14:48:26 -04:00 
						 
				 
			
				
					
						
							
							
								Matthew Holt 
							
						 
					 
					
						
						
						
						
							
						
						
							fec7fa8bfd 
							
						 
					 
					
						
						
							
							Implement most of static file server; refactor and improve Replacer  
						
						
						
						
					 
					
						2019-05-20 10:59:20 -06:00 
						 
				 
			
				
					
						
							
							
								Matthew Holt 
							
						 
					 
					
						
						
						
						
							
						
						
							1f0c061ce3 
							
						 
					 
					
						
						
							
							Architectural shift to using context for config and module state  
						
						
						
						
					 
					
						2019-05-16 16:05:38 -06:00 
						 
				 
			
				
					
						
							
							
								Matthew Holt 
							
						 
					 
					
						
						
						
						
							
						
						
							ff5b4639d5 
							
						 
					 
					
						
						
							
							Some minor updates, and get rid of OnLoad/OnUnload  
						
						
						
						
					 
					
						2019-05-16 11:46:17 -06:00 
						 
				 
			
				
					
						
							
							
								Matthew Holt 
							
						 
					 
					
						
						
						
						
							
						
						
							f9d93ead4e 
							
						 
					 
					
						
						
							
							Rename and export some types, other minor changes  
						
						
						
						
					 
					
						2019-05-14 14:14:05 -06:00 
						 
				 
			
				
					
						
							
							
								Matthew Holt 
							
						 
					 
					
						
						
						
						
							
						
						
							8ae0d6a509 
							
						 
					 
					
						
						
							
							caddyhttp: Implement better HTTP matchers including regexp; add tests  
						
						
						
						
					 
					
						2019-05-10 21:07:02 -06:00 
						 
				 
			
				
					
						
							
							
								Matthew Holt 
							
						 
					 
					
						
						
						
						
							
						
						
							ad3d408067 
							
						 
					 
					
						
						
							
							Add some tests and fix vet warning  
						
						
						
						
					 
					
						2019-05-07 10:15:46 -06:00 
						 
				 
			
				
					
						
							
							
								Matthew Holt 
							
						 
					 
					
						
						
						
						
							
						
						
							e40bbecb16 
							
						 
					 
					
						
						
							
							Rough implementation of auto HTTP->HTTPS redirects  
						
						... 
						
						
						
						Also added GracePeriod for server shutdowns 
						
						
					 
					
						2019-05-07 09:56:18 -06:00 
						 
				 
			
				
					
						
							
							
								Matthew Holt 
							
						 
					 
					
						
						
						
						
							
						
						
							2eb3593327 
							
						 
					 
					
						
						
							
							Begin implementing HTTP replacer and static responder  
						
						
						
						
					 
					
						2019-05-04 13:21:20 -06:00 
						 
				 
			
				
					
						
							
							
								Matthew Holt 
							
						 
					 
					
						
						
						
						
							
						
						
							1136e2cfee 
							
						 
					 
					
						
						
							
							Add reverse proxy  
						
						
						
						
					 
					
						2019-05-04 10:49:50 -06:00 
						 
				 
			
				
					
						
							
							
								Matthew Holt 
							
						 
					 
					
						
						
						
						
							
						
						
							5859cd8dad 
							
						 
					 
					
						
						
							
							Instantiate apps that are needed but not explicitly configured  
						
						
						
						
					 
					
						2019-04-29 09:22:00 -06:00 
						 
				 
			
				
					
						
							
							
								Matthew Holt 
							
						 
					 
					
						
						
						
						
							
						
						
							2d056fbe66 
							
						 
					 
					
						
						
							
							Initial commit of Storage, TLS, and automatic HTTPS implementations  
						
						
						
						
					 
					
						2019-04-25 13:54:48 -06:00 
						 
				 
			
				
					
						
							
							
								Matthew Holt 
							
						 
					 
					
						
						
						
						
							
						
						
							545f28008e 
							
						 
					 
					
						
						
							
							Begin implementing error handling and re-handling  
						
						
						
						
					 
					
						2019-04-11 20:42:55 -06:00 
						 
				 
			
				
					
						
							
							
								dev 
							
						 
					 
					
						
						
						
						
							
						
						
							27ecc7f384 
							
						 
					 
					
						
						
							
							Protocol and Caddyscript matchers  
						
						... 
						
						
						
						* Added matcher to determine what protocol the request is being made by
  - grpc, tls, http
* Added ability to run caddyscript in a matcher to evaluate the http request
* Added TLS field to caddyscript request time
* Added a library to manipulate and compare a new caddyscript time type
* Library for regex in starlark 
						
						
					 
					
						2019-04-08 09:58:11 -04:00 
						 
				 
			
				
					
						
							
							
								Matthew Holt 
							
						 
					 
					
						
						
						
						
							
						
						
							402f423693 
							
						 
					 
					
						
						
							
							Implement "global" state for modules, OnLoad and OnUnload callbacks  
						
						... 
						
						
						
						Tested for memory leaks and performance. Obviously the added locking and
global state is not awesome, but the alternative is a little uglier IMO:
we'd have to make some sort of "liaison" value which stores the state,
then pass it around to every module, and so LoadModule becomes a lot
less accessible, and each module would need to maintain a reference to
it... nope, just ugly. I think this is the cleaner solution: just make
sure only one Start() happens at a time, and keep global things global.
Very simple log middleware is an example.
Might need to reorder the operations in Start() and handle errors
differently, etc. Otherwise, I'm mostly happy with this solution... 
						
						
					 
					
						2019-04-08 00:00:14 -06:00 
						 
				 
			
				
					
						
							
							
								Matt Holt 
							
						 
					 
					
						
						
						
						
							
						
						
							f976aa7443 
							
						 
					 
					
						
						
							
							Merged in deadlines (pull request  #1 )  
						
						... 
						
						
						
						Cleanly fake-close listeners
* WIP debugging listener deadlines
* Fix listener deadlines 
						
						
					 
					
						2019-04-02 20:58:24 +00:00