Remove CSD script when done with it
authorDavid Woodhouse <David.Woodhouse@intel.com>
Thu, 12 Jul 2012 12:05:33 +0000 (13:05 +0100)
committerDavid Woodhouse <David.Woodhouse@intel.com>
Thu, 12 Jul 2012 12:05:38 +0000 (13:05 +0100)
We still don't remove it if the user hits Ctrl-C when we're logging in.

Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
library.c
main.c

index 8c1560f..bd7db6e 100644 (file)
--- a/library.c
+++ b/library.c
@@ -78,7 +78,10 @@ void openconnect_vpninfo_free (struct openconnect_info *vpninfo)
        free(vpninfo->redirect_url);
        free(vpninfo->proxy_type);
        free(vpninfo->proxy);
-       free(vpninfo->csd_scriptname);
+       if (vpninfo->csd_scriptname) {
+               unlink(vpninfo->csd_scriptname);
+               free(vpninfo->csd_scriptname);
+       }
        free(vpninfo->csd_stuburl);
        /* These are const in openconnect itself, but for consistency of
           the library API we do take ownership of the strings we're given,
diff --git a/main.c b/main.c
index 3d05917..e3f243e 100644 (file)
--- a/main.c
+++ b/main.c
@@ -762,6 +762,10 @@ int main(int argc, char **argv)
 #endif
 
        if (!vpninfo->cookie && openconnect_obtain_cookie(vpninfo)) {
+               if (vpninfo->csd_scriptname) {
+                       unlink(vpninfo->csd_scriptname);
+                       vpninfo->csd_scriptname = NULL;
+               }
                fprintf(stderr, _("Failed to obtain WebVPN cookie\n"));
                exit(1);
        }