55 "context"
66 "fmt"
77 "io"
8+ "io/fs"
89 "log"
910 "net"
1011 "net/http"
@@ -24,6 +25,7 @@ const (
2425 unknownCountryCode = "AA"
2526 countryCodeLength = 2
2627 defaultDeniedRequestHTTPStatusCode = 403
28+ filePermissions = fs .FileMode (0666 )
2729)
2830
2931var (
@@ -110,11 +112,11 @@ func New(ctx context.Context, next http.Handler, config *Config, name string) (h
110112 }
111113
112114 // set default HTTP status code for denied requests if non other is supplied
113- deniedRequestHttpStatusCode , err := getHttpStatusCodeDeniedRequest (config .HTTPStatusCodeDeniedRequest )
115+ deniedRequestHTTPStatusCode , err := getHTTPStatusCodeDeniedRequest (config .HTTPStatusCodeDeniedRequest )
114116 if err != nil {
115117 return nil , err
116118 }
117- config .HTTPStatusCodeDeniedRequest = deniedRequestHttpStatusCode
119+ config .HTTPStatusCodeDeniedRequest = deniedRequestHTTPStatusCode
118120
119121 // build allowed IP and IP ranges lists
120122 allowedIPAddresses , allowedIPRanges := parseAllowedIPAddresses (config .AllowedIPAddresses , infoLogger )
@@ -208,12 +210,12 @@ func (a *GeoBlock) allowDenyIPAddress(requestIPAddr *net.IP, req *http.Request)
208210 infoLogger .Printf ("%s: request allowed [%s] since local IP addresses are allowed" , a .name , requestIPAddr )
209211 }
210212 return true
211- } else {
212- if a .logLocalRequests {
213- infoLogger .Printf ("%s: request denied [%s] since local IP addresses are denied" , a .name , requestIPAddr )
214- }
215- return false
216213 }
214+
215+ if a .logLocalRequests {
216+ infoLogger .Printf ("%s: request denied [%s] since local IP addresses are denied" , a .name , requestIPAddr )
217+ }
218+ return false
217219 }
218220
219221 // check if the request IP address is explicitly allowed
@@ -235,7 +237,7 @@ func (a *GeoBlock) allowDenyIPAddress(requestIPAddr *net.IP, req *http.Request)
235237 }
236238
237239 // check if the GeoIP database contains an entry for the request IP address
238- allowed , countryCode := a .allowDenyCachedRequestIp (requestIPAddr , req )
240+ allowed , countryCode := a .allowDenyCachedRequestIP (requestIPAddr , req )
239241
240242 if a .addCountryHeader && len (countryCode ) > 0 {
241243 req .Header .Set (countryHeader , countryCode )
@@ -244,7 +246,7 @@ func (a *GeoBlock) allowDenyIPAddress(requestIPAddr *net.IP, req *http.Request)
244246 return allowed
245247}
246248
247- func (a * GeoBlock ) allowDenyCachedRequestIp (requestIPAddr * net.IP , req * http.Request ) (bool , string ) {
249+ func (a * GeoBlock ) allowDenyCachedRequestIP (requestIPAddr * net.IP , req * http.Request ) (bool , string ) {
248250 ipAddressString := requestIPAddr .String ()
249251 cacheEntry , ok := a .database .Get (ipAddressString )
250252
@@ -492,7 +494,7 @@ func isPrivateIP(ip net.IP, privateIPBlocks []*net.IPNet) bool {
492494 return false
493495}
494496
495- func getHttpStatusCodeDeniedRequest (code int ) (int , error ) {
497+ func getHTTPStatusCodeDeniedRequest (code int ) (int , error ) {
496498 if code != 0 {
497499 // check if given status code is valid
498500 if len (http .StatusText (code )) == 0 {
@@ -567,7 +569,7 @@ func initializeLogFile(logFilePath string, logger *log.Logger) (*os.File, error)
567569 return nil , fmt .Errorf ("folder is not writable: %s" , logFilePath )
568570 }
569571
570- logFile , err := os .OpenFile (logFilePath , os .O_RDWR | os .O_CREATE | os .O_APPEND , 0666 )
572+ logFile , err := os .OpenFile (logFilePath , os .O_RDWR | os .O_CREATE | os .O_APPEND , filePermissions )
571573 if err != nil {
572574 logger .Printf ("Failed to open log file: %v\n " , err )
573575 return nil , err
0 commit comments