int _wifi_libnet_open_profile(wifi_ap_h ap_h, wifi_connected_cb callback, void *user_data);
int _wifi_libnet_close_profile(wifi_ap_h ap_h, wifi_disconnected_cb callback, void *user_data);
-int _wifi_libnet_connect_with_wps(wifi_ap_h ap, wifi_connected_cb callback, void *user_data);
-int _wifi_libnet_forget_ap(wifi_ap_h ap);
+int _wifi_libnet_connect_with_wps(wifi_ap_h ap_h, wifi_connected_cb callback, void *user_data);
+int _wifi_libnet_forget_ap(wifi_ap_h ap_h);
int _wifi_set_power_on_off_cb(wifi_device_state_changed_cb callback, void *user_data);
int _wifi_unset_power_on_off_cb(void);
char *_wifi_get_ip_config_str(net_ip_config_type_t ip_config_type);
net_ip_config_type_t _wifi_get_ip_config_type(const char *config);
+struct connman_service *_wifi_get_service_h(wifi_ap_h ap_h);
#ifdef __cplusplus
}
return WIFI_ERROR_INVALID_PARAMETER;
}
- struct connman_service *service = ap;
+ struct connman_service *service = _wifi_get_service_h(ap);
if (!service)
- return NET_ERR_INVALID_PARAM;
+ return WIFI_ERROR_INVALID_PARAMETER;
*essid = g_strdup(connman_service_get_name(service));
if (*essid == NULL)
return WIFI_ERROR_INVALID_PARAMETER;
}
- struct connman_service *service = ap;
+ struct connman_service *service = _wifi_get_service_h(ap);
if (!service)
- return NET_ERR_INVALID_PARAM;
+ return WIFI_ERROR_INVALID_PARAMETER;
*bssid = g_strdup(connman_service_get_bssid(service));
if (*bssid == NULL)
return WIFI_ERROR_INVALID_PARAMETER;
}
- struct connman_service *service = ap;
+ struct connman_service *service = _wifi_get_service_h(ap);
if (!service)
- return NET_ERR_INVALID_PARAM;
+ return WIFI_ERROR_INVALID_PARAMETER;
*rssi = connman_service_get_strength(service);
return WIFI_ERROR_INVALID_PARAMETER;
}
- struct connman_service *service = ap;
+ struct connman_service *service = _wifi_get_service_h(ap);
if (!service)
- return NET_ERR_INVALID_PARAM;
+ return WIFI_ERROR_INVALID_PARAMETER;
*frequency = connman_service_get_frequency(service);
return WIFI_ERROR_INVALID_PARAMETER;
}
- struct connman_service *service = ap;
+ struct connman_service *service = _wifi_get_service_h(ap);
if (!service)
- return NET_ERR_INVALID_PARAM;
+ return WIFI_ERROR_INVALID_PARAMETER;
*max_speed = connman_service_get_max_rate(service);
return WIFI_ERROR_INVALID_PARAMETER;
}
- struct connman_service *service = ap;
+ struct connman_service *service = _wifi_get_service_h(ap);
if (!service)
- return NET_ERR_INVALID_PARAM;
+ return WIFI_ERROR_INVALID_PARAMETER;
*favorite = connman_service_get_favorite(service);
enum connman_service_state_type state_type;
- struct connman_service *service = ap;
+ struct connman_service *service = _wifi_get_service_h(ap);
if (!service)
- return NET_ERR_INVALID_PARAM;
+ return WIFI_ERROR_INVALID_PARAMETER;
state_type = _wifi_get_service_state_type(
connman_service_get_state(service));
}
const struct service_ipv4 *ipv4_config;
- struct connman_service *service = ap;
+ struct connman_service *service = _wifi_get_service_h(ap);
if (!service)
- return NET_ERR_INVALID_PARAM;
+ return WIFI_ERROR_INVALID_PARAMETER;
ipv4_config = connman_service_get_ipv4_config(service);
net_ip_config_type_t ip_config_type;
- struct connman_service *service = ap;
+ struct connman_service *service = _wifi_get_service_h(ap);
if (!service)
- return NET_ERR_INVALID_PARAM;
+ return WIFI_ERROR_INVALID_PARAMETER;
switch (type) {
case WIFI_IP_CONFIG_TYPE_STATIC:
}
const struct service_ipv4 *ipv4;
- struct connman_service *service = ap;
+ struct connman_service *service = _wifi_get_service_h(ap);
if (!service)
- return NET_ERR_INVALID_PARAM;
+ return WIFI_ERROR_INVALID_PARAMETER;
ipv4 = connman_service_get_ipv4_info(service);
*ip_address = ipv4->address;
return WIFI_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED;
}
- struct connman_service *service = ap;
+ struct connman_service *service = _wifi_get_service_h(ap);
if (!service)
- return NET_ERR_INVALID_PARAM;
+ return WIFI_ERROR_INVALID_PARAMETER;
struct service_ipv4 ipv4_config;
memset(&ipv4_config, 0, sizeof(struct service_ipv4));
}
const struct service_ipv4 *ipv4;
- struct connman_service *service = ap;
+ struct connman_service *service = _wifi_get_service_h(ap);
if (!service)
- return NET_ERR_INVALID_PARAM;
+ return WIFI_ERROR_INVALID_PARAMETER;
ipv4 = connman_service_get_ipv4_info(service);
*subnet_mask = ipv4->netmask;
return WIFI_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED;
}
- struct connman_service *service = ap;
+ struct connman_service *service = _wifi_get_service_h(ap);
if (!service)
- return NET_ERR_INVALID_PARAM;
+ return WIFI_ERROR_INVALID_PARAMETER;
struct service_ipv4 ipv4_config;
memset(&ipv4_config, 0, sizeof(struct service_ipv4));
}
const struct service_ipv4 *ipv4;
- struct connman_service *service = ap;
+ struct connman_service *service = _wifi_get_service_h(ap);
if (!service)
- return NET_ERR_INVALID_PARAM;
+ return WIFI_ERROR_INVALID_PARAMETER;
ipv4 = connman_service_get_ipv4_info(service);
*gateway_address = ipv4->gateway;
return WIFI_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED;
}
- struct connman_service *service = ap;
+ struct connman_service *service = _wifi_get_service_h(ap);
if (!service)
- return NET_ERR_INVALID_PARAM;
+ return WIFI_ERROR_INVALID_PARAMETER;
struct service_ipv4 ipv4_config;
memset(&ipv4_config, 0, sizeof(struct service_ipv4));
return WIFI_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED;
}
+ struct service_proxy proxy_config;
+ memset(&proxy_config, 0, sizeof(struct service_proxy));
+
+ proxy_config.servers = g_try_new0(char*, 2);
+
+ struct connman_service *service = _wifi_get_service_h(ap);
+ if (!service)
+ return WIFI_ERROR_INVALID_PARAMETER;
+
+ proxy_config.method = connman_service_get_proxy_config(service)->method;
+
+ if (!g_strcmp0(proxy_config.method, "manual")) {
+ *proxy_config.servers = g_strdup(proxy_address);
+ connman_service_set_proxy_config(service, &proxy_config);
+ g_free(*proxy_config.servers);
+ g_free(proxy_config.servers);
+ } else if (!g_strcmp0(proxy_config.method, "auto")){
+ proxy_config.url = g_strdup(proxy_address);
+ connman_service_set_proxy_config(service, &proxy_config);
+ g_free(proxy_config.url);
+ }
+
return WIFI_ERROR_NONE;
}
return WIFI_ERROR_INVALID_PARAMETER;
}
+ struct service_proxy proxy_config;
+ memset(&proxy_config, 0, sizeof(struct service_proxy));
+
+ struct connman_service *service = _wifi_get_service_h(ap);
+ if (!service)
+ return WIFI_ERROR_INVALID_PARAMETER;
+
+ switch (proxy_type) {
+ case WIFI_PROXY_TYPE_AUTO:
+ proxy_config.method = g_strdup("auto");
+ break;
+ case WIFI_PROXY_TYPE_MANUAL:
+ proxy_config.method = g_strdup("manual");
+ break;
+ case WIFI_PROXY_TYPE_DIRECT:
+ proxy_config.method = g_strdup("direct");
+ break;
+ }
+
+ connman_service_set_proxy_config(service, &proxy_config);
+
+ g_free(proxy_config.method);
+
return 0;
}
return WIFI_ERROR_INVALID_PARAMETER;
}
- struct connman_service *service = ap;
+ struct connman_service *service = _wifi_get_service_h(ap);
+ if (!service)
+ return WIFI_ERROR_INVALID_PARAMETER;
if (connman_service_get_favorite(service)) {
*required = false;
return WIFI_ERROR_INVALID_PARAMETER;
}
- struct connman_service* service = ap;
+ struct connman_service *service = _wifi_get_service_h(ap);
+ if (!service)
+ return WIFI_ERROR_INVALID_PARAMETER;
+
net_wifi_connection_info_t wifi_conn_info;
memset(&wifi_conn_info, 0, sizeof(net_wifi_connection_info_t));
if (NULL == passphrase || strlen(passphrase) <= 0) {
WIFI_LOG(WIFI_ERROR, "Invalid param \n");
- return NET_ERR_INVALID_PARAM;
+ return WIFI_ERROR_INVALID_PARAMETER;
}
service_id = g_strrstr(path, "/") + 1;
{
net_err_t Error = NET_ERR_NONE;
- struct connman_service *service = ap_h;
+ struct connman_service *service = _wifi_get_service_h(ap_h);
if (!service)
- return NET_ERR_INVALID_PARAM;
+ return WIFI_ERROR_INVALID_PARAMETER;
if (g_strcmp0(wifi_connection_info->security, "ieee8021x") == 0) {
/* Create the EAP config file
default:
WIFI_LOG(WIFI_ERROR, "Invalid security type\n");
- return NET_ERR_INVALID_PARAM;
+ return WIFI_ERROR_INVALID_PARAMETER;
}
Error = __net_dbus_connect_service(ap_h, &wifi_connection_info);
WIFI_LOG(WIFI_INFO, "name %s, state, %s", name, new_state);
if (wifi_callbacks.connection_state_cb) {
- GSList *list;
- net_profile_info_t *info = NULL;
- net_profile_info_t *profile_info = NULL;
wifi_connection_state_e state =
connection_state_string2type(new_state);
+ wifi_ap_h ap;
- for (list = ap_handle_list; list; list = list->next) {
-
- if (list == NULL)
- break;
-
- info = (net_profile_info_t *)list->data;
- if (strcmp(info->essid, name) == 0) {
- profile_info = info;
- break;
- }
- }
+ wifi_ap_create(name, &ap);
wifi_callbacks.connection_state_cb(state,
- (wifi_ap_h)profile_info,
+ ap,
wifi_callbacks.connection_state_user_data);
+
+ wifi_ap_destroy(ap);
}
}
user_data);
}
+static void __connman_technology_powered_on_cb(
+ enum connman_lib_err_e result,
+ void *user_data)
+{
+ WIFI_LOG(WIFI_INFO, "callback: %d\n", result);
+
+ __libnet_activated_cb(connman_lib2capi_result(result));
+}
+
+static void __connman_technology_powered_off_cb(
+ enum connman_lib_err_e result,
+ void *user_data)
+{
+ WIFI_LOG(WIFI_INFO, "callback: %d\n", result);
+
+ __libnet_deactivated_cb(connman_lib2capi_result(result));
+}
+
bool _wifi_libnet_init(void)
{
struct connman_technology *technology;
return true;
}
-static void __connman_technology_powered_on_cb(
- enum connman_lib_err_e result,
- void *user_data)
-{
- WIFI_LOG(WIFI_INFO, "callback: %d\n", result);
-
- __libnet_activated_cb(connman_lib2capi_result(result));
-}
-
-static void __connman_technology_powered_off_cb(
- enum connman_lib_err_e result,
- void *user_data)
-{
- WIFI_LOG(WIFI_INFO, "callback: %d\n", result);
-
- __libnet_deactivated_cb(connman_lib2capi_result(result));
-}
-
int _wifi_activate(wifi_activated_cb callback, void *user_data)
{
if (winet_wifi_set_work_mode(WIFI_WORK_MODE_STATION) < 0)
bool _wifi_libnet_check_ap_validity(wifi_ap_h ap_h)
{
- struct connman_service *service = ap_h;
+ struct connman_service *service = _wifi_get_service_h(ap_h);
if (!service)
- return NET_ERR_INVALID_PARAM;
+ return WIFI_ERROR_INVALID_PARAMETER;
const char *name = connman_service_get_name(service);
}
for (iter = connman_services_list; iter != NULL; iter = iter->next) {
- rv = callback((wifi_ap_h)(iter->data), user_data);
+ wifi_ap_h ap;
+ struct connman_service *service = iter->data;
+ const char *essid = connman_service_get_name(service);
+
+ WIFI_LOG(WIFI_INFO, "essid is %s", essid);
+
+ wifi_ap_create(essid, &ap);
+ rv = callback(ap, user_data);
if (rv == false) break;
}
void *user_data)
{
int rv = NET_ERR_NONE;
- struct connman_service* service = ap_h;
+
+ struct connman_service *service = _wifi_get_service_h(ap_h);
+ if (!service)
+ return WIFI_ERROR_INVALID_PARAMETER;
__libnet_set_connected_cb(callback, user_data);
int _wifi_libnet_close_profile(wifi_ap_h ap_h,
wifi_disconnected_cb callback, void *user_data)
{
- struct connman_service *service = ap_h;
+ struct connman_service *service = _wifi_get_service_h(ap_h);
if (!service)
- return NET_ERR_INVALID_PARAM;
+ return WIFI_ERROR_INVALID_PARAMETER;
__libnet_set_disconnected_cb(callback, user_data);
connman_service_disconnect(service,
wifi_connected_cb callback, void *user_data)
{
int rv = NET_ERR_NONE;
- struct connman_service *service = ap_h;
+ struct connman_service *service = _wifi_get_service_h(ap_h);
if (!service)
- return NET_ERR_INVALID_PARAM;
+ return WIFI_ERROR_INVALID_PARAMETER;
__libnet_set_connected_cb(callback, user_data);
return WIFI_ERROR_NONE;
}
-int _wifi_libnet_forget_ap(wifi_ap_h ap)
+int _wifi_libnet_forget_ap(wifi_ap_h ap_h)
{
int rv = NET_ERR_NONE;
- struct connman_service *service = ap;
+ struct connman_service *service = _wifi_get_service_h(ap_h);
if (!service)
- return NET_ERR_INVALID_PARAM;
+ return WIFI_ERROR_INVALID_PARAMETER;
connman_service_remove(service);
return WIFI_ERROR_NONE;
}
+
+struct connman_service *_wifi_get_service_h(wifi_ap_h ap_h)
+{
+ struct connman_service *service =
+ connman_get_service(((net_profile_info_t *) ap_h)->essid);
+ if (!service)
+ return NULL;
+
+ return service;
+}
if (rv != WIFI_ERROR_NONE) {
printf("Fail to get State [%s]\n", __test_convert_error_to_string(rv));
g_free(ap_name);
+ wifi_ap_destroy(ap);
return false;
}
printf("AP name : %s, state : %s\n", ap_name, __test_print_state(state));
g_free(ap_name);
+ wifi_ap_destroy(ap);
return true;
}
if (rv != WIFI_ERROR_NONE) {
printf("Fail to set passphrase : %s\n", __test_convert_error_to_string(rv));
g_free(ap_name);
+ wifi_ap_destroy(ap);
return false;
}
}
printf("Success to connection request [%s]\n", ap_name);
g_free(ap_name);
+ wifi_ap_destroy(ap);
return false;
}
g_free(ap_name);
+ wifi_ap_destroy(ap);
return true;
}
printf("Success to connection request [%s]\n", ap_name);
g_free(ap_name);
+ wifi_ap_destroy(ap);
return false;
}
g_free(ap_name);
+ wifi_ap_destroy(ap);
return true;
}
printf("Success to disconnection request %s\n", ap_name);
g_free(ap_name);
+ wifi_ap_destroy(ap);
return false;
}
g_free(ap_name);
+ wifi_ap_destroy(ap);
return true;
}
printf("Success to forget [%s]\n", ap_name);
g_free(ap_name);
+ wifi_ap_destroy(ap);
return false;
}
g_free(ap_name);
+ wifi_ap_destroy(ap);
return true;
}
if (rv != WIFI_ERROR_NONE) {
printf("Fail to set eap passphrase : %s\n", __test_convert_error_to_string(rv));
g_free(ap_name);
+ wifi_ap_destroy(ap);
return false;
}
if (rv != WIFI_ERROR_NONE) {
printf("Fail to get eap passphrase : %s\n", __test_convert_error_to_string(rv));
g_free(ap_name);
+ wifi_ap_destroy(ap);
return false;
}
g_free(ap_name);
g_free(inputed_name);
+ wifi_ap_destroy(ap);
return false;
}
g_free(ap_name);
+ wifi_ap_destroy(ap);
return true;
}
rv = scanf("%9d", &method);
if (rv <= 0) {
g_free(ap_name);
+ wifi_ap_destroy(ap);
return false;
}
default:
printf("Invalid input!\n");
g_free(ap_name);
+ wifi_ap_destroy(ap);
return false;
}
}
g_free(ap_name);
+ wifi_ap_destroy(ap);
return false;
}
g_free(ap_name);
+ wifi_ap_destroy(ap);
return true;
}
rv = scanf("%9d", &method);
if (rv <= 0) {
g_free(ap_name);
+ wifi_ap_destroy(ap);
return false;
}
default:
printf("Invalid input!\n");
g_free(ap_name);
+ wifi_ap_destroy(ap);
return false;
}
}
g_free(ap_name);
+ wifi_ap_destroy(ap);
return false;
}
g_free(ap_name);
+ wifi_ap_destroy(ap);
return true;
}
if (sec_type != WIFI_SECURITY_TYPE_EAP) {
g_free(ap_name);
+ wifi_ap_destroy(ap);
return false;
}
printf("Fail to get EAP private key file\n");
g_free(ap_name);
+ wifi_ap_destroy(ap);
return false;
}
g_free(ap_name);
+ wifi_ap_destroy(ap);
return true;
}