summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDebarshi Ray <debarshir@gnome.org>2016-02-21 21:48:50 +0100
committerDebarshi Ray <debarshir@gnome.org>2016-02-21 21:48:50 +0100
commit74c30d94dd593fa858848f3fd06274080325c78e (patch)
treee52e4d6c6e3eda2af0bc263c7e6501b81fc31296
parentc4556dca61bdf6f8d957589ad477d2ea0376f5b1 (diff)
downloadgvfs-wip/rishi/owncloud-gssapi.tar.gz
dav, http: Support GSSAPI-enabled WebDAV mountswip/rishi/owncloud-gssapi
-rw-r--r--daemon/gvfsbackenddav.c29
-rw-r--r--daemon/gvfsbackendhttp.c3
2 files changed, 30 insertions, 2 deletions
diff --git a/daemon/gvfsbackenddav.c b/daemon/gvfsbackenddav.c
index 37d55bcb..8f6e1b81 100644
--- a/daemon/gvfsbackenddav.c
+++ b/daemon/gvfsbackenddav.c
@@ -423,7 +423,6 @@ redirect_handler (SoupMessage *msg, gpointer user_data)
redirect = TRUE;
}
-#if 0
else if (msg->status_code == SOUP_STATUS_SEE_OTHER ||
msg->status_code == SOUP_STATUS_FOUND)
{
@@ -436,7 +435,7 @@ redirect_handler (SoupMessage *msg, gpointer user_data)
soup_message_headers_set_encoding (msg->request_headers,
SOUP_ENCODING_NONE);
}
-#endif
+
/* ELSE:
*
* Two possibilities:
@@ -455,6 +454,32 @@ redirect_handler (SoupMessage *msg, gpointer user_data)
* redirect on 308+ either.
*/
}
+ else
+ {
+ if (msg->status_code == SOUP_STATUS_SEE_OTHER)
+ {
+ gchar *method;
+
+ g_object_get (msg, "method", &method, NULL);
+ g_message ("method: %s", method);
+ g_free (method);
+
+ if (msg->method == SOUP_METHOD_GET ||
+ msg->method == SOUP_METHOD_OPTIONS)
+ {
+ /* /\* Redirect using a GET *\/ */
+ /* g_object_set (msg, */
+ /* SOUP_MESSAGE_METHOD, SOUP_METHOD_GET, */
+ /* NULL); */
+ /* soup_message_set_request (msg, NULL, */
+ /* SOUP_MEMORY_STATIC, NULL, 0); */
+ /* soup_message_headers_set_encoding (msg->request_headers, */
+ /* SOUP_ENCODING_NONE); */
+
+ redirect = TRUE;
+ }
+ }
+ }
if (redirect)
{
diff --git a/daemon/gvfsbackendhttp.c b/daemon/gvfsbackendhttp.c
index 317c8ed6..8d8db67b 100644
--- a/daemon/gvfsbackendhttp.c
+++ b/daemon/gvfsbackendhttp.c
@@ -718,6 +718,9 @@ g_vfs_backend_http_class_init (GVfsBackendHttpClass *klass)
g_object_set (the_session, "ssl-strict", FALSE, NULL);
+ if (soup_auth_negotiate_supported)
+ soup_session_add_feature_by_type (the_session, SOUP_TYPE_AUTH_NEGOTIATE);
+
/* Cookie handling - stored temporarlly in memory, mostly useful for
* authentication in WebDAV. */
cookie_jar = g_object_new (SOUP_TYPE_COOKIE_JAR, NULL);