libpurple/media/backend-fs2.c

branch
purple-media-require-encryption-api-addition
changeset 39717
610670ae4776
parent 39171
08a29966cee9
child 39718
81dd8064aa48
--- a/libpurple/media/backend-fs2.c	Thu Jul 18 18:30:08 2019 +0000
+++ b/libpurple/media/backend-fs2.c	Sun Jul 14 22:53:31 2019 +0200
@@ -97,6 +97,9 @@
 		PurpleMediaBackend *self, const gchar *sess_id,
 		const gchar *participant, const gchar *cipher,
 		const gchar *auth, const gchar *key, gsize key_len);
+static gboolean purple_media_backend_fs2_set_require_encryption(
+		PurpleMediaBackend *self, const gchar *sess_id,
+		const gchar *participant, const gboolean require_encryption);
 #endif
 static gboolean purple_media_backend_fs2_set_remote_codecs(
 		PurpleMediaBackend *self,
@@ -580,6 +583,8 @@
 			purple_media_backend_fs2_set_encryption_parameters;
 	iface->set_decryption_parameters =
 			purple_media_backend_fs2_set_decryption_parameters;
+	iface->set_require_encryption =
+			purple_media_backend_fs2_set_require_encryption;
 #endif
 	iface->set_params = purple_media_backend_fs2_set_params;
 	iface->get_available_params = purple_media_backend_fs2_get_available_params;
@@ -2802,6 +2807,27 @@
 	gst_structure_free(srtp);
 	return result;
 }
+
+static gboolean
+purple_media_backend_fs2_set_require_encryption (PurpleMediaBackend *self,
+		const gchar *sess_id, const gchar *participant,
+		const gboolean require_encryption)
+{
+	PurpleMediaBackendFs2Stream *stream;
+	gboolean result;
+
+	g_return_val_if_fail(PURPLE_IS_MEDIA_BACKEND_FS2(self), FALSE);
+
+	stream = get_stream(PURPLE_MEDIA_BACKEND_FS2(self), sess_id,
+			participant);
+	if (!stream)
+		return FALSE;
+
+	g_object_set (stream->stream, "require-encryption",
+			require_encryption, NULL);
+	return TRUE;
+}
+
 #endif /* GST 1.0+ */
 
 static gboolean

mercurial