[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