From 93bc5e80c41f5e2ac47abb885564e72ead5fb602 Mon Sep 17 00:00:00 2001 From: imbytecat Date: Thu, 22 Aug 2024 13:44:00 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=88=A4=E6=96=AD=20conn=20=E6=98=AF?= =?UTF-8?q?=E5=90=A6=E5=AD=98=E5=9C=A8=EF=BC=8C=E9=98=B2=E6=AD=A2=20NOP?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.go | 14 +++++++++----- router/handler/onvif/subscription.go | 11 ++++++++++- 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/main.go b/main.go index 4788949..9fc4380 100644 --- a/main.go +++ b/main.go @@ -12,13 +12,17 @@ func main() { if err := config.LoadConfig(); err != nil { log.Fatalf("Error loading config: %v", err) } + addr := fmt.Sprintf("%s:%d", config.Conf.Server.Host, config.Conf.Server.Port) r := gin.Default() - router.SetupRoutes(r) - addr := fmt.Sprintf("%s:%d", config.Conf.Server.Host, config.Conf.Server.Port) - if err := r.Run(addr); err != nil { - fmt.Println("Failed to start server:", err) - } + go func() { + err := r.Run(addr) + if err != nil { + fmt.Println("Failed to start server:", err) + } + }() + + select {} } diff --git a/router/handler/onvif/subscription.go b/router/handler/onvif/subscription.go index e30f229..efd0b9d 100644 --- a/router/handler/onvif/subscription.go +++ b/router/handler/onvif/subscription.go @@ -14,7 +14,16 @@ func CreateEventSubscription(c *gin.Context) { xaddr := c.Param("xaddr") callbackURL := event.AttributedURIType(fmt.Sprintf("%s/onvif/subscriptions/%s/callback", config.Conf.App.URL, xaddr)) log.Printf("CreateEventSubscription callback URL: %s", callbackURL) - result, err := conns[xaddr].SubscribeEvents(callbackURL, "PT60S") + + conn := conns[xaddr] + if conn == nil { + c.JSON(http.StatusNotFound, gin.H{ + "message": "Connection not found", + }) + return + } + + result, err := conn.SubscribeEvents(callbackURL, "PT60S") if err != nil { c.JSON(http.StatusServiceUnavailable, gin.H{ "message": err.Error(),