]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
satip,webui: improve extra ports, fixes #4936
authorJaroslav Kysela <perex@perex.cz>
Tue, 13 Feb 2018 10:24:46 +0000 (11:24 +0100)
committerJaroslav Kysela <perex@perex.cz>
Tue, 13 Feb 2018 10:24:46 +0000 (11:24 +0100)
src/satip/rtsp.c
src/webui/static/app/status.js

index 6bc98dad4dd392e4c3f5875e36b5c894616382f6..47627a53a07237d841e7a44d1c9af3b191ee9f29 100644 (file)
@@ -1659,7 +1659,7 @@ rtsp_stream_status ( void *opaque, htsmsg_t *m )
   http_connection_t *hc = opaque;
   char buf[128];
   struct session *rs = NULL;
-  htsmsg_t *c, *l;
+  htsmsg_t *c, *tcp = NULL, *udp = NULL;
   int udpport, s32;
 
   htsmsg_add_str(m, "type", "SAT>IP");
@@ -1677,23 +1677,23 @@ rtsp_stream_status ( void *opaque, htsmsg_t *m )
         (udpport = rs->rtp_peer_port) > 0) {
       if (udpport == RTSP_TCP_DATA) {
         if (rs->tcp_data == hc) {
-          c = htsmsg_create_map();
-          l = htsmsg_create_list();
           s32 = htsmsg_get_s32_or_default(m, "peer_port", -1);
-          htsmsg_add_s32(l, NULL, s32);
-          htsmsg_add_msg(c, "tcp", l);
-          htsmsg_add_msg(m, "peer_extra_ports", c);
+          if (!tcp) tcp = htsmsg_create_list();
+          htsmsg_add_s32(tcp, NULL, s32);
         }
       } else {
-        c = htsmsg_create_map();
-        l = htsmsg_create_list();
-        htsmsg_add_s32(l, NULL, udpport);
-        htsmsg_add_s32(l, NULL, udpport+1);
-        htsmsg_add_msg(c, "udp", l);
-        htsmsg_add_msg(m, "peer_extra_ports", c);
+        if (!udp) udp = htsmsg_create_list();
+        htsmsg_add_s32(udp, NULL, udpport);
+        htsmsg_add_s32(udp, NULL, udpport+1);
       }
     }
   }
+  if (tcp || udp) {
+    c = htsmsg_create_map();
+    if (tcp) htsmsg_add_msg(c, "tcp", tcp);
+    if (udp) htsmsg_add_msg(c, "udp", udp);
+    htsmsg_add_msg(m, "peer_extra_ports", c);
+  }
 }
 
 /*
index 62e3b67b434d3263017f48489b563865b8ad218d..a8a1275b03d6436e013e856a90b90e19b729c57c 100644 (file)
@@ -659,10 +659,10 @@ tvheadend.status_conns = function(panel, index) {
                     if (!v) return '';
                     var o = '';
                     if ('tcp' in v)
-                        o += _("TCP") + v.tcp.join(',');
+                        o += _("TCP") + ':' + v.tcp.join(',');
                     if ('udp' in v) {
                         if (o) o += ';';
-                        o += _("UDP") + v.udp.join(',');
+                        o += _("UDP") + ':' + v.udp.join(',');
                     }
                     return o;
                 }