Skip to content

Commit 1eb1b11

Browse files
committedMar 20, 2025·
Pull request 2376: 7708-fix-client-addr
Updates #7708. Squashed commit of the following: commit 4dd6151 Merge: b0763a9 85e6bf5 Author: Ainar Garipov <A.Garipov@AdGuard.COM> Date: Thu Mar 20 14:03:11 2025 +0300 Merge branch 'master' into 7708-fix-client-addr commit b0763a9 Author: Ainar Garipov <A.Garipov@AdGuard.COM> Date: Thu Mar 20 13:14:44 2025 +0300 all: fix client rules
1 parent 85e6bf5 commit 1eb1b11

File tree

7 files changed

+36
-35
lines changed

7 files changed

+36
-35
lines changed
 

‎CHANGELOG.md

+3
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,12 @@ NOTE: Add new changes BELOW THIS COMMENT.
2020

2121
### Fixed
2222

23+
- Rules with the `client` modifier not working ([#7708]).
24+
2325
- The search form not working in the query log ([#7704]).
2426

2527
[#7704]: https://github.com/AdguardTeam/AdGuardHome/issues/7704
28+
[#7708]: https://github.com/AdguardTeam/AdGuardHome/issues/7708
2629

2730
<!--
2831
NOTE: Add new changes ABOVE THIS COMMENT.

‎go.mod

+9-9
Original file line numberDiff line numberDiff line change
@@ -43,13 +43,13 @@ require (
4343
)
4444

4545
require (
46-
cloud.google.com/go v0.118.3 // indirect
47-
cloud.google.com/go/ai v0.10.0 // indirect
46+
cloud.google.com/go v0.119.0 // indirect
47+
cloud.google.com/go/ai v0.10.1 // indirect
4848
cloud.google.com/go/auth v0.15.0 // indirect
4949
cloud.google.com/go/auth/oauth2adapt v0.2.7 // indirect
5050
cloud.google.com/go/compute/metadata v0.6.0 // indirect
51-
cloud.google.com/go/longrunning v0.6.5 // indirect
52-
github.com/BurntSushi/toml v1.4.1-0.20240526193622-a339e1f7089c // indirect
51+
cloud.google.com/go/longrunning v0.6.6 // indirect
52+
github.com/BurntSushi/toml v1.5.0 // indirect
5353
github.com/aead/chacha20 v0.0.0-20180709150244-8b13a72661da // indirect
5454
github.com/aead/poly1305 v0.0.0-20180717145839-3fee0db0b635 // indirect
5555
github.com/ameshkov/dnsstamps v1.0.3 // indirect
@@ -65,7 +65,7 @@ require (
6565
github.com/google/generative-ai-go v0.19.0 // indirect
6666
github.com/google/pprof v0.0.0-20250202011525-fc3143867406 // indirect
6767
github.com/google/s2a-go v0.1.9 // indirect
68-
github.com/googleapis/enterprise-certificate-proxy v0.3.5 // indirect
68+
github.com/googleapis/enterprise-certificate-proxy v0.3.6 // indirect
6969
github.com/googleapis/gax-go/v2 v2.14.1 // indirect
7070
github.com/gookit/color v1.5.4 // indirect
7171
github.com/gordonklaus/ineffassign v0.1.0 // indirect
@@ -95,16 +95,16 @@ require (
9595
golang.org/x/mod v0.24.0 // indirect
9696
golang.org/x/oauth2 v0.28.0 // indirect
9797
golang.org/x/sync v0.12.0 // indirect
98-
golang.org/x/telemetry v0.0.0-20250305155315-2a181eac97a3 // indirect
98+
golang.org/x/telemetry v0.0.0-20250310203348-fdfaad844314 // indirect
9999
golang.org/x/term v0.30.0 // indirect
100100
golang.org/x/text v0.23.0 // indirect
101101
golang.org/x/time v0.11.0 // indirect
102102
golang.org/x/tools v0.31.0 // indirect
103103
golang.org/x/vuln v1.1.4 // indirect
104104
gonum.org/v1/gonum v0.15.1 // indirect
105-
google.golang.org/api v0.224.0 // indirect
106-
google.golang.org/genproto/googleapis/api v0.0.0-20250303144028-a0af3efb3deb // indirect
107-
google.golang.org/genproto/googleapis/rpc v0.0.0-20250303144028-a0af3efb3deb // indirect
105+
google.golang.org/api v0.227.0 // indirect
106+
google.golang.org/genproto/googleapis/api v0.0.0-20250313205543-e70fdf4c4cb4 // indirect
107+
google.golang.org/genproto/googleapis/rpc v0.0.0-20250313205543-e70fdf4c4cb4 // indirect
108108
google.golang.org/grpc v1.71.0 // indirect
109109
google.golang.org/protobuf v1.36.5 // indirect
110110
honnef.co/go/tools v0.6.1 // indirect

‎go.sum

+18-18
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,23 @@
1-
cloud.google.com/go v0.118.3 h1:jsypSnrE/w4mJysioGdMBg4MiW/hHx/sArFpaBWHdME=
2-
cloud.google.com/go v0.118.3/go.mod h1:Lhs3YLnBlwJ4KA6nuObNMZ/fCbOQBPuWKPoE0Wa/9Vc=
3-
cloud.google.com/go/ai v0.10.0 h1:hwj6CI6sMKubXodoJJGTy/c2T1RbbLGM6TL3QoAvzU8=
4-
cloud.google.com/go/ai v0.10.0/go.mod h1:kvnt2KeHqX8+41PVeMRBETDyQAp/RFvBWGdx/aGjNMo=
1+
cloud.google.com/go v0.119.0 h1:tw7OjErMzJKbbjaEHkrt60KQrK5Wus/boCZ7tm5/RNE=
2+
cloud.google.com/go v0.119.0/go.mod h1:fwB8QLzTcNevxqi8dcpR+hoMIs3jBherGS9VUBDAW08=
3+
cloud.google.com/go/ai v0.10.1 h1:EU93KqYmMeOKgaBXAz2DshH2C/BzAT1P+iJORksLIic=
4+
cloud.google.com/go/ai v0.10.1/go.mod h1:sWWHZvmJ83BjuxAQtYEiA0SFTpijtbH+SXWFO14ri5A=
55
cloud.google.com/go/auth v0.15.0 h1:Ly0u4aA5vG/fsSsxu98qCQBemXtAtJf+95z9HK+cxps=
66
cloud.google.com/go/auth v0.15.0/go.mod h1:WJDGqZ1o9E9wKIL+IwStfyn/+s59zl4Bi+1KQNVXLZ8=
77
cloud.google.com/go/auth/oauth2adapt v0.2.7 h1:/Lc7xODdqcEw8IrZ9SvwnlLX6j9FHQM74z6cBk9Rw6M=
88
cloud.google.com/go/auth/oauth2adapt v0.2.7/go.mod h1:NTbTTzfvPl1Y3V1nPpOgl2w6d/FjO7NNUQaWSox6ZMc=
99
cloud.google.com/go/compute/metadata v0.6.0 h1:A6hENjEsCDtC1k8byVsgwvVcioamEHvZ4j01OwKxG9I=
1010
cloud.google.com/go/compute/metadata v0.6.0/go.mod h1:FjyFAW1MW0C203CEOMDTu3Dk1FlqW3Rga40jzHL4hfg=
11-
cloud.google.com/go/longrunning v0.6.5 h1:sD+t8DO8j4HKW4QfouCklg7ZC1qC4uzVZt8iz3uTW+Q=
12-
cloud.google.com/go/longrunning v0.6.5/go.mod h1:Et04XK+0TTLKa5IPYryKf5DkpwImy6TluQ1QTLwlKmY=
11+
cloud.google.com/go/longrunning v0.6.6 h1:XJNDo5MUfMM05xK3ewpbSdmt7R2Zw+aQEMbdQR65Rbw=
12+
cloud.google.com/go/longrunning v0.6.6/go.mod h1:hyeGJUrPHcx0u2Uu1UFSoYZLn4lkMrccJig0t4FI7yw=
1313
github.com/AdguardTeam/dnsproxy v0.75.1 h1:ux2sQfF/9+WRo6a32g9NtfaAPU19gJhqkEu2OZflxJg=
1414
github.com/AdguardTeam/dnsproxy v0.75.1/go.mod h1:HKBI/IO2/ACOjfTV6qIzB5ZDDxfjgHHvQ3hIbGg9wvc=
1515
github.com/AdguardTeam/golibs v0.32.5 h1:4Rkv2xBnyJe6l/EM2MFgoY1S4pweYwDgLTYg2MDArEA=
1616
github.com/AdguardTeam/golibs v0.32.5/go.mod h1:agsvz8Iyv0uV9NU56hpCoFLAtSPkiBf9nPVhDvdUIb0=
1717
github.com/AdguardTeam/urlfilter v0.20.0 h1:X32qiuVCVd8WDYCEsbdZKfXMzwdVqrdulamtUi4rmzs=
1818
github.com/AdguardTeam/urlfilter v0.20.0/go.mod h1:gjrywLTxfJh6JOkwi9SU+frhP7kVVEZ5exFGkR99qpk=
19-
github.com/BurntSushi/toml v1.4.1-0.20240526193622-a339e1f7089c h1:pxW6RcqyfI9/kWtOwnv/G+AzdKuy2ZrqINhenH4HyNs=
20-
github.com/BurntSushi/toml v1.4.1-0.20240526193622-a339e1f7089c/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho=
19+
github.com/BurntSushi/toml v1.5.0 h1:W5quZX/G/csjUnuI8SUYlsHs9M38FC7znL0lIO+DvMg=
20+
github.com/BurntSushi/toml v1.5.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho=
2121
github.com/NYTimes/gziphandler v1.1.1 h1:ZUDjpQae29j0ryrS0u/B8HZfJBtBQHjqw2rQ2cqUQ3I=
2222
github.com/NYTimes/gziphandler v1.1.1/go.mod h1:n/CVRwUEOgIxrgPvAQhUUr9oeUtvrhMomdKFjzJNB0c=
2323
github.com/aead/chacha20 v0.0.0-20180709150244-8b13a72661da h1:KjTM2ks9d14ZYCvmHS9iAKVt9AyzRSqNU1qabPih5BY=
@@ -87,8 +87,8 @@ github.com/google/s2a-go v0.1.9/go.mod h1:YA0Ei2ZQL3acow2O62kdp9UlnvMmU7kA6Eutn0
8787
github.com/google/uuid v1.2.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
8888
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
8989
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
90-
github.com/googleapis/enterprise-certificate-proxy v0.3.5 h1:VgzTY2jogw3xt39CusEnFJWm7rlsq5yL5q9XdLOuP5g=
91-
github.com/googleapis/enterprise-certificate-proxy v0.3.5/go.mod h1:MkHOF77EYAE7qfSuSS9PU6g4Nt4e11cnsDUowfwewLA=
90+
github.com/googleapis/enterprise-certificate-proxy v0.3.6 h1:GW/XbdyBFQ8Qe+YAmFU9uHLo7OnF5tL52HFAgMmyrf4=
91+
github.com/googleapis/enterprise-certificate-proxy v0.3.6/go.mod h1:MkHOF77EYAE7qfSuSS9PU6g4Nt4e11cnsDUowfwewLA=
9292
github.com/googleapis/gax-go/v2 v2.14.1 h1:hb0FFeiPaQskmvakKu5EbCbpntQn48jyHuvrkurSS/Q=
9393
github.com/googleapis/gax-go/v2 v2.14.1/go.mod h1:Hb/NubMaVM88SrNkvl8X/o8XWwDJEPqouaLeN2IUxoA=
9494
github.com/gookit/color v1.5.4 h1:FZmqs7XOyGgCAxmWyPslpiok1k05wmY3SJTytgvYFs0=
@@ -243,8 +243,8 @@ golang.org/x/sys v0.0.0-20220209214540-3681064d5158/go.mod h1:oPkhp1MJrh7nUepCBc
243243
golang.org/x/sys v0.4.1-0.20230131160137-e7d7f63158de/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
244244
golang.org/x/sys v0.31.0 h1:ioabZlmFYtWhL+TRYpcnNlLwhyxaM9kWTDEmfnprqik=
245245
golang.org/x/sys v0.31.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
246-
golang.org/x/telemetry v0.0.0-20250305155315-2a181eac97a3 h1:k+pofz4/0MRETtVtItAwfDgPUvNlWrUrFw+8dtUVUa8=
247-
golang.org/x/telemetry v0.0.0-20250305155315-2a181eac97a3/go.mod h1:16eI1RtbPZAEm3u7hpIh7JM/w5AbmlDtnrdKYaREic8=
246+
golang.org/x/telemetry v0.0.0-20250310203348-fdfaad844314 h1:UY+gQAskx5vohcvUlJDKkJPt9lALCgtZs3rs8msRatU=
247+
golang.org/x/telemetry v0.0.0-20250310203348-fdfaad844314/go.mod h1:16eI1RtbPZAEm3u7hpIh7JM/w5AbmlDtnrdKYaREic8=
248248
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
249249
golang.org/x/term v0.30.0 h1:PQ39fJZ+mfadBm0y5WlL4vlM7Sx1Hgf13sMIY2+QS9Y=
250250
golang.org/x/term v0.30.0/go.mod h1:NYYFdzHoI5wRh/h5tDMdMqCqPJZEuNqVR5xJLd/n67g=
@@ -268,12 +268,12 @@ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8T
268268
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
269269
gonum.org/v1/gonum v0.15.1 h1:FNy7N6OUZVUaWG9pTiD+jlhdQ3lMP+/LcTpJ6+a8sQ0=
270270
gonum.org/v1/gonum v0.15.1/go.mod h1:eZTZuRFrzu5pcyjN5wJhcIhnUdNijYxX1T2IcrOGY0o=
271-
google.golang.org/api v0.224.0 h1:Ir4UPtDsNiwIOHdExr3fAj4xZ42QjK7uQte3lORLJwU=
272-
google.golang.org/api v0.224.0/go.mod h1:3V39my2xAGkodXy0vEqcEtkqgw2GtrFL5WuBZlCTCOQ=
273-
google.golang.org/genproto/googleapis/api v0.0.0-20250303144028-a0af3efb3deb h1:p31xT4yrYrSM/G4Sn2+TNUkVhFCbG9y8itM2S6Th950=
274-
google.golang.org/genproto/googleapis/api v0.0.0-20250303144028-a0af3efb3deb/go.mod h1:jbe3Bkdp+Dh2IrslsFCklNhweNTBgSYanP1UXhJDhKg=
275-
google.golang.org/genproto/googleapis/rpc v0.0.0-20250303144028-a0af3efb3deb h1:TLPQVbx1GJ8VKZxz52VAxl1EBgKXXbTiU9Fc5fZeLn4=
276-
google.golang.org/genproto/googleapis/rpc v0.0.0-20250303144028-a0af3efb3deb/go.mod h1:LuRYeWDFV6WOn90g357N17oMCaxpgCnbi/44qJvDn2I=
271+
google.golang.org/api v0.227.0 h1:QvIHF9IuyG6d6ReE+BNd11kIB8hZvjN8Z5xY5t21zYc=
272+
google.golang.org/api v0.227.0/go.mod h1:EIpaG6MbTgQarWF5xJvX0eOJPK9n/5D4Bynb9j2HXvQ=
273+
google.golang.org/genproto/googleapis/api v0.0.0-20250313205543-e70fdf4c4cb4 h1:IFnXJq3UPB3oBREOodn1v1aGQeZYQclEmvWRMN0PSsY=
274+
google.golang.org/genproto/googleapis/api v0.0.0-20250313205543-e70fdf4c4cb4/go.mod h1:c8q6Z6OCqnfVIqUFJkCzKcrj8eCvUrz+K4KRzSTuANg=
275+
google.golang.org/genproto/googleapis/rpc v0.0.0-20250313205543-e70fdf4c4cb4 h1:iK2jbkWL86DXjEx0qiHcRE9dE4/Ahua5k6V8OWFb//c=
276+
google.golang.org/genproto/googleapis/rpc v0.0.0-20250313205543-e70fdf4c4cb4/go.mod h1:LuRYeWDFV6WOn90g357N17oMCaxpgCnbi/44qJvDn2I=
277277
google.golang.org/grpc v1.71.0 h1:kF77BGdPTQ4/JZWMlb9VpJ5pa25aqvVqogsxNHHdeBg=
278278
google.golang.org/grpc v1.71.0/go.mod h1:H0GRtasmQOh9LkFoCPDu3ZrwUtD1YGE+b2vYBYd/8Ec=
279279
google.golang.org/protobuf v1.36.5 h1:tPhr+woSbjfYvY6/GPufUoYizxw1cF/yFoxJ2fmpwlM=

‎internal/client/storage.go

+1-2
Original file line numberDiff line numberDiff line change
@@ -675,6 +675,7 @@ func (s *Storage) ClearUpstreamCache() {
675675

676676
// ApplyClientFiltering retrieves persistent client information using the
677677
// ClientID or client IP address, and applies it to the filtering settings.
678+
// setts must not be nil.
678679
func (s *Storage) ApplyClientFiltering(id string, addr netip.Addr, setts *filtering.Settings) {
679680
c, ok := s.index.findByClientID(id)
680681
if !ok {
@@ -689,8 +690,6 @@ func (s *Storage) ApplyClientFiltering(id string, addr netip.Addr, setts *filter
689690

690691
s.logger.Debug("applying custom client filtering settings", "client_name", c.Name)
691692

692-
setts.ClientIP = addr
693-
694693
if c.UseOwnBlockedServices {
695694
setts.BlockedServices = c.BlockedServices.Clone()
696695
}

‎internal/filtering/filter.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -634,8 +634,9 @@ func (d *DNSFilter) enableFiltersLocked(async bool) {
634634
// ApplyAdditionalFiltering enhances the provided filtering settings with
635635
// blocked services and client-specific configurations.
636636
func (d *DNSFilter) ApplyAdditionalFiltering(cliAddr netip.Addr, clientID string, setts *Settings) {
637-
d.ApplyBlockedServices(setts)
637+
setts.ClientIP = cliAddr
638638

639+
d.ApplyBlockedServices(setts)
639640
d.applyClientFiltering(clientID, cliAddr, setts)
640641
if setts.BlockedServices != nil {
641642
// TODO(e.burkov): Get rid of this crutch.

‎internal/filtering/filtering.go

+3-4
Original file line numberDiff line numberDiff line change
@@ -932,10 +932,9 @@ func (d *DNSFilter) matchHost(
932932
ufReq := &urlfilter.DNSRequest{
933933
Hostname: host,
934934
SortedClientTags: setts.ClientTags,
935-
// TODO(e.burkov): Wait for urlfilter update to pass net.IP.
936-
ClientIP: setts.ClientIP,
937-
ClientName: setts.ClientName,
938-
DNSType: rrtype,
935+
ClientIP: setts.ClientIP,
936+
ClientName: setts.ClientName,
937+
DNSType: rrtype,
939938
}
940939

941940
d.engineLock.RLock()

‎internal/filtering/http.go

-1
Original file line numberDiff line numberDiff line change
@@ -459,7 +459,6 @@ func (d *DNSFilter) handleCheckHost(w http.ResponseWriter, r *http.Request) {
459459

460460
addr, err := netip.ParseAddr(cli)
461461
if err == nil {
462-
setts.ClientIP = addr
463462
d.ApplyAdditionalFiltering(addr, "", setts)
464463
} else if cli != "" {
465464
// TODO(s.chzhen): Set [Settings.ClientName] once urlfilter supports

0 commit comments

Comments
 (0)