summaryrefslogtreecommitdiff
path: root/transmitters/rawudp
diff options
context:
space:
mode:
authorOlivier CrĂȘte <olivier.crete@collabora.co.uk>2009-04-08 21:03:32 -0400
committerOlivier CrĂȘte <olivier.crete@collabora.co.uk>2009-04-10 16:59:16 -0400
commit9cbbdc2dd7efd1a06aa1c197fc1eb916da7e3ffb (patch)
treea92c07a97bef36e8aa91ecc3623fb066c95cfea2 /transmitters/rawudp
parente04ccafdf2990ae96b49113f117f9403927bb76e (diff)
downloadfarstream-9cbbdc2dd7efd1a06aa1c197fc1eb916da7e3ffb.tar.gz
Use NiceAddress to parse stun ip
Diffstat (limited to 'transmitters/rawudp')
-rw-r--r--transmitters/rawudp/fs-rawudp-component.c37
1 files changed, 8 insertions, 29 deletions
diff --git a/transmitters/rawudp/fs-rawudp-component.c b/transmitters/rawudp/fs-rawudp-component.c
index 71be739c..0e416fed 100644
--- a/transmitters/rawudp/fs-rawudp-component.c
+++ b/transmitters/rawudp/fs-rawudp-component.c
@@ -1241,9 +1241,7 @@ fs_rawudp_component_send_stun_locked (FsRawUdpComponent *self, GError **error)
static gboolean
fs_rawudp_component_start_stun (FsRawUdpComponent *self, GError **error)
{
- struct addrinfo hints;
- struct addrinfo *result = NULL;
- int retval;
+ NiceAddress niceaddr;
gboolean res = TRUE;
GST_DEBUG ("C:%d starting the STUN process with server %s:%u",
@@ -1255,36 +1253,17 @@ fs_rawudp_component_start_stun (FsRawUdpComponent *self, GError **error)
self->priv->udpport,
G_CALLBACK (stun_recv_cb), self);
- memset (&hints, 0, sizeof (struct addrinfo));
- hints.ai_family = AF_UNSPEC;
- hints.ai_flags = AI_NUMERICHOST;
- retval = getaddrinfo (self->priv->stun_ip, NULL, &hints, &result);
- if (retval != 0)
+
+ nice_address_init (&niceaddr);
+ if (!nice_address_set_from_string (&niceaddr, self->priv->stun_ip))
{
g_set_error (error, FS_ERROR, FS_ERROR_INVALID_ARGUMENTS,
- "Invalid IP address %s passed for STUN: %s",
- self->priv->stun_ip, gai_strerror (retval));
+ "Invalid IP address %s passed for STUN", self->priv->stun_ip);
return FALSE;
}
- memcpy (&self->priv->stun_sockaddr, result->ai_addr,
- sizeof (struct sockaddr_storage));
- freeaddrinfo (result);
-
- switch (((struct sockaddr*)&self->priv->stun_sockaddr)->sa_family)
- {
- case AF_INET:
- ((struct sockaddr_in*)&self->priv->stun_sockaddr)->sin_port =
- htons (self->priv->stun_port);
- break;
- case AF_INET6:
- ((struct sockaddr_in6*)&self->priv->stun_sockaddr)->sin6_port =
- htons (self->priv->stun_port);
- break;
- default:
- g_set_error (error, FS_ERROR, FS_ERROR_NETWORK,
- "Address resolved in something that is not INET or INET6");
- return FALSE;
- }
+ nice_address_set_port (&niceaddr, self->priv->stun_port);
+ nice_address_copy_to_sockaddr (&niceaddr,
+ (struct sockaddr *) &self->priv->stun_sockaddr);
stun_usage_bind_create (
&self->priv->stun_agent,