mirror of
https://github.com/Sagit-chu/flvx.git
synced 2026-10-08 02:36:37 +08:00
fix: align forward pause/resume service control with Java
This commit is contained in:
@@ -313,7 +313,7 @@ func (h *Handler) controlForwardServices(forward *forwardRecord, commandType str
|
|||||||
}
|
}
|
||||||
base := buildForwardServiceBase(forward.ID, forward.UserID, userTunnelID)
|
base := buildForwardServiceBase(forward.ID, forward.UserID, userTunnelID)
|
||||||
payload := map[string]interface{}{
|
payload := map[string]interface{}{
|
||||||
"services": []string{base, base + "_tcp", base + "_udp"},
|
"services": buildForwardControlServiceNames(base, commandType),
|
||||||
}
|
}
|
||||||
seen := map[int64]struct{}{}
|
seen := map[int64]struct{}{}
|
||||||
for _, fp := range ports {
|
for _, fp := range ports {
|
||||||
@@ -852,6 +852,14 @@ func buildForwardServiceBase(forwardID, userID, userTunnelID int64) string {
|
|||||||
return fmt.Sprintf("%d_%d_%d", forwardID, userID, userTunnelID)
|
return fmt.Sprintf("%d_%d_%d", forwardID, userID, userTunnelID)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func buildForwardControlServiceNames(base, commandType string) []string {
|
||||||
|
names := []string{base + "_tcp", base + "_udp"}
|
||||||
|
if strings.EqualFold(strings.TrimSpace(commandType), "DeleteService") {
|
||||||
|
return append([]string{base}, names...)
|
||||||
|
}
|
||||||
|
return names
|
||||||
|
}
|
||||||
|
|
||||||
func buildForwardServiceConfigs(baseName string, forward *forwardRecord, tunnel *tunnelRecord, node *nodeRecord, port int, limiter *int) []map[string]interface{} {
|
func buildForwardServiceConfigs(baseName string, forward *forwardRecord, tunnel *tunnelRecord, node *nodeRecord, port int, limiter *int) []map[string]interface{} {
|
||||||
protocols := []string{"tcp", "udp"}
|
protocols := []string{"tcp", "udp"}
|
||||||
services := make([]map[string]interface{}, 0, 2)
|
services := make([]map[string]interface{}, 0, 2)
|
||||||
|
|||||||
@@ -0,0 +1,27 @@
|
|||||||
|
package handler
|
||||||
|
|
||||||
|
import (
|
||||||
|
"reflect"
|
||||||
|
"testing"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestBuildForwardControlServiceNamesPauseResume(t *testing.T) {
|
||||||
|
base := "12_34_56"
|
||||||
|
want := []string{base + "_tcp", base + "_udp"}
|
||||||
|
|
||||||
|
for _, command := range []string{"PauseService", "ResumeService"} {
|
||||||
|
got := buildForwardControlServiceNames(base, command)
|
||||||
|
if !reflect.DeepEqual(got, want) {
|
||||||
|
t.Fatalf("command %s expected %v, got %v", command, want, got)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestBuildForwardControlServiceNamesDelete(t *testing.T) {
|
||||||
|
base := "12_34_56"
|
||||||
|
want := []string{base, base + "_tcp", base + "_udp"}
|
||||||
|
got := buildForwardControlServiceNames(base, " DeleteService ")
|
||||||
|
if !reflect.DeepEqual(got, want) {
|
||||||
|
t.Fatalf("expected %v, got %v", want, got)
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user