No receiver reports for inbound sessions.

Jörgen Terner <[email protected]>
Newsgroups gmane.comp.gnu.ccrtp.devel
Message-ID <[email protected]>
Hi!

I'm using ccrtp-1.3.6 and my inbound rtp sessions do not send receiver reports.

I've looked into the code and in the method
QueueRTCPManager::sendControlToDestinations(unsigned char* buffer, size_t len)
There is a loop over all added destinations, but this list is empty for inbound sessions.

I added a loop over all sync sources and it seams to work. Is this a bug or is there something I've misunderstood? (When writing this I realize that my loop is probably not thread-safe so that has to be added).

Actually, should it not always be enough to look at the list of sync sources?

Any thoughts are appreciated.

/Jörgen

-------------------------------------------------------------
size_t
QueueRTCPManager::sendControlToDestinations(unsigned char* buffer, size_t len)
{
	size_t count = 0;
	lockDestinationList();
	if ( isSingleDestination() ) {
		count = sendControl(buffer,len);
	} else {
		// when no destination has been added, NULL == dest.
		for (std::list<TransportAddress*>::iterator i = 
			     destList.begin(); destList.end() != i; i++) {
			std::cerr << "In loop over destinations" << std::endl;

			TransportAddress* dest = *i;
			setControlPeer(dest->getNetworkAddress(),
				       dest->getControlTransportPort());
			count += sendControl(buffer,len);
		}
	}
	unlockDestinationList();

	SyncSourcesIterator iter = begin();
	while (iter != end()) {
		setControlPeer(iter->getNetworkAddress(),
			       iter->getControlTransportPort());
		count += sendControl(buffer,len);

		iter++;
	}

	return count;
}
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.