Issue_181 and Issue_179
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 asRIST_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 ofRIST_URL_PARAM_MULTIPLEX_MODE
in rist-common.c indicates it is actually an udp:// URL option.
Closes #179
Closes #181
Edited by Matthew Edge