mirror of
				https://github.com/caddyserver/caddy.git
				synced 2025-10-31 18:30:56 +08:00 
			
		
		
		
	ci: Use gofumpt to format code (#5707)
This commit is contained in:
		| @ -8,8 +8,7 @@ linters: | ||||
|   enable: | ||||
|     - bodyclose | ||||
|     - errcheck | ||||
|     - gofmt | ||||
|     - goimports | ||||
|     - gofumpt | ||||
|     - gosec | ||||
|     - gosimple | ||||
|     - govet | ||||
|  | ||||
							
								
								
									
										2
									
								
								admin.go
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								admin.go
									
									
									
									
									
								
							| @ -1346,7 +1346,7 @@ var ( | ||||
| // will get deleted before the process gracefully exits. | ||||
| func PIDFile(filename string) error { | ||||
| 	pid := []byte(strconv.Itoa(os.Getpid()) + "\n") | ||||
| 	err := os.WriteFile(filename, pid, 0600) | ||||
| 	err := os.WriteFile(filename, pid, 0o600) | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 	} | ||||
|  | ||||
							
								
								
									
										6
									
								
								caddy.go
									
									
									
									
									
								
							
							
						
						
									
										6
									
								
								caddy.go
									
									
									
									
									
								
							| @ -356,13 +356,13 @@ func unsyncedDecodeAndRun(cfgJSON []byte, allowPersist bool) error { | ||||
| 			newCfg.Admin.Config.Persist == nil || | ||||
| 			*newCfg.Admin.Config.Persist) { | ||||
| 		dir := filepath.Dir(ConfigAutosavePath) | ||||
| 		err := os.MkdirAll(dir, 0700) | ||||
| 		err := os.MkdirAll(dir, 0o700) | ||||
| 		if err != nil { | ||||
| 			Log().Error("unable to create folder for config autosave", | ||||
| 				zap.String("dir", dir), | ||||
| 				zap.Error(err)) | ||||
| 		} else { | ||||
| 			err := os.WriteFile(ConfigAutosavePath, cfgJSON, 0600) | ||||
| 			err := os.WriteFile(ConfigAutosavePath, cfgJSON, 0o600) | ||||
| 			if err == nil { | ||||
| 				Log().Info("autosaved config (load with --resume flag)", zap.String("file", ConfigAutosavePath)) | ||||
| 			} else { | ||||
| @ -831,7 +831,7 @@ func InstanceID() (uuid.UUID, error) { | ||||
| 		if err != nil { | ||||
| 			return uuid, err | ||||
| 		} | ||||
| 		err = os.WriteFile(uuidFilePath, []byte(uuid.String()), 0600) | ||||
| 		err = os.WriteFile(uuidFilePath, []byte(uuid.String()), 0o600) | ||||
| 		return uuid, err | ||||
| 	} else if err != nil { | ||||
| 		return [16]byte{}, err | ||||
|  | ||||
| @ -34,6 +34,7 @@ func (i *importGraph) addNode(name string) { | ||||
| 	} | ||||
| 	i.nodes[name] = true | ||||
| } | ||||
|  | ||||
| func (i *importGraph) addNodes(names []string) { | ||||
| 	for _, name := range names { | ||||
| 		i.addNode(name) | ||||
| @ -43,6 +44,7 @@ func (i *importGraph) addNodes(names []string) { | ||||
| func (i *importGraph) removeNode(name string) { | ||||
| 	delete(i.nodes, name) | ||||
| } | ||||
|  | ||||
| func (i *importGraph) removeNodes(names []string) { | ||||
| 	for _, name := range names { | ||||
| 		i.removeNode(name) | ||||
| @ -73,6 +75,7 @@ func (i *importGraph) addEdge(from, to string) error { | ||||
| 	i.edges[from] = append(i.edges[from], to) | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| func (i *importGraph) addEdges(from string, tos []string) error { | ||||
| 	for _, to := range tos { | ||||
| 		err := i.addEdge(from, to) | ||||
|  | ||||
| @ -565,7 +565,6 @@ func (p *parser) doSingleImport(importFile string) ([]Token, error) { | ||||
| // are loaded into the current server block for later use | ||||
| // by directive setup functions. | ||||
| func (p *parser) directive() error { | ||||
|  | ||||
| 	// a segment is a list of tokens associated with this directive | ||||
| 	var segment Segment | ||||
|  | ||||
|  | ||||
| @ -77,7 +77,8 @@ import ( | ||||
| // multiple addresses to the same lists of server blocks (a many:many mapping). | ||||
| // (Doing this is essentially a map-reduce technique.) | ||||
| func (st *ServerType) mapAddressToServerBlocks(originalServerBlocks []serverBlock, | ||||
| 	options map[string]any) (map[string][]serverBlock, error) { | ||||
| 	options map[string]any, | ||||
| ) (map[string][]serverBlock, error) { | ||||
| 	sbmap := make(map[string][]serverBlock) | ||||
|  | ||||
| 	for i, sblock := range originalServerBlocks { | ||||
| @ -187,7 +188,8 @@ func (st *ServerType) consolidateAddrMappings(addrToServerBlocks map[string][]se | ||||
| // listenerAddrsForServerBlockKey essentially converts the Caddyfile | ||||
| // site addresses to Caddy listener addresses for each server block. | ||||
| func (st *ServerType) listenerAddrsForServerBlockKey(sblock serverBlock, key string, | ||||
| 	options map[string]any) ([]string, error) { | ||||
| 	options map[string]any, | ||||
| ) ([]string, error) { | ||||
| 	addr, err := ParseAddress(key) | ||||
| 	if err != nil { | ||||
| 		return nil, fmt.Errorf("parsing key: %v", err) | ||||
|  | ||||
| @ -217,7 +217,8 @@ func (h Helper) ExtractMatcherSet() (caddy.ModuleMap, error) { | ||||
|  | ||||
| // NewRoute returns config values relevant to creating a new HTTP route. | ||||
| func (h Helper) NewRoute(matcherSet caddy.ModuleMap, | ||||
| 	handler caddyhttp.MiddlewareHandler) []ConfigValue { | ||||
| 	handler caddyhttp.MiddlewareHandler, | ||||
| ) []ConfigValue { | ||||
| 	mod, err := caddy.GetModule(caddy.GetModuleID(handler)) | ||||
| 	if err != nil { | ||||
| 		*h.warnings = append(*h.warnings, caddyconfig.Warning{ | ||||
|  | ||||
| @ -49,8 +49,7 @@ type App struct { | ||||
| } | ||||
|  | ||||
| // ServerType can set up a config from an HTTP Caddyfile. | ||||
| type ServerType struct { | ||||
| } | ||||
| type ServerType struct{} | ||||
|  | ||||
| // Setup makes a config from the tokens. | ||||
| func (st ServerType) Setup( | ||||
| @ -1059,8 +1058,8 @@ func appendSubrouteToRouteList(routeList caddyhttp.RouteList, | ||||
| 	subroute *caddyhttp.Subroute, | ||||
| 	matcherSetsEnc []caddy.ModuleMap, | ||||
| 	p sbAddrAssociation, | ||||
| 	warnings *[]caddyconfig.Warning) caddyhttp.RouteList { | ||||
|  | ||||
| 	warnings *[]caddyconfig.Warning, | ||||
| ) caddyhttp.RouteList { | ||||
| 	// nothing to do if... there's nothing to do | ||||
| 	if len(matcherSetsEnc) == 0 && len(subroute.Routes) == 0 && subroute.Errors == nil { | ||||
| 		return routeList | ||||
| @ -1608,8 +1607,10 @@ type sbAddrAssociation struct { | ||||
| 	serverBlocks []serverBlock | ||||
| } | ||||
|  | ||||
| const matcherPrefix = "@" | ||||
| const namedRouteKey = "named_route" | ||||
| const ( | ||||
| 	matcherPrefix = "@" | ||||
| 	namedRouteKey = "named_route" | ||||
| ) | ||||
|  | ||||
| // Interface guard | ||||
| var _ caddyfile.ServerType = (*ServerType)(nil) | ||||
|  | ||||
| @ -174,7 +174,6 @@ func (st ServerType) buildPKIApp( | ||||
| 	options map[string]any, | ||||
| 	warnings []caddyconfig.Warning, | ||||
| ) (*caddypki.PKI, []caddyconfig.Warning, error) { | ||||
|  | ||||
| 	skipInstallTrust := false | ||||
| 	if _, ok := options["skip_install_trust"]; ok { | ||||
| 		skipInstallTrust = true | ||||
|  | ||||
| @ -36,7 +36,6 @@ func (st ServerType) buildTLSApp( | ||||
| 	options map[string]any, | ||||
| 	warnings []caddyconfig.Warning, | ||||
| ) (*caddytls.TLS, []caddyconfig.Warning, error) { | ||||
|  | ||||
| 	tlsApp := &caddytls.TLS{CertificatesRaw: make(caddy.ModuleMap)} | ||||
| 	var certLoaders []caddytls.CertificateLoader | ||||
|  | ||||
|  | ||||
| @ -63,7 +63,6 @@ type Tester struct { | ||||
|  | ||||
| // NewTester will create a new testing client with an attached cookie jar | ||||
| func NewTester(t *testing.T) *Tester { | ||||
|  | ||||
| 	jar, err := cookiejar.New(nil) | ||||
| 	if err != nil { | ||||
| 		t.Fatalf("failed to create cookiejar: %s", err) | ||||
| @ -94,7 +93,6 @@ func timeElapsed(start time.Time, name string) { | ||||
| // InitServer this will configure the server with a configurion of a specific | ||||
| // type. The configType must be either "json" or the adapter type. | ||||
| func (tc *Tester) InitServer(rawConfig string, configType string) { | ||||
|  | ||||
| 	if err := tc.initServer(rawConfig, configType); err != nil { | ||||
| 		tc.t.Logf("failed to load config: %s", err) | ||||
| 		tc.t.Fail() | ||||
| @ -108,7 +106,6 @@ func (tc *Tester) InitServer(rawConfig string, configType string) { | ||||
| // InitServer this will configure the server with a configurion of a specific | ||||
| // type. The configType must be either "json" or the adapter type. | ||||
| func (tc *Tester) initServer(rawConfig string, configType string) error { | ||||
|  | ||||
| 	if testing.Short() { | ||||
| 		tc.t.SkipNow() | ||||
| 		return nil | ||||
| @ -232,7 +229,6 @@ const initConfig = `{ | ||||
| // validateTestPrerequisites ensures the certificates are available in the | ||||
| // designated path and Caddy sub-process is running. | ||||
| func validateTestPrerequisites(t *testing.T) error { | ||||
|  | ||||
| 	// check certificates are found | ||||
| 	for _, certName := range Default.Certifcates { | ||||
| 		if _, err := os.Stat(getIntegrationDir() + certName); os.IsNotExist(err) { | ||||
| @ -284,7 +280,6 @@ func isCaddyAdminRunning() error { | ||||
| } | ||||
|  | ||||
| func getIntegrationDir() string { | ||||
|  | ||||
| 	_, filename, _, ok := runtime.Caller(1) | ||||
| 	if !ok { | ||||
| 		panic("unable to determine the current file path") | ||||
| @ -304,7 +299,6 @@ func prependCaddyFilePath(rawConfig string) string { | ||||
|  | ||||
| // CreateTestingTransport creates a testing transport that forces call dialing connections to happen locally | ||||
| func CreateTestingTransport() *http.Transport { | ||||
|  | ||||
| 	dialer := net.Dialer{ | ||||
| 		Timeout:   5 * time.Second, | ||||
| 		KeepAlive: 5 * time.Second, | ||||
| @ -332,7 +326,6 @@ func CreateTestingTransport() *http.Transport { | ||||
|  | ||||
| // AssertLoadError will load a config and expect an error | ||||
| func AssertLoadError(t *testing.T, rawConfig string, configType string, expectedError string) { | ||||
|  | ||||
| 	tc := NewTester(t) | ||||
|  | ||||
| 	err := tc.initServer(rawConfig, configType) | ||||
| @ -343,7 +336,6 @@ func AssertLoadError(t *testing.T, rawConfig string, configType string, expected | ||||
|  | ||||
| // AssertRedirect makes a request and asserts the redirection happens | ||||
| func (tc *Tester) AssertRedirect(requestURI string, expectedToLocation string, expectedStatusCode int) *http.Response { | ||||
|  | ||||
| 	redirectPolicyFunc := func(req *http.Request, via []*http.Request) error { | ||||
| 		return http.ErrUseLastResponse | ||||
| 	} | ||||
| @ -381,7 +373,6 @@ func (tc *Tester) AssertRedirect(requestURI string, expectedToLocation string, e | ||||
|  | ||||
| // CompareAdapt adapts a config and then compares it against an expected result | ||||
| func CompareAdapt(t *testing.T, filename, rawConfig string, adapterName string, expectedResponse string) bool { | ||||
|  | ||||
| 	cfgAdapter := caddyconfig.GetAdapter(adapterName) | ||||
| 	if cfgAdapter == nil { | ||||
| 		t.Logf("unrecognized config adapter '%s'", adapterName) | ||||
| @ -469,7 +460,6 @@ func applyHeaders(t *testing.T, req *http.Request, requestHeaders []string) { | ||||
|  | ||||
| // AssertResponseCode will execute the request and verify the status code, returns a response for additional assertions | ||||
| func (tc *Tester) AssertResponseCode(req *http.Request, expectedStatusCode int) *http.Response { | ||||
|  | ||||
| 	resp, err := tc.Client.Do(req) | ||||
| 	if err != nil { | ||||
| 		tc.t.Fatalf("failed to call server %s", err) | ||||
| @ -484,7 +474,6 @@ func (tc *Tester) AssertResponseCode(req *http.Request, expectedStatusCode int) | ||||
|  | ||||
| // AssertResponse request a URI and assert the status code and the body contains a string | ||||
| func (tc *Tester) AssertResponse(req *http.Request, expectedStatusCode int, expectedBody string) (*http.Response, string) { | ||||
|  | ||||
| 	resp := tc.AssertResponseCode(req, expectedStatusCode) | ||||
|  | ||||
| 	defer resp.Body.Close() | ||||
| @ -506,7 +495,6 @@ func (tc *Tester) AssertResponse(req *http.Request, expectedStatusCode int, expe | ||||
|  | ||||
| // AssertGetResponse GET a URI and expect a statusCode and body text | ||||
| func (tc *Tester) AssertGetResponse(requestURI string, expectedStatusCode int, expectedBody string) (*http.Response, string) { | ||||
|  | ||||
| 	req, err := http.NewRequest("GET", requestURI, nil) | ||||
| 	if err != nil { | ||||
| 		tc.t.Fatalf("unable to create request %s", err) | ||||
| @ -517,7 +505,6 @@ func (tc *Tester) AssertGetResponse(requestURI string, expectedStatusCode int, e | ||||
|  | ||||
| // AssertDeleteResponse request a URI and expect a statusCode and body text | ||||
| func (tc *Tester) AssertDeleteResponse(requestURI string, expectedStatusCode int, expectedBody string) (*http.Response, string) { | ||||
|  | ||||
| 	req, err := http.NewRequest("DELETE", requestURI, nil) | ||||
| 	if err != nil { | ||||
| 		tc.t.Fatalf("unable to create request %s", err) | ||||
| @ -528,7 +515,6 @@ func (tc *Tester) AssertDeleteResponse(requestURI string, expectedStatusCode int | ||||
|  | ||||
| // AssertPostResponseBody POST to a URI and assert the response code and body | ||||
| func (tc *Tester) AssertPostResponseBody(requestURI string, requestHeaders []string, requestBody *bytes.Buffer, expectedStatusCode int, expectedBody string) (*http.Response, string) { | ||||
|  | ||||
| 	req, err := http.NewRequest("POST", requestURI, requestBody) | ||||
| 	if err != nil { | ||||
| 		tc.t.Errorf("failed to create request %s", err) | ||||
| @ -542,7 +528,6 @@ func (tc *Tester) AssertPostResponseBody(requestURI string, requestHeaders []str | ||||
|  | ||||
| // AssertPutResponseBody PUT to a URI and assert the response code and body | ||||
| func (tc *Tester) AssertPutResponseBody(requestURI string, requestHeaders []string, requestBody *bytes.Buffer, expectedStatusCode int, expectedBody string) (*http.Response, string) { | ||||
|  | ||||
| 	req, err := http.NewRequest("PUT", requestURI, requestBody) | ||||
| 	if err != nil { | ||||
| 		tc.t.Errorf("failed to create request %s", err) | ||||
| @ -556,7 +541,6 @@ func (tc *Tester) AssertPutResponseBody(requestURI string, requestHeaders []stri | ||||
|  | ||||
| // AssertPatchResponseBody PATCH to a URI and assert the response code and body | ||||
| func (tc *Tester) AssertPatchResponseBody(requestURI string, requestHeaders []string, requestBody *bytes.Buffer, expectedStatusCode int, expectedBody string) (*http.Response, string) { | ||||
|  | ||||
| 	req, err := http.NewRequest("PATCH", requestURI, requestBody) | ||||
| 	if err != nil { | ||||
| 		tc.t.Errorf("failed to create request %s", err) | ||||
|  | ||||
| @ -565,7 +565,7 @@ func cmdFmt(fl Flags) (int, error) { | ||||
| 	output := caddyfile.Format(input) | ||||
|  | ||||
| 	if fl.Bool("overwrite") { | ||||
| 		if err := os.WriteFile(formatCmdConfigFile, output, 0600); err != nil { | ||||
| 		if err := os.WriteFile(formatCmdConfigFile, output, 0o600); err != nil { | ||||
| 			return caddy.ExitCodeFailedStartup, fmt.Errorf("overwriting formatted file: %v", err) | ||||
| 		} | ||||
| 		return caddy.ExitCodeSuccess, nil | ||||
|  | ||||
| @ -444,7 +444,7 @@ argument of --directory. If the directory does not exist, it will be created. | ||||
| 				if dir == "" { | ||||
| 					return caddy.ExitCodeFailedQuit, fmt.Errorf("designated output directory and specified section are required") | ||||
| 				} | ||||
| 				if err := os.MkdirAll(dir, 0755); err != nil { | ||||
| 				if err := os.MkdirAll(dir, 0o755); err != nil { | ||||
| 					return caddy.ExitCodeFailedQuit, err | ||||
| 				} | ||||
| 				if err := doc.GenManTree(rootCmd, &doc.GenManHeader{ | ||||
|  | ||||
| @ -200,7 +200,7 @@ func cmdExportStorage(fl Flags) (int, error) { | ||||
|  | ||||
| 			hdr := &tar.Header{ | ||||
| 				Name: k, | ||||
| 				Mode: 0600, | ||||
| 				Mode: 0o600, | ||||
| 				Size: int64(len(v)), | ||||
| 			} | ||||
|  | ||||
|  | ||||
| @ -52,5 +52,5 @@ func SplitUnixSocketPermissionsBits(addr string) (path string, fileMode fs.FileM | ||||
|  | ||||
| 	// default to 0200 (symbolic: `u=w,g=,o=`) | ||||
| 	// if no permission bits are specified | ||||
| 	return addr, 0200, nil | ||||
| 	return addr, 0o200, nil | ||||
| } | ||||
|  | ||||
| @ -174,7 +174,6 @@ func (na NetworkAddress) listen(ctx context.Context, portOffset uint, config net | ||||
| 			if err := os.Chmod(address, unixFileMode); err != nil { | ||||
| 				return nil, fmt.Errorf("unable to set permissions (%s) on %s: %v", unixFileMode, address, err) | ||||
| 			} | ||||
|  | ||||
| 		} | ||||
| 		return socket, err | ||||
| 	} | ||||
|  | ||||
| @ -307,5 +307,7 @@ const ( | ||||
| const separator = string(filepath.Separator) | ||||
|  | ||||
| // Interface guard | ||||
| var _ caddy.ListenerWrapper = (*tlsPlaceholderWrapper)(nil) | ||||
| var _ caddyfile.Unmarshaler = (*tlsPlaceholderWrapper)(nil) | ||||
| var ( | ||||
| 	_ caddy.ListenerWrapper = (*tlsPlaceholderWrapper)(nil) | ||||
| 	_ caddyfile.Unmarshaler = (*tlsPlaceholderWrapper)(nil) | ||||
| ) | ||||
|  | ||||
| @ -234,9 +234,11 @@ func (cr celHTTPRequest) Parent() interpreter.Activation { | ||||
| func (cr celHTTPRequest) ConvertToNative(typeDesc reflect.Type) (any, error) { | ||||
| 	return cr.Request, nil | ||||
| } | ||||
|  | ||||
| func (celHTTPRequest) ConvertToType(typeVal ref.Type) ref.Val { | ||||
| 	panic("not implemented") | ||||
| } | ||||
|  | ||||
| func (cr celHTTPRequest) Equal(other ref.Val) ref.Val { | ||||
| 	if o, ok := other.Value().(celHTTPRequest); ok { | ||||
| 		return types.Bool(o.Request == cr.Request) | ||||
| @ -255,12 +257,14 @@ type celPkixName struct{ *pkix.Name } | ||||
| func (pn celPkixName) ConvertToNative(typeDesc reflect.Type) (any, error) { | ||||
| 	return pn.Name, nil | ||||
| } | ||||
|  | ||||
| func (pn celPkixName) ConvertToType(typeVal ref.Type) ref.Val { | ||||
| 	if typeVal.TypeName() == "string" { | ||||
| 		return types.String(pn.Name.String()) | ||||
| 	} | ||||
| 	panic("not implemented") | ||||
| } | ||||
|  | ||||
| func (pn celPkixName) Equal(other ref.Val) ref.Val { | ||||
| 	if o, ok := other.Value().(string); ok { | ||||
| 		return types.Bool(pn.Name.String() == o) | ||||
|  | ||||
| @ -113,7 +113,7 @@ func (fsrv *FileServer) serveBrowse(root, dirPath string, w http.ResponseWriter, | ||||
| 			fs = http.Dir(repl.ReplaceAll(fsrv.Root, ".")) | ||||
| 		} | ||||
|  | ||||
| 		var tplCtx = &templateContext{ | ||||
| 		tplCtx := &templateContext{ | ||||
| 			TemplateContext: templates.TemplateContext{ | ||||
| 				Root:       fs, | ||||
| 				Req:        r, | ||||
|  | ||||
| @ -1392,9 +1392,7 @@ func ParseCaddyfileNestedMatcherSet(d *caddyfile.Dispenser) (caddy.ModuleMap, er | ||||
| 	return matcherSet, nil | ||||
| } | ||||
|  | ||||
| var ( | ||||
| 	wordRE = regexp.MustCompile(`\w+`) | ||||
| ) | ||||
| var wordRE = regexp.MustCompile(`\w+`) | ||||
|  | ||||
| const regexpPlaceholderPrefix = "http.regexp" | ||||
|  | ||||
|  | ||||
| @ -45,12 +45,15 @@ func (p parsedAddr) dialAddr() string { | ||||
| 	} | ||||
| 	return net.JoinHostPort(p.host, p.port) | ||||
| } | ||||
|  | ||||
| func (p parsedAddr) rangedPort() bool { | ||||
| 	return strings.Contains(p.port, "-") | ||||
| } | ||||
|  | ||||
| func (p parsedAddr) replaceablePort() bool { | ||||
| 	return strings.Contains(p.port, "{") && strings.Contains(p.port, "}") | ||||
| } | ||||
|  | ||||
| func (p parsedAddr) isUnix() bool { | ||||
| 	return caddy.IsUnixNetwork(p.network) | ||||
| } | ||||
|  | ||||
| @ -549,7 +549,6 @@ func (h *Handler) UnmarshalCaddyfile(d *caddyfile.Dispenser) error { | ||||
| 				h.RequestBuffers = int64(size) | ||||
| 			} else if subdir == "response_buffers" { | ||||
| 				h.ResponseBuffers = int64(size) | ||||
|  | ||||
| 			} | ||||
|  | ||||
| 		// TODO: These three properties are deprecated; remove them sometime after v2.6.4 | ||||
|  | ||||
| @ -284,7 +284,8 @@ func cmdReverseProxy(fs caddycmd.Flags) (int, error) { | ||||
|  | ||||
| 	var false bool | ||||
| 	cfg := &caddy.Config{ | ||||
| 		Admin: &caddy.AdminConfig{Disabled: true, | ||||
| 		Admin: &caddy.AdminConfig{ | ||||
| 			Disabled: true, | ||||
| 			Config: &caddy.ConfigSettings{ | ||||
| 				Persist: &false, | ||||
| 			}, | ||||
|  | ||||
| @ -251,7 +251,6 @@ func (c *client) Request(p map[string]string, req io.Reader) (resp *http.Respons | ||||
|  | ||||
| // Get issues a GET request to the fcgi responder. | ||||
| func (c *client) Get(p map[string]string, body io.Reader, l int64) (resp *http.Response, err error) { | ||||
|  | ||||
| 	p["REQUEST_METHOD"] = "GET" | ||||
| 	p["CONTENT_LENGTH"] = strconv.FormatInt(l, 10) | ||||
|  | ||||
| @ -260,7 +259,6 @@ func (c *client) Get(p map[string]string, body io.Reader, l int64) (resp *http.R | ||||
|  | ||||
| // Head issues a HEAD request to the fcgi responder. | ||||
| func (c *client) Head(p map[string]string) (resp *http.Response, err error) { | ||||
|  | ||||
| 	p["REQUEST_METHOD"] = "HEAD" | ||||
| 	p["CONTENT_LENGTH"] = "0" | ||||
|  | ||||
| @ -269,7 +267,6 @@ func (c *client) Head(p map[string]string) (resp *http.Response, err error) { | ||||
|  | ||||
| // Options issues an OPTIONS request to the fcgi responder. | ||||
| func (c *client) Options(p map[string]string) (resp *http.Response, err error) { | ||||
|  | ||||
| 	p["REQUEST_METHOD"] = "OPTIONS" | ||||
| 	p["CONTENT_LENGTH"] = "0" | ||||
|  | ||||
|  | ||||
| @ -450,7 +450,8 @@ func (h *Handler) ServeHTTP(w http.ResponseWriter, r *http.Request, next caddyht | ||||
| // It returns true when the loop is done and should break; false otherwise. The error value returned should | ||||
| // be assigned to the proxyErr value for the next iteration of the loop (or the error handled after break). | ||||
| func (h *Handler) proxyLoopIteration(r *http.Request, origReq *http.Request, w http.ResponseWriter, proxyErr error, start time.Time, retries int, | ||||
| 	repl *caddy.Replacer, reqHeader http.Header, reqHost string, next caddyhttp.Handler) (bool, error) { | ||||
| 	repl *caddy.Replacer, reqHeader http.Header, reqHost string, next caddyhttp.Handler, | ||||
| ) (bool, error) { | ||||
| 	// get the updated list of upstreams | ||||
| 	upstreams := h.Upstreams | ||||
| 	if h.DynamicUpstreams != nil { | ||||
|  | ||||
| @ -522,5 +522,7 @@ var streamingBufPool = sync.Pool{ | ||||
| 	}, | ||||
| } | ||||
|  | ||||
| const defaultBufferSize = 32 * 1024 | ||||
| const wordSize = int(unsafe.Sizeof(uintptr(0))) | ||||
| const ( | ||||
| 	defaultBufferSize = 32 * 1024 | ||||
| 	wordSize          = int(unsafe.Sizeof(uintptr(0))) | ||||
| ) | ||||
|  | ||||
| @ -103,13 +103,11 @@ func (c TemplateContext) OriginalReq() http.Request { | ||||
| // trusted files. If it is not trusted, be sure to use escaping functions | ||||
| // in your template. | ||||
| func (c TemplateContext) funcInclude(filename string, args ...any) (string, error) { | ||||
|  | ||||
| 	bodyBuf := bufPool.Get().(*bytes.Buffer) | ||||
| 	bodyBuf.Reset() | ||||
| 	defer bufPool.Put(bodyBuf) | ||||
|  | ||||
| 	err := c.readFileToBuffer(filename, bodyBuf) | ||||
|  | ||||
| 	if err != nil { | ||||
| 		return "", err | ||||
| 	} | ||||
| @ -215,7 +213,6 @@ func (c TemplateContext) funcHTTPInclude(uri string) (string, error) { | ||||
| // {{ template }} from the standard template library. If the imported file has | ||||
| // no {{ define }} blocks, the name of the import will be the path | ||||
| func (c *TemplateContext) funcImport(filename string) (string, error) { | ||||
|  | ||||
| 	bodyBuf := bufPool.Get().(*bytes.Buffer) | ||||
| 	bodyBuf.Reset() | ||||
| 	defer bufPool.Put(bodyBuf) | ||||
|  | ||||
| @ -239,7 +239,7 @@ func (ash Handler) openDatabase() (*db.AuthDB, error) { | ||||
| 		dbFolder := filepath.Join(caddy.AppDataDir(), "acme_server", key) | ||||
| 		dbPath := filepath.Join(dbFolder, "db") | ||||
|  | ||||
| 		err := os.MkdirAll(dbFolder, 0755) | ||||
| 		err := os.MkdirAll(dbFolder, 0o755) | ||||
| 		if err != nil { | ||||
| 			return nil, fmt.Errorf("making folder for CA database: %v", err) | ||||
| 		} | ||||
| @ -310,8 +310,10 @@ func (c resolverClient) LookupTxt(name string) ([]string, error) { | ||||
|  | ||||
| const defaultPathPrefix = "/acme/" | ||||
|  | ||||
| var keyCleaner = regexp.MustCompile(`[^\w.-_]`) | ||||
| var databasePool = caddy.NewUsagePool() | ||||
| var ( | ||||
| 	keyCleaner   = regexp.MustCompile(`[^\w.-_]`) | ||||
| 	databasePool = caddy.NewUsagePool() | ||||
| ) | ||||
|  | ||||
| type databaseCloser struct { | ||||
| 	DB *db.AuthDB | ||||
|  | ||||
| @ -376,15 +376,19 @@ func (ca CA) genIntermediate(rootCert *x509.Certificate, rootKey crypto.Signer) | ||||
| func (ca CA) storageKeyCAPrefix() string { | ||||
| 	return path.Join("pki", "authorities", certmagic.StorageKeys.Safe(ca.ID)) | ||||
| } | ||||
|  | ||||
| func (ca CA) storageKeyRootCert() string { | ||||
| 	return path.Join(ca.storageKeyCAPrefix(), "root.crt") | ||||
| } | ||||
|  | ||||
| func (ca CA) storageKeyRootKey() string { | ||||
| 	return path.Join(ca.storageKeyCAPrefix(), "root.key") | ||||
| } | ||||
|  | ||||
| func (ca CA) storageKeyIntermediateCert() string { | ||||
| 	return path.Join(ca.storageKeyCAPrefix(), "intermediate.crt") | ||||
| } | ||||
|  | ||||
| func (ca CA) storageKeyIntermediateKey() string { | ||||
| 	return path.Join(ca.storageKeyCAPrefix(), "intermediate.key") | ||||
| } | ||||
|  | ||||
| @ -316,7 +316,7 @@ func (p *ConnectionPolicy) buildStandardTLSConfig(ctx caddy.Context) error { | ||||
| 			return err | ||||
| 		} | ||||
| 		logFile, _, err := secretsLogPool.LoadOrNew(filename, func() (caddy.Destructor, error) { | ||||
| 			w, err := os.OpenFile(filename, os.O_WRONLY|os.O_CREATE|os.O_APPEND, 0600) | ||||
| 			w, err := os.OpenFile(filename, os.O_WRONLY|os.O_CREATE|os.O_APPEND, 0o600) | ||||
| 			return destructableWriter{w}, err | ||||
| 		}) | ||||
| 		if err != nil { | ||||
|  | ||||
| @ -126,7 +126,7 @@ func (fw FileWriter) OpenWriter() (io.WriteCloser, error) { | ||||
| 	} | ||||
|  | ||||
| 	// otherwise just open a regular file | ||||
| 	return os.OpenFile(fw.Filename, os.O_WRONLY|os.O_APPEND|os.O_CREATE, 0666) | ||||
| 	return os.OpenFile(fw.Filename, os.O_WRONLY|os.O_APPEND|os.O_CREATE, 0o666) | ||||
| } | ||||
|  | ||||
| // UnmarshalCaddyfile sets up the module from Caddyfile tokens. Syntax: | ||||
|  | ||||
| @ -81,8 +81,7 @@ func hash(s string) string { | ||||
| // of the SHA-256 hash of the content. Operates | ||||
| // on string fields, or on arrays of strings | ||||
| // where each string is hashed. | ||||
| type HashFilter struct { | ||||
| } | ||||
| type HashFilter struct{} | ||||
|  | ||||
| // CaddyModule returns the Caddy module information. | ||||
| func (HashFilter) CaddyModule() caddy.ModuleInfo { | ||||
|  | ||||
| @ -131,7 +131,8 @@ func (r *Replacer) ReplaceFunc(input string, f ReplacementFunc) (string, error) | ||||
|  | ||||
| func (r *Replacer) replace(input, empty string, | ||||
| 	treatUnknownAsEmpty, errOnEmpty, errOnUnknown bool, | ||||
| 	f ReplacementFunc) (string, error) { | ||||
| 	f ReplacementFunc, | ||||
| ) (string, error) { | ||||
| 	if !strings.Contains(input, string(phOpen)) { | ||||
| 		return input, nil | ||||
| 	} | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	 Jacob Gadikian
					Jacob Gadikian