diff options
| author | MHSanaei <ho3ein.sanaei@gmail.com> | 2026-04-20 19:22:43 +0300 |
|---|---|---|
| committer | MHSanaei <ho3ein.sanaei@gmail.com> | 2026-04-20 19:22:43 +0300 |
| commit | 2b3b2770b49cd56097d7cebdf279e267a77072f6 (patch) | |
| tree | 7ef2590b3aab2fa97970a6c27011caf1cbcd6235 /web/assets | |
| parent | 094ea9faaae35b452ca3bd30b4b519da95ef984d (diff) | |
Sniffing: Add ipsExcluded, domainsExcluded (supports IP, CIDR, "geoip:", "ext:")
Diffstat (limited to 'web/assets')
| -rw-r--r-- | web/assets/js/model/inbound.js | 27 |
1 files changed, 21 insertions, 6 deletions
diff --git a/web/assets/js/model/inbound.js b/web/assets/js/model/inbound.js index c94bd8d3..d4df6d36 100644 --- a/web/assets/js/model/inbound.js +++ b/web/assets/js/model/inbound.js @@ -1252,28 +1252,43 @@ class Sniffing extends XrayCommonClass { enabled = false, destOverride = ['http', 'tls', 'quic', 'fakedns'], metadataOnly = false, - routeOnly = false) { + routeOnly = false, + ipsExcluded = [], + domainsExcluded = []) { super(); this.enabled = enabled; - this.destOverride = destOverride; + this.destOverride = Array.isArray(destOverride) && destOverride.length > 0 ? destOverride : ['http', 'tls', 'quic', 'fakedns']; this.metadataOnly = metadataOnly; this.routeOnly = routeOnly; + this.ipsExcluded = Array.isArray(ipsExcluded) ? ipsExcluded : []; + this.domainsExcluded = Array.isArray(domainsExcluded) ? domainsExcluded : []; } static fromJson(json = {}) { let destOverride = ObjectUtil.clone(json.destOverride); - if (!ObjectUtil.isEmpty(destOverride) && !ObjectUtil.isArrEmpty(destOverride)) { - if (ObjectUtil.isEmpty(destOverride[0])) { - destOverride = ['http', 'tls', 'quic', 'fakedns']; - } + if (ObjectUtil.isEmpty(destOverride) || ObjectUtil.isArrEmpty(destOverride) || ObjectUtil.isEmpty(destOverride[0])) { + destOverride = ['http', 'tls', 'quic', 'fakedns']; } return new Sniffing( !!json.enabled, destOverride, json.metadataOnly, json.routeOnly, + json.ipsExcluded || [], + json.domainsExcluded || [], ); } + + toJson() { + return { + enabled: this.enabled, + destOverride: this.destOverride, + metadataOnly: this.metadataOnly, + routeOnly: this.routeOnly, + ipsExcluded: this.ipsExcluded.length > 0 ? this.ipsExcluded : undefined, + domainsExcluded: this.domainsExcluded.length > 0 ? this.domainsExcluded : undefined, + }; + } } class Inbound extends XrayCommonClass { |
