diff --git a/dlna/dlnaserver.go b/dlna/dlnaserver.go index d1cf5467a..299c19e86 100644 --- a/dlna/dlnaserver.go +++ b/dlna/dlnaserver.go @@ -114,6 +114,9 @@ func (s *DLNAServer) Run(ctx context.Context, addr string, port int, tlsCert str go func() { s.ssdp.startSSDP() }() + go func() { + s.ssdp.serveHTTP() + }() return nil } @@ -324,6 +327,19 @@ func (s *SSDPServer) soapActionResponse(sa upnp.SoapAction, actionRequestXML []b return service.Handle(sa.Action, actionRequestXML, r) } +func (s *SSDPServer) serveHTTP() error { + srv := &http.Server{ + Handler: s.handler, + } + err := srv.Serve(s.HTTPConn) + select { + case <-s.waitChan: + return nil + default: + return err + } +} + func didlLite(chardata string) string { return `