Add some types for cellular pdn 71/66271/4 accepted/tizen/common/20160429.170658 accepted/tizen/ivi/20160501.121737 accepted/tizen/mobile/20160501.120843 accepted/tizen/tv/20160501.121243 accepted/tizen/wearable/20160501.121451 submit/tizen/20160429.065012
authorhyunuktak <hyunuk.tak@samsung.com>
Mon, 18 Apr 2016 06:56:23 +0000 (15:56 +0900)
committerhyunuktak <hyunuk.tak@samsung.com>
Wed, 20 Apr 2016 06:53:02 +0000 (15:53 +0900)
Change-Id: I8e629102055c78a8a6f269ae9b64c18a77a9efb9
Signed-off-by: hyunuktak <hyunuk.tak@samsung.com>
include/profile/network-pm-intf.h
packaging/libnet-client.spec
src/include/network-internal.h
src/network-dbus-request.c
src/network-profile-intf.c

index 5bd302e3d1e672196232676984462af118a7f95a..29f6c3909ba499c8a5f683b3458379c6fed1eed9 100755 (executable)
@@ -65,6 +65,18 @@ typedef enum
        NET_PDP_TYPE_UMTS,
 } net_pdp_type_t;
 
+/**
+ * @enum net_pdn_type_e
+ * This enumeration defines the pdn type.
+ */
+typedef enum
+{
+       NET_PDN_TYPE_UNKNOWN    = 0x00,
+       NET_PDN_TYPE_IPV4               = 0x02,
+       NET_PDN_TYPE_IPV6               = 0x05,
+       NET_PDN_TYPE_IPV4_IPV6  = 0x06,
+} net_pdn_type_e;
+
 /**
  * @enum net_state_type_t
  * This enumeration defines the service state type.
@@ -117,6 +129,10 @@ typedef struct
 {
        /** Specifies a protocol type */
        net_pdp_type_t  ProtocolType;
+       /** Specifies a pdn type */
+       net_pdn_type_e  PdnType;
+       /** Specifies a roam pdn type */
+       net_pdn_type_e  RoamPdnType;
        /** Specifies a service type(Internet, MMS, WAP, etc...) */
        net_service_type_t ServiceType;
        /** Network Access Point Name */
index 923f7d66d43f11ea9180752c7fcfea915b01c183..7a78c06bb58cbd0420a2c749ba1dfc983f968006 100755 (executable)
@@ -1,6 +1,6 @@
 Name:          libnet-client
 Summary:       Network Client library (Shared library)
-Version:       1.1.49
+Version:       1.1.50
 Release:       1
 Group:         System/Network
 License:       Flora-1.1
index 8cbe4694f2e58fdfd36d8b526ef2b189fd75d0dd..54a5bd6b82a580bd3336d097b7a3bb2d6eb28cb3 100755 (executable)
@@ -246,6 +246,10 @@ typedef struct
        char ProfileName[NET_PROFILE_NAME_LEN_MAX+1];
        /** Service type of this profile context */
        net_service_type_t ServiceType;
+       /** Pdn type of this profile context */
+       net_pdn_type_e PdnType;
+       /** Roam Pdn type of this profile context */
+       net_pdn_type_e RoamPdnType;
        /** Network Access Point Name */
        char Apn[NET_PDP_APN_LEN_MAX+1];
        /** Authentication info of the PDP profile */
