|
@@ -16,7 +16,7 @@ var (
|
|
|
dynamicProxyRouter *dynamicproxy.Router
|
|
|
)
|
|
|
|
|
|
-//Add user customizable reverse proxy
|
|
|
+// Add user customizable reverse proxy
|
|
|
func ReverseProxtInit() {
|
|
|
inboundPort := 80
|
|
|
if sysdb.KeyExists("settings", "inbound") {
|
|
@@ -90,38 +90,38 @@ func ReverseProxtInit() {
|
|
|
}
|
|
|
|
|
|
func ReverseProxyHandleOnOff(w http.ResponseWriter, r *http.Request) {
|
|
|
- enable, _ := mv(r, "enable", true) //Support root, vdir and subd
|
|
|
+ enable, _ := utils.PostPara(r, "enable") //Support root, vdir and subd
|
|
|
if enable == "true" {
|
|
|
err := dynamicProxyRouter.StartProxyService()
|
|
|
if err != nil {
|
|
|
- sendErrorResponse(w, err.Error())
|
|
|
+ utils.SendErrorResponse(w, err.Error())
|
|
|
return
|
|
|
}
|
|
|
} else {
|
|
|
err := dynamicProxyRouter.StopProxyService()
|
|
|
if err != nil {
|
|
|
- sendErrorResponse(w, err.Error())
|
|
|
+ utils.SendErrorResponse(w, err.Error())
|
|
|
return
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- sendOK(w)
|
|
|
+ utils.SendOK(w)
|
|
|
}
|
|
|
|
|
|
func ReverseProxyHandleAddEndpoint(w http.ResponseWriter, r *http.Request) {
|
|
|
- eptype, err := mv(r, "type", true) //Support root, vdir and subd
|
|
|
+ eptype, err := utils.PostPara(r, "type") //Support root, vdir and subd
|
|
|
if err != nil {
|
|
|
- sendErrorResponse(w, "type not defined")
|
|
|
+ utils.SendErrorResponse(w, "type not defined")
|
|
|
return
|
|
|
}
|
|
|
|
|
|
- endpoint, err := mv(r, "ep", true)
|
|
|
+ endpoint, err := utils.PostPara(r, "ep")
|
|
|
if err != nil {
|
|
|
- sendErrorResponse(w, "endpoint not defined")
|
|
|
+ utils.SendErrorResponse(w, "endpoint not defined")
|
|
|
return
|
|
|
}
|
|
|
|
|
|
- tls, _ := mv(r, "tls", true)
|
|
|
+ tls, _ := utils.PostPara(r, "tls")
|
|
|
if tls == "" {
|
|
|
tls = "false"
|
|
|
}
|
|
@@ -129,9 +129,9 @@ func ReverseProxyHandleAddEndpoint(w http.ResponseWriter, r *http.Request) {
|
|
|
useTLS := (tls == "true")
|
|
|
rootname := ""
|
|
|
if eptype == "vdir" {
|
|
|
- vdir, err := mv(r, "rootname", true)
|
|
|
+ vdir, err := utils.PostPara(r, "rootname")
|
|
|
if err != nil {
|
|
|
- sendErrorResponse(w, "vdir not defined")
|
|
|
+ utils.SendErrorResponse(w, "vdir not defined")
|
|
|
return
|
|
|
}
|
|
|
|
|
@@ -142,9 +142,9 @@ func ReverseProxyHandleAddEndpoint(w http.ResponseWriter, r *http.Request) {
|
|
|
dynamicProxyRouter.AddVirtualDirectoryProxyService(vdir, endpoint, useTLS)
|
|
|
|
|
|
} else if eptype == "subd" {
|
|
|
- subdomain, err := mv(r, "rootname", true)
|
|
|
+ subdomain, err := utils.PostPara(r, "rootname")
|
|
|
if err != nil {
|
|
|
- sendErrorResponse(w, "subdomain not defined")
|
|
|
+ utils.SendErrorResponse(w, "subdomain not defined")
|
|
|
return
|
|
|
}
|
|
|
rootname = subdomain
|
|
@@ -154,46 +154,46 @@ func ReverseProxyHandleAddEndpoint(w http.ResponseWriter, r *http.Request) {
|
|
|
dynamicProxyRouter.SetRootProxy(endpoint, useTLS)
|
|
|
} else {
|
|
|
//Invalid eptype
|
|
|
- sendErrorResponse(w, "Invalid endpoint type")
|
|
|
+ utils.SendErrorResponse(w, "Invalid endpoint type")
|
|
|
return
|
|
|
}
|
|
|
|
|
|
//Save it
|
|
|
SaveReverseProxyConfig(eptype, rootname, endpoint, useTLS)
|
|
|
|
|
|
- sendOK(w)
|
|
|
+ utils.SendOK(w)
|
|
|
|
|
|
}
|
|
|
|
|
|
func DeleteProxyEndpoint(w http.ResponseWriter, r *http.Request) {
|
|
|
- ep, err := mv(r, "ep", true)
|
|
|
+ ep, err := utils.GetPara(r, "ep")
|
|
|
if err != nil {
|
|
|
- sendErrorResponse(w, "Invalid ep given")
|
|
|
+ utils.SendErrorResponse(w, "Invalid ep given")
|
|
|
}
|
|
|
|
|
|
- ptype, err := mv(r, "ptype", true)
|
|
|
+ ptype, err := utils.PostPara(r, "ptype")
|
|
|
if err != nil {
|
|
|
- sendErrorResponse(w, "Invalid ptype given")
|
|
|
+ utils.SendErrorResponse(w, "Invalid ptype given")
|
|
|
}
|
|
|
|
|
|
err = dynamicProxyRouter.RemoveProxy(ptype, ep)
|
|
|
if err != nil {
|
|
|
- sendErrorResponse(w, err.Error())
|
|
|
+ utils.SendErrorResponse(w, err.Error())
|
|
|
}
|
|
|
|
|
|
RemoveReverseProxyConfig(ep)
|
|
|
- sendOK(w)
|
|
|
+ utils.SendOK(w)
|
|
|
}
|
|
|
|
|
|
func ReverseProxyStatus(w http.ResponseWriter, r *http.Request) {
|
|
|
js, _ := json.Marshal(dynamicProxyRouter)
|
|
|
- sendJSONResponse(w, string(js))
|
|
|
+ utils.SendJSONResponse(w, string(js))
|
|
|
}
|
|
|
|
|
|
func ReverseProxyList(w http.ResponseWriter, r *http.Request) {
|
|
|
- eptype, err := mv(r, "type", true) //Support root, vdir and subd
|
|
|
+ eptype, err := utils.PostPara(r, "type") //Support root, vdir and subd
|
|
|
if err != nil {
|
|
|
- sendErrorResponse(w, "type not defined")
|
|
|
+ utils.SendErrorResponse(w, "type not defined")
|
|
|
return
|
|
|
}
|
|
|
|
|
@@ -205,7 +205,7 @@ func ReverseProxyList(w http.ResponseWriter, r *http.Request) {
|
|
|
})
|
|
|
|
|
|
js, _ := json.Marshal(results)
|
|
|
- sendJSONResponse(w, string(js))
|
|
|
+ utils.SendJSONResponse(w, string(js))
|
|
|
} else if eptype == "subd" {
|
|
|
results := []*dynamicproxy.SubdomainEndpoint{}
|
|
|
dynamicProxyRouter.SubdomainEndpoint.Range(func(key, value interface{}) bool {
|
|
@@ -213,16 +213,16 @@ func ReverseProxyList(w http.ResponseWriter, r *http.Request) {
|
|
|
return true
|
|
|
})
|
|
|
js, _ := json.Marshal(results)
|
|
|
- sendJSONResponse(w, string(js))
|
|
|
+ utils.SendJSONResponse(w, string(js))
|
|
|
} else if eptype == "root" {
|
|
|
js, _ := json.Marshal(dynamicProxyRouter.Root)
|
|
|
- sendJSONResponse(w, string(js))
|
|
|
+ utils.SendJSONResponse(w, string(js))
|
|
|
} else {
|
|
|
- sendErrorResponse(w, "Invalid type given")
|
|
|
+ utils.SendErrorResponse(w, "Invalid type given")
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-//Handle https redirect
|
|
|
+// Handle https redirect
|
|
|
func HandleUpdateHttpsRedirect(w http.ResponseWriter, r *http.Request) {
|
|
|
useRedirect, err := utils.GetPara(r, "set")
|
|
|
if err != nil {
|
|
@@ -230,11 +230,11 @@ func HandleUpdateHttpsRedirect(w http.ResponseWriter, r *http.Request) {
|
|
|
//Load the current status
|
|
|
err = sysdb.Read("settings", "redirect", ¤tRedirectToHttps)
|
|
|
if err != nil {
|
|
|
- sendErrorResponse(w, err.Error())
|
|
|
+ utils.SendErrorResponse(w, err.Error())
|
|
|
return
|
|
|
}
|
|
|
js, _ := json.Marshal(currentRedirectToHttps)
|
|
|
- sendJSONResponse(w, string(js))
|
|
|
+ utils.SendJSONResponse(w, string(js))
|
|
|
} else {
|
|
|
if useRedirect == "true" {
|
|
|
sysdb.Write("settings", "redirect", true)
|
|
@@ -250,17 +250,17 @@ func HandleUpdateHttpsRedirect(w http.ResponseWriter, r *http.Request) {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-//Handle incoming port set. Change the current proxy incoming port
|
|
|
+// Handle incoming port set. Change the current proxy incoming port
|
|
|
func HandleIncomingPortSet(w http.ResponseWriter, r *http.Request) {
|
|
|
- newIncomingPort, err := mv(r, "incoming", true)
|
|
|
+ newIncomingPort, err := utils.PostPara(r, "incoming")
|
|
|
if err != nil {
|
|
|
- sendErrorResponse(w, "invalid incoming port given")
|
|
|
+ utils.SendErrorResponse(w, "invalid incoming port given")
|
|
|
return
|
|
|
}
|
|
|
|
|
|
newIncomingPortInt, err := strconv.Atoi(newIncomingPort)
|
|
|
if err != nil {
|
|
|
- sendErrorResponse(w, "invalid incoming port given")
|
|
|
+ utils.SendErrorResponse(w, "invalid incoming port given")
|
|
|
return
|
|
|
}
|
|
|
|
|
@@ -276,5 +276,5 @@ func HandleIncomingPortSet(w http.ResponseWriter, r *http.Request) {
|
|
|
|
|
|
sysdb.Write("settings", "inbound", newIncomingPortInt)
|
|
|
|
|
|
- sendOK((w))
|
|
|
+ utils.SendOK(w)
|
|
|
}
|