/** Wi-Fi interface WPS Response Event */
NET_EVENT_WIFI_WPS_RSP,
+ /** Set default cellular profile Response Event */
+ NET_EVENT_CELLULAR_SET_DEFAULT_RSP,
} net_event_t;
/**
******************************************************************************************/
int net_set_default_cellular_service_profile(const char *profile_name);
+/*****************************************************************************************/
+/**
+ * This function sets the default profile which provides the given cellular service.
+ *
+ * \par Sync (or) Async:
+ * This is a Asynchronous API.
+ *
+ * \param[in] profile_name Profile Identifier.
+ *
+ * \par Prospective Clients:
+ * External Apps.
+ *
+******************************************************************************************/
+int net_set_default_cellular_service_profile_async(const char *profile_name);
+
/**
* \}
*/
Name: libnet-client
Summary: Network Client library (Shared library)
-Version: 0.1.77_17
+Version: 0.1.77_18
Release: 1
Group: System/Network
License: Flora License
mkdir -p %{buildroot}%{_datadir}/license
cp LICENSE.Flora %{buildroot}%{_datadir}/license/libnet-client
+#Make test app
+cd test
+cp -rf %{buildroot}/usr/lib/ ./
+./build.sh
+cd ..
%files
%manifest libnet-client.manifest
void _net_dbus_clear_pending_call(void);
gboolean __net_dbus_abort_open_request(const char *profile_name);
int _net_dbus_specific_scan_request(const char *ssid);
+int _net_dbus_set_default(const char* profile_name);
#endif /** __NETWORK_SIGNAL_HANDLER_H_ */
NETWORK_REQUEST_TYPE_WIFI_POWER,
NETWORK_REQUEST_TYPE_ENROLL_WPS,
NETWORK_REQUEST_TYPE_SPECIFIC_SCAN,
+ NETWORK_REQUEST_TYPE_SET_DEFAULT,
NETWORK_REQUEST_TYPE_MAX
} network_async_request_type_t;
__NETWORK_FUNC_EXIT__;
}
+static void __net_set_default_reply(DBusPendingCall *call, void *user_data)
+{
+ __NETWORK_FUNC_ENTER__;
+
+ NETWORK_LOG(NETWORK_LOW, "__net_set_default_reply() called\n");
+
+ net_event_info_t event_data = {0,};
+ int rv;
+
+ DBusMessage *reply = dbus_pending_call_steal_reply(call);
+ net_err_t Error = _net_get_error_from_message(reply);
+
+ NETWORK_LOG(NETWORK_ERROR, "Error code : [%d]\n", Error);
+
+ if (request_table[NETWORK_REQUEST_TYPE_SET_DEFAULT].flag == TRUE) {
+ memset(&request_table[NETWORK_REQUEST_TYPE_SET_DEFAULT],
+ 0, sizeof(network_request_table_t));
+ event_data.Event = NET_EVENT_CELLULAR_SET_DEFAULT_RSP;
+
+ if (Error == NET_ERR_NONE) {
+ rv = _net_get_boolean(reply);
+
+ NETWORK_LOG(NETWORK_LOW, "Reply : [%s]\n", rv ? "TRUE" : "FALSE");
+
+ if (rv)
+ event_data.Error = NET_ERR_NONE;
+ else
+ event_data.Error = NET_ERR_UNKNOWN;
+ } else
+ event_data.Error = Error;
+
+ NETWORK_LOG(NETWORK_LOW, "Sending NET_EVENT_CELLULAR_SET_DEFAULT_RSP Error = %s\n",
+ _net_print_error(event_data.Error));
+ _net_client_callback(&event_data);
+ }
+
+ dbus_message_unref(reply);
+ dbus_pending_call_unref(call);
+
+ network_dbus_pending_call_data.is_used = FALSE;
+ network_dbus_pending_call_data.pcall = NULL;
+
+ __NETWORK_FUNC_EXIT__;
+}
+
static char *__net_make_group_name(const char *ssid, const char *net_mode, const char *sec)
{
char *buf;
return Error;
}
+int _net_dbus_set_default(const char* profile_name)
+{
+ __NETWORK_FUNC_ENTER__;
+
+ net_err_t Error = NET_ERR_NONE;
+
+ Error = _net_invoke_dbus_method_nonblock(TELEPHONY_SERVCE,
+ profile_name, TELEPHONY_PROFILE_INTERFACE,
+ "SetDefaultConnection", __net_set_default_reply);
+
+ __NETWORK_FUNC_EXIT__;
+ return Error;
+}
+
int _net_dbus_set_bgscan_mode(net_wifi_background_scan_mode_t mode)
{
__NETWORK_FUNC_ENTER__;
static int __net_wifi_delete_profile(net_profile_name_t* WifiProfName,
wlan_security_mode_type_t sec_mode);
static int __net_telephony_add_profile(net_profile_info_t *ProfInfo, net_service_type_t network_type);
-static int __net_set_default_cellular_service_profile(const char* ProfileName);
+static int __net_set_default_cellular_service_profile_sync(const char* ProfileName);
+static int __net_set_default_cellular_service_profile_async(const char* ProfileName);
/*****************************************************************************
* Global Functions
*****************************************************************************/
extern network_info_t NetworkInfo;
+extern network_request_table_t request_table[NETWORK_REQUEST_TYPE_MAX];
/*****************************************************************************
* Global Variables
return Error;
}
-static int __net_set_default_cellular_service_profile(const char* ProfileName)
+static int __net_set_default_cellular_service_profile_sync(const char* ProfileName)
{
__NETWORK_FUNC_ENTER__;
done:
__NETWORK_FUNC_EXIT__;
+ return Error;
+}
+
+static int __net_set_default_cellular_service_profile_async(const char* ProfileName)
+{
+ __NETWORK_FUNC_ENTER__;
+
+ net_err_t Error = NET_ERR_NONE;
+ net_profile_name_t telephony_profile;
+ char connman_profile[NET_PROFILE_NAME_LEN_MAX+1] = {0,};
+
+ g_strlcpy(connman_profile, ProfileName, NET_PROFILE_NAME_LEN_MAX+1);
+
+ Error = __net_telephony_search_pdp_profile((char*)connman_profile, &telephony_profile);
+ if (Error != NET_ERR_NONE) {
+ NETWORK_LOG(NETWORK_HIGH, "__net_telephony_search_pdp_profile() failed\n");
+ __NETWORK_FUNC_EXIT__;
+ return Error;
+ }
+ Error = _net_dbus_set_default(telephony_profile.ProfileName);
+
+ __NETWORK_FUNC_EXIT__;
return Error;
}
return NET_ERR_INVALID_PARAM;
}
- Error = __net_set_default_cellular_service_profile(profile_name);
+ Error = __net_set_default_cellular_service_profile_sync(profile_name);
if (Error != NET_ERR_NONE) {
NETWORK_LOG(NETWORK_ERROR,
"Error!!! failed to set default cellular service(profile). Error [%s]\n",
return NET_ERR_NONE;
}
+EXPORT_API int net_set_default_cellular_service_profile_async(const char *profile_name)
+{
+ net_err_t Error = NET_ERR_NONE;
+
+ 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 (_net_check_profile_name(profile_name) != NET_ERR_NONE) {
+ NETWORK_LOG(NETWORK_ERROR, "Error!!! Invalid Parameter\n");
+ __NETWORK_FUNC_EXIT__;
+ return NET_ERR_INVALID_PARAM;
+ }
+
+ if(request_table[NETWORK_REQUEST_TYPE_SET_DEFAULT].flag == TRUE) {
+ NETWORK_LOG(NETWORK_ERROR, "Error!! Request already in progress\n");
+ __NETWORK_FUNC_EXIT__;
+ return NET_ERR_IN_PROGRESS;
+ }
+
+ if (_net_dbus_is_pending_call_used() == TRUE) {
+ NETWORK_LOG(NETWORK_ERROR, "Error!! pending call already in progress\n");
+ __NETWORK_FUNC_EXIT__;
+ return NET_ERR_IN_PROGRESS;
+ }
+
+ request_table[NETWORK_REQUEST_TYPE_SET_DEFAULT].flag = TRUE;
+
+ Error = __net_set_default_cellular_service_profile_async(profile_name);
+ if (Error != NET_ERR_NONE) {
+ NETWORK_LOG(NETWORK_ERROR,
+ "Error!!! failed to set default cellular service(profile). Error [%s]\n",
+ _net_print_error(Error));
+ memset(&request_table[NETWORK_REQUEST_TYPE_SET_DEFAULT],
+ 0, sizeof(network_request_table_t));
+ __NETWORK_FUNC_EXIT__;
+ return Error;
+ }
+
+ return NET_ERR_NONE;
+}
+
/*****************************************************************************
* ConnMan Wi-Fi Client Interface Async Function Definition
*****************************************************************************/
rm -f network_client
-gcc -Wall -g -O2 -o ./network_client ./main.c `pkg-config glib-2.0 dbus-glib-1 gthread-2.0 network --cflags --libs`
+gcc -Wall -g -O2 -o ./network_client ./main.c `pkg-config glib-2.0 dbus-glib-1 gthread-2.0 --cflags --libs` -I../include/common -I../include/profile -I../include/wifi -L./lib/ -lnetwork
break;
+ case NET_EVENT_CELLULAR_SET_DEFAULT_RSP:
+ debug_print("Got Set cellular default profile Rsp : %d\n", event_cb->Error);
+ break;
+
default :
debug_print("Error! Unknown Event\n\n");
break;
break;
case 'm': {
+ int user_sel;
+ debug_print( "Enter API type(1:sync, 2:async) : \n");
+ scanf("%d", &user_sel);
+
+ if (user_sel != 1 && user_sel != 2) {
+ debug_print("Error!! Invalid input.\n");
+ break;
+ }
+
debug_print( "Enter Profile Name: \n");
scanf("%s", ProfileName);
gettimeofday(&timevar, NULL);
start_time = Convert_time2double(timevar);
- if (net_set_default_cellular_service_profile(ProfileName) != NET_ERR_NONE) {
- debug_print("Error!! net_set_default_cellular_service_profile() failed.\n");
- break;
+ if (user_sel == 1) {
+ if (net_set_default_cellular_service_profile(ProfileName) != NET_ERR_NONE) {
+ debug_print("Error!! net_set_default_cellular_service_profile() failed.\n");
+ break;
+ }
+ } else {
+ if (net_set_default_cellular_service_profile_async(ProfileName) != NET_ERR_NONE) {
+ debug_print("Error!! net_set_default_cellular_service_profile_async() failed.\n");
+ break;
+ }
}
gettimeofday(&timevar, NULL);