/** Wi-Fi interface Scanning Indication Event */
NET_EVENT_WIFI_SCANNING_IND,
- /** Wi-Fi interface Scan Indication Event(WPS scan) */
- NET_EVENT_WPS_SCAN_IND,
-
/** Ethernet Cable Attached Event */
NET_EVENT_ETHERNET_CABLE_ATTACHED,
struct ssid_scan_bss_info_t {
char ssid[NET_WLAN_ESSID_LEN + 1];
wlan_security_mode_type_t security;
- char wps;
-};
-
-struct wps_scan_bss_info_t {
- unsigned char ssid[NET_WLAN_ESSID_LEN + 1];
- char bssid[NET_WLAN_BSSID_LEN + 1];
- int rssi;
- int mode;
};
/*****************************************************************************
int net_get_wps_pin(char **wps_pin);
/**
- * @fn int net_wps_scan_wifi(void)
- *
- * This function sends scan request to NetConfig daemon,
- *
- * \par Sync (or) Async:
- * This is Asynchronous API.
- *
- * @param[out] none
- *
- * @return NET_ERR_NONE on success, negative values for errors
- */
-
-int net_wps_scan_wifi(void);
-
-/**
* @fn int net_wifi_get_passpoint(int *enable)
*
* This function requests current passpoint on/off state to NetConfig daemon,
int _net_dbus_reset_pdp_profile(int type, const char * modem_path);
int _net_dbus_modify_pdp_profile(net_profile_info_t *prof_info, const char *profile_name);
int _net_dbus_specific_scan_request(const char *ssid);
-int _net_dbus_wps_scan_request(void);
int _net_dbus_set_default(const char* profile_name);
int _net_dbus_get_passpoint(int *enabled);
int _net_dbus_set_passpoint(int enable);
#define NETCONFIG_SIGNAL_POWERON_COMPLETED "PowerOnCompleted"
#define NETCONFIG_SIGNAL_POWEROFF_COMPLETED "PowerOffCompleted"
#define NETCONFIG_SIGNAL_SPECIFIC_SCAN_DONE "SpecificScanCompleted"
-#define NETCONFIG_SIGNAL_WPS_SCAN_DONE "WpsScanCompleted"
#define NETCONFIG_SIGNAL_ETHERNET_CABLE_STATE "EthernetCableState"
#define NETCONFIG_SIGNAL_TDLS_CONNECTED "TDLSConnect"
#define NETCONFIG_SIGNAL_TDLS_DISCONNECTED "TDLSDisconnect"
NETWORK_REQUEST_TYPE_WIFI_POWER,
NETWORK_REQUEST_TYPE_ENROLL_WPS,
NETWORK_REQUEST_TYPE_SPECIFIC_SCAN,
- NETWORK_REQUEST_TYPE_WPS_SCAN,
NETWORK_REQUEST_TYPE_SET_DEFAULT,
NETWORK_REQUEST_TYPE_RESET_DEFAULT,
NETWORK_REQUEST_TYPE_MAX
__NETWORK_FUNC_EXIT__;
}
-static void __net_wps_scan_wifi_reply(GObject *source_object, GAsyncResult *res, gpointer user_data)
-{
- __NETWORK_FUNC_ENTER__;
-
- GDBusConnection *conn = NULL;
- GError *error = NULL;
- net_err_t Error = NET_ERR_NONE;
- net_event_info_t event_data = { 0, };
-
- conn = G_DBUS_CONNECTION(source_object);
- g_dbus_connection_call_finish(conn, res, &error);
- if (error != NULL) {
- Error = __net_netconfig_error_string_to_enum(error->message);
- g_error_free(error);
- }
-
- if (Error != NET_ERR_NONE) {
- NETWORK_LOG(NETWORK_ERROR, "WPS scan failed[%d]", Error);
-
- if (request_table[NETWORK_REQUEST_TYPE_WPS_SCAN].flag == TRUE) {
- memset(&request_table[NETWORK_REQUEST_TYPE_WPS_SCAN],
- 0, sizeof(network_request_table_t));
-
- event_data.Event = NET_EVENT_WPS_SCAN_IND;
- event_data.Datalength = 0;
- event_data.Data = NULL;
- event_data.Error = Error;
-
- _net_dbus_pending_call_unref();
-
- _net_client_callback(&event_data);
-
- __NETWORK_FUNC_EXIT__;
- return;
- }
- } else
- NETWORK_LOG(NETWORK_LOW, "WPS scan succeed");
-
- _net_dbus_pending_call_unref();
-
- __NETWORK_FUNC_EXIT__;
-}
-
static void __net_set_passpoint_reply(GObject *source_object, GAsyncResult *res, gpointer user_data)
{
__NETWORK_FUNC_ENTER__;
return Error;
}
-int _net_dbus_wps_scan_request(void)
-{
- __NETWORK_FUNC_ENTER__;
- net_err_t Error = NET_ERR_NONE;
-
- Error = _net_invoke_dbus_method_nonblock(NETCONFIG_SERVICE,
- NETCONFIG_WIFI_PATH, NETCONFIG_WIFI_INTERFACE,
- "RequestWpsScan", NULL, 6 * DBUS_REPLY_TIMEOUT,
- __net_wps_scan_wifi_reply);
-
- __NETWORK_FUNC_EXIT__;
- return Error;
-}
-
int _net_dbus_get_passpoint(int *enabled)
{
__NETWORK_FUNC_ENTER__;
GSList *bss_info_list = NULL;
net_event_info_t *event_data = (net_event_info_t *)data;
- if (event_data->Event == NET_EVENT_SPECIFIC_SCAN_IND ||
- event_data->Event == NET_EVENT_WPS_SCAN_IND) {
+ if (event_data->Event == NET_EVENT_SPECIFIC_SCAN_IND) {
bss_info_list = (GSList *)event_data->Data;
}
memcpy(client, event_data, sizeof(net_event_info_t));
- if (event_data->Event == NET_EVENT_SPECIFIC_SCAN_IND ||
- event_data->Event == NET_EVENT_WPS_SCAN_IND) {
+ if (event_data->Event == NET_EVENT_SPECIFIC_SCAN_IND) {
/* To enhance performance,
* BSS list should be delivered directly */
bss_info_list = (GSList *)event_data->Data;
}
if (NetworkInfo.ClientEventCb_conn != NULL &&
- event_data->Event != NET_EVENT_SPECIFIC_SCAN_IND &&
- event_data->Event != NET_EVENT_WPS_SCAN_IND) {
+ event_data->Event != NET_EVENT_SPECIFIC_SCAN_IND) {
net_event_info_t *client = g_try_new0(net_event_info_t, 1);
if (client == NULL) {
__NETWORK_FUNC_EXIT__;
memcpy(client, event_data, sizeof(net_event_info_t));
if (event_data->Datalength > 0) {
- if (event_data->Event == NET_EVENT_SPECIFIC_SCAN_IND ||
- event_data->Event == NET_EVENT_WPS_SCAN_IND) {
+ if (event_data->Event == NET_EVENT_SPECIFIC_SCAN_IND) {
client->Data = g_try_malloc0(sizeof(GSList));
if (client->Data == NULL) {
g_free(client);
wps_found = TRUE;
}
- if (ssid_found == TRUE && sec_found == TRUE && wps_found == TRUE) {
+ if (ssid_found == TRUE && sec_found == TRUE) {
struct ssid_scan_bss_info_t *bss = NULL;
bss = g_try_new0(struct ssid_scan_bss_info_t, 1);
if (bss == NULL) {
g_strlcpy(bss->ssid, ssid, NET_WLAN_ESSID_LEN);
bss->security = __net_get_wlan_sec_mode(security);
- bss->wps = (char)wps;
bss_info_list = g_slist_append(bss_info_list, bss);
- ssid_found = sec_found = wps_found = FALSE;
+ ssid_found = sec_found = FALSE;
}
}
g_variant_iter_free(iter);
return NET_ERR_NONE;
}
-static int __net_handle_wps_scan_resp(GSList *bss_info_list)
-{
- __NETWORK_FUNC_ENTER__;
-
- int count = 0;;
- net_event_info_t event_data = { 0, };
-
- if (request_table[NETWORK_REQUEST_TYPE_WPS_SCAN].flag == TRUE) {
- memset(&request_table[NETWORK_REQUEST_TYPE_WPS_SCAN],
- 0, sizeof(network_request_table_t));
-
- _net_dbus_pending_call_unref();
-
- count = (int)g_slist_length(bss_info_list);
- NETWORK_LOG(NETWORK_LOW,
- "Received the signal: %s with total bss count = %d",
- NETCONFIG_SIGNAL_WPS_SCAN_DONE,
- count);
-
- event_data.Event = NET_EVENT_WPS_SCAN_IND;
- event_data.Datalength = count;
- event_data.Data = bss_info_list;
-
- _net_client_callback(&event_data);
- } else
- g_slist_free_full(bss_info_list, g_free);
-
- __NETWORK_FUNC_EXIT__;
- return NET_ERR_NONE;
-}
-
-static int __net_handle_wifi_wps_scan_rsp(GVariant *param)
-{
- GVariantIter *iter = NULL;
- GVariant *value = NULL;
- gchar *key = NULL;
- GSList *bss_info_list = NULL;
- const gchar *ssid = NULL;
- const gchar *bssid = NULL;
- gsize ssid_len;
- int rssi = -89;
- int mode = 0;
- gboolean ssid_found = FALSE;
- gboolean bssid_found = FALSE;
- gboolean rssi_found = FALSE;
- gboolean mode_found = FALSE;
-
- g_variant_get(param, "(a{sv})", &iter);
-
- while (g_variant_iter_loop(iter, "{sv}", &key, &value)) {
- if (g_strcmp0(key, "ssid") == 0) {
- ssid = g_variant_get_fixed_array(value, &ssid_len, sizeof(guchar));
- ssid_found = TRUE;
- } else if (g_strcmp0(key, "bssid") == 0) {
- bssid = g_variant_get_string(value, NULL);
- bssid_found = TRUE;
- } else if (g_strcmp0(key, "rssi") == 0) {
- rssi = g_variant_get_int32(value);
- rssi_found = TRUE;
- } else if (g_strcmp0(key, "mode") == 0) {
- mode = g_variant_get_int32(value);
- mode_found = TRUE;
- }
-
- if (ssid_found == TRUE && bssid_found == TRUE &&
- rssi_found == TRUE && mode_found == TRUE) {
- struct wps_scan_bss_info_t *bss = NULL;
- bss = g_try_new0(struct wps_scan_bss_info_t, 1);
- if (bss == NULL) {
- NETWORK_LOG(NETWORK_ERROR, "Memory allocation error");
-
- g_slist_free_full(bss_info_list, g_free);
- g_variant_unref(value);
- g_free(key);
- return NET_ERR_UNKNOWN;
- }
-
- memcpy(bss->ssid, ssid, ssid_len);
- g_strlcpy(bss->bssid, bssid, NET_WLAN_BSSID_LEN+1);
- bss->rssi = rssi;
- bss->mode = mode;
- bss_info_list = g_slist_append(bss_info_list, bss);
-
- ssid_found = bssid_found = FALSE;
- rssi_found = mode_found = FALSE;
- }
- }
- g_variant_iter_free(iter);
-
- __net_handle_wps_scan_resp(bss_info_list);
-
- return NET_ERR_NONE;
-}
-
static void __net_handle_state_ind(const char *profile_name,
net_state_type_t profile_state)
{
__net_handle_wifi_power_rsp(FALSE);
else if (g_strcmp0(sig, NETCONFIG_SIGNAL_SPECIFIC_SCAN_DONE) == 0)
__net_handle_wifi_specific_scan_rsp(param);
- else if (g_strcmp0(sig, NETCONFIG_SIGNAL_WPS_SCAN_DONE) == 0)
- __net_handle_wifi_wps_scan_rsp(param);
else if (g_strcmp0(sig, NETCONFIG_SIGNAL_TDLS_CONNECTED) == 0)
__net_handle_wifi_tdls_connected_event(param);
else if (g_strcmp0(sig, NETCONFIG_SIGNAL_TDLS_DISCONNECTED) == 0)
return Error;
}
-EXPORT_API int net_wps_scan_wifi(void)
-{
- __NETWORK_FUNC_ENTER__;
-
- net_err_t Error = NET_ERR_NONE;
-
- if (NetworkInfo.ref_count < 1) {
- NETWORK_LOG(NETWORK_ERROR, "Application is not registered");
- __NETWORK_FUNC_EXIT__;
- return NET_ERR_APP_NOT_REGISTERED;
- }
-
- if (_net_dbus_is_pending_call_used() == TRUE) {
- NETWORK_LOG(NETWORK_ERROR, "pending call in progress");
- __NETWORK_FUNC_EXIT__;
- return NET_ERR_INVALID_OPERATION;
- }
-
- request_table[NETWORK_REQUEST_TYPE_WPS_SCAN].flag = TRUE;
-
- Error = _net_dbus_wps_scan_request();
- if (Error != NET_ERR_NONE) {
- NETWORK_LOG(NETWORK_ERROR,
- "_net_dbus_wps_scan_request() failed. Error [%s]",
- _net_print_error(Error));
-
- memset(&request_table[NETWORK_REQUEST_TYPE_WPS_SCAN], 0,
- sizeof(network_request_table_t));
- }
-
- __NETWORK_FUNC_EXIT__;
- return Error;
-}
EXPORT_API int net_get_wps_pin(char **wps_pin)
{
net_err_t error = NET_ERR_NONE;
0, sizeof(network_request_table_t));
}
- if (request_table[NETWORK_REQUEST_TYPE_WPS_SCAN].flag == TRUE) {
- _net_dbus_pending_call_unref();
-
- memset(&request_table[NETWORK_REQUEST_TYPE_WPS_SCAN],
- 0, sizeof(network_request_table_t));
- }
-
if (_net_dbus_is_pending_call_used() == TRUE) {
NETWORK_LOG(NETWORK_ERROR, "pending call in progress");
for (; bss_info_list != NULL; bss_info_list = bss_info_list->next) {
struct ssid_scan_bss_info_t *resp_data = bss_info_list->data;
if (resp_data)
- debug_print("essid:%s, security:%d, wps:%d",
- resp_data->ssid, resp_data->security, resp_data->wps);
+ debug_print("essid:%s, security:%d",
+ resp_data->ssid, resp_data->security);
}
else
debug_print("No AP\n");
break;
- case NET_EVENT_WPS_SCAN_IND:
- debug_print("Got WPS scan Ind : %d\n", event_cb->Error);
- GSList *wps_bss_info_list = (GSList *)event_cb->Data;
-
- if (event_cb->Error == NET_ERR_NONE) {
- if (wps_bss_info_list) {
- for (; wps_bss_info_list != NULL; wps_bss_info_list = wps_bss_info_list->next) {
- struct wps_scan_bss_info_t *resp_data = wps_bss_info_list->data;
- if (resp_data)
- debug_print("ESSID %s, BSSID %s, RSSI %d, MODE %d\n",
- resp_data->ssid, resp_data->bssid, resp_data->rssi, resp_data->mode);
- }
- } else
- debug_print("No AP\n");
- } else {
- debug_print("Failed WPS scan\n");
- }
- break;
case NET_EVENT_CELLULAR_SET_DEFAULT_RSP:
debug_print("Got Set cellular default profile Rsp : %d\n", event_cb->Error);
break;
debug_print("n - Add route\n");
debug_print("o - Remove route\n");
debug_print("p - Reqeust specific scan\n");
- debug_print("q - Request wps scan\n");
- debug_print("r - Get technology state\n");
- debug_print("s - Set passpoint on/off\n");
- debug_print("t - Get passpoint state\n");
- debug_print("u - Add IPv6 route\n");
- debug_print("v - Remove IPv6 route\n");
- debug_print("z - Exit \n");
+ debug_print("q - Get technology state\n");
+ debug_print("r - Set passpoint on/off\n");
+ debug_print("s - Get passpoint state\n");
+ debug_print("t - Add IPv6 route\n");
+ debug_print("u - Remove IPv6 route\n");
+ debug_print("v - Exit \n");
debug_print("ENTER - Show options menu.......\n");
}
break;
case 'q': {
- gettimeofday(&timevar, NULL);
- start_time = Convert_time2double(timevar);
-
- if (net_wps_scan_wifi() != NET_ERR_NONE) {
- debug_print("Error!! net_wps_scan_wifi() failed.\n");
- break;
- }
-
- gettimeofday(&timevar, NULL);
- finish_time = Convert_time2double(timevar);
- debug_print("Total time taken = [%f]\n", finish_time - start_time);
-
- debug_print("net_wps_scan_wifi() success\n");
- }
- break;
-
- case 'r': {
char user_str[20];
debug_print("Enter network type (wifi/cellular/eth/bt): \n");
scanf("%19s", user_str);
}
break;
- case 's': {
+ case 'r': {
int enable;
gettimeofday(&timevar, NULL);
start_time = Convert_time2double(timevar);
}
break;
- case 't': {
+ case 's': {
int enabled;
gettimeofday(&timevar, NULL);
start_time = Convert_time2double(timevar);
}
break;
- case 'u': {
+ case 't': {
char ip_addr[40] = {0};
char if_name[40] = {0};
char gateway[40] = {0};
}
break;
- case 'v': {
+ case 'u': {
char ip_addr[40] = {0};
char if_name[40] = {0};
char gateway[40] = {0};
}
break;
- case 'z':
+ case 'v':
debug_print("Exiting...!!!\n");
if (net_deregister_client() != NET_ERR_NONE)