diff options
author | Debarshi Ray <debarshir@gnome.org> | 2016-02-21 21:48:50 +0100 |
---|---|---|
committer | Debarshi Ray <debarshir@gnome.org> | 2016-02-21 21:48:50 +0100 |
commit | 74c30d94dd593fa858848f3fd06274080325c78e (patch) | |
tree | e52e4d6c6e3eda2af0bc263c7e6501b81fc31296 | |
parent | c4556dca61bdf6f8d957589ad477d2ea0376f5b1 (diff) | |
download | gvfs-wip/rishi/owncloud-gssapi.tar.gz |
dav, http: Support GSSAPI-enabled WebDAV mountswip/rishi/owncloud-gssapi
-rw-r--r-- | daemon/gvfsbackenddav.c | 29 | ||||
-rw-r--r-- | daemon/gvfsbackendhttp.c | 3 |
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); |