From: Wim Taymans Date: Mon, 15 Jul 2013 15:12:57 +0000 (+0200) Subject: permissions: implement _remove_role X-Git-Tag: 1.19.3~495^2~1018 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=fbe0cefae1d0dcf2b701e6eb43426721b7f0baa2;p=platform%2Fupstream%2Fgstreamer.git permissions: implement _remove_role --- diff --git a/gst/rtsp-server/rtsp-permissions.c b/gst/rtsp-server/rtsp-permissions.c index eee30e0..b2bfa3d 100644 --- a/gst/rtsp-server/rtsp-permissions.c +++ b/gst/rtsp-server/rtsp-permissions.c @@ -156,7 +156,7 @@ gst_rtsp_permissions_add_role_valist (GstRTSPPermissions * permissions, { GstRTSPPermissionsImpl *impl = (GstRTSPPermissionsImpl *) permissions; GstStructure *structure; - gint i, len; + guint i, len; gboolean found; g_return_if_fail (GST_IS_RTSP_PERMISSIONS (permissions)); @@ -198,9 +198,23 @@ void gst_rtsp_permissions_remove_role (GstRTSPPermissions * permissions, const gchar * role) { + GstRTSPPermissionsImpl *impl = (GstRTSPPermissionsImpl *) permissions; + guint i, len; + g_return_if_fail (GST_IS_RTSP_PERMISSIONS (permissions)); g_return_if_fail (gst_mini_object_is_writable (&permissions->mini_object)); g_return_if_fail (role != NULL); + + len = impl->roles->len; + for (i = 0; i < len; i++) { + GstStructure *entry = g_ptr_array_index (impl->roles, i); + + if (gst_structure_has_name (entry, role)) { + g_ptr_array_remove_index_fast (impl->roles, i); + gst_structure_free (entry); + break; + } + } } /** @@ -217,7 +231,7 @@ gst_rtsp_permissions_get_role (GstRTSPPermissions * permissions, const gchar * role) { GstRTSPPermissionsImpl *impl = (GstRTSPPermissionsImpl *) permissions; - gint i, len; + guint i, len; g_return_val_if_fail (GST_IS_RTSP_PERMISSIONS (permissions), NULL); g_return_val_if_fail (role != NULL, NULL);