DA: Skip initializing failed_bssids list when eapol failure case
[platform/upstream/connman.git] / gweb / gweb.c
index b6d581c..69aea5b 100755 (executable)
@@ -39,8 +39,6 @@
 #include <netinet/tcp.h>
 #include <ifaddrs.h>
 
-#include <tpkp_gnutls.h>
-
 #include "giognutls.h"
 #include "gresolv.h"
 #include "gweb.h"
@@ -794,6 +792,9 @@ static void handle_multi_line(struct web_session *session)
        char *str;
        gchar *value;
 
+       if (!session->result.last_key)
+               return;
+
        str = session->current_header->str;
 
        if (str[0] != ' ' && str[0] != '\t')
@@ -1056,7 +1057,6 @@ static int connect_session_transport(struct web_session *session)
 
        if (session->flags & SESSION_FLAG_USE_TLS) {
                debug(session->web, "using TLS encryption");
-               tpkp_gnutls_set_url_data(session->host);
                session->transport_channel = g_io_channel_gnutls_new(sk);
        } else {
                debug(session->web, "no encryption");
@@ -1082,7 +1082,6 @@ static int connect_session_transport(struct web_session *session)
                        session->addr->ai_addrlen) < 0) {
                if (errno != EINPROGRESS) {
                        debug(session->web, "connect() %s", strerror(errno));
-                       close(sk);
                        return -EIO;
                }
        }
@@ -1289,7 +1288,8 @@ static bool is_ip_address(const char *host)
        addr = NULL;
 
        result = getaddrinfo(host, NULL, &hints, &addr);
-       freeaddrinfo(addr);
+       if(!result)
+               freeaddrinfo(addr);
 
        return result == 0;
 }
@@ -1363,8 +1363,7 @@ static guint do_request(GWeb *web, const char *url,
                        g_free(session->address);
                        session->address = g_strdup(host);
                }
-               session->address_action = g_timeout_add(0, already_resolved,
-                                                       session);
+               session->address_action = g_idle_add(already_resolved, session);
        } else {
                session->resolv_action = g_resolv_lookup_hostname(web->resolv,
                                        host, resolv_result, session);
@@ -1483,6 +1482,9 @@ GWebParser *g_web_parser_new(const char *begin, const char *end,
 {
        GWebParser *parser;
 
+       if (!begin || !end)
+               return NULL;
+
        parser = g_try_new0(GWebParser, 1);
        if (!parser)
                return NULL;
@@ -1491,12 +1493,6 @@ GWebParser *g_web_parser_new(const char *begin, const char *end,
 
        parser->begin_token = g_strdup(begin);
        parser->end_token = g_strdup(end);
-
-       if (!parser->begin_token) {
-               g_free(parser);
-               return NULL;
-       }
-
        parser->func = func;
        parser->user_data = user_data;