mirror of
				https://github.com/caddyserver/caddy.git
				synced 2025-10-31 18:30:56 +08:00 
			
		
		
		
	cmd: Split unix sockets for admin endpoint addresses (#5696)
* cmd: fix cli when admin endpoint uses new unix socket permission format
Fixes a bug where the following Caddyfile
```Caddyfile
{
	admin unix/admin.sock|0660
}
```
and `caddy reload --config Caddyfile`
would throw the following error instead of reloading it:
```
INFO    using provided configuration    {"config_file": "Caddyfile", "config_adapter": ""}
Error: sending configuration to instance: performing request: Post "http://127.0.0.1/load": dial unix admin.sock|0660: connect: no such file or directory
[ERROR] exit status 1
```
---
This bug also affected `caddy start` and `caddy stop`.
* Move splitter function to internal
---------
Co-authored-by: Matthew Holt <mholt@users.noreply.github.com>
			
			
This commit is contained in:
		| @ -35,6 +35,7 @@ import ( | ||||
| 	"github.com/caddyserver/caddy/v2" | ||||
| 	"github.com/caddyserver/caddy/v2/caddyconfig" | ||||
| 	"github.com/caddyserver/caddy/v2/caddyconfig/caddyfile" | ||||
| 	"github.com/caddyserver/caddy/v2/internal" | ||||
| 	"go.uber.org/zap" | ||||
| ) | ||||
|  | ||||
| @ -611,6 +612,16 @@ func AdminAPIRequest(adminAddr, method, uri string, headers http.Header, body io | ||||
| 	origin := "http://" + parsedAddr.JoinHostPort(0) | ||||
| 	if parsedAddr.IsUnixNetwork() { | ||||
| 		origin = "http://127.0.0.1" // bogus host is a hack so that http.NewRequest() is happy | ||||
|  | ||||
| 		// the unix address at this point might still contain the optional | ||||
| 		// unix socket permissions, which are part of the address/host. | ||||
| 		// those need to be removed first, as they aren't part of the | ||||
| 		// resulting unix file path | ||||
| 		addr, _, err := internal.SplitUnixSocketPermissionsBits(parsedAddr.Host) | ||||
| 		if err != nil { | ||||
| 			return nil, err | ||||
| 		} | ||||
| 		parsedAddr.Host = addr | ||||
| 	} | ||||
|  | ||||
| 	// form the request | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	 Emily
					Emily