This commit is contained in:
Alireza Ahmadi
2024-09-01 11:40:23 +02:00
parent 509fff0592
commit aaabbdacaa
5 changed files with 37 additions and 26 deletions

View File

@@ -1 +1 @@
1.8.5 1.8.6

View File

@@ -872,15 +872,15 @@ Outbound.FreedomSettings.Fragment = class extends CommonClass {
} }
}; };
Outbound.FreedomSettings.Noise = class extends CommonClass { Outbound.FreedomSettings.Noise = class extends CommonClass {
constructor(packets = '', delay = '') { constructor(packet = '', delay = '') {
super(); super();
this.packets = packets; this.packet = packet;
this.delay = delay; this.delay = delay;
} }
static fromJson(json = {}) { static fromJson(json = {}) {
return new Outbound.FreedomSettings.Noise( return new Outbound.FreedomSettings.Noise(
json.packets, json.packet,
json.delay, json.delay,
); );
} }

View File

@@ -55,8 +55,8 @@
</a-switch> </a-switch>
</a-form-item> </a-form-item>
<template v-if="Object.keys(outbound.settings.noise).length >0"> <template v-if="Object.keys(outbound.settings.noise).length >0">
<a-form-item label='Packets'> <a-form-item label='Packet'>
<a-input v-model.trim="outbound.settings.noise.packets"></a-input> <a-input v-model.trim="outbound.settings.noise.packet"></a-input>
</a-form-item> </a-form-item>
<a-form-item label='Delay'> <a-form-item label='Delay'>
<a-input v-model.trim="outbound.settings.noise.delay"></a-input> <a-input v-model.trim="outbound.settings.noise.delay"></a-input>

View File

@@ -220,7 +220,7 @@
<setting-list-item type="text" title='Interval' v-model="fragmentInterval" placeholder="10-20"></setting-list-item> <setting-list-item type="text" title='Interval' v-model="fragmentInterval" placeholder="10-20"></setting-list-item>
</a-collapse-panel> </a-collapse-panel>
<a-collapse-panel header='Noise' v-if="enableNoise"> <a-collapse-panel header='Noise' v-if="enableNoise">
<setting-list-item type="text" title='Packets' v-model="noisePackets" placeholder="rand:5-10"></setting-list-item> <setting-list-item type="text" title='Packet' v-model="noisePacket" placeholder="rand:5-10"></setting-list-item>
<setting-list-item type="text" title='Delay' v-model="noiseDelay" placeholder="5-10"></setting-list-item> <setting-list-item type="text" title='Delay' v-model="noiseDelay" placeholder="5-10"></setting-list-item>
</a-collapse-panel> </a-collapse-panel>
<a-collapse-panel header='Mux' v-if="enableMux"> <a-collapse-panel header='Mux' v-if="enableMux">
@@ -307,7 +307,7 @@
settings: { settings: {
domainStrategy: "AsIs", domainStrategy: "AsIs",
noise: { noise: {
packets: "rand:5-10", packet: "rand:5-10",
delay: "5-10", delay: "5-10",
} }
}, },
@@ -469,12 +469,12 @@
this.allSetting.subJsonNoise = v ? JSON.stringify(this.defaultNoise) : ""; this.allSetting.subJsonNoise = v ? JSON.stringify(this.defaultNoise) : "";
} }
}, },
noisePackets: { noisePacket: {
get: function () { return this.enableNoise ? JSON.parse(this.allSetting.subJsonNoise).settings.noise.packets : ""; }, get: function () { return this.enableNoise ? JSON.parse(this.allSetting.subJsonNoise).settings.noise.packet : ""; },
set: function (v) { set: function (v) {
if (v != "") { if (v != "") {
newNoise = JSON.parse(this.allSetting.subJsonNoise); newNoise = JSON.parse(this.allSetting.subJsonNoise);
newNoise.settings.noise.packets = v; newNoise.settings.noise.packet = v;
this.allSetting.subJsonNoise = JSON.stringify(newNoise); this.allSetting.subJsonNoise = JSON.stringify(newNoise);
} }
} }

View File

@@ -518,11 +518,13 @@ func (s *InboundService) DelInboundClient(inboundId int, clientId string) (bool,
interfaceClients := settings["clients"].([]interface{}) interfaceClients := settings["clients"].([]interface{})
var newClients []interface{} var newClients []interface{}
needApiDel := false
for _, client := range interfaceClients { for _, client := range interfaceClients {
c := client.(map[string]interface{}) c := client.(map[string]interface{})
c_id := c[client_key].(string) c_id := c[client_key].(string)
if c_id == clientId { if c_id == clientId {
email = c["email"].(string) email, _ = c["email"].(string)
needApiDel, _ = c["enable"].(bool)
} else { } else {
newClients = append(newClients, client) newClients = append(newClients, client)
} }
@@ -541,23 +543,32 @@ func (s *InboundService) DelInboundClient(inboundId int, clientId string) (bool,
oldInbound.Settings = string(newSettings) oldInbound.Settings = string(newSettings)
db := database.GetDB() db := database.GetDB()
err = s.DelClientStat(db, email)
if err != nil {
logger.Error("Delete stats Data Error")
return false, err
}
needRestart := false needRestart := false
if len(email) > 0 { if len(email) > 0 {
s.xrayApi.Init(p.GetAPIPort()) notDepleted := true
err1 := s.xrayApi.RemoveUser(oldInbound.Tag, email) err = db.Model(xray.ClientTraffic{}).Select("enable").Where("email = ?", email).First(&notDepleted).Error
if err1 == nil { if err != nil {
logger.Debug("Client deleted by api:", email) logger.Error("Get stats error")
needRestart = false return false, err
} else { }
logger.Debug("Unable to del client by api:", err1) err = s.DelClientStat(db, email)
needRestart = true if err != nil {
logger.Error("Delete stats Data Error")
return false, err
}
if needApiDel && notDepleted {
s.xrayApi.Init(p.GetAPIPort())
err1 := s.xrayApi.RemoveUser(oldInbound.Tag, email)
if err1 == nil {
logger.Debug("Client deleted by api:", email)
needRestart = false
} else {
logger.Debug("Unable to del client by api:", err1)
needRestart = true
}
s.xrayApi.Close()
} }
s.xrayApi.Close()
} }
return needRestart, db.Save(oldInbound).Error return needRestart, db.Save(oldInbound).Error
} }