|
|
@@ -157,6 +157,7 @@ func (p *Proxy) Shutdown() {
|
|
157
|
157
|
p.streamWaitGroup.Wait()
|
|
158
|
158
|
p.workerPool.Release()
|
|
159
|
159
|
p.configUpdater.Wait()
|
|
|
160
|
+ p.doppelGanger.Shutdown()
|
|
160
|
161
|
|
|
161
|
162
|
p.allowlist.Shutdown()
|
|
162
|
163
|
p.blocklist.Shutdown()
|
|
|
@@ -327,6 +328,14 @@ func NewProxy(opts ProxyOpts) (*Proxy, error) {
|
|
327
|
328
|
tolerateTimeSkewness: opts.getTolerateTimeSkewness(),
|
|
328
|
329
|
allowFallbackOnUnknownDC: opts.AllowFallbackOnUnknownDC,
|
|
329
|
330
|
telegram: tg,
|
|
|
331
|
+ doppelGanger: doppel.NewGanger(
|
|
|
332
|
+ ctx,
|
|
|
333
|
+ opts.Network,
|
|
|
334
|
+ logger.Named("doppelganger"),
|
|
|
335
|
+ opts.DoppelGangerEach,
|
|
|
336
|
+ int(opts.DoppelGangerPerRaid),
|
|
|
337
|
+ opts.DoppelGangerURLs,
|
|
|
338
|
+ ),
|
|
330
|
339
|
configUpdater: dc.NewPublicConfigUpdater(
|
|
331
|
340
|
tg,
|
|
332
|
341
|
updatersLogger.Named("public-config"),
|
|
|
@@ -338,6 +347,8 @@ func NewProxy(opts ProxyOpts) (*Proxy, error) {
|
|
338
|
347
|
domainFrontingProxyProtocol: opts.DomainFrontingProxyProtocol,
|
|
339
|
348
|
}
|
|
340
|
349
|
|
|
|
350
|
+ proxy.doppelGanger.Run()
|
|
|
351
|
+
|
|
341
|
352
|
if opts.AutoUpdate {
|
|
342
|
353
|
proxy.configUpdater.Run(ctx, dc.PublicConfigUpdateURLv4, "tcp4")
|
|
343
|
354
|
proxy.configUpdater.Run(ctx, dc.PublicConfigUpdateURLv6, "tcp6")
|