[farsight2/master] Add function to return the port actually used by a UdpPort

Olivier Crête olivier.crete at collabora.co.uk
Tue Dec 23 15:19:28 PST 2008


---
 transmitters/rawudp/fs-rawudp-transmitter.c |   14 ++++++++++++--
 transmitters/rawudp/fs-rawudp-transmitter.h |    2 ++
 2 files changed, 14 insertions(+), 2 deletions(-)

diff --git a/transmitters/rawudp/fs-rawudp-transmitter.c b/transmitters/rawudp/fs-rawudp-transmitter.c
index 891a4ef..1b6312e 100644
--- a/transmitters/rawudp/fs-rawudp-transmitter.c
+++ b/transmitters/rawudp/fs-rawudp-transmitter.c
@@ -393,13 +393,15 @@ struct _UdpPort {
   gchar *requested_ip;
   guint requested_port;
 
+  guint port;
+
   gint fd;
 
   guint component_id;
 };
 
 static gint
-_bind_port (const gchar *ip, guint port, GError **error)
+_bind_port (const gchar *ip, guint port, guint *used_port, GError **error)
 {
   int sock;
   struct sockaddr_in address;
@@ -451,6 +453,8 @@ _bind_port (const gchar *ip, guint port, GError **error)
     }
   } while (retval != 0);
 
+  *used_port = port;
+
   return sock;
 }
 
@@ -570,7 +574,8 @@ fs_rawudp_transmitter_get_udpport (FsRawUdpTransmitter *trans,
 
   /* Now lets bind both ports */
 
-  udpport->fd = _bind_port (requested_ip, requested_port, error);
+  udpport->fd = _bind_port (requested_ip, requested_port, &udpport->port,
+    error);
   if (udpport->fd < 0)
     goto error;
 
@@ -736,3 +741,8 @@ fs_rawudp_transmitter_udpport_is_pad (UdpPort *udpport, GstPad *pad)
 }
 
 
+gboolean
+fs_rawudp_transmitter_udpport_get_port (UdpPort *udpport)
+{
+  return udpport->port;
+}
diff --git a/transmitters/rawudp/fs-rawudp-transmitter.h b/transmitters/rawudp/fs-rawudp-transmitter.h
index 05ffd52..4519a44 100644
--- a/transmitters/rawudp/fs-rawudp-transmitter.h
+++ b/transmitters/rawudp/fs-rawudp-transmitter.h
@@ -114,6 +114,8 @@ void fs_rawudp_transmitter_udpport_disconnect_recv (UdpPort *udpport,
 
 gboolean fs_rawudp_transmitter_udpport_is_pad (UdpPort *udpport, GstPad *pad);
 
+gboolean fs_rawudp_transmitter_udpport_get_port (UdpPort *udpport);
+
 
 
 G_END_DECLS
-- 
1.5.6.5




More information about the farsight-commits mailing list