Skip to content

Commit

Permalink
notify: handle olsr parsing async
Browse files Browse the repository at this point in the history
  • Loading branch information
USA-RedDragon committed Feb 21, 2024
1 parent a0b5ce1 commit 6910a3d
Showing 1 changed file with 29 additions and 27 deletions.
56 changes: 29 additions & 27 deletions internal/server/api/controllers/v1/notify.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,39 +16,41 @@ func POSTNotify(c *gin.Context) {
return
}

olsrdParser, ok := c.MustGet("OLSRDHostParser").(*olsrd.HostsParser)
if !ok {
fmt.Println("POSTLogin: OLSRDHostParser not found in context")
c.JSON(http.StatusInternalServerError, gin.H{"error": "Try again later"})
return
}
err := olsrdParser.Parse()
if err != nil {
c.JSON(http.StatusInternalServerError, gin.H{"error": "Error parsing hosts"})
fmt.Println("Error parsing hosts:", err)
return
}

err = dnsmasq.Reload()
err := dnsmasq.Reload()
if err != nil {
c.JSON(http.StatusInternalServerError, gin.H{"error": "Error regenerating DNS"})
fmt.Println("Error reloading DNS config:", err)
return
}

olsrdServicesParser, ok := c.MustGet("OLSRDServicesParser").(*olsrd.ServicesParser)
if !ok {
fmt.Println("POSTLogin: OLSRDServicesParser not found in context")
c.JSON(http.StatusInternalServerError, gin.H{"error": "Try again later"})
return
}

err = olsrdServicesParser.Parse()
if err != nil {
c.JSON(http.StatusInternalServerError, gin.H{"error": "Error parsing services"})
fmt.Println("Error parsing services:", err)
return
}
go func() {
olsrdParser, ok := c.MustGet("OLSRDHostParser").(*olsrd.HostsParser)
if !ok {
fmt.Println("POSTLogin: OLSRDHostParser not found in context")
c.JSON(http.StatusInternalServerError, gin.H{"error": "Try again later"})
return
}
err := olsrdParser.Parse()
if err != nil {
c.JSON(http.StatusInternalServerError, gin.H{"error": "Error parsing hosts"})
fmt.Println("Error parsing hosts:", err)
return
}

olsrdServicesParser, ok := c.MustGet("OLSRDServicesParser").(*olsrd.ServicesParser)
if !ok {
fmt.Println("POSTLogin: OLSRDServicesParser not found in context")
c.JSON(http.StatusInternalServerError, gin.H{"error": "Try again later"})
return
}

err = olsrdServicesParser.Parse()
if err != nil {
c.JSON(http.StatusInternalServerError, gin.H{"error": "Error parsing services"})
fmt.Println("Error parsing services:", err)
return
}
}()

c.JSON(http.StatusOK, gin.H{"status": "OK"})
}

0 comments on commit 6910a3d

Please sign in to comment.