Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mpolden/echoip.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Tweed <RichardoC@users.noreply.github.com>2020-06-08 00:16:35 +0300
committerGitHub <noreply@github.com>2020-06-08 00:16:35 +0300
commitd576730d0806300f5596cd5499776d5d68d045ff (patch)
tree49853ece657f1bf21655184c683844204a27ebc8
parent1f140df49fade8e5ef432426a48159cc94bd752a (diff)
Do not cache user agent (#98)
-rw-r--r--http/http.go19
1 files changed, 13 insertions, 6 deletions
diff --git a/http/http.go b/http/http.go
index 09d1fca..7c9263a 100644
--- a/http/http.go
+++ b/http/http.go
@@ -94,6 +94,16 @@ func ipFromRequest(headers []string, r *http.Request) (net.IP, error) {
return ip, nil
}
+func userAgentFromRequest(r *http.Request) *useragent.UserAgent {
+ var userAgent *useragent.UserAgent
+ userAgentRaw := r.UserAgent()
+ if userAgentRaw != "" {
+ parsed := useragent.Parse(userAgentRaw)
+ userAgent = &parsed
+ }
+ return userAgent
+}
+
func (s *Server) newResponse(r *http.Request) (Response, error) {
ip, err := ipFromRequest(s.IPHeaders, r)
if err != nil {
@@ -101,6 +111,8 @@ func (s *Server) newResponse(r *http.Request) (Response, error) {
}
response, ok := s.cache.Get(ip)
if ok {
+ // Not Caching the userAgent as it can vary for a given IP
+ response.UserAgent = userAgentFromRequest(r)
return *response, nil
}
ipDecimal := iputil.ToDecimal(ip)
@@ -115,12 +127,7 @@ func (s *Server) newResponse(r *http.Request) (Response, error) {
if asn.AutonomousSystemNumber > 0 {
autonomousSystemNumber = fmt.Sprintf("AS%d", asn.AutonomousSystemNumber)
}
- var userAgent *useragent.UserAgent
- userAgentRaw := r.UserAgent()
- if userAgentRaw != "" {
- parsed := useragent.Parse(userAgentRaw)
- userAgent = &parsed
- }
+ userAgent := userAgentFromRequest(r)
response = &Response{
IP: ip,
IPDecimal: ipDecimal,