gnssd: add 8122 agps func

Change-Id: Ie87dcafc1da9cf5cffd9f5397f1640f19aa36aab
diff --git a/mbtk/mbtk_gnssd/agps/agnss_http_download.c b/mbtk/mbtk_gnssd/agps/agnss_http_download.c
new file mode 100755
index 0000000..a9ca306
--- /dev/null
+++ b/mbtk/mbtk_gnssd/agps/agnss_http_download.c
@@ -0,0 +1,115 @@
+#include <stdio.h>

+#include <string.h>

+#include <stdlib.h>

+#include <unistd.h>

+#include <errno.h>

+#include <fcntl.h>

+#include <string.h>

+#include <errno.h>

+#include <arpa/inet.h>

+

+#include "agnss_http_download.h"

+#include "mbtk_log.h"

+#include "mbtk_http.h"

+

+#define HTTP_RESULT_SUCCESS 0

+#define HTTP_RESULT_FAIL    -1

+

+static char eph_file_path[128] = {0};

+static int eph_file_fd = -1;

+

+static void http_data_cb_func(int session_id, mbtk_http_data_type_enum type, void *data,int data_len)

+{

+    int ret = 0;

+

+    if(type == MBTK_HTTP_DATA_HEADER) 

+    {

+        LOGD("Header(%d):%s", data_len, (char*)data);

+        if(eph_file_fd > 0)

+        {

+            return;

+        }

+        unlink(eph_file_path);

+        eph_file_fd = open(eph_file_path, O_RDWR|O_CREAT|O_TRUNC, 0644);

+        if (eph_file_fd < 0)

+        {

+            LOGD("file open error");

+        }

+        else

+        {

+            LOGD("agnss file open: %d", eph_file_fd);

+        }

+    } 

+    else if(type == MBTK_HTTP_DATA_CONTENT) 

+    {

+        LOGD("http Data(%d)", data_len);

+

+        ret = write(eph_file_fd, (char*)data, data_len);

+        if (ret < 0) 

+        {

+            LOGE("%s: error writing to file!", __FUNCTION__);

+        } 

+        else if (ret < data_len) 

+        {

+            LOGD("%s: wrote less the buffer size!", __FUNCTION__);

+        }

+        else

+        {

+            //

+        }

+    } 

+    else 

+    {

+        LOGD(">>>>>Complete<<<<<");

+        if(eph_file_fd <= 0)

+        {

+            return;

+        }

+        close(eph_file_fd);

+        eph_file_fd = -1;

+    }

+}

+

+int eph_data_from_http_get(char *host, const char *path)

+{

+    if(host == NULL || path == NULL || strlen(path) == 0)

+    {

+        LOGE("eph_data_from_http_get param is error.");

+    }

+    

+    int http_handle = mbtk_http_handle_get(TRUE, http_data_cb_func);

+    if(http_handle < 0)

+    {

+        LOGE("mbtk_http_handle_get() fail.");

+        return HTTP_RESULT_FAIL;

+    }

+    int http_session = mbtk_http_session_create(http_handle, HTTP_OPTION_GET, HTTP_VERSION_1_1);

+    if(http_handle < 0)

+    {

+        LOGE("mbtk_http_session_create() fail.");

+        goto error;

+    }

+

+    memcpy(eph_file_path, path, strlen(path));

+    if(mbtk_http_session_url_set(http_handle, http_session, host))

+    {

+        LOGE("mbtk_http_session_url_set() fail.\n");

+        goto error;

+    }

+    if(mbtk_http_session_start(http_handle, http_session))

+    {

+        LOGE("mbtk_http_session_start() fail.\n");

+        goto error;

+    }

+    if(mbtk_http_handle_free(http_handle))

+    {

+        LOGE("mbtk_http_handle_free() fail.");

+        return HTTP_RESULT_FAIL;

+    }

+

+    return HTTP_RESULT_SUCCESS;

+error:

+    mbtk_http_handle_free(http_handle);

+    return HTTP_RESULT_FAIL;

+}

+