--- a/libpurple/media/backend-fs2.c Tue Dec 10 04:43:23 2019 +0000 +++ b/libpurple/media/backend-fs2.c Thu Oct 03 10:34:22 2019 +0200 @@ -74,6 +74,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, gboolean require_encryption); static gboolean purple_media_backend_fs2_set_remote_codecs( PurpleMediaBackend *self, const gchar *sess_id, const gchar *participant, @@ -505,6 +508,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; iface->set_params = purple_media_backend_fs2_set_params; iface->get_available_params = purple_media_backend_fs2_get_available_params; iface->send_dtmf = purple_media_backend_fs2_send_dtmf; @@ -2380,6 +2385,25 @@ } static gboolean +purple_media_backend_fs2_set_require_encryption(PurpleMediaBackend *self, + const gchar *sess_id, const gchar *participant, + gboolean require_encryption) +{ + PurpleMediaBackendFs2Stream *stream; + gboolean result; + + 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; +} + +static gboolean purple_media_backend_fs2_set_send_codec(PurpleMediaBackend *self, const gchar *sess_id, PurpleMediaCodec *codec) {