Skip to content

Issue_181 and Issue_179

Matthew Edge requested to merge edgehew/librist:librist-issue_181 into master

Issue_181: RIST Sender binds to the wild card address when using multicast address

When running the ristsender with different multicast addresses but the same destination port. The sockets opened for multicast bind to "0.0.0.0" which causes both sockets to receive all data being sent to the destination port.

Here is an example before the change where both urls bind to a socket that is using 0.0.0.0


strace -fD --trace=bind ./ristsender -i "udp://@224.0.0.1:6655?miface=eth0&stream-id=2&multiplex-mode=1,udp://@224.0.0.2:6655?miface=eth0&stream-id=4&multiplex-mode=1" -o rist://127.0.0.1:5566 -p 1 -v 0

# Output
1723840168.822456|0.0|[INFO] Starting ristsender version: v0.2.10 libRIST library: v0.2.10 API version: 4.4.0
1723840168.823438|0.0|[INFO] Starting in Main Profile Mode
bind(3, {sa_family=AF_NETLINK, nl_pid=0, nl_groups=00000000}, 12) = 0
bind(4, {sa_family=AF_INET, sin_port=htons(6655), sin_addr=inet_addr("0.0.0.0")}, 16) = 0
1723840168.830357|0.0|[INFO] Joining multicast address: 224.0.0.1 with eth0
1723840168.830750|0.0|[INFO] Starting in Main Profile Mode
bind(5, {sa_family=AF_NETLINK, nl_pid=0, nl_groups=00000000}, 12) = 0
bind(6, {sa_family=AF_INET, sin_port=htons(6655), sin_addr=inet_addr("0.0.0.0")}, 16) = 0
1723840168.836042|0.0|[INFO] Joining multicast address: 224.0.0.2 with eth0

Here is the same info after the change showing the socket is binding to the right address:

strace -fD --trace=bind ./ristsender -i "udp://@224.0.0.1:6655?miface=eth0&stream-id=2&multiplex-mode=1,udp://@224.0.0.2:6655?miface=eth0&stream-id=4&multiplex-mode=1" -o rist://127.0.0.1:5566 -p 1 -v 0

1723843631.939420|0.0|[INFO] Starting ristsender version: 9dbfe6e libRIST library: 9dbfe6e API version: 4.4.0
1723843631.939750|0.0|[INFO] Starting in Main Profile Mode
bind(3, {sa_family=AF_NETLINK, nl_pid=0, nl_groups=00000000}, 12) = 0
bind(4, {sa_family=AF_INET, sin_port=htons(6655), sin_addr=inet_addr("224.0.0.1")}, 16) = 0
1723843631.945398|0.0|[INFO] Joining multicast address: 224.0.0.1 with eth0
1723843631.946046|0.0|[INFO] Starting in Main Profile Mode
bind(5, {sa_family=AF_NETLINK, nl_pid=0, nl_groups=00000000}, 12) = 0
bind(6, {sa_family=AF_INET, sin_port=htons(6655), sin_addr=inet_addr("224.0.0.2")}, 16) = 0
1723843631.951560|0.0|[INFO] Joining multicast address: 224.0.0.2 with eth0

Issue_179: ristsender/ristreceiver --help-url has some invalid options advertised

  • verbose-level is defined as RIST_URL_PARAM_VERBOSE_LEVEL but isn't used anywhere. When used by the ristsender/ristreceiver it will log this error. Unknown or invalid parameter verbose-level
  • multiplex-mode is suggested as a rist:// URL option in the help message but the usage of RIST_URL_PARAM_MULTIPLEX_MODE in rist-common.c indicates it is actually an udp:// URL option.

Closes #179

Closes #181

Edited by Matthew Edge

Merge request reports