Stores a different payload in Rtptransport.

This commit is contained in:
Guillaume Beraudo 2011-12-20 17:34:02 +01:00
parent 28a615deea
commit f45bf65a80
3 changed files with 13 additions and 15 deletions

View file

@ -68,7 +68,7 @@ int TunnelManager::eXosipSelect(int max_fds, fd_set *s1, fd_set *s2, fd_set *s3,
TunnelManager* lTunnelMgr=(TunnelManager*)userdata;
if (tv!=0 && tv->tv_sec){
/*this is the select from udp.c, the one that is interesting to us*/
unsigned int i;
int i;
int udp_fd=eXosip_get_udp_socket();
int controlfd=-1;
@ -155,13 +155,13 @@ void TunnelManager::setCallback(StateCallback cb, void *userdata) {
mCallbackData=userdata;
}
static void sCloseRtpTransport(void *userData, RtpTransport *t){
((TunnelManager::TunnelManager *) userData)->closeRtpTransport(t);
static void sCloseRtpTransport(RtpTransport *t, void *userData){
TunnelSocket *s=(TunnelSocket*)userData;
TunnelManager::TunnelManager *manager=(TunnelManager::TunnelManager*)s->getUserPointer();
manager->closeRtpTransport(t, s);
}
void TunnelManager::closeRtpTransport(RtpTransport *t){
TunnelSocket *socket=(TunnelSocket *) t->data;
mTransports.remove(t);
mTunnelClient->closeSocket(socket);
void TunnelManager::closeRtpTransport(RtpTransport *t, TunnelSocket *s){
mTunnelClient->closeSocket(s);
ms_free(t);
}
@ -170,14 +170,14 @@ static RtpTransport *sCreateRtpTransport(void* userData, int port){
}
RtpTransport *TunnelManager::createRtpTransport(int port){
TunnelSocket *socket=mTunnelClient->createSocket(port);
socket->setUserPointer(this);
RtpTransport *t=ms_new0(RtpTransport,1);
t->data=mTunnelClient->createSocket(port);
t->t_getsocket=NULL;
t->t_recvfrom=customRecvfrom;
t->t_sendto=customSendto;
t->close_fn=sCloseRtpTransport;
t->close_data=this;
mTransports.push_back(t);
t->t_close=sCloseRtpTransport;
t->data=socket;
return t;
}

View file

@ -115,7 +115,7 @@ class UdpMirrorClient;
/**
* Destroy the given RtpTransport.
*/
void closeRtpTransport(RtpTransport *t);
void closeRtpTransport(RtpTransport *t, TunnelSocket *s);
/**
* Create an RtpTransport.
@ -128,7 +128,6 @@ class UdpMirrorClient;
LinphoneCore *getLinphoneCore();
private:
typedef std::list<UdpMirrorClient> UdpMirrorClientList;
typedef std::list<RtpTransport*> RtpTransportList;
virtual bool isStarted();
virtual bool isReady() const;
static int customSendto(struct _RtpTransport *t, mblk_t *msg , int flags, const struct sockaddr *to, socklen_t tolen);
@ -156,7 +155,6 @@ class UdpMirrorClient;
void stopClient();
static Mutex sMutex;
bool mAutoDetectStarted;
RtpTransportList mTransports;
LinphoneRtpTransportFactories mTransportFactories;
};

2
oRTP

@ -1 +1 @@
Subproject commit 728617bf729b7c27069dd23b95f21508b0fdd6b8
Subproject commit cb6bd1b8684d94d473bed38dd02029bd3a48df6e