/*
- * Copyright 2012 Samsung Electronics Co., Ltd
+ * Network Client Library
*
- * Licensed under the Flora License, Version 1.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.tizenopensource.org/license
+* Copyright 2012 Samsung Electronics Co., Ltd
+
+* Licensed under the Flora License, Version 1.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+
+* http://www.tizenopensource.org/license
+
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
*/
DBusMessageIter* dict, network_services_list_t* service_info);
static int __net_extract_mobile_services(DBusMessage* message, DBusMessageIter* dict,
network_services_list_t* service_info, net_service_type_t network_type);
+static int __net_extract_ethernet_services(DBusMessage* message,
+ DBusMessageIter* dict, network_services_list_t* service_info);
static int __net_extract_services(DBusMessage *message, net_device_t device_type,
net_profile_info_t** profile_info, int* profile_count);
static int __net_extract_ip(DBusMessageIter *iter, net_addr_t *ipAddr);
static int __net_extract_common_info(const char *key, DBusMessageIter *variant, net_profile_info_t* ProfInfo);
static int __net_extract_mobile_info(DBusMessageIter *array, net_profile_info_t* ProfInfo);
+static int __net_extract_ethernet_info(DBusMessageIter *array, net_profile_info_t* ProfInfo);
static int __net_telephony_search_pdp_profile(char* ProfileName, net_profile_name_t* PdpProfName);
static int __net_telephony_modify_profile(const char* ProfileName,
net_profile_info_t* ProfInfo, net_profile_info_t* exProfInfo);
net_dev_info_t* net_info = NULL;
if (ProfInfo == NULL ||
- (profile_type != NET_DEVICE_WIFI && profile_type != NET_DEVICE_CELLULAR)) {
+ (profile_type != NET_DEVICE_WIFI &&
+ profile_type != NET_DEVICE_CELLULAR &&
+ profile_type != NET_DEVICE_ETHERNET)) {
NETWORK_LOG(NETWORK_ERROR, "Error!!! Invalid Parameter\n");
return NET_ERR_INVALID_PARAM;
}
ProfInfo->ProfileInfo.Pdp.SetupRequired = FALSE;
net_info = &(ProfInfo->ProfileInfo.Pdp.net_info);
+ } else if(profile_type == NET_DEVICE_ETHERNET) {
+ net_info = &(ProfInfo->ProfileInfo.Ethernet.net_info);
}
memset(net_info->ProfileName, '\0', NET_PROFILE_NAME_LEN_MAX+1);
return NET_ERR_INVALID_PARAM;
}
- char request[] = TELEPHONY_PROFILE_INTERFACE ".GetProfile";
- char* param_array[] = {NULL, NULL, NULL};
-
- param_array[0] = ProfileName->ProfileName;
- param_array[1] = request;
+ result = _net_invoke_dbus_method(TELEPHONY_SERVCE, ProfileName->ProfileName,
+ TELEPHONY_PROFILE_INTERFACE, "GetProfile", NULL, &Error);
- NETWORK_LOG(NETWORK_HIGH, "Requesting [%s %s]\n",
- param_array[0],
- param_array[1]);
-
- if ((Error = _net_send_dbus_request(TELEPHONY_SERVCE, param_array, &result)) != NET_ERR_NONE) {
- NETWORK_LOG(NETWORK_ERROR, "Error!!! _net_send_dbus_request failed\n");
+ if (result == NULL) {
+ NETWORK_LOG(NETWORK_ERROR, "Error!!! _net_invoke_dbus_method failed\n");
__NETWORK_FUNC_EXIT__;
return Error;
}
DBusMessageIter iter, array;
int count = 0;
- char request[] = TELEPHONY_MASTER_INTERFACE ".GetProfileList";
- char path[] = TELEPHONY_MASTER_PATH;
- char* param_array[] = {NULL, NULL, NULL};
-
- param_array[0] = path;
- param_array[1] = request;
-
- NETWORK_LOG(NETWORK_HIGH, "Requesting [%s %s]\n",
- param_array[0],
- param_array[1]);
-
- Error = _net_send_dbus_request(TELEPHONY_SERVCE, param_array, &result);
+ result = _net_invoke_dbus_method(TELEPHONY_SERVCE, TELEPHONY_MASTER_PATH,
+ TELEPHONY_MASTER_INTERFACE, "GetProfileList", NULL, &Error);
- if (Error != NET_ERR_NONE) {
- NETWORK_LOG(NETWORK_ERROR, "Error!!! _net_send_dbus_request failed\n");
+ if (result == NULL) {
+ NETWORK_LOG(NETWORK_ERROR, "Error!!! _net_invoke_dbus_method failed\n");
__NETWORK_FUNC_EXIT__;
return Error;
}
dbus_message_iter_init(result, &iter);
if (dbus_message_iter_get_arg_type(&iter) != DBUS_TYPE_ARRAY) {
- NETWORK_LOG(NETWORK_HIGH, "There is no profiles\n");
+ NETWORK_LOG(NETWORK_HIGH, "There is no profiles\n");
*ProfileCount = 0;
dbus_message_unref(result);
__NETWORK_FUNC_EXIT__;
int count = 0;
int i = 0;
- __NETWORK_FUNC_ENTER__;
+ __NETWORK_FUNC_ENTER__;
- if(message == NULL || dict == NULL || service_info == NULL)
- {
- NETWORK_LOG(NETWORK_ERROR, "Error!!! Invalid prarameter \n");
+ if (message == NULL || dict == NULL || service_info == NULL) {
+ NETWORK_LOG(NETWORK_ERROR, "Error!!! Invalid parameter \n");
__NETWORK_FUNC_EXIT__;
return NET_ERR_INVALID_PARAM;
}
-
- while(dbus_message_iter_get_arg_type(dict) == DBUS_TYPE_DICT_ENTRY)
- {
+
+ while (dbus_message_iter_get_arg_type(dict) == DBUS_TYPE_DICT_ENTRY) {
DBusMessageIter keyValue, array, value;
const char *key = NULL;
const char *objPath = NULL;
dbus_message_iter_recurse(dict, &keyValue);
dbus_message_iter_get_basic(&keyValue, &key);
- if(strcmp(key, "Services") == 0)
- {
+ if (strcmp(key, "Services") == 0) {
dbus_message_iter_next(&keyValue);
dbus_message_iter_recurse(&keyValue, &array);
- if(dbus_message_iter_get_arg_type(&array) != DBUS_TYPE_ARRAY)
- {
+
+ if (dbus_message_iter_get_arg_type(&array) != DBUS_TYPE_ARRAY) {
NETWORK_LOG(NETWORK_EXCEPTION, "Error!!! Can't get service list\n");
__NETWORK_FUNC_EXIT__;
return NET_ERR_NO_SERVICE;
}
-
+
dbus_message_iter_recurse(&array, &value);
- if(dbus_message_iter_get_arg_type(&value) != DBUS_TYPE_OBJECT_PATH)
- {
+
+ if (dbus_message_iter_get_arg_type(&value) != DBUS_TYPE_OBJECT_PATH) {
NETWORK_LOG(NETWORK_EXCEPTION, "Error!!! Can't get service list\n");
__NETWORK_FUNC_EXIT__;
return NET_ERR_NO_SERVICE;
}
- while(dbus_message_iter_get_arg_type(&value) == DBUS_TYPE_OBJECT_PATH)
- {
+ while (dbus_message_iter_get_arg_type(&value) == DBUS_TYPE_OBJECT_PATH) {
dbus_message_iter_get_basic(&value, &objPath);
- if(strstr(objPath, "wifi_") != NULL)
- {
+ if (g_str_has_prefix(objPath, CONNMAN_WIFI_SERVICE_PROFILE_PREFIX) == TRUE) {
service_info->ProfileName[count] = (char*)malloc(NET_PROFILE_NAME_LEN_MAX+1);
- if(service_info->ProfileName[count] == NULL)
- {
+
+ if (service_info->ProfileName[count] == NULL) {
NETWORK_LOG(NETWORK_EXCEPTION,
"Error!!! Failed to allocate memory\n");
- for(i = 0;i < count;i++)
+ for (i = 0; i < count; i++)
NET_MEMFREE(service_info->ProfileName[i]);
-
- __NETWORK_FUNC_EXIT__;
+
+ __NETWORK_FUNC_EXIT__;
return NET_ERR_UNKNOWN;
}
service_info->num_of_services = count;
return NET_ERR_NONE;
- }
+ }
dbus_message_iter_next(dict);
- }
+ }
__NETWORK_FUNC_EXIT__;
__NETWORK_FUNC_ENTER__;
if (message == NULL || dict == NULL || service_info == NULL) {
- NETWORK_LOG(NETWORK_ERROR, "Error!!! Invalid prarameter \n");
+ NETWORK_LOG(NETWORK_ERROR, "Error!!! Invalid parameter \n");
__NETWORK_FUNC_EXIT__;
return NET_ERR_INVALID_PARAM;
}
while (dbus_message_iter_get_arg_type(&value) == DBUS_TYPE_OBJECT_PATH) {
dbus_message_iter_get_basic(&value, &objPath);
- if (strstr(objPath, "cellular_") != NULL) {
+ if (g_str_has_prefix(objPath, CONNMAN_CELLULAR_SERVICE_PROFILE_PREFIX) == TRUE) {
found = FALSE;
suffix = strrchr(objPath, '_');
NETWORK_LOG(NETWORK_EXCEPTION,
"Error!!! Failed to allocate memory\n");
- for (i = 0;i < count;i++)
+ for (i = 0; i < count; i++)
NET_MEMFREE(service_info->ProfileName[i]);
__NETWORK_FUNC_EXIT__;
return NET_ERR_NONE;
}
+static int __net_extract_ethernet_services(DBusMessage* message,
+ DBusMessageIter* dict, network_services_list_t* service_info)
+{
+ int count = 0;
+ int i = 0;
+
+ __NETWORK_FUNC_ENTER__;
+
+ if (message == NULL || dict == NULL || service_info == NULL) {
+ NETWORK_LOG(NETWORK_ERROR, "Error!!! Invalid parameter \n");
+ __NETWORK_FUNC_EXIT__;
+ return NET_ERR_INVALID_PARAM;
+ }
+
+ while (dbus_message_iter_get_arg_type(dict) == DBUS_TYPE_DICT_ENTRY) {
+ DBusMessageIter keyValue, array, value;
+ const char *key = NULL;
+ const char *objPath = NULL;
+
+ dbus_message_iter_recurse(dict, &keyValue);
+ dbus_message_iter_get_basic(&keyValue, &key);
+
+ if (strcmp(key, "Services") == 0) {
+ dbus_message_iter_next(&keyValue);
+ dbus_message_iter_recurse(&keyValue, &array);
+
+ if (dbus_message_iter_get_arg_type(&array) != DBUS_TYPE_ARRAY) {
+ NETWORK_LOG(NETWORK_EXCEPTION, "Error!!! Can't get service list\n");
+ __NETWORK_FUNC_EXIT__;
+ return NET_ERR_NO_SERVICE;
+ }
+
+ dbus_message_iter_recurse(&array, &value);
+
+ if (dbus_message_iter_get_arg_type(&value) != DBUS_TYPE_OBJECT_PATH) {
+ NETWORK_LOG(NETWORK_EXCEPTION, "Error!!! Can't get service list\n");
+ __NETWORK_FUNC_EXIT__;
+ return NET_ERR_NO_SERVICE;
+ }
+
+ while (dbus_message_iter_get_arg_type(&value) == DBUS_TYPE_OBJECT_PATH) {
+ dbus_message_iter_get_basic(&value, &objPath);
+
+ if (g_str_has_prefix(objPath, CONNMAN_ETHERNET_SERVICE_PROFILE_PREFIX) == TRUE) {
+ service_info->ProfileName[count] = (char*)malloc(NET_PROFILE_NAME_LEN_MAX+1);
+
+ if (service_info->ProfileName[count] == NULL) {
+ NETWORK_LOG(NETWORK_EXCEPTION,
+ "Error!!! Failed to allocate memory\n");
+
+ for(i = 0; i < count; i++)
+ NET_MEMFREE(service_info->ProfileName[i]);
+
+ __NETWORK_FUNC_EXIT__;
+ return NET_ERR_UNKNOWN;
+ }
+
+ g_strlcpy(service_info->ProfileName[count], objPath, NET_PROFILE_NAME_LEN_MAX);
+
+ count++;
+ }
+
+ dbus_message_iter_next(&value);
+ }
+
+ service_info->num_of_services = count;
+ return NET_ERR_NONE;
+ }
+
+ dbus_message_iter_next(dict);
+ }
+
+ __NETWORK_FUNC_EXIT__;
+
+ return NET_ERR_NONE;
+}
+
static int __net_extract_services(DBusMessage *message, net_device_t device_type,
net_profile_info_t** profile_info, int* profile_count)
{
case NET_DEVICE_CELLULAR :
Error = __net_extract_mobile_services(message, &dict, &service_info, NET_SERVICE_UNKNOWN);
break;
+ case NET_DEVICE_ETHERNET :
+ Error = __net_extract_ethernet_services(message, &dict, &service_info);
+ break;
default :
__NETWORK_FUNC_EXIT__;
return NET_ERR_NOT_SUPPORTED;
net_info = &(ProfInfo->ProfileInfo.Pdp.net_info);
} else if (ProfInfo->profile_type == NET_DEVICE_WIFI) {
net_info = &(ProfInfo->ProfileInfo.Wlan.net_info);
+ } else if (ProfInfo->profile_type == NET_DEVICE_ETHERNET) {
+ net_info = &(ProfInfo->ProfileInfo.Ethernet.net_info);
} else {
NETWORK_LOG(NETWORK_ERROR,
"Error!!! Invalid Profile type. [%d]\n", ProfInfo->profile_type);
return Error;
}
+static wlan_eap_type_t __convert_eap_type_from_string(const char *eap_type)
+{
+ if (eap_type == NULL)
+ return WLAN_SEC_EAP_TYPE_PEAP;
+ else if (g_str_equal(eap_type, "peap") == TRUE)
+ return WLAN_SEC_EAP_TYPE_PEAP;
+ else if (g_str_equal(eap_type, "tls") == TRUE)
+ return WLAN_SEC_EAP_TYPE_TLS;
+ else if (g_str_equal(eap_type, "ttls") == TRUE)
+ return WLAN_SEC_EAP_TYPE_TTLS;
+ else if (g_str_equal(eap_type, "sim") == TRUE)
+ return WLAN_SEC_EAP_TYPE_SIM;
+ else if (g_str_equal(eap_type, "aka") == TRUE)
+ return WLAN_SEC_EAP_TYPE_AKA;
+ else
+ return WLAN_SEC_EAP_TYPE_PEAP;
+}
+
+static wlan_eap_auth_type_t __convert_eap_auth_from_string(const char *eap_auth)
+{
+ if (eap_auth == NULL)
+ return WLAN_SEC_EAP_AUTH_NONE;
+ else if (g_str_equal(eap_auth, "NONE") == TRUE)
+ return WLAN_SEC_EAP_AUTH_NONE;
+ else if (g_str_equal(eap_auth, "PAP") == TRUE)
+ return WLAN_SEC_EAP_AUTH_PAP;
+ else if (g_str_equal(eap_auth, "MSCHAP") == TRUE)
+ return WLAN_SEC_EAP_AUTH_MSCHAP;
+ else if (g_str_equal(eap_auth, "MSCHAPV2") == TRUE)
+ return WLAN_SEC_EAP_AUTH_MSCHAPV2;
+ else if (g_str_equal(eap_auth, "GTC") == TRUE)
+ return WLAN_SEC_EAP_AUTH_GTC;
+ else if (g_str_equal(eap_auth, "MD5") == TRUE)
+ return WLAN_SEC_EAP_AUTH_MD5;
+ else
+ return WLAN_SEC_EAP_AUTH_NONE;
+}
+
static int __net_extract_wifi_info(DBusMessageIter *array, net_profile_info_t* ProfInfo)
{
__NETWORK_FUNC_ENTER__;
Wlan->frequency = (unsigned int)frequency;
+ } else if (g_str_equal(key, "EAP") == TRUE) {
+ dbus_message_iter_get_basic(&variant, &value);
+
+ if (value != NULL)
+ Wlan->security_info.authentication.eap.eap_type =
+ __convert_eap_type_from_string(value);
+
+ } else if (g_str_equal(key, "Phase2") == TRUE) {
+ dbus_message_iter_get_basic(&variant, &value);
+
+ if (value != NULL)
+ Wlan->security_info.authentication.eap.eap_auth =
+ __convert_eap_auth_from_string(value);
+
+ } else if (g_str_equal(key, "Identity") == TRUE) {
+ dbus_message_iter_get_basic(&variant, &value);
+
+ if (value != NULL)
+ g_strlcpy(Wlan->security_info.authentication.eap.username,
+ value, NETPM_WLAN_USERNAME_LEN+1);
+
+ } else if (g_str_equal(key, "Password") == TRUE) {
+ dbus_message_iter_get_basic(&variant, &value);
+
+ if (value != NULL)
+ g_strlcpy(Wlan->security_info.authentication.eap.password,
+ value, NETPM_WLAN_PASSWORD_LEN+1);
+
+ } else if (g_str_equal(key, "CACertFile") == TRUE) {
+ dbus_message_iter_get_basic(&variant, &value);
+
+ if (value != NULL)
+ g_strlcpy(Wlan->security_info.authentication.eap.ca_cert_filename,
+ value, NETPM_WLAN_CA_CERT_FILENAME_LEN+1);
+
+ } else if (g_str_equal(key, "ClientCertFile") == TRUE) {
+ dbus_message_iter_get_basic(&variant, &value);
+
+ if (value != NULL)
+ g_strlcpy(Wlan->security_info.authentication.eap.client_cert_filename,
+ value, NETPM_WLAN_CLIENT_CERT_FILENAME_LEN+1);
+
+ } else if (g_str_equal(key, "PrivateKeyFile") == TRUE) {
+ dbus_message_iter_get_basic(&variant, &value);
+
+ if (value != NULL)
+ g_strlcpy(Wlan->security_info.authentication.eap.private_key_filename,
+ value, NETPM_WLAN_PRIVATE_KEY_FILENAME_LEN+1);
+
+ } else if (g_str_equal(key, "PrivateKeyPassphrase") == TRUE) {
+ dbus_message_iter_get_basic(&variant, &value);
+
+ if (value != NULL)
+ g_strlcpy(Wlan->security_info.authentication.eap.private_key_passwd,
+ value, NETPM_WLAN_PRIVATE_KEY_PASSWD_LEN+1);
+
} else {
__net_extract_common_info(key, &variant, ProfInfo);
}
{
net_err_t Error = NET_ERR_NONE;
- __NETWORK_FUNC_ENTER__;
+ __NETWORK_FUNC_ENTER__;
while (dbus_message_iter_get_arg_type(array) == DBUS_TYPE_DICT_ENTRY) {
DBusMessageIter entry, variant;
return Error;
}
+static int __net_extract_ethernet_info(DBusMessageIter *array, net_profile_info_t* ProfInfo)
+{
+ net_err_t Error = NET_ERR_NONE;
+
+ __NETWORK_FUNC_ENTER__;
+
+ while (dbus_message_iter_get_arg_type(array) == DBUS_TYPE_DICT_ENTRY) {
+ DBusMessageIter entry, variant;
+ const char *key = NULL;
+
+ dbus_message_iter_recurse(array, &entry);
+ dbus_message_iter_get_basic(&entry, &key);
+
+ dbus_message_iter_next(&entry);
+ dbus_message_iter_recurse(&entry, &variant);
+
+ __net_extract_common_info(key, &variant, ProfInfo);
+
+ dbus_message_iter_next(array);
+ }
+
+ __NETWORK_FUNC_EXIT__;
+
+ return Error;
+}
+
static int __net_extract_service_info(const char* ProfileName, DBusMessage *message, net_profile_info_t* ProfInfo)
{
__NETWORK_FUNC_ENTER__;
profileType = NET_DEVICE_WIFI;
else if (strcmp(temp, "cellular") == 0)
profileType = NET_DEVICE_CELLULAR;
+ else if (strcmp(temp, "ethernet") == 0)
+ profileType = NET_DEVICE_ETHERNET;
break;
}
ProfileName, NET_PROFILE_NAME_LEN_MAX);
Error = __net_extract_mobile_info(&array, ProfInfo);
+ } else if (profileType == NET_DEVICE_ETHERNET) {
+ if ((Error = __net_pm_init_profile_info(NET_DEVICE_ETHERNET, ProfInfo)) != NET_ERR_NONE) {
+ NETWORK_LOG(NETWORK_EXCEPTION, "Error!!! Can't init profile\n");
+ __NETWORK_FUNC_EXIT__;
+ return Error;
+ }
+
+ ProfInfo->profile_type = NET_DEVICE_ETHERNET;
+ g_strlcpy(ProfInfo->ProfileName, ProfileName, NET_PROFILE_NAME_LEN_MAX);
+ g_strlcpy(ProfInfo->ProfileInfo.Ethernet.net_info.ProfileName,
+ ProfileName, NET_PROFILE_NAME_LEN_MAX);
+
+ Error = __net_extract_ethernet_info(&array, ProfInfo);
} else {
NETWORK_LOG(NETWORK_EXCEPTION, "Error!!! Not supported profile type\n");
__NETWORK_FUNC_EXIT__;
__NETWORK_FUNC_ENTER__;
net_err_t Error = NET_ERR_NONE;
- DBusConnection* conn = NULL;
DBusMessage *message = NULL;
- conn = dbus_bus_get(DBUS_BUS_SYSTEM, NULL);
-
- if (conn == NULL) {
- NETWORK_LOG(NETWORK_EXCEPTION, "Error!!! Can't get on system bus\n");
- __NETWORK_FUNC_EXIT__;
- return NET_ERR_UNKNOWN;
- }
-
- message = _net_invoke_dbus_method(CONNMAN_SERVICE, conn, ProfileName,
- CONNMAN_SERVICE_INTERFACE, "GetProperties", &Error);
+ message = _net_invoke_dbus_method(CONNMAN_SERVICE, ProfileName,
+ CONNMAN_SERVICE_INTERFACE, "GetProperties", NULL, &Error);
if (message == NULL) {
- NETWORK_LOG(NETWORK_ERROR,
- "Error!!! Failed to get service(profile) information\n");
+ NETWORK_LOG(NETWORK_ERROR, "Error!!! Failed to get service(profile) information\n");
goto done;
}
Error = __net_extract_service_info(ProfileName, message, ProfInfo);
-
- dbus_message_unref(message);
+ dbus_message_unref(message);
done:
- dbus_connection_unref(conn);
-
__NETWORK_FUNC_EXIT__;
return Error;
}
-
static int __net_set_profile_property(char* path, char* key, char* value)
{
__NETWORK_FUNC_ENTER__;
net_err_t Error = NET_ERR_NONE;
+ DBusMessage *message = NULL;
- char request[] = CONNMAN_SERVICE_INTERFACE ".SetProperty";
- char* param_array[] = {NULL, NULL, NULL, NULL, NULL};
-
- param_array[0] = path;
- param_array[1] = request;
- param_array[2] = key;
- param_array[3] = value;
-
- NETWORK_LOG(NETWORK_HIGH, "Requesting [%s %s %s %s]\n",
- param_array[0],
- param_array[1],
- param_array[2],
- param_array[3]);
-
- Error = _net_send_dbus_request(CONNMAN_SERVICE, param_array, NULL);
- if (Error != NET_ERR_NONE) {
- NETWORK_LOG(NETWORK_ERROR, "Error!!! _net_send_dbus_request failed\n");
+ char* param_array[] = {NULL, NULL, NULL};
+
+ param_array[0] = key;
+ param_array[1] = value;
+
+ message = _net_invoke_dbus_method(CONNMAN_SERVICE, path,
+ CONNMAN_SERVICE_INTERFACE, "SetProperty", param_array, &Error);
+
+ if (message == NULL) {
+ NETWORK_LOG(NETWORK_ERROR, "Error!!! _net_invoke_dbus_method failed\n");
__NETWORK_FUNC_EXIT__;
return Error;
}
+ dbus_message_unref(message);
__NETWORK_FUNC_EXIT__;
+
return NET_ERR_NONE;
}
__NETWORK_FUNC_ENTER__;
net_err_t Error = NET_ERR_NONE;
- DBusConnection* conn = NULL;
DBusMessage *message = NULL;
- conn = dbus_bus_get(DBUS_BUS_SYSTEM, NULL);
-
- if (conn == NULL) {
- NETWORK_LOG(NETWORK_EXCEPTION, "Error!!! Can't get on system bus\n");
- __NETWORK_FUNC_EXIT__;
- return NET_ERR_UNKNOWN;
- }
-
- message = _net_invoke_dbus_method(CONNMAN_SERVICE, conn, WifiProfName->ProfileName,
- CONNMAN_SERVICE_INTERFACE, "Remove", &Error);
+ message = _net_invoke_dbus_method(CONNMAN_SERVICE, WifiProfName->ProfileName,
+ CONNMAN_SERVICE_INTERFACE, "Remove", NULL, &Error);
if (message == NULL) {
- NETWORK_LOG(NETWORK_ERROR,
- "Error!!! Failed to Remove service(profile)\n");
+ NETWORK_LOG(NETWORK_ERROR, "Error!!! Failed to Remove service(profile)\n");
goto done;
}
dbus_message_unref(message);
done:
- dbus_connection_unref(conn);
-
__NETWORK_FUNC_EXIT__;
return Error;
}
__NETWORK_FUNC_ENTER__;
net_err_t Error = NET_ERR_NONE;
- DBusConnection* conn = NULL;
DBusMessage *message = NULL;
- conn = dbus_bus_get(DBUS_BUS_SYSTEM, NULL);
-
- if (conn == NULL) {
- NETWORK_LOG(NETWORK_EXCEPTION, "Error!!! Can't get on system bus\n");
- __NETWORK_FUNC_EXIT__;
- return NET_ERR_UNKNOWN;
- }
-
- message = _net_invoke_dbus_method(TELEPHONY_SERVCE, conn, PdpProfName->ProfileName,
- TELEPHONY_PROFILE_INTERFACE, "RemoveProfile", &Error);
+ message = _net_invoke_dbus_method(TELEPHONY_SERVCE, PdpProfName->ProfileName,
+ TELEPHONY_PROFILE_INTERFACE, "RemoveProfile", NULL, &Error);
if (message == NULL) {
- NETWORK_LOG(NETWORK_ERROR,
- "Error!!! Failed to Remove service(profile)\n");
+ NETWORK_LOG(NETWORK_ERROR, "Error!!! Failed to Remove service(profile)\n");
goto done;
}
dbus_message_unref(message);
done:
- dbus_connection_unref(conn);
-
__NETWORK_FUNC_EXIT__;
return Error;
}
*device_type = NET_DEVICE_WIFI;
else if (strcmp(objPath, "cellular") == 0)
*device_type = NET_DEVICE_CELLULAR;
+ else if (strcmp(objPath, "ethernet") == 0)
+ *device_type = NET_DEVICE_ETHERNET;
break;
}
const char *objPath = NULL;
if (iter == NULL || profile_name == NULL) {
- NETWORK_LOG(NETWORK_ERROR, "Error!!! Invalid prarameter \n");
+ NETWORK_LOG(NETWORK_ERROR, "Error!!! Invalid parameter \n");
__NETWORK_FUNC_EXIT__;
return NET_ERR_INVALID_PARAM;
}
dbus_message_iter_get_basic(&value, &objPath);
if (device_type == NET_DEVICE_CELLULAR &&
- strstr(objPath, "/cellular_") != NULL) {
-
+ g_str_has_prefix(objPath, CONNMAN_CELLULAR_SERVICE_PROFILE_PREFIX) == TRUE) {
suffix = strrchr(objPath, '_');
- if (strcmp(suffix, net_suffix) == 0) {
+ if (strcmp(suffix, net_suffix) == 0)
goto found;
- }
-
} else if (device_type == NET_DEVICE_WIFI &&
- strstr(objPath, "/wifi_") != NULL)
+ g_str_has_prefix(objPath, CONNMAN_WIFI_SERVICE_PROFILE_PREFIX) == TRUE)
+ goto found;
+ else if (device_type == NET_DEVICE_ETHERNET &&
+ g_str_has_prefix(objPath, CONNMAN_ETHERNET_SERVICE_PROFILE_PREFIX) == TRUE)
goto found;
else
break;
{
__NETWORK_FUNC_ENTER__;
- const char *profileHeader = "/profile/";
+ const char *profileHeader = CONNMAN_PATH"/service/";
int i = 0;
int stringLen = 0;
__NETWORK_FUNC_ENTER__;
net_err_t Error = NET_ERR_NONE;
- DBusConnection* conn = NULL;
DBusMessage *message = NULL;
- conn = dbus_bus_get(DBUS_BUS_SYSTEM, NULL);
- if (conn == NULL) {
- NETWORK_LOG(NETWORK_EXCEPTION,
- "Error!!! Can't get on system bus\n");
- __NETWORK_FUNC_EXIT__;
- return NET_ERR_UNKNOWN;
- }
-
- message = _net_invoke_dbus_method(CONNMAN_SERVICE, conn, CONNMAN_MANAGER_PATH,
- CONNMAN_MANAGER_INTERFACE, "GetProperties", &Error);
+ message = _net_invoke_dbus_method(CONNMAN_SERVICE, CONNMAN_MANAGER_PATH,
+ CONNMAN_MANAGER_INTERFACE, "GetProperties", NULL, &Error);
if (message == NULL) {
- NETWORK_LOG(NETWORK_ERROR,
- "Error!!! Failed to get service(profile) list\n");
- dbus_connection_unref(conn);
+ NETWORK_LOG(NETWORK_ERROR, "Error!!! Failed to get service(profile) list\n");
__NETWORK_FUNC_EXIT__;
return Error;
}
switch (device_type) {
case NET_DEVICE_CELLULAR:
case NET_DEVICE_WIFI:
+ case NET_DEVICE_ETHERNET:
Error = __net_extract_services(message, device_type, profile_info, profile_count);
break;
default :
}
NETWORK_LOG(NETWORK_HIGH, "Error = %d\n", Error);
-
- dbus_message_unref(message);
- dbus_connection_unref(conn);
+ dbus_message_unref(message);
__NETWORK_FUNC_EXIT__;
return Error;
__NETWORK_FUNC_ENTER__;
net_err_t Error = NET_ERR_NONE;
- DBusConnection* conn = NULL;
DBusMessage *message = NULL;
DBusMessageIter iter, dict;
network_services_list_t service_info = {0,};
int i = 0;
- conn = dbus_bus_get(DBUS_BUS_SYSTEM, NULL);
- if (conn == NULL) {
- NETWORK_LOG(NETWORK_EXCEPTION,
- "Error!!! Can't get on system bus\n");
- __NETWORK_FUNC_EXIT__;
- return NET_ERR_UNKNOWN;
- }
-
- message = _net_invoke_dbus_method(CONNMAN_SERVICE, conn, CONNMAN_MANAGER_PATH,
- CONNMAN_MANAGER_INTERFACE, "GetProperties", &Error);
+ message = _net_invoke_dbus_method(CONNMAN_SERVICE, CONNMAN_MANAGER_PATH,
+ CONNMAN_MANAGER_INTERFACE, "GetProperties", NULL, &Error);
if (message == NULL) {
- NETWORK_LOG(NETWORK_ERROR,
- "Error!!! Failed to get service(profile) list\n");
- dbus_connection_unref(conn);
+ NETWORK_LOG(NETWORK_ERROR, "Error!!! Failed to get service(profile) list\n");
__NETWORK_FUNC_EXIT__;
return Error;
}
done:
dbus_message_unref(message);
- dbus_connection_unref(conn);
__NETWORK_FUNC_EXIT__;
return Error;
__NETWORK_FUNC_ENTER__;
net_err_t Error = NET_ERR_NONE;
- DBusConnection* conn = NULL;
DBusMessage *message = NULL;
DBusMessageIter iter;
net_profile_name_t profile_name;
const char *prof_name = NULL;
- conn = dbus_bus_get(DBUS_BUS_SYSTEM, NULL);
- if (conn == NULL) {
- NETWORK_LOG(NETWORK_EXCEPTION,
- "Error!!! Can't get on system bus\n");
- __NETWORK_FUNC_EXIT__;
- return NET_ERR_UNKNOWN;
- }
-
- message = _net_invoke_dbus_method(CONNMAN_SERVICE, conn, CONNMAN_MANAGER_PATH,
- CONNMAN_MANAGER_INTERFACE, "GetProperties", &Error);
+ message = _net_invoke_dbus_method(CONNMAN_SERVICE, CONNMAN_MANAGER_PATH,
+ CONNMAN_MANAGER_INTERFACE, "GetProperties", NULL, &Error);
if (message == NULL) {
- NETWORK_LOG(NETWORK_ERROR,
- "Error!!! Failed to get service(profile) list\n");
- dbus_connection_unref(conn);
+ NETWORK_LOG(NETWORK_ERROR, "Error!!! Failed to get service(profile) list\n");
__NETWORK_FUNC_EXIT__;
return Error;
}
done:
dbus_message_unref(message);
- dbus_connection_unref(conn);
__NETWORK_FUNC_EXIT__;
return Error;
__NETWORK_FUNC_ENTER__;
- if (NetworkInfo.ClientEventCb == NULL) {
+ if (g_atomic_int_get(&NetworkInfo.ref_count) == 0) {
NETWORK_LOG(NETWORK_ERROR, "Error!!! Application was not registered\n");
__NETWORK_FUNC_EXIT__;
return NET_ERR_APP_NOT_REGISTERED;
net_profile_name_t wifi_prof_name;
net_profile_info_t prof_info;
- if (NetworkInfo.ClientEventCb == NULL) {
+ if (g_atomic_int_get(&NetworkInfo.ref_count) == 0) {
NETWORK_LOG(NETWORK_ERROR, "Error!!! Application was not registered\n");
__NETWORK_FUNC_EXIT__;
return NET_ERR_APP_NOT_REGISTERED;
net_err_t Error = NET_ERR_NONE;
- if (NetworkInfo.ClientEventCb == NULL) {
+ if (g_atomic_int_get(&NetworkInfo.ref_count) == 0) {
NETWORK_LOG(NETWORK_ERROR, "Error!!! Application was not registered\n");
__NETWORK_FUNC_EXIT__;
return NET_ERR_APP_NOT_REGISTERED;
net_err_t Error = NET_ERR_NONE;
net_profile_info_t exProfInfo;
- if (NetworkInfo.ClientEventCb == NULL) {
+ if (g_atomic_int_get(&NetworkInfo.ref_count) == 0) {
NETWORK_LOG(NETWORK_ERROR, "Error!!! Application was not registered\n");
__NETWORK_FUNC_EXIT__;
return NET_ERR_APP_NOT_REGISTERED;
return NET_ERR_INVALID_PARAM;
}
- if (NetworkInfo.ClientEventCb == NULL) {
+ if (g_atomic_int_get(&NetworkInfo.ref_count) == 0) {
NETWORK_LOG(NETWORK_ERROR, "Error!!! Application was not registered\n");
__NETWORK_FUNC_EXIT__;
return NET_ERR_APP_NOT_REGISTERED;
}
- if (device_type != NET_DEVICE_CELLULAR && device_type != NET_DEVICE_WIFI) {
+ if (device_type != NET_DEVICE_CELLULAR &&
+ device_type != NET_DEVICE_WIFI &&
+ device_type != NET_DEVICE_ETHERNET) {
NETWORK_LOG(NETWORK_ERROR, "Error!!! Not Supported\n");
__NETWORK_FUNC_EXIT__;
return NET_ERR_NOT_SUPPORTED;