[libgovirt] proxy: Remove jsessionid cookie when its value is NULL



commit 96f588db79e6716216341a9ee2437ce878fcba93
Author: Christophe Fergeau <cfergeau redhat com>
Date:   Mon Feb 8 14:50:50 2016 +0100

    proxy: Remove jsessionid cookie when its value is NULL

 govirt/ovirt-proxy-private.h |    1 +
 govirt/ovirt-proxy.c         |    6 ++++++
 2 files changed, 7 insertions(+), 0 deletions(-)
---
diff --git a/govirt/ovirt-proxy-private.h b/govirt/ovirt-proxy-private.h
index 4b4e675..e57edad 100644
--- a/govirt/ovirt-proxy-private.h
+++ b/govirt/ovirt-proxy-private.h
@@ -37,6 +37,7 @@ struct _OvirtProxyPrivate {
     gboolean admin_mode;
     OvirtApi *api;
     char *jsessionid;
+    SoupCookie *jsessionid_cookie;
     char *sso_token;
 
     SoupCookieJar *cookie_jar;
diff --git a/govirt/ovirt-proxy.c b/govirt/ovirt-proxy.c
index 0b52805..e361635 100644
--- a/govirt/ovirt-proxy.c
+++ b/govirt/ovirt-proxy.c
@@ -782,12 +782,18 @@ static void ovirt_proxy_set_session_id(OvirtProxy *proxy, const char *session_id
         domain = url;
     }
 
+    if (proxy->priv->jsessionid_cookie != NULL) {
+        soup_cookie_jar_delete_cookie(proxy->priv->cookie_jar,
+                proxy->priv->jsessionid_cookie);
+        proxy->priv->jsessionid_cookie = NULL;
+    }
     g_free(proxy->priv->jsessionid);
     proxy->priv->jsessionid = g_strdup(session_id);
     if (proxy->priv->jsessionid != NULL) {
         SoupCookie *cookie;
         cookie = soup_cookie_new("JSESSIONID", session_id, domain, "/ovirt-engine/api", -1);
         soup_cookie_jar_add_cookie(proxy->priv->cookie_jar, cookie);
+        proxy->priv->jsessionid_cookie = cookie;
     }
     g_free(url);
 }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]