[externalProxy] seprated port field #656

This commit is contained in:
Alireza Ahmadi
2023-11-30 00:18:37 +01:00
parent 3dd8dbdecf
commit 3a913ca81a
5 changed files with 31 additions and 50 deletions

View File

@@ -1367,16 +1367,9 @@ class Inbound extends XrayCommonClass {
} else {
this.stream.externalProxy.forEach((ep) => {
let r = [remark, email, ep.remark].filter(x => x.length > 0).join('-')
let dest = ep.dest.split(":");
if(dest.length == 2) {
addr = dest[0];
port = dest[1];
} else {
addr = dest[0];
}
result.push({
remark: r,
link: this.genLink(addr, port, ep.forceTls, r, client)
link: this.genLink(ep.dest, ep.port, ep.forceTls, r, client)
});
});
}

View File

@@ -3,23 +3,26 @@
<a-divider style="margin:0;"></a-divider>
<a-form-item label="External Proxy">
<a-switch v-model="externalProxy"></a-switch>
<a-button v-if="externalProxy" type="primary" style="margin-left: 10px" size="small" @click="inbound.stream.externalProxy.push({forceTls: 'same', dest: '', remark: ''})">+</a-button>
<a-button v-if="externalProxy" type="primary" style="margin-left: 10px" size="small" @click="inbound.stream.externalProxy.push({forceTls: 'same', dest: '', port: 443, remark: ''})">+</a-button>
</a-form-item>
<table width="100%" class="ant-table-tbody" v-if="externalProxy">
<tr style="line-height: 40px;">
<td width="100%">
<a-input-group style="margin-top:5px;" compact v-for="(row, index) in inbound.stream.externalProxy">
<template v-if="inbound.canEnableTls()">
<a-tooltip title="Force TLS">
<a-select v-model="row.forceTls" style="width:20%; margin: 0px" :dropdown-class-name="themeSwitcher.currentTheme">
<a-select-option value="same">{{ i18n "pages.inbounds.same" }}</a-select-option>
<a-select-option value="none">{{ i18n "none" }}</a-select-option>
<a-select-option value="tls">TLS</a-select-option>
</a-select>
</a-tooltip>
<template>
<a-tooltip title="Force TLS">
<a-select v-model="row.forceTls" style="width:20%; margin: 0px" :dropdown-class-name="themeSwitcher.currentTheme">
<a-select-option value="same">{{ i18n "pages.inbounds.same" }}</a-select-option>
<a-select-option value="none">{{ i18n "none" }}</a-select-option>
<a-select-option value="tls">TLS</a-select-option>
</a-select>
</a-tooltip>
</template>
<a-input style="width: 40%" v-model.trim="row.dest" placeholder='{{ i18n "host" }}:{{ i18n "pages.inbounds.port" }}'></a-input>
<a-input :style="inbound.canEnableTls() ? 'width: 30%' : 'width: 50%'" v-model.trim="row.remark" placeholder='{{ i18n "remark" }}'></a-input>
<a-input style="width: 35%" v-model.trim="row.dest" placeholder='{{ i18n "host" }}'></a-input>
<a-tooltip title='{{ i18n "pages.inbounds.port" }}'>
<a-input-number style="width: 15%;" v-model.number="row.port" min="1" max="65531"></a-input-number>
</a-tooltip>
<a-input style="width: 20%" v-model.trim="row.remark" placeholder='{{ i18n "remark" }}'></a-input>
<a-button style="width: 10%; margin: 0px" @click="inbound.stream.externalProxy.splice(index, 1)">-</a-button>
</a-input-group>
</td>

View File

@@ -75,7 +75,8 @@
if (value) {
inModal.inbound.stream.externalProxy = [{
forceTls: "same",
dest: window.location.hostname + ":" + inModal.inbound.port,
dest: window.location.hostname,
port: inModal.inbound.port,
remark: ""
}];
} else {

View File

@@ -1383,7 +1383,8 @@ func (s *InboundService) MigrationRequirements() {
for _, domain := range domains {
if domainMap, ok := domain.(map[string]interface{}); ok {
domainMap["forceTls"] = "same"
domainMap["dest"] = domainMap["domain"].(string) + fmt.Sprintf(":%d", ep.Port)
domainMap["port"] = ep.Port
domainMap["dest"] = domainMap["domain"].(string)
delete(domainMap, "domain")
}
}