]> www.infradead.org Git - users/dwmw2/openconnect.git/commitdiff
Use correct XML tag for CSD script on Mac
authorDavid Woodhouse <David.Woodhouse@intel.com>
Thu, 12 Jul 2012 12:12:50 +0000 (13:12 +0100)
committerDavid Woodhouse <David.Woodhouse@intel.com>
Thu, 12 Jul 2012 12:57:37 +0000 (13:57 +0100)
Other operating systems still get the Linux version, and will need a
wrapper or something to make it cope.

Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
auth.c
library.c
main.c
openconnect-internal.h
www/changelog.xml

diff --git a/auth.c b/auth.c
index 5178e24528df8c0160e9104c868a2caa59074716..cdab5a37613cfe1ee0e5c0d9f7c0f1da2d28b5b6 100644 (file)
--- a/auth.c
+++ b/auth.c
@@ -394,7 +394,7 @@ int parse_xml_response(struct openconnect_info *vpninfo, char *response,
                        if (!vpninfo->csd_ticket)
                                vpninfo->csd_ticket = (char *)xmlGetProp(xml_node,
                                                                         (unsigned char *)"ticket");
-               } else if (!vpninfo->csd_scriptname && !strcmp((char *)xml_node->name, "csdLinux")) {
+               } else if (!vpninfo->csd_scriptname && !strcmp((char *)xml_node->name, vpninfo->csd_xmltag)) {
                        vpninfo->csd_stuburl = (char *)xmlGetProp(xml_node,
                                                                  (unsigned char *)"stuburl");
                        vpninfo->csd_starturl = (char *)xmlGetProp(xml_node,
index bd7db6e76a69bc37ab90bdf02b7d269955bebff2..b97f8dfe3b00a0071fe757ca11b5e78a2d5720f0 100644 (file)
--- a/library.c
+++ b/library.c
@@ -46,6 +46,11 @@ struct openconnect_info *openconnect_vpninfo_new (char *useragent,
        vpninfo->progress = progress;
        vpninfo->cbdata = privdata?:vpninfo;
        vpninfo->cancel_fd = -1;
+#ifdef __APPLE__
+       vpninfo->csd_xmltag = "csdMac";
+#else
+       vpninfo->csd_xmltag = "csdLinux";
+#endif
 
 #ifdef ENABLE_NLS
        bindtextdomain("openconnect", LOCALEDIR);
diff --git a/main.c b/main.c
index e3f243e15021122d429d53106653694cbd9ff734..25f184bf95c142777498fa2927a857ac3358aacb 100644 (file)
--- a/main.c
+++ b/main.c
@@ -461,6 +461,13 @@ int main(int argc, char **argv)
        vpninfo->max_qlen = 10;
        vpninfo->reconnect_interval = RECONNECT_INTERVAL_MIN;
        vpninfo->reconnect_timeout = 300;
+       vpninfo->uid_csd = 0;
+       /* We could let them override this on the command line some day, perhaps */
+#ifdef __APPLE__
+       vpninfo->csd_xmltag = "csdMac";
+#else
+       vpninfo->csd_xmltag = "csdLinux";
+#endif
        vpninfo->uid_csd = 0;
        vpninfo->uid_csd_given = 0;
        vpninfo->validate_peer_cert = validate_peer_cert;
index 51a3e2607fc8a5a18eadcde32a7f501cea172f6c..6e0a10b5731604b3f6d519ee1e1fc6ed9f791da4 100644 (file)
@@ -126,6 +126,7 @@ struct pin_cache {
 struct openconnect_info {
        char *redirect_url;
 
+       const char *csd_xmltag;
        char *csd_token;
        char *csd_ticket;
        char *csd_stuburl;
index 87258929d05d95c3f3d8680c8069f836b0847a7c..be94266242cae9d8008dfcf2c096594c3770e6c1 100644 (file)
@@ -17,6 +17,7 @@
 <ul>
    <li><b>OpenConnect HEAD</b>
      <ul>
+       <li>Use correct CSD script for Mac OS X.</li>
        <li>Fix endless loop in PIN cache handling with multiple PKCS#11 tokens.</li>
        <li>Fix PKCS#11 URI handling to preserve all attributes.</li>
        <li>Don't forget key password on GUI reconnect.</li>