summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorOlivier CrĂȘte <olivier.crete@collabora.com>2013-04-04 14:04:03 -0400
committerOlivier CrĂȘte <olivier.crete@collabora.com>2013-04-04 14:28:45 -0400
commitcdf4998b4ce7da59f15aa88b5f4629e5995cab94 (patch)
tree828cd1572fc8770a56fdbc4cc893805f4c30e2ef /tests
parent81351b580da0f8db520ca0ff5e5725c199a7a8b9 (diff)
downloadfarstream-cdf4998b4ce7da59f15aa88b5f4629e5995cab94.tar.gz
tests: Use GSocket instead of getaddrinfo to parse IP addresses
Diffstat (limited to 'tests')
-rw-r--r--tests/check/Makefile.am4
-rw-r--r--tests/check/transmitter/rawudp.c4
-rw-r--r--tests/check/transmitter/stunalternd.c59
-rw-r--r--tests/check/transmitter/stunalternd.h4
4 files changed, 38 insertions, 33 deletions
diff --git a/tests/check/Makefile.am b/tests/check/Makefile.am
index 9b171b63..78cd60d6 100644
--- a/tests/check/Makefile.am
+++ b/tests/check/Makefile.am
@@ -76,9 +76,11 @@ base_fscodec_SOURCES = \
base/fscodec.c
-transmitter_rawudp_CFLAGS = $(AM_CFLAGS) $(GUPNP_CFLAGS) $(NICE_CFLAGS)
+transmitter_rawudp_CFLAGS = $(AM_CFLAGS) \
+ $(GUPNP_CFLAGS) $(GIO_CFLAGS) $(NICE_CFLAGS)
transmitter_rawudp_LDADD = $(LDADD) \
$(GUPNP_LIBS) \
+ $(GIO_LIBS) \
$(NICE_LIBS)
transmitter_rawudp_SOURCES = \
check-threadsafe.h \
diff --git a/tests/check/transmitter/rawudp.c b/tests/check/transmitter/rawudp.c
index b8749ec1..a24b72e4 100644
--- a/tests/check/transmitter/rawudp.c
+++ b/tests/check/transmitter/rawudp.c
@@ -915,7 +915,7 @@ GST_END_TEST;
void
setup_stunalternd_valid (void)
{
- stun_alternd_data = stun_alternd_init (AF_INET,
+ stun_alternd_data = stun_alternd_init (G_SOCKET_FAMILY_IPV4,
"127.0.0.1", 3478, 3480);
if (!stun_alternd_data)
@@ -926,7 +926,7 @@ setup_stunalternd_valid (void)
static void
setup_stunalternd_loop (void)
{
- stun_alternd_data = stun_alternd_init (AF_INET,
+ stun_alternd_data = stun_alternd_init (G_SOCKET_FAMILY_IPV4,
"127.0.0.1", 3478, 3478);
if (!stun_alternd_data)
diff --git a/tests/check/transmitter/stunalternd.c b/tests/check/transmitter/stunalternd.c
index a1f796db..32dc809f 100644
--- a/tests/check/transmitter/stunalternd.c
+++ b/tests/check/transmitter/stunalternd.c
@@ -31,7 +31,6 @@
#include <sys/types.h>
#include <sys/socket.h>
-#include <netdb.h>
#include <netinet/in.h>
#include <unistd.h>
@@ -66,7 +65,7 @@ static const uint16_t known_attributes[] = {
/**
* Creates a listening socket
*/
-int listen_socket (int fam, int type, int proto, unsigned int port)
+int listen_socket (GSocketFamily fam, int type, int proto, unsigned int port)
{
int yes = 1;
int fd = socket (fam, type, proto);
@@ -87,22 +86,23 @@ int listen_socket (int fam, int type, int proto, unsigned int port)
goto error;
memset (&addr, 0, sizeof (addr));
- addr.storage.ss_family = fam;
switch (fam)
{
- case AF_INET:
+ case G_SOCKET_FAMILY_IPV4:
+ addr.storage.ss_family = AF_INET;
addr.in.sin_port = htons (port);
socklen = sizeof (struct sockaddr_in);
break;
- case AF_INET6:
+ case G_SOCKET_FAMILY_IPV6:
+ addr.storage.ss_family = AF_INET6;
addr.in6.sin6_port = htons (port);
socklen = sizeof (struct sockaddr_in6);
break;
default:
socklen = 0;
- abort ();
+ g_assert_not_reached ();
}
if (bind (fd, (struct sockaddr *)&addr, socklen))
@@ -115,16 +115,19 @@ int listen_socket (int fam, int type, int proto, unsigned int port)
{
switch (fam)
{
-#ifdef IP_RECVERR
case AF_INET:
+#ifdef IP_RECVERR
setsockopt (fd, SOL_IP, IP_RECVERR, &yes, sizeof (yes));
- break;
#endif
-#ifdef IPV6_RECVERR
+ break;
case AF_INET6:
+#ifdef IPV6_RECVERR
setsockopt (fd, SOL_IPV6, IPV6_RECVERR, &yes, sizeof (yes));
- break;
#endif
+ break;
+ default:
+ g_assert_not_reached ();
+ break;
}
}
else
@@ -259,34 +262,32 @@ send_buf:
static int
-resolve_addr (char *server, unsigned int port, int family,
+resolve_addr (char *server, unsigned int port, GSocketFamily family,
struct sockaddr *addr, socklen_t *addr_len)
{
- struct addrinfo hints, *res;
- int ret = -1;
- char portstr[10];
+ GInetAddress *inetaddr;
+ GSocketAddress *sockaddr;
+ gboolean ret;
- memset (&hints, 0, sizeof (hints));
- hints.ai_family = family;
- hints.ai_socktype = SOCK_DGRAM;
- hints.ai_flags = AI_NUMERICHOST;
+ inetaddr = g_inet_address_new_from_string (server);
- snprintf (portstr, 9, "%u", port);
+ if (!inetaddr)
+ return 0;
- ret = getaddrinfo (server, portstr, &hints, &res);
- if (ret)
- {
- fprintf (stderr, "%s: %s:%s\n", server, portstr,
- gai_strerror (ret));
+ if (g_inet_address_get_family (inetaddr) != family) {
+ g_object_unref (inetaddr);
return 0;
}
- memcpy (addr, res->ai_addr, res->ai_addrlen);
- *addr_len = res->ai_addrlen;
+ sockaddr = g_inet_socket_address_new (inetaddr, port);
+
+ ret = g_socket_address_to_native (sockaddr, addr,
+ sizeof(struct sockaddr_storage), NULL);
- freeaddrinfo (res);
+ g_object_unref (sockaddr);
+ g_object_unref (inetaddr);
- return 1;
+ return ret;
}
struct thread_data {
@@ -313,7 +314,7 @@ void * stund_thread (void *data)
return NULL;
}
-void *stun_alternd_init (int family, char *redirect_ip,
+void *stun_alternd_init (GSocketFamily family, char *redirect_ip,
unsigned int redirect_port,
unsigned int listen_port)
{
diff --git a/tests/check/transmitter/stunalternd.h b/tests/check/transmitter/stunalternd.h
index 25e975c2..2ab0f89a 100644
--- a/tests/check/transmitter/stunalternd.h
+++ b/tests/check/transmitter/stunalternd.h
@@ -28,7 +28,9 @@
#include <sys/socket.h>
#include <pthread.h>
-void *stun_alternd_init (int family,
+#include <gio/gio.h>
+
+void *stun_alternd_init (GSocketFamily family,
char *redirect_ip,
unsigned int redirect_port,
unsigned int listen_port);