Single function to obtain cookie
authorDavid Woodhouse <David.Woodhouse@intel.com>
Wed, 1 Oct 2008 11:00:35 +0000 (12:00 +0100)
committerDavid Woodhouse <David.Woodhouse@intel.com>
Wed, 1 Oct 2008 11:00:35 +0000 (12:00 +0100)
anyconnect.h
main.c
ssl.c

index f5961fc..f7486ca 100644 (file)
@@ -136,7 +136,6 @@ int make_ssl_connection(struct anyconnect_info *vpninfo);
 void vpn_init_openssl(void);
 int ssl_mainloop(struct anyconnect_info *vpninfo, int *timeout);
 int ssl_bye(struct anyconnect_info *vpninfo, char *reason);
-int obtain_cookie_cert(struct anyconnect_info *vpninfo);
 int  __attribute__ ((format (printf, 2, 3)))
                my_SSL_printf(SSL *ssl, const char *fmt, ...);
 int my_SSL_gets(SSL *ssl, char *buf, size_t len);
@@ -150,13 +149,6 @@ int vpn_mainloop(struct anyconnect_info *vpninfo);
 int queue_new_packet(struct pkt **q, int type, void *buf, int len);
 void queue_packet(struct pkt **q, struct pkt *new);
 
-/* curl.c */
-static inline int obtain_cookie_login(struct anyconnect_info *vpninfo)
-{
-       fprintf(stderr, "No login code yet. Hassle Marcel.\n");
-       return -1;
-}
-
 /* xml.c */
 int config_lookup_host(struct anyconnect_info *vpninfo, const char *host);
 
@@ -164,3 +156,4 @@ int config_lookup_host(struct anyconnect_info *vpninfo, const char *host);
 int process_http_response(struct anyconnect_info *vpninfo, int *result,
                          int (*header_cb)(struct anyconnect_info *, char *, char *),
                          char *body, int buf_len);
+int obtain_cookie(struct anyconnect_info *vpninfo);
diff --git a/main.c b/main.c
index be7b57b..0f7f563 100644 (file)
--- a/main.c
+++ b/main.c
@@ -198,8 +198,7 @@ int main(int argc, char **argv)
        vpninfo->deflate_adler32 = 1;
        vpninfo->inflate_adler32 = 1;
 
-       if (!vpninfo->cookie && obtain_cookie_cert(vpninfo) &&
-           obtain_cookie_login(vpninfo)) {
+       if (!vpninfo->cookie && obtain_cookie(vpninfo)) {
                fprintf(stderr, "Failed to obtain WebVPN cookie\n");
                exit(1);
        }
diff --git a/ssl.c b/ssl.c
index a4ff601..d95dd01 100644 (file)
--- a/ssl.c
+++ b/ssl.c
@@ -284,15 +284,12 @@ static int open_https(struct anyconnect_info *vpninfo)
        return 0;
 }
 
-int obtain_cookie_cert(struct anyconnect_info *vpninfo)
+int obtain_cookie(struct anyconnect_info *vpninfo)
 {
        struct vpn_option *opt, *next;
        char buf[65536];
        int result;
 
-       if (!vpninfo->cert)
-               return -ENOENT;
-
  retry:
        if (!vpninfo->https_ssl && open_https(vpninfo)) {
                fprintf(stderr, "Failed to open HTTPS connection to %s\n",
@@ -379,7 +376,7 @@ int obtain_cookie_cert(struct anyconnect_info *vpninfo)
                        }
                }
        }
-       if (vpninfo->cookie)
+       if (vpninfo->cookie && vpninfo->cookie[0])
                return 0;
 
        return -1;