mirror of
https://github.com/tobychui/zoraxy.git
synced 2025-08-05 20:58:28 +02:00
Added Proxy Protocol V1 to Stream Proxy UI
- Added a checkbox for Proxy Protocol V1. - Modified related Config setting function.
This commit is contained in:
@@ -47,8 +47,7 @@ func (m *Manager) HandleAddProxyConfig(w http.ResponseWriter, r *http.Request) {
|
|||||||
|
|
||||||
useTCP, _ := utils.PostBool(r, "useTCP")
|
useTCP, _ := utils.PostBool(r, "useTCP")
|
||||||
useUDP, _ := utils.PostBool(r, "useUDP")
|
useUDP, _ := utils.PostBool(r, "useUDP")
|
||||||
// useProxyProtocol, _ := utils.PostBool(r, "useProxyProtocol")
|
useProxyProtocol, _ := utils.PostBool(r, "useProxyProtocol")
|
||||||
useProxyProtocol := true
|
|
||||||
|
|
||||||
//Create the target config
|
//Create the target config
|
||||||
newConfigUUID := m.NewConfig(&ProxyRelayOptions{
|
newConfigUUID := m.NewConfig(&ProxyRelayOptions{
|
||||||
@@ -78,6 +77,7 @@ func (m *Manager) HandleEditProxyConfigs(w http.ResponseWriter, r *http.Request)
|
|||||||
proxyAddr, _ := utils.PostPara(r, "proxyAddr")
|
proxyAddr, _ := utils.PostPara(r, "proxyAddr")
|
||||||
useTCP, _ := utils.PostBool(r, "useTCP")
|
useTCP, _ := utils.PostBool(r, "useTCP")
|
||||||
useUDP, _ := utils.PostBool(r, "useUDP")
|
useUDP, _ := utils.PostBool(r, "useUDP")
|
||||||
|
useProxyProtocol, _ := utils.PostBool(r, "useProxyProtocol")
|
||||||
|
|
||||||
newTimeoutStr, _ := utils.PostPara(r, "timeout")
|
newTimeoutStr, _ := utils.PostPara(r, "timeout")
|
||||||
newTimeout := -1
|
newTimeout := -1
|
||||||
@@ -90,7 +90,7 @@ func (m *Manager) HandleEditProxyConfigs(w http.ResponseWriter, r *http.Request)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Call the EditConfig method to modify the configuration
|
// Call the EditConfig method to modify the configuration
|
||||||
err = m.EditConfig(configUUID, newName, listenAddr, proxyAddr, useTCP, useUDP, newTimeout)
|
err = m.EditConfig(configUUID, newName, listenAddr, proxyAddr, useTCP, useUDP, useProxyProtocol, newTimeout)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
utils.SendErrorResponse(w, err.Error())
|
utils.SendErrorResponse(w, err.Error())
|
||||||
return
|
return
|
||||||
|
@@ -42,7 +42,7 @@ type ProxyRelayConfig struct {
|
|||||||
ProxyTargetAddr string //Proxy target address
|
ProxyTargetAddr string //Proxy target address
|
||||||
UseTCP bool //Enable TCP proxy
|
UseTCP bool //Enable TCP proxy
|
||||||
UseUDP bool //Enable UDP proxy
|
UseUDP bool //Enable UDP proxy
|
||||||
UseProxyProtocol bool //Enable Proxy Protocol
|
UseProxyProtocol bool //Enable Proxy Protocol
|
||||||
Timeout int //Timeout for connection in sec
|
Timeout int //Timeout for connection in sec
|
||||||
tcpStopChan chan bool //Stop channel for TCP listener
|
tcpStopChan chan bool //Stop channel for TCP listener
|
||||||
udpStopChan chan bool //Stop channel for UDP listener
|
udpStopChan chan bool //Stop channel for UDP listener
|
||||||
@@ -184,7 +184,7 @@ func (m *Manager) GetConfigByUUID(configUUID string) (*ProxyRelayConfig, error)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Edit the config based on config UUID, leave empty for unchange fields
|
// Edit the config based on config UUID, leave empty for unchange fields
|
||||||
func (m *Manager) EditConfig(configUUID string, newName string, newListeningAddr string, newProxyAddr string, useTCP bool, useUDP bool, newTimeout int) error {
|
func (m *Manager) EditConfig(configUUID string, newName string, newListeningAddr string, newProxyAddr string, useTCP bool, useUDP bool, useProxyProtocol bool, newTimeout int) error {
|
||||||
// Find the config with the specified UUID
|
// Find the config with the specified UUID
|
||||||
foundConfig, err := m.GetConfigByUUID(configUUID)
|
foundConfig, err := m.GetConfigByUUID(configUUID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -204,6 +204,7 @@ func (m *Manager) EditConfig(configUUID string, newName string, newListeningAddr
|
|||||||
|
|
||||||
foundConfig.UseTCP = useTCP
|
foundConfig.UseTCP = useTCP
|
||||||
foundConfig.UseUDP = useUDP
|
foundConfig.UseUDP = useUDP
|
||||||
|
foundConfig.UseProxyProtocol = useProxyProtocol
|
||||||
|
|
||||||
if newTimeout != -1 {
|
if newTimeout != -1 {
|
||||||
if newTimeout < 0 {
|
if newTimeout < 0 {
|
||||||
|
@@ -145,7 +145,7 @@ func (c *ProxyRelayConfig) Port2host(allowPort string, targetAddress string, sto
|
|||||||
//Connection error. Retry
|
//Connection error. Retry
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
log.Println("[+]", "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA")
|
|
||||||
go func(targetAddress string) {
|
go func(targetAddress string) {
|
||||||
log.Println("[+]", "start connect host:["+targetAddress+"]")
|
log.Println("[+]", "start connect host:["+targetAddress+"]")
|
||||||
target, err := net.Dial("tcp", targetAddress)
|
target, err := net.Dial("tcp", targetAddress)
|
||||||
|
@@ -73,6 +73,14 @@
|
|||||||
<small>Forward UDP request on this listening socket</small></label>
|
<small>Forward UDP request on this listening socket</small></label>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="field">
|
||||||
|
<div class="ui toggle checkbox">
|
||||||
|
<input type="checkbox" tabindex="0" name="useProxyProtocol" class="hidden">
|
||||||
|
<label>Enable Proxy Protocol V1<br>
|
||||||
|
<small>Enable TCP Proxy Protocol header V1</small>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<button id="addStreamProxyButton" class="ui basic button" type="submit"><i class="ui green add icon"></i> Create</button>
|
<button id="addStreamProxyButton" class="ui basic button" type="submit"><i class="ui green add icon"></i> Create</button>
|
||||||
<button id="editStreamProxyButton" class="ui basic button" onclick="confirmEditTCPProxyConfig(event, this);" style="display:none;"><i class="ui green check icon"></i> Update</button>
|
<button id="editStreamProxyButton" class="ui basic button" onclick="confirmEditTCPProxyConfig(event, this);" style="display:none;"><i class="ui green check icon"></i> Update</button>
|
||||||
<button class="ui basic red button" onclick="event.preventDefault(); cancelStreamProxyEdit(event);"><i class="ui red remove icon"></i> Cancel</button>
|
<button class="ui basic red button" onclick="event.preventDefault(); cancelStreamProxyEdit(event);"><i class="ui red remove icon"></i> Cancel</button>
|
||||||
@@ -195,6 +203,10 @@
|
|||||||
modeText.push("UDP")
|
modeText.push("UDP")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (config.UseProxyProtocol){
|
||||||
|
modeText.push("ProxyProtocol V1")
|
||||||
|
}
|
||||||
|
|
||||||
modeText = modeText.join(" & ")
|
modeText = modeText.join(" & ")
|
||||||
|
|
||||||
var thisConfig = encodeURIComponent(JSON.stringify(config));
|
var thisConfig = encodeURIComponent(JSON.stringify(config));
|
||||||
@@ -252,6 +264,14 @@
|
|||||||
$(checkboxEle).checkbox("set unchecked");
|
$(checkboxEle).checkbox("set unchecked");
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
|
}else if (key == "UseProxyProtocol"){
|
||||||
|
let checkboxEle = $("#streamProxyForm input[name=useProxyProtocol]").parent();
|
||||||
|
if (value === true){
|
||||||
|
$(checkboxEle).checkbox("set checked");
|
||||||
|
}else{
|
||||||
|
$(checkboxEle).checkbox("set unchecked");
|
||||||
|
}
|
||||||
|
return;
|
||||||
}else if (key == "ListeningAddress"){
|
}else if (key == "ListeningAddress"){
|
||||||
field = $("#streamProxyForm input[name=listenAddr]");
|
field = $("#streamProxyForm input[name=listenAddr]");
|
||||||
}else if (key == "ProxyTargetAddr"){
|
}else if (key == "ProxyTargetAddr"){
|
||||||
@@ -301,6 +321,7 @@
|
|||||||
proxyAddr: $("#streamProxyForm input[name=proxyAddr]").val().trim(),
|
proxyAddr: $("#streamProxyForm input[name=proxyAddr]").val().trim(),
|
||||||
useTCP: $("#streamProxyForm input[name=useTCP]")[0].checked ,
|
useTCP: $("#streamProxyForm input[name=useTCP]")[0].checked ,
|
||||||
useUDP: $("#streamProxyForm input[name=useUDP]")[0].checked ,
|
useUDP: $("#streamProxyForm input[name=useUDP]")[0].checked ,
|
||||||
|
useProxyProtocol: $("#streamProxyForm input[name=useProxyProtocol]")[0].checked ,
|
||||||
timeout: parseInt($("#streamProxyForm input[name=timeout]").val().trim()),
|
timeout: parseInt($("#streamProxyForm input[name=timeout]").val().trim()),
|
||||||
},
|
},
|
||||||
success: function(response) {
|
success: function(response) {
|
||||||
|
Reference in New Issue
Block a user