Add onvif name and hardware in info field of onvif discovery

This commit is contained in:
Davide Figini
2025-12-19 15:08:23 +01:00
parent 753d6617ab
commit bbb9466845
2 changed files with 42 additions and 10 deletions
+12 -6
View File
@@ -7,6 +7,7 @@ import (
"net/url"
"os"
"strconv"
"strings"
"time"
"github.com/AlexxIT/go2rtc/internal/api"
@@ -160,21 +161,21 @@ func apiOnvif(w http.ResponseWriter, r *http.Request) {
var items []*api.Source
if src == "" {
urls, err := onvif.DiscoveryStreamingURLs()
devices, err := onvif.DiscoveryStreamingDevices()
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
for _, rawURL := range urls {
u, err := url.Parse(rawURL)
for _, device := range devices {
u, err := url.Parse(device.URL)
if err != nil {
log.Warn().Str("url", rawURL).Msg("[onvif] broken")
log.Warn().Str("url", device.URL).Msg("[onvif] broken")
continue
}
if u.Scheme != "http" {
log.Warn().Str("url", rawURL).Msg("[onvif] unsupported")
log.Warn().Str("url", device.URL).Msg("[onvif] unsupported")
continue
}
@@ -185,7 +186,12 @@ func apiOnvif(w http.ResponseWriter, r *http.Request) {
u.Path = ""
}
items = append(items, &api.Source{Name: u.Host, URL: u.String()})
var info string
info = strings.TrimSpace(device.Name + " " + device.Hardware)
if info == "" {
info = "ONVIF Device"
}
items = append(items, &api.Source{Name: u.Host, URL: u.String(), Info: info})
}
} else {
client, err := onvif.NewClient(src)