index 4bbaa318ddb516521d49e5c5647bafa9ec4096e4..dcb6b560c8794270f2916843475b3c97ffe70f0f 100755 (executable)
@@ -586,7 +586,7 @@ static char *__net_make_group_name(const char *ssid,
                return NULL;
 
        if (NULL != ssid) {
-               for (i = 0; i < ssid_len; i++) 
+               for (i = 0; i < ssid_len; i++)
                        g_snprintf(ssid_hex + i * 2, 3, "%02x", ssid[i]);
        } else {
                g_snprintf(ssid_hex, strlen(hidden_str) + 1, "%s", hidden_str);
@@ -1866,7 +1866,11 @@ int _net_dbus_add_pdp_profile(net_profile_info_t *prof_info)
        const char *auth_id = "auth_id";
        const char *apn = "apn";
        const char *keyword = "profile_name";
+       const char *pdp_protocol = "pdp_protocol";
+       const char *roam_pdp_protocol = "roam_pdp_protocol";
 
+       char buff_pdn_type[10] = "";
+       char buff_roam_pdn_type[10] = "";
        char buff_svc_type[10] = "";
        char buff_auth_type[10] = "";
        char *temp_ptr = NULL;
@@ -1940,6 +1944,26 @@ int _net_dbus_add_pdp_profile(net_profile_info_t *prof_info)
                g_variant_builder_add(builder, "{ss}", apn, temp_ptr);
        }
 
+       if (prof_info->ProfileInfo.Pdp.PdnType == NET_PDN_TYPE_IPV4 ||
+               prof_info->ProfileInfo.Pdp.PdnType == NET_PDN_TYPE_IPV6 ||
+           prof_info->ProfileInfo.Pdp.PdnType == NET_PDN_TYPE_IPV4_IPV6) {
+               g_snprintf(buff_pdn_type, 10, "%d",
+                                               prof_info->ProfileInfo.Pdp.PdnType);
+               temp_ptr = buff_pdn_type;
+
+               g_variant_builder_add(builder, "{ss}", pdp_protocol, temp_ptr);
+       }
+
+       if (prof_info->ProfileInfo.Pdp.RoamPdnType == NET_PDN_TYPE_IPV4 ||
+               prof_info->ProfileInfo.Pdp.RoamPdnType == NET_PDN_TYPE_IPV6 ||
+           prof_info->ProfileInfo.Pdp.RoamPdnType == NET_PDN_TYPE_IPV4_IPV6) {
+               g_snprintf(buff_roam_pdn_type, 10, "%d",
+                                               prof_info->ProfileInfo.Pdp.RoamPdnType);
+               temp_ptr = buff_roam_pdn_type;
+
+               g_variant_builder_add(builder, "{ss}", roam_pdp_protocol, temp_ptr);
+       }
+
        if (strlen(prof_info->ProfileInfo.Pdp.Keyword) > 0) {
                temp_ptr = prof_info->ProfileInfo.Pdp.Keyword;
 
@@ -2025,7 +2049,11 @@ int _net_dbus_modify_pdp_profile(net_profile_info_t *prof_info, const char *prof
        const char *default_conn = "default_internet_conn";
        const char *hidden = "hidden";
        const char *editable = "editable";
+       const char *pdp_protocol = "pdp_protocol";
+       const char *roam_pdp_protocol = "roam_pdp_protocol";
 
+       char buff_pdn_type[10] = "";
+       char buff_roam_pdn_type[10] = "";
        char buff_svc_type[10] = "";
        char buff_auth_type[10] = "";
        char *temp_ptr = NULL;
@@ -2088,6 +2116,26 @@ int _net_dbus_modify_pdp_profile(net_profile_info_t *prof_info, const char *prof
                g_variant_builder_add(builder, "{ss}", apn, temp_ptr);
        }
 
+       if (prof_info->ProfileInfo.Pdp.PdnType == NET_PDN_TYPE_IPV4 ||
+               prof_info->ProfileInfo.Pdp.PdnType == NET_PDN_TYPE_IPV6 ||
+           prof_info->ProfileInfo.Pdp.PdnType == NET_PDN_TYPE_IPV4_IPV6) {
+               g_snprintf(buff_pdn_type, 10, "%d",
+                                               prof_info->ProfileInfo.Pdp.PdnType);
+               temp_ptr = buff_pdn_type;
+
+               g_variant_builder_add(builder, "{ss}", pdp_protocol, temp_ptr);
+       }
+
+       if (prof_info->ProfileInfo.Pdp.RoamPdnType == NET_PDN_TYPE_IPV4 ||
+               prof_info->ProfileInfo.Pdp.RoamPdnType == NET_PDN_TYPE_IPV6 ||
+           prof_info->ProfileInfo.Pdp.RoamPdnType == NET_PDN_TYPE_IPV4_IPV6) {
+               g_snprintf(buff_roam_pdn_type, 10, "%d",
+                                               prof_info->ProfileInfo.Pdp.RoamPdnType);
+               temp_ptr = buff_roam_pdn_type;
+
+               g_variant_builder_add(builder, "{ss}", roam_pdp_protocol, temp_ptr);
+       }
+
        if (strlen(prof_info->ProfileInfo.Pdp.Keyword) > 0) {
                temp_ptr = prof_info->ProfileInfo.Pdp.Keyword;
 
index 04f5c75a8c66880ab2784a6ee0032d98c1735aee..1d62fbf48f56f438f8b7a83d155105ca20b3a9fd 100755 (executable)
@@ -82,6 +82,8 @@ static int __net_pm_init_profile_info(net_device_t profile_type, net_profile_inf
                ProfInfo->profile_type = NET_DEVICE_CELLULAR;
                ProfInfo->ProfileInfo.Pdp.ProtocolType = NET_PDP_TYPE_NONE;
                ProfInfo->ProfileInfo.Pdp.ServiceType = NET_SERVICE_UNKNOWN;
+               ProfInfo->ProfileInfo.Pdp.PdnType = NET_PDN_TYPE_UNKNOWN;
+               ProfInfo->ProfileInfo.Pdp.RoamPdnType = NET_PDN_TYPE_UNKNOWN;
                ProfInfo->ProfileInfo.Pdp.AuthInfo.AuthType = NET_PDP_AUTH_NONE;
                ProfInfo->ProfileInfo.Pdp.IsStatic = FALSE;
                ProfInfo->ProfileInfo.Pdp.Roaming = FALSE;
@@ -138,6 +140,8 @@ static int __net_telephony_init_profile_info(net_telephony_profile_info_t* ProfI
 
        memset(ProfInfo->ProfileName, '\0', NET_PROFILE_NAME_LEN_MAX+1);
        ProfInfo->ServiceType = NET_SERVICE_UNKNOWN;
+       ProfInfo->PdnType= NET_PDN_TYPE_UNKNOWN;
+       ProfInfo->RoamPdnType= NET_PDN_TYPE_UNKNOWN;
        memset(ProfInfo->Apn, '\0', NET_PDP_APN_LEN_MAX+1);
 
        ProfInfo->AuthInfo.AuthType = NET_PDP_AUTH_NONE;
@@ -203,6 +207,30 @@ static int __net_telephony_get_profile_info(net_profile_name_t* ProfileName, net
                } else if (g_strcmp0(key, "apn") == 0) {
                        if (value != NULL)
                                g_strlcpy(ProfileInfo->Apn, value, NET_PDP_APN_LEN_MAX);
+               } else if (g_strcmp0(key, "pdp_protocol") == 0) {
+                       net_pdn_type_e pdnType = NET_PDN_TYPE_UNKNOWN;
+
+                       if (value != NULL)
+                               pdnType = atoi(value);
+
+                       if (pdnType == NET_PDN_TYPE_IPV4)
+                               ProfileInfo->PdnType = NET_PDN_TYPE_IPV4;
+                       else if (pdnType == NET_PDN_TYPE_IPV6)
+                               ProfileInfo->PdnType = NET_PDN_TYPE_IPV6;
+                       else if (pdnType == NET_PDN_TYPE_IPV4_IPV6)
+                               ProfileInfo->PdnType = NET_PDN_TYPE_IPV4_IPV6;
+               } else if (g_strcmp0(key, "roam_pdp_protocol") == 0) {
+                       net_pdn_type_e roamPdnType = NET_PDN_TYPE_UNKNOWN;
+
+                       if (value != NULL)
+                               roamPdnType = atoi(value);
+
+                       if (roamPdnType == NET_PDN_TYPE_IPV4)
+                               ProfileInfo->RoamPdnType = NET_PDN_TYPE_IPV4;
+                       else if (roamPdnType == NET_PDN_TYPE_IPV6)
+                               ProfileInfo->RoamPdnType = NET_PDN_TYPE_IPV6;
+                       else if (roamPdnType == NET_PDN_TYPE_IPV4_IPV6)
+                               ProfileInfo->RoamPdnType = NET_PDN_TYPE_IPV4_IPV6;
                } else if (g_strcmp0(key, "auth_type") == 0) {
                        net_auth_type_t authType = NET_PDP_AUTH_NONE;
 
@@ -1500,6 +1528,8 @@ static int __net_extract_mobile_info(GVariantIter *array, net_profile_info_t *Pr
                                                telephony_profinfo.HomeURL, NET_HOME_URL_LEN_MAX);
 
                        ProfInfo->ProfileInfo.Pdp.AuthInfo.AuthType = telephony_profinfo.AuthInfo.AuthType;
+                       ProfInfo->ProfileInfo.Pdp.PdnType = telephony_profinfo.PdnType;
+                       ProfInfo->ProfileInfo.Pdp.RoamPdnType = telephony_profinfo.RoamPdnType;
 
                        if (strlen(telephony_profinfo.AuthInfo.UserName) > 0)
                                g_strlcpy(ProfInfo->ProfileInfo.Pdp.AuthInfo.UserName,