Opening /dev/umts_boot0 pipe and ioctl configuration should be done in the HAL plugin...
authorwootak.jung <wootak.jung@samsung.com>
Mon, 3 Dec 2012 02:13:41 +0000 (11:13 +0900)
committerwootak.jung <wootak.jung@samsung.com>
Sun, 24 Mar 2013 09:03:09 +0000 (18:03 +0900)
- libtcore/src/mux.c
Currently, when hal operation is called in IMC go through mux hal.
But, this code is temporary code.
If to mapping become completed, we will call that operation.

- libtcore/src/co_context.c, libtcore/include/c_context.h
Added code in order to remove notification TNOTI_PS_PDP_IPCONFIGURATION and structure tnoti_ps_pdp_ipconfiguration(Philippe's feedback)
In addition, duplicated variables in structure private_object_data([addr,ip_v4], [dns1,dns_primary_v4], ...)
will be modifed later.

- tel-plugin-imc/src/s_ps.c, tel-plugin-imcmode/src/desc-imcmodem.c
Reflect the Guillaume's feedback
You can see feedback below url
https://tizendev.org/gerrit/#/c/15841/

Change-Id: I9d6b279db1d18b8eac4aaf3879176f842cc0d392

include/co_context.h
include/hal.h
src/co_context.c
src/mux.c

index 1f0d02915acab75fb290ba6bf1e7a3cda3c606e7..bf249acf5f4008d3e367aa0d1fc966217fbd4187 100644 (file)
@@ -86,8 +86,6 @@ enum co_context_role     tcore_context_get_role(CoreObject *o);
 
 TReturn                  tcore_context_set_apn(CoreObject *o, const char *apn);
 char*                    tcore_context_get_apn(CoreObject *o);
-TReturn                  tcore_context_set_address(CoreObject *o, const char *addr);
-char*                    tcore_context_get_address(CoreObject *o);
 TReturn                  tcore_context_set_type(CoreObject *o, enum co_context_type type);
 enum co_context_type     tcore_context_get_type(CoreObject *o);
 TReturn                  tcore_context_set_data_compression(CoreObject *o, enum co_context_d_comp comp);
@@ -99,10 +97,6 @@ TReturn                  tcore_context_set_username(CoreObject *o, const char *u
 char*                    tcore_context_get_username(CoreObject *o);
 TReturn                  tcore_context_set_password(CoreObject *o, const char *password);
 char*                    tcore_context_get_password(CoreObject *o);
-TReturn                  tcore_context_set_dns1(CoreObject *o, const char *dns);
-char*                    tcore_context_get_dns1(CoreObject *o);
-TReturn                  tcore_context_set_dns2(CoreObject *o, const char *dns);
-char*                    tcore_context_get_dns2(CoreObject *o);
 TReturn                  tcore_context_set_auth(CoreObject *o, enum co_context_auth auth);
 enum co_context_auth     tcore_context_get_auth(CoreObject *o);
 TReturn                  tcore_context_set_proxy(CoreObject *o, const char *proxy);
@@ -116,10 +110,13 @@ TReturn                  tcore_context_set_devinfo(CoreObject *o, struct tnoti_p
 TReturn                  tcore_context_reset_devinfo(CoreObject *o);
 void                     tcore_context_cp_service_info(CoreObject *dest, CoreObject *src);
 
+TReturn                  tcore_context_set_ipv4_addr(CoreObject *o, const char *addr);
 char*                    tcore_context_get_ipv4_addr(CoreObject *o);
+TReturn                  tcore_context_set_ipv4_dns(CoreObject *o, const char *dns1, const char *dns2);
 char*                    tcore_context_get_ipv4_dns1(CoreObject *o);
 char*                    tcore_context_get_ipv4_dns2(CoreObject *o);
 char*                    tcore_context_get_ipv4_gw(CoreObject *o);
+TReturn                  tcore_context_set_ipv4_devname(CoreObject *o, const char *name);
 char*                    tcore_context_get_ipv4_devname(CoreObject *o);
 
 __END_DECLS
index 2db1d13d97a5ac36d5ba9918b0e0136e20075195..e2e8644411b1ac28aca84bae9880cb6dd161428a 100644 (file)
@@ -96,7 +96,6 @@ TReturn      tcore_hal_setup_netif(TcoreHal *hal, CoreObject *co,
                                        void *user_data, unsigned int cid,
                                        gboolean enable);
 
-
 __END_DECLS
 
 #endif
index 481a5325e8a9277a5bf457d7abf705205ca072aa..fd2b6b91d5b5644162aac6736facbdbd0b771b45 100644 (file)
@@ -30,6 +30,8 @@
 #include "user_request.h"
 #include "co_context.h"
 
+#define DEVNAME_LEN_MAX 16
+
 struct private_object_data {
        enum co_context_state state;
        unsigned int id;
@@ -57,7 +59,7 @@ struct private_object_data {
        char *proxy;
        char *mmsurl;
        char *profile_name;
-       char devname[16];
+       char devname[DEVNAME_LEN_MAX];
 };
 
 static void _free_hook(CoreObject *o)
@@ -227,44 +229,6 @@ char *tcore_context_get_apn(CoreObject *o)
        return g_strdup(po->apn);
 }
 
-TReturn tcore_context_set_address(CoreObject *o, const char *addr)
-{
-       struct private_object_data *po = NULL;
-
-       CORE_OBJECT_CHECK_RETURN(o, CORE_OBJECT_TYPE_PS_CONTEXT, TCORE_RETURN_EINVAL);
-
-       po = tcore_object_ref_object(o);
-       if (!po)
-               return TCORE_RETURN_EINVAL;
-
-       if (po->addr) {
-               free(po->addr);
-               po->addr = NULL;
-       }
-
-       if (addr) {
-               po->addr = g_strdup(addr);
-       }
-
-       return TCORE_RETURN_SUCCESS;
-}
-
-char *tcore_context_get_address(CoreObject *o)
-{
-       struct private_object_data *po = NULL;
-
-       CORE_OBJECT_CHECK_RETURN(o, CORE_OBJECT_TYPE_PS_CONTEXT, NULL);
-
-       po = tcore_object_ref_object(o);
-       if (!po)
-               return NULL;
-
-       if (!po->addr)
-               return NULL;
-
-       return g_strdup(po->addr);
-}
-
 TReturn tcore_context_set_role(CoreObject *o, enum co_context_role role)
 {
        struct private_object_data *po = NULL;
@@ -453,82 +417,6 @@ char *tcore_context_get_password(CoreObject *o)
        return g_strdup(po->password);
 }
 
-TReturn tcore_context_set_dns1(CoreObject *o, const char *dns)
-{
-       struct private_object_data *po = NULL;
-
-       CORE_OBJECT_CHECK_RETURN(o, CORE_OBJECT_TYPE_PS_CONTEXT, TCORE_RETURN_EINVAL);
-
-       po = tcore_object_ref_object(o);
-       if (!po)
-               return TCORE_RETURN_EINVAL;
-
-       if (po->dns1) {
-               free(po->dns1);
-               po->dns1 = NULL;
-       }
-
-       if (dns) {
-               po->dns1 = g_strdup(dns);
-       }
-
-       return TCORE_RETURN_SUCCESS;
-}
-
-char *tcore_context_get_dns1(CoreObject *o)
-{
-       struct private_object_data *po = NULL;
-
-       CORE_OBJECT_CHECK_RETURN(o, CORE_OBJECT_TYPE_PS_CONTEXT, NULL);
-
-       po = tcore_object_ref_object(o);
-       if (!po)
-               return NULL;
-
-       if (!po->dns1)
-               return NULL;
-
-       return g_strdup(po->dns1);
-}
-
-TReturn tcore_context_set_dns2(CoreObject *o, const char *dns)
-{
-       struct private_object_data *po = NULL;
-
-       CORE_OBJECT_CHECK_RETURN(o, CORE_OBJECT_TYPE_PS_CONTEXT, TCORE_RETURN_EINVAL);
-
-       po = tcore_object_ref_object(o);
-       if (!po)
-               return TCORE_RETURN_EINVAL;
-
-       if (po->dns2) {
-               free(po->dns2);
-               po->dns2 = NULL;
-       }
-
-       if (dns) {
-               po->dns2 = g_strdup(dns);
-       }
-
-       return TCORE_RETURN_SUCCESS;
-}
-
-char *tcore_context_get_dns2(CoreObject *o)
-{
-       struct private_object_data *po = NULL;
-
-       CORE_OBJECT_CHECK_RETURN(o, CORE_OBJECT_TYPE_PS_CONTEXT, NULL);
-
-       po = tcore_object_ref_object(o);
-       if (!po)
-               return NULL;
-
-       if (!po->dns2)
-               return NULL;
-
-       return g_strdup(po->dns2);
-}
-
 TReturn tcore_context_set_auth(CoreObject *o, enum co_context_auth auth)
 {
        struct private_object_data *po = NULL;
@@ -733,6 +621,44 @@ void tcore_context_cp_service_info(CoreObject *dest, CoreObject *src)
        return;
 }
 
+static void tcore_context_set_ipv4_atoi(unsigned char *ip4, const char *str)
+{
+       char *token = NULL;
+       char *temp = NULL;
+       int index = 0;
+
+       temp = g_strdup(str);
+       token = strtok(temp, ".");
+       while (token != NULL) {
+               ip4[index++] = atoi(token);
+               token = strtok(NULL, ".");
+       }
+       g_free(temp);
+}
+
+TReturn tcore_context_set_ipv4_addr(CoreObject *o, const char *addr)
+{
+       struct private_object_data *po = NULL;
+
+       CORE_OBJECT_CHECK_RETURN(o, CORE_OBJECT_TYPE_PS_CONTEXT, TCORE_RETURN_EINVAL);
+
+       po = tcore_object_ref_object(o);
+       if (!po)
+               return TCORE_RETURN_EINVAL;
+
+       if (po->addr) {
+               free(po->addr);
+               po->addr = NULL;
+       }
+
+       if (addr) {
+               po->addr = g_strdup(addr);
+               tcore_context_set_ipv4_atoi(po->ip_v4.s, addr);
+       }
+
+       return TCORE_RETURN_SUCCESS;
+}
+
 char* tcore_context_get_ipv4_addr(CoreObject *o)
 {
        struct private_object_data *po = NULL;
@@ -746,6 +672,35 @@ char* tcore_context_get_ipv4_addr(CoreObject *o)
        return tcore_util_get_string_by_ip4type(po->ip_v4);
 }
 
+TReturn tcore_context_set_ipv4_dns(CoreObject *o, const char *dns1, const char *dns2)
+{
+       struct private_object_data *po = NULL;
+
+       CORE_OBJECT_CHECK_RETURN(o, CORE_OBJECT_TYPE_PS_CONTEXT, TCORE_RETURN_EINVAL);
+
+       po = tcore_object_ref_object(o);
+       if (!po)
+               return TCORE_RETURN_EINVAL;
+
+       g_free(po->dns1);
+       po->dns1 = NULL;
+
+       g_free(po->dns2);
+       po->dns2 = NULL;
+
+       if (dns1) {
+               po->dns1 = g_strdup(dns1);
+               tcore_context_set_ipv4_atoi(po->dns_primary_v4.s, dns1);
+       }
+
+       if (dns2) {
+               po->dns2 = g_strdup(dns2);
+               tcore_context_set_ipv4_atoi(po->dns_secondary_v4.s, dns2);
+       }
+
+       return TCORE_RETURN_SUCCESS;
+}
+
 char* tcore_context_get_ipv4_dns1(CoreObject *o)
 {
        struct private_object_data *po = NULL;
@@ -785,6 +740,23 @@ char* tcore_context_get_ipv4_gw(CoreObject *o)
        return tcore_util_get_string_by_ip4type(po->gateway_v4);
 }
 
+TReturn tcore_context_set_ipv4_devname(CoreObject *o, const char *name)
+{
+       struct private_object_data *po = NULL;
+
+       CORE_OBJECT_CHECK_RETURN(o, CORE_OBJECT_TYPE_PS_CONTEXT, TCORE_RETURN_EINVAL);
+
+       po = tcore_object_ref_object(o);
+       if (!po)
+               return TCORE_RETURN_EINVAL;
+
+       if (name) {
+               snprintf(po->devname, DEVNAME_LEN_MAX, "%s", name);
+       }
+
+       return TCORE_RETURN_SUCCESS;
+}
+
 char* tcore_context_get_ipv4_devname(CoreObject *o)
 {
        struct private_object_data *po = NULL;
index 5124ec998c9996b1460bf22ee1cc090e8b4fd6f0..d4853b16b5ec787334688bcdb81599c346df648b 100755 (executable)
--- a/src/mux.c
+++ b/src/mux.c
@@ -201,7 +201,6 @@ static void tcore_cmux_channel_init(CMUX_Channels channel_id);
 static void tcore_cmux_close_channel(int channel_id);
 static unsigned char* tcore_encode_cmux_frame(unsigned char *data, int length, int channel_id, int frame_type, unsigned char EA_bit, unsigned char CR_bit, unsigned char PF_bit, int *out_data_len);
 static TReturn tcore_cmux_send_data(int data_len, unsigned char *data);
-
 static TReturn tcore_cmux_hal_power(TcoreHal *h, gboolean flag)
 {
        TcorePlugin *p = NULL;