36 lines
868 B
Go
36 lines
868 B
Go
package app
|
|
|
|
import (
|
|
"net/http"
|
|
)
|
|
|
|
func handleTrafficAppMarksPost(w http.ResponseWriter, r *http.Request) {
|
|
in, badReqMessage := decodeTrafficAppMarksPostInput(r)
|
|
if badReqMessage != "" {
|
|
http.Error(w, badReqMessage, http.StatusBadRequest)
|
|
return
|
|
}
|
|
|
|
if err := ensureAppMarksNft(); err != nil {
|
|
writeJSON(w, http.StatusOK, TrafficAppMarksResponse{
|
|
OK: false,
|
|
Op: string(in.Op),
|
|
Target: in.Target,
|
|
Cgroup: in.Cgroup,
|
|
Message: "nft init failed: " + err.Error(),
|
|
})
|
|
return
|
|
}
|
|
|
|
switch in.Op {
|
|
case TrafficAppMarksAdd:
|
|
writeJSON(w, http.StatusOK, executeTrafficAppMarksAdd(in))
|
|
case TrafficAppMarksDel:
|
|
writeJSON(w, http.StatusOK, executeTrafficAppMarksDelete(in))
|
|
case TrafficAppMarksClear:
|
|
writeJSON(w, http.StatusOK, executeTrafficAppMarksClear(in))
|
|
default:
|
|
http.Error(w, "unknown op", http.StatusBadRequest)
|
|
}
|
|
}
|