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

github.com/MHSanaei/3x-ui.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'xray/config.go')
-rw-r--r--xray/config.go62
1 files changed, 62 insertions, 0 deletions
diff --git a/xray/config.go b/xray/config.go
new file mode 100644
index 00000000..cc63ca40
--- /dev/null
+++ b/xray/config.go
@@ -0,0 +1,62 @@
+package xray
+
+import (
+ "bytes"
+ "x-ui/util/json_util"
+)
+
+type Config struct {
+ LogConfig json_util.RawMessage `json:"log"`
+ RouterConfig json_util.RawMessage `json:"routing"`
+ DNSConfig json_util.RawMessage `json:"dns"`
+ InboundConfigs []InboundConfig `json:"inbounds"`
+ OutboundConfigs json_util.RawMessage `json:"outbounds"`
+ Transport json_util.RawMessage `json:"transport"`
+ Policy json_util.RawMessage `json:"policy"`
+ API json_util.RawMessage `json:"api"`
+ Stats json_util.RawMessage `json:"stats"`
+ Reverse json_util.RawMessage `json:"reverse"`
+ FakeDNS json_util.RawMessage `json:"fakeDns"`
+}
+
+func (c *Config) Equals(other *Config) bool {
+ if len(c.InboundConfigs) != len(other.InboundConfigs) {
+ return false
+ }
+ for i, inbound := range c.InboundConfigs {
+ if !inbound.Equals(&other.InboundConfigs[i]) {
+ return false
+ }
+ }
+ if !bytes.Equal(c.LogConfig, other.LogConfig) {
+ return false
+ }
+ if !bytes.Equal(c.RouterConfig, other.RouterConfig) {
+ return false
+ }
+ if !bytes.Equal(c.DNSConfig, other.DNSConfig) {
+ return false
+ }
+ if !bytes.Equal(c.OutboundConfigs, other.OutboundConfigs) {
+ return false
+ }
+ if !bytes.Equal(c.Transport, other.Transport) {
+ return false
+ }
+ if !bytes.Equal(c.Policy, other.Policy) {
+ return false
+ }
+ if !bytes.Equal(c.API, other.API) {
+ return false
+ }
+ if !bytes.Equal(c.Stats, other.Stats) {
+ return false
+ }
+ if !bytes.Equal(c.Reverse, other.Reverse) {
+ return false
+ }
+ if !bytes.Equal(c.FakeDNS, other.FakeDNS) {
+ return false
+ }
+ return true
+}