"The proxy in the http_proxy env var (\"%s\") cannot be parsed.",
proxy);
}
-#ifdef TIZEN_FEATURE_SOUP_MODIFICATION
- src->cookie_jar = NULL;
-#endif
+
gst_base_src_set_automatic_eos (GST_BASE_SRC (src), FALSE);
gst_soup_http_src_reset (src);
break;
}
case PROP_COOKIES:
-#ifdef TIZEN_FEATURE_SOUP_MODIFICATION
- {
- char **array;
- SoupURI *base_uri;
- SoupCookie *cookie_parsed = NULL;
-
- g_strfreev (src->cookies);
- src->cookies = g_strdupv (g_value_get_boxed (value));
-
- if (src->cookie_jar && ((array = src->cookies) != NULL)) {
- base_uri = soup_uri_new (src->location);
- GST_INFO_OBJECT (src, "request to set cookies...");
- while (*array != NULL) {
- cookie_parsed = soup_cookie_parse (*array++, base_uri);
- if (cookie_parsed && cookie_parsed->domain)
- soup_cookie_jar_add_cookie (src->cookie_jar, cookie_parsed);
- }
- soup_uri_free (base_uri);
- } else {
- GST_INFO_OBJECT (src, "set cookies after session creation");
- }
- }
-#else
g_strfreev (src->cookies);
src->cookies = g_strdupv (g_value_get_boxed (value));
-#endif
break;
case PROP_IS_LIVE:
gst_base_src_set_live (GST_BASE_SRC (src), g_value_get_boolean (value));
g_value_set_static_string (value, "");
else {
char *proxy = soup_uri_to_string (src->proxy, FALSE);
-
g_value_set_string (value, proxy);
g_free (proxy);
}
break;
case PROP_COOKIES:
-#ifdef TIZEN_FEATURE_SOUP_MODIFICATION
- {
- GSList *cookie_list, *c;
- gchar **cookies, **array;
-
- cookies = NULL;
- if ((src->cookie_jar) &&
- ((cookie_list = soup_cookie_jar_all_cookies (src->cookie_jar)) != NULL)) {
- cookies = g_new0 (gchar *, g_slist_length(cookie_list) + 1);
- array = cookies;
- for (c = cookie_list; c; c = c->next) {
- *array++ = soup_cookie_to_set_cookie_header ((SoupCookie *)(c->data));
- }
- soup_cookies_free (cookie_list);
- }
- g_value_set_boxed (value, cookies);
- }
-#else
- g_value_set_boxed (value, g_strdupv (src->cookies));
-#endif
+ g_value_set_boxed (value, g_strdupv (src->cookies));
break;
case PROP_IS_LIVE:
g_value_set_boolean (value, gst_base_src_is_live (GST_BASE_SRC (src)));
soup_message_headers_append (src->msg->request_headers, field_name,
field_content);
-#ifdef TIZEN_FEATURE_SOUP_MODIFICATION
- if (!g_ascii_strcasecmp(field_name, "Cookie")) {
- SoupURI *uri = NULL;
- SoupCookie *cookie_parsed = NULL;
- gchar *saveptr = NULL;
-
- if (strlen(field_content) > 0) {
- gchar *tmp_field = NULL;
-
- uri = soup_uri_new (src->location);
-
- tmp_field = strtok_r (field_content, ";", &saveptr);
-
- while (tmp_field != NULL) {
- GST_DEBUG_OBJECT (src, "field_content = %s", tmp_field);
-
- cookie_parsed = soup_cookie_parse(tmp_field, uri);
- GST_DEBUG_OBJECT (src, "cookie parsed = %p", cookie_parsed);
-
- if (src->cookie_jar && cookie_parsed && cookie_parsed->domain)
- soup_cookie_jar_add_cookie (src->cookie_jar, cookie_parsed);
-
- tmp_field = strtok_r (NULL, ";", &saveptr);
- }
- soup_uri_free (uri);
- }
- }
-#endif
-
g_free (field_content);
return TRUE;
return FALSE;
}
-#ifdef TIZEN_FEATURE_SOUP_MODIFICATION
- {
- char **array = NULL;
- SoupURI *base_uri;
- SoupCookie *soup_cookie = NULL;
-
- soup_session_add_feature_by_type (src->session, SOUP_TYPE_COOKIE_JAR);
- src->cookie_jar = SOUP_COOKIE_JAR (soup_session_get_feature (src->session, SOUP_TYPE_COOKIE_JAR));
- if ((array = src->cookies) != NULL) {
- base_uri = soup_uri_new (src->location);
- while (*array != NULL) {
- soup_cookie = soup_cookie_parse (*array++, base_uri);
- if (soup_cookie && soup_cookie->domain) {
- GST_INFO_OBJECT (src, "adding cookies..");
- soup_cookie_jar_add_cookie (src->cookie_jar, soup_cookie);
- }
- }
- soup_uri_free (base_uri);
- }
- }
-#endif
-
g_signal_connect (src->session, "authenticate",
G_CALLBACK (gst_soup_http_src_authenticate_cb), src);
if (src->session) {
if (!src->session_is_shared)
-#ifdef TIZEN_FEATURE_SOUP_MODIFICATION
-/* When Playback is ongoing and Browser is moved to background ( Pressing Menu or Home Key ), The Session gets destroyed.
- But the cookie_jar property remains unfreed. This results in garbage pointer and causes crash.
- Removing the cookie_jar feature during close session of browser to handle the issue. */
- {
- GST_DEBUG_OBJECT (src, "Removing Cookie Jar instance");
- soup_session_remove_feature_by_type(src->session, SOUP_TYPE_COOKIE_JAR);
- src->cookie_jar = NULL;
- soup_session_abort (src->session);
- }
-#else
soup_session_abort (src->session);
-#endif
g_signal_handlers_disconnect_by_func (src->session,
G_CALLBACK (gst_soup_http_src_authenticate_cb), src);
g_object_unref (src->session);
{
GST_INFO_OBJECT (src, " %s: %s", name, val);
- if (g_ascii_strcasecmp (name, "Set-Cookie") == 0) {
- if (val) {
- gboolean bret = FALSE;
- GstStructure *s = NULL;
- GstSoupHTTPSrc * tmp = src;
- SoupURI *uri;
-
- uri = soup_uri_new (tmp->location);
-
- /* post current bandwith & uri to application */
- s = gst_structure_new ("cookies",
- "updated-cookie", G_TYPE_STRING, val,
- "updated-url", G_TYPE_STRING, tmp->location, NULL);
- bret = gst_element_post_message (GST_ELEMENT_CAST (src), gst_message_new_element (GST_OBJECT_CAST (src), s));
- soup_cookie_jar_set_cookie (tmp->cookie_jar, uri, val);
- soup_uri_free (uri);
-
- GST_INFO_OBJECT (src, "request url [%s], posted cookies [%s] msg and returned = %d", tmp->location, val, bret);
- }
- } else if (g_ascii_strcasecmp (name, "Dash-Oldest-Segment") == 0) {
+ if (g_ascii_strcasecmp (name, "Dash-Oldest-Segment") == 0) {
if (val) {
GstSoupHTTPSrc * tmp = src;
tmp->dash_oldest_segment = g_strdup (val);
}
#ifdef TIZEN_FEATURE_SOUP_MODIFICATION
-/* This changes are needed to enable Seekable Contents from server.
+ /* This changes are needed to enable Seekable Contents from server.
We have observed that , for few specific networks ( VODAFONE ) , without theabove headers ,
Youtube is sending non-seekable contents to the Client. */
soup_message_headers_append (src->msg->request_headers, "Accept-Ranges","bytes");
+#endif
- if (src->cookie_jar) {
- GSList *cookie_list, *c;
- gchar *header;
-
- SoupURI *uri = NULL;
- SoupCookie *cookie;
- uri = soup_uri_new (src->location);
-
- if ((cookie_list = soup_cookie_jar_all_cookies (src->cookie_jar)) != NULL) {
- for (c = cookie_list; c; c = c->next) {
- cookie = (SoupCookie *)c->data;
- if (soup_cookie_applies_to_uri(cookie, uri)) {
- header = soup_cookie_to_cookie_header (cookie);
- soup_message_headers_append (src->msg->request_headers, "Cookie", header);
- g_free (header);
- }
- }
- }
- soup_cookies_free (cookie_list);
- soup_uri_free (uri);
- }
-#else
if (src->cookies) {
gchar **cookie;
*cookie);
}
}
-#endif
if (!src->compress)
soup_message_disable_feature (src->msg, SOUP_TYPE_CONTENT_DECODER);