From: Chengyi Zhao Date: Tue, 17 Jun 2014 04:21:38 +0000 (+0800) Subject: Modify profile struct X-Git-Tag: winet_wifi_0.1~24 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=15f21dd414b313cba64a9ba97dc806ef1e07e80a;p=platform%2Fcore%2Fapi%2Fwifi.git Modify profile struct --- diff --git a/include/net_wifi_private.h b/include/net_wifi_private.h index a4d52f7..6a2adc2 100644 --- a/include/net_wifi_private.h +++ b/include/net_wifi_private.h @@ -79,6 +79,16 @@ typedef struct { wlan_security_info_t security_info; } net_wifi_connection_info_t; +/** + * This is the profile structure exposed to applications. + */ +typedef struct +{ + /** Profile name */ + char *essid; +} net_profile_info_t; + + bool _wifi_libnet_init(void); bool _wifi_libnet_deinit(void); int _wifi_activate(wifi_activated_cb callback, void *user_data); diff --git a/src/libnetwork.c b/src/libnetwork.c index cf926aa..5b2c2ca 100755 --- a/src/libnetwork.c +++ b/src/libnetwork.c @@ -488,7 +488,11 @@ static int __net_dbus_connect_service(wifi_ap_h ap_h, const net_wifi_connect_service_info_t *wifi_connection_info) { net_err_t Error = NET_ERR_NONE; - struct connman_service *service = ap_h; + + struct connman_service *service = + connman_get_service(((net_profile_info_t *) ap_h)->essid); + if (!service) + return NET_ERR_INVALID_PARAM; if (g_strcmp0(wifi_connection_info->security, "ieee8021x") == 0) { /* Create the EAP config file @@ -1032,7 +1036,11 @@ int _wifi_deactivate(wifi_deactivated_cb callback, void *user_data) bool _wifi_libnet_check_ap_validity(wifi_ap_h ap_h) { - struct connman_service *service = ap_h; + struct connman_service *service = + connman_get_service(((net_profile_info_t *) ap_h)->essid); + if (!service) + return NET_ERR_INVALID_PARAM; + const char *name = connman_service_get_name(service); if (!name) @@ -1048,7 +1056,9 @@ void _wifi_libnet_add_to_ap_list(wifi_ap_h ap_h) void _wifi_libnet_remove_from_ap_list(wifi_ap_h ap_h) { - ap_handle_list = g_slist_remove(ap_handle_list, ap_h); + net_profile_info_t *ap_info = ap_h; + ap_handle_list = g_slist_remove(ap_handle_list, ap_info); + g_free(ap_info->essid); g_free(ap_h); } @@ -1212,7 +1222,14 @@ int _wifi_libnet_get_connected_profile(wifi_ap_h *ap) return WIFI_ERROR_NO_CONNECTION; } - *ap = ap_h; + *ap = g_try_malloc0(sizeof(net_profile_info_t)); + if (*ap == NULL) + return WIFI_ERROR_OUT_OF_MEMORY; + + ((net_profile_info_t *) (*ap))->essid = + g_strdup(connman_service_get_path(ap_h)); + + _wifi_libnet_add_to_ap_list(*ap); return WIFI_ERROR_NONE; } @@ -1317,7 +1334,11 @@ int _wifi_libnet_close_profile(wifi_ap_h ap_h, wifi_disconnected_cb callback, vo __libnet_set_disconnected_cb(callback, user_data);*/ - struct connman_service* service = ap_h; + struct connman_service *service = + connman_get_service(((net_profile_info_t *) ap_h)->essid); + if (!service) + return NET_ERR_INVALID_PARAM; + __libnet_set_disconnected_cb(callback, user_data); connman_service_disconnect(service, connman_service_disconnect_cb, NULL); @@ -1343,7 +1364,10 @@ int _wifi_libnet_connect_with_wps(wifi_ap_h ap_h, wifi_connected_cb callback, vo __libnet_set_connected_cb(callback, user_data);*/ int rv = NET_ERR_NONE; - struct connman_service* service = ap_h; + struct connman_service *service = + connman_get_service(((net_profile_info_t *) ap_h)->essid); + if (!service) + return NET_ERR_INVALID_PARAM; __libnet_set_connected_cb(callback, user_data); @@ -1372,7 +1396,10 @@ int _wifi_libnet_forget_ap(wifi_ap_h ap) return WIFI_ERROR_OPERATION_FAILED;*/ int rv = NET_ERR_NONE; - struct connman_service* service = ap; + struct connman_service *service = + connman_get_service(((net_profile_info_t *) ap)->essid); + if (!service) + return NET_ERR_INVALID_PARAM; connman_service_remove(service); diff --git a/src/net_wifi_ap.c b/src/net_wifi_ap.c index 33340d8..c9676cd 100755 --- a/src/net_wifi_ap.c +++ b/src/net_wifi_ap.c @@ -33,17 +33,17 @@ return ipstr; }*/ -/*static void __wifi_init_ap(net_profile_info_t *profile_info, const char *essid) +static void __wifi_init_ap(net_profile_info_t *profile_info, const char *essid) { - profile_info->profile_type = NET_DEVICE_WIFI; +/* profile_info->profile_type = NET_DEVICE_WIFI; profile_info->ProfileState = NET_STATE_TYPE_IDLE; profile_info->ProfileInfo.Wlan.net_info.IpConfigType = NET_IP_CONFIG_TYPE_OFF; profile_info->ProfileInfo.Wlan.net_info.ProxyMethod = NET_PROXY_TYPE_DIRECT; profile_info->ProfileInfo.Wlan.wlan_mode = NETPM_WLAN_CONNMODE_AUTO; profile_info->ProfileInfo.Wlan.security_info.sec_mode = WLAN_SEC_MODE_NONE; - profile_info->ProfileInfo.Wlan.security_info.enc_mode = WLAN_ENC_MODE_NONE; - g_strlcpy(profile_info->ProfileInfo.Wlan.essid, essid, NET_WLAN_ESSID_LEN+1); -}*/ + profile_info->ProfileInfo.Wlan.security_info.enc_mode = WLAN_ENC_MODE_NONE;*/ + profile_info->essid = g_strdup(essid); +} wifi_connection_state_e _wifi_convert_to_ap_state( net_state_type_t state) @@ -82,14 +82,14 @@ EXPORT_API int wifi_ap_create(const char* essid, wifi_ap_h* ap) return WIFI_ERROR_INVALID_PARAMETER; } -/* net_profile_info_t *ap_info = g_try_malloc0(sizeof(net_profile_info_t)); + net_profile_info_t *ap_info = g_try_malloc0(sizeof(net_profile_info_t)); if (ap_info == NULL) return WIFI_ERROR_OUT_OF_MEMORY; __wifi_init_ap(ap_info, essid); _wifi_libnet_add_to_ap_list((wifi_ap_h)ap_info); - *ap = (wifi_ap_h)ap_info;*/ + *ap = (wifi_ap_h)ap_info; return WIFI_ERROR_NONE; } @@ -113,14 +113,14 @@ EXPORT_API int wifi_ap_clone(wifi_ap_h* cloned_ap, wifi_ap_h origin) return WIFI_ERROR_INVALID_PARAMETER; } - /*net_profile_info_t *ap_info = g_try_malloc0(sizeof(net_profile_info_t)); + net_profile_info_t *ap_info = g_try_malloc0(sizeof(net_profile_info_t)); if (ap_info == NULL) return WIFI_ERROR_OUT_OF_MEMORY; memcpy(ap_info, origin, sizeof(net_profile_info_t)); _wifi_libnet_add_to_ap_list((wifi_ap_h)ap_info); - *cloned_ap = (wifi_ap_h)ap_info;*/ + *cloned_ap = (wifi_ap_h)ap_info; return WIFI_ERROR_NONE; }