static void swfdec_load_object_load (SwfdecPlayer *player, gboolean allow, gpointer obj) { SwfdecLoadObject *load = SWFDEC_LOAD_OBJECT (obj); if (!allow) { SWFDEC_WARNING ("SECURITY: no access to %s from %s", load->url, swfdec_url_get_url (load->sandbox->url)); /* call finish */ swfdec_sandbox_use (load->sandbox); load->finish (load->target, NULL); swfdec_sandbox_unuse (load->sandbox); /* unroot */ swfdec_player_unroot (player, load); return; } load->loader = swfdec_player_load_with_headers (player, load->url, load->buffer, load->header_count, (const char **)load->header_names, (const char **)load->header_values); swfdec_stream_set_target (SWFDEC_STREAM (load->loader), SWFDEC_STREAM_TARGET (load)); swfdec_loader_set_data_type (load->loader, SWFDEC_LOADER_DATA_TEXT); }
static SwfdecXmlSocket * swfdec_xml_socket_create (SwfdecAsObject *target, SwfdecSandbox *sandbox, const char *hostname, guint port) { SwfdecPlayer *player = SWFDEC_PLAYER (target->context); SwfdecXmlSocket *xml; SwfdecSocket *sock; SWFDEC_FIXME ("implement security checks please"); sock = swfdec_player_create_socket (player, hostname, port); if (sock == NULL) return NULL; xml = g_object_new (SWFDEC_TYPE_XML_SOCKET, "context", player, NULL); /* we prepend here, so send etc find the newest socket */ player->priv->xml_sockets = g_slist_prepend (player->priv->xml_sockets, xml); xml->target = target; xml->socket = sock; xml->sandbox = sandbox; swfdec_stream_set_target (SWFDEC_STREAM (sock), SWFDEC_STREAM_TARGET (xml)); return xml; }