{
http_connection_t *hc = opaque;
char buf[128];
+ struct session *rs = NULL;
+ htsmsg_t *c, *l;
+ int udpport, s32;
htsmsg_add_str(m, "type", "SAT>IP");
if (hc->hc_proxy_ip) {
}
if (hc->hc_username)
htsmsg_add_str(m, "user", hc->hc_username);
+
+ TAILQ_FOREACH(rs, &rtsp_sessions, link) {
+ if (hc->hc_session &&
+ strcmp(rs->session, hc->hc_session) == 0 &&
+ strcmp(rs->peer_ipstr, hc->hc_peer_ipstr) == 0 &&
+ (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);
+ }
+ } 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);
+ }
+ }
+ }
}
/*
{ name: 'server_port' },
{ name: 'peer', sortType: stype },
{ name: 'peer_port' },
+ { name: 'peer_extra_ports' },
{ name: 'proxy' },
{ name: 'user', sortType: stype },
{
header: _("Client Port"),
dataIndex: 'peer_port',
sortable: true
+ }, {
+ width: 50,
+ id: 'peer_extra_ports',
+ header: _("Client Data Ports"),
+ dataIndex: 'peer_extra_ports',
+ sortable: false,
+ renderer: function(v) {
+ if (!v) return '';
+ var o = '';
+ if ('tcp' in v)
+ o += _("TCP") + v.tcp.join(',');
+ if ('udp' in v) {
+ if (o) o += ';';
+ o += _("UDP") + v.udp.join(',');
+ }
+ return o;
+ }
}, {
width: 50,
id: 'user',