AdGuardHome/internal/querylog/client.go
Ainar Garipov 908452f883 Pull request: all: fix names of runtime clients on query log page
Updates #2929.

Squashed commit of the following:

commit f02111aac1e9d63732589b65b224613aa3240677
Author: Ainar Garipov <A.Garipov@AdGuard.COM>
Date:   Wed Apr 7 17:40:16 2021 +0300

    all: fix names of runtime clients on query log page
2021-04-07 17:49:37 +03:00

33 lines
1.1 KiB
Go

package querylog
// Client is the information required by the query log to match against clients
// during searches.
type Client struct {
Whois *ClientWhois `json:"whois,omitempty"`
Name string `json:"name"`
DisallowedRule string `json:"disallowed_rule"`
Disallowed bool `json:"disallowed"`
}
// ClientWhois is the filtered WHOIS data for the client.
//
// TODO(a.garipov): Merge with home.RuntimeClientWhoisInfo after the
// refactoring is done.
type ClientWhois struct {
City string `json:"city,omitempty"`
Country string `json:"country,omitempty"`
Orgname string `json:"orgname,omitempty"`
}
// clientCacheKey is the key by which a cached client information is found.
type clientCacheKey struct {
clientID string
ip string
}
// clientCache is the cache of client information found throughout a request to
// the query log API. It is used both to speed up the lookup, as well as to
// make sure that changes in client data between two lookups don't create
// discrepancies in our response.
type clientCache map[clientCacheKey]*Client