aboutsummaryrefslogtreecommitdiff
path: root/application_router.go
diff options
context:
space:
mode:
authorEmiliano Ciavatta2020-04-21 17:26:23 +0000
committerEmiliano Ciavatta2020-04-21 17:26:23 +0000
commitf8dd01e9cd59ff7c0920eab3dd65c02a15de059e (patch)
treeb10f881d6a9f889911c7661e44ff55881b361665 /application_router.go
parent26c992c0b529ad52910ee9ed8f8b13dc9f3b9904 (diff)
Add application_router tests; change connection_stream key hash method
Diffstat (limited to 'application_router.go')
-rw-r--r--application_router.go32
1 files changed, 30 insertions, 2 deletions
diff --git a/application_router.go b/application_router.go
index d79fee8..bdc8007 100644
--- a/application_router.go
+++ b/application_router.go
@@ -1,6 +1,7 @@
package main
import (
+ "errors"
"github.com/gin-gonic/gin"
"net/http"
)
@@ -13,9 +14,14 @@ func CreateApplicationRouter(applicationContext *ApplicationContext) *gin.Engine
// engine.Static("/", "./frontend/build")
router.POST("/setup", func(c *gin.Context) {
+ if applicationContext.IsConfigured {
+ c.AbortWithStatus(http.StatusNotFound)
+ return
+ }
+
var settings struct {
- Config Config `json:"config"`
- Accounts gin.Accounts `json:"accounts"`
+ Config Config `json:"config" binding:"required"`
+ Accounts gin.Accounts `json:"accounts" binding:"required"`
}
if err := c.ShouldBindJSON(&settings); err != nil {
@@ -89,6 +95,28 @@ func CreateApplicationRouter(applicationContext *ApplicationContext) *gin.Engine
success(c, rule)
}
})
+
+ api.POST("/pcap/file", func(c *gin.Context) {
+ var body struct {
+ Path string
+ }
+
+ if err := c.ShouldBindJSON(&body); err != nil {
+ badRequest(c, err)
+ return
+ }
+
+ if !FileExists(body.Path) {
+ unprocessableEntity(c, errors.New("invalid path"))
+ return
+ }
+
+ if sessionID, err := applicationContext.PcapImporter.ImportPcap(body.Path); err != nil {
+ unprocessableEntity(c, err)
+ } else {
+ c.JSON(http.StatusAccepted, gin.H{"session": sessionID})
+ }
+ })
}
return router