working prototype
This commit is contained in:
18
httpd.go
18
httpd.go
@@ -7,6 +7,9 @@ import (
|
||||
"io/ioutil"
|
||||
"log"
|
||||
"net/http"
|
||||
|
||||
_ "git.euclide.org/euclide/openvpn-mgt/statik"
|
||||
"github.com/rakyll/statik/fs"
|
||||
)
|
||||
|
||||
type jsonInput struct {
|
||||
@@ -71,6 +74,7 @@ func (h *HttpServer) ajaxHandler(w http.ResponseWriter, r *http.Request) {
|
||||
http.Error(w, "Invalid request", 500)
|
||||
return
|
||||
}
|
||||
h.ovpn.Debug(req)
|
||||
|
||||
switch req.Action {
|
||||
case "get-remotes":
|
||||
@@ -78,6 +82,8 @@ func (h *HttpServer) ajaxHandler(w http.ResponseWriter, r *http.Request) {
|
||||
case "set-remote":
|
||||
err = h.ovpn.SetRemote(req.Params.Server, req.Params.Session)
|
||||
jsonStr = []byte("{\"status\": \"ok\"}")
|
||||
case "get-sessions":
|
||||
jsonStr, err = json.Marshal(h.ovpn)
|
||||
case "version":
|
||||
err, version := h.ovpn.Version()
|
||||
if err != nil {
|
||||
@@ -85,7 +91,12 @@ func (h *HttpServer) ajaxHandler(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
jsonStr, err = json.Marshal(version)
|
||||
case "stats":
|
||||
case "restart":
|
||||
err = h.ovpn.Restart(req.Params.Session)
|
||||
jsonStr = []byte("{\"status\": \"ok\"}")
|
||||
case "kill":
|
||||
err = h.ovpn.Kill(req.Params.Session)
|
||||
jsonStr = []byte("{\"status\": \"ok\"}")
|
||||
default:
|
||||
err = errors.New("Invalid request")
|
||||
}
|
||||
@@ -105,8 +116,13 @@ func NewHTTPServer(port string, s *OpenVpnMgt) {
|
||||
ovpn: s,
|
||||
}
|
||||
|
||||
statikFS, err := fs.New()
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
http.HandleFunc("/ajax", h.ajaxHandler)
|
||||
http.HandleFunc("/", h.handler)
|
||||
http.Handle("/", http.FileServer(statikFS))
|
||||
|
||||
log.Fatal(http.ListenAndServe(port, nil))
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user