|
David Woodhouse |
6087050 |
|
|
David Woodhouse |
6087050 |
# HG changeset patch
|
|
David Woodhouse |
6087050 |
# User Jakub Adam <jakub.adam@ktknet.cz>
|
|
David Woodhouse |
6087050 |
# Date 1398231090 -7200
|
|
David Woodhouse |
6087050 |
# Node ID fcecf7f838e266dc2c3bfd306df58ade3fc3ac93
|
|
David Woodhouse |
6087050 |
# Parent 2415067473ba10a2090d6130b93204a3b537b05c
|
|
David Woodhouse |
6087050 |
Add MS-TURN TCP support
|
|
David Woodhouse |
6087050 |
|
|
David Woodhouse |
6087050 |
The old TCP support never worked. Older versions of farstream defined
|
|
David Woodhouse |
6087050 |
FS_NETWORK_PROTOCOL_TCP but there were even *tests* to ensure that any
|
|
David Woodhouse |
6087050 |
attempt to use it would result in FS_ERROR_INVALID_ARGUMENTS.
|
|
David Woodhouse |
6087050 |
|
|
David Woodhouse |
6087050 |
This adds the three variants of TCP support that are now supported in
|
|
David Woodhouse |
6087050 |
farstream 0.2.6 onwards, and bumps the requirement in configure.ac
|
|
David Woodhouse |
6087050 |
accordingly.
|
|
David Woodhouse |
6087050 |
|
|
David Woodhouse |
6087050 |
Olivier says the Google ones should probably be passive. Since they
|
|
David Woodhouse |
6087050 |
never worked anyway, I'm not going to lose too much sleep over them.
|
|
David Woodhouse |
6087050 |
|
|
David Woodhouse |
6087050 |
[dwmw2: reworked to remain compatible with the farstream 0.1 build]
|
|
David Woodhouse |
6087050 |
|
|
David Woodhouse |
6087050 |
diff --git a/configure.ac b/configure.ac
|
|
David Woodhouse |
6087050 |
--- a/configure.ac
|
|
David Woodhouse |
6087050 |
+++ b/configure.ac
|
|
David Woodhouse |
6087050 |
@@ -868,7 +868,7 @@
|
|
David Woodhouse |
6087050 |
enable_farstream="$enableval", enable_farstream="yes")
|
|
David Woodhouse |
6087050 |
if test "x$enable_farstream" != "xno"; then
|
|
David Woodhouse |
6087050 |
if test "x$with_gstreamer" == "x1.0"; then
|
|
David Woodhouse |
6087050 |
- PKG_CHECK_MODULES(FARSTREAM, [farstream-0.2], [
|
|
David Woodhouse |
6087050 |
+ PKG_CHECK_MODULES(FARSTREAM, [farstream-0.2 >= 0.2.6], [
|
|
David Woodhouse |
6087050 |
AC_SUBST(FARSTREAM_CFLAGS)
|
|
David Woodhouse |
6087050 |
AC_SUBST(FARSTREAM_LIBS)
|
|
David Woodhouse |
6087050 |
], [
|
|
David Woodhouse |
6087050 |
diff --git a/libpurple/media/backend-fs2.c b/libpurple/media/backend-fs2.c
|
|
David Woodhouse |
6087050 |
--- a/libpurple/media/backend-fs2.c
|
|
David Woodhouse |
6087050 |
+++ b/libpurple/media/backend-fs2.c
|
|
David Woodhouse |
6087050 |
@@ -225,10 +225,17 @@
|
|
David Woodhouse |
6087050 |
switch (protocol) {
|
|
David Woodhouse |
6087050 |
case PURPLE_MEDIA_NETWORK_PROTOCOL_UDP:
|
|
David Woodhouse |
6087050 |
return FS_NETWORK_PROTOCOL_UDP;
|
|
David Woodhouse |
6087050 |
- case PURPLE_MEDIA_NETWORK_PROTOCOL_TCP:
|
|
David Woodhouse |
6087050 |
- return FS_NETWORK_PROTOCOL_TCP;
|
|
David Woodhouse |
6087050 |
+#if GST_CHECK_VERSION(1,0,0)
|
|
David Woodhouse |
6087050 |
+ case PURPLE_MEDIA_NETWORK_PROTOCOL_TCP_PASSIVE:
|
|
David Woodhouse |
6087050 |
+ return FS_NETWORK_PROTOCOL_TCP_PASSIVE;
|
|
David Woodhouse |
6087050 |
+ case PURPLE_MEDIA_NETWORK_PROTOCOL_TCP_ACTIVE:
|
|
David Woodhouse |
6087050 |
+ return FS_NETWORK_PROTOCOL_TCP_ACTIVE;
|
|
David Woodhouse |
6087050 |
+ case PURPLE_MEDIA_NETWORK_PROTOCOL_TCP_SO:
|
|
David Woodhouse |
6087050 |
+ return FS_NETWORK_PROTOCOL_TCP_SO;
|
|
David Woodhouse |
6087050 |
+#endif
|
|
David Woodhouse |
6087050 |
+ default:
|
|
David Woodhouse |
6087050 |
+ g_return_val_if_reached(FS_NETWORK_PROTOCOL_TCP);
|
|
David Woodhouse |
6087050 |
}
|
|
David Woodhouse |
6087050 |
- g_return_val_if_reached(FS_NETWORK_PROTOCOL_TCP);
|
|
David Woodhouse |
6087050 |
}
|
|
David Woodhouse |
6087050 |
|
|
David Woodhouse |
6087050 |
static PurpleMediaNetworkProtocol
|
|
David Woodhouse |
6087050 |
@@ -237,10 +244,17 @@
|
|
David Woodhouse |
6087050 |
switch (protocol) {
|
|
David Woodhouse |
6087050 |
case FS_NETWORK_PROTOCOL_UDP:
|
|
David Woodhouse |
6087050 |
return PURPLE_MEDIA_NETWORK_PROTOCOL_UDP;
|
|
David Woodhouse |
6087050 |
- case FS_NETWORK_PROTOCOL_TCP:
|
|
David Woodhouse |
6087050 |
- return PURPLE_MEDIA_NETWORK_PROTOCOL_TCP;
|
|
David Woodhouse |
6087050 |
+#if GST_CHECK_VERSION(1,0,0)
|
|
David Woodhouse |
6087050 |
+ case FS_NETWORK_PROTOCOL_TCP_PASSIVE:
|
|
David Woodhouse |
6087050 |
+ return PURPLE_MEDIA_NETWORK_PROTOCOL_TCP_PASSIVE;
|
|
David Woodhouse |
6087050 |
+ case FS_NETWORK_PROTOCOL_TCP_ACTIVE:
|
|
David Woodhouse |
6087050 |
+ return PURPLE_MEDIA_NETWORK_PROTOCOL_TCP_ACTIVE;
|
|
David Woodhouse |
6087050 |
+ case FS_NETWORK_PROTOCOL_TCP_SO:
|
|
David Woodhouse |
6087050 |
+ return PURPLE_MEDIA_NETWORK_PROTOCOL_TCP_SO;
|
|
David Woodhouse |
6087050 |
+#endif
|
|
David Woodhouse |
6087050 |
+ default:
|
|
David Woodhouse |
6087050 |
+ g_return_val_if_reached(PURPLE_MEDIA_NETWORK_PROTOCOL_TCP_PASSIVE);
|
|
David Woodhouse |
6087050 |
}
|
|
David Woodhouse |
6087050 |
- g_return_val_if_reached(PURPLE_MEDIA_NETWORK_PROTOCOL_TCP);
|
|
David Woodhouse |
6087050 |
}
|
|
David Woodhouse |
6087050 |
|
|
David Woodhouse |
6087050 |
#if GST_CHECK_VERSION(1,0,0)
|
|
David Woodhouse |
6087050 |
diff --git a/libpurple/media/enum-types.c b/libpurple/media/enum-types.c
|
|
David Woodhouse |
6087050 |
--- a/libpurple/media/enum-types.c
|
|
David Woodhouse |
6087050 |
+++ b/libpurple/media/enum-types.c
|
|
David Woodhouse |
6087050 |
@@ -145,9 +145,15 @@
|
|
David Woodhouse |
6087050 |
{ PURPLE_MEDIA_NETWORK_PROTOCOL_UDP,
|
|
David Woodhouse |
6087050 |
"PURPLE_MEDIA_NETWORK_PROTOCOL_UDP",
|
|
David Woodhouse |
6087050 |
"udp" },
|
|
David Woodhouse |
6087050 |
- { PURPLE_MEDIA_NETWORK_PROTOCOL_TCP,
|
|
David Woodhouse |
6087050 |
- "PURPLE_MEDIA_NETWORK_PROTOCOL_TCP",
|
|
David Woodhouse |
6087050 |
- "tcp" },
|
|
David Woodhouse |
6087050 |
+ { PURPLE_MEDIA_NETWORK_PROTOCOL_TCP_PASSIVE,
|
|
David Woodhouse |
6087050 |
+ "PURPLE_MEDIA_NETWORK_PROTOCOL_TCP_PASSIVE",
|
|
David Woodhouse |
6087050 |
+ "tcp passive" },
|
|
David Woodhouse |
6087050 |
+ { PURPLE_MEDIA_NETWORK_PROTOCOL_TCP_ACTIVE,
|
|
David Woodhouse |
6087050 |
+ "PURPLE_MEDIA_NETWORK_PROTOCOL_TCP_ACTIVE",
|
|
David Woodhouse |
6087050 |
+ "tcp active" },
|
|
David Woodhouse |
6087050 |
+ { PURPLE_MEDIA_NETWORK_PROTOCOL_TCP_SO,
|
|
David Woodhouse |
6087050 |
+ "PURPLE_MEDIA_NETWORK_PROTOCOL_TCP_SO",
|
|
David Woodhouse |
6087050 |
+ "tcp so" },
|
|
David Woodhouse |
6087050 |
{ 0, NULL, NULL }
|
|
David Woodhouse |
6087050 |
};
|
|
David Woodhouse |
6087050 |
type = g_enum_register_static("PurpleMediaNetworkProtocol",
|
|
David Woodhouse |
6087050 |
diff --git a/libpurple/media/enum-types.h b/libpurple/media/enum-types.h
|
|
David Woodhouse |
6087050 |
--- a/libpurple/media/enum-types.h
|
|
David Woodhouse |
6087050 |
+++ b/libpurple/media/enum-types.h
|
|
David Woodhouse |
6087050 |
@@ -82,7 +82,9 @@
|
|
David Woodhouse |
6087050 |
/** Media network protocols */
|
|
David Woodhouse |
6087050 |
typedef enum {
|
|
David Woodhouse |
6087050 |
PURPLE_MEDIA_NETWORK_PROTOCOL_UDP,
|
|
David Woodhouse |
6087050 |
- PURPLE_MEDIA_NETWORK_PROTOCOL_TCP
|
|
David Woodhouse |
6087050 |
+ PURPLE_MEDIA_NETWORK_PROTOCOL_TCP_PASSIVE,
|
|
David Woodhouse |
6087050 |
+ PURPLE_MEDIA_NETWORK_PROTOCOL_TCP_ACTIVE,
|
|
David Woodhouse |
6087050 |
+ PURPLE_MEDIA_NETWORK_PROTOCOL_TCP_SO,
|
|
David Woodhouse |
6087050 |
} PurpleMediaNetworkProtocol;
|
|
David Woodhouse |
6087050 |
|
|
David Woodhouse |
6087050 |
/** Media session types */
|
|
David Woodhouse |
6087050 |
diff --git a/libpurple/protocols/jabber/google/google_session.c b/libpurple/protocols/jabber/google/google_session.c
|
|
David Woodhouse |
6087050 |
--- a/libpurple/protocols/jabber/google/google_session.c
|
|
David Woodhouse |
6087050 |
+++ b/libpurple/protocols/jabber/google/google_session.c
|
|
David Woodhouse |
6087050 |
@@ -657,7 +657,7 @@
|
|
David Woodhouse |
6087050 |
candidate_type,
|
|
David Woodhouse |
6087050 |
purple_strequal(protocol, "udp") ?
|
|
David Woodhouse |
6087050 |
PURPLE_MEDIA_NETWORK_PROTOCOL_UDP :
|
|
David Woodhouse |
6087050 |
- PURPLE_MEDIA_NETWORK_PROTOCOL_TCP,
|
|
David Woodhouse |
6087050 |
+ PURPLE_MEDIA_NETWORK_PROTOCOL_TCP_PASSIVE,
|
|
David Woodhouse |
6087050 |
address,
|
|
David Woodhouse |
6087050 |
atoi(port));
|
|
David Woodhouse |
6087050 |
g_object_set(info, "username", xmlnode_get_attrib(cand, "username"),
|
|
David Woodhouse |
6087050 |
|