Imported Upstream version 1.35
[platform/upstream/connman.git] / gweb / gweb.c
index f6828cf..393afe0 100644 (file)
@@ -792,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')
@@ -1075,7 +1078,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;
                }
        }
@@ -1346,8 +1348,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);
@@ -1466,6 +1467,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;
@@ -1474,12 +1478,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;