summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoradhavan.m <adhavan.m@samsung.com>2017-02-24 11:41:17 +0530
committeradhavan.m <adhavan.m@samsung.com>2017-02-28 12:36:56 +0530
commit8adf8317a3f9c5e97aeece729cd8bc6e35302f68 (patch)
tree5c0c6a5f7a3fa25984415f0c2916ce9d9b8f6073
parent44e97d2b87696840a08f10f67e9cad13ff50e4ce (diff)
downloadwifi-8adf8317a3f9c5e97aeece729cd8bc6e35302f68.tar.gz
wifi-8adf8317a3f9c5e97aeece729cd8bc6e35302f68.tar.bz2
wifi-8adf8317a3f9c5e97aeece729cd8bc6e35302f68.zip
Fix for JIRA issue TCAPI-2224 Change-Id: I9cdcbb2c0050e59617606fb4118b862232082e7f Signed-off-by: adhavan.m <adhavan.m@samsung.com>
-rwxr-xr-xTizen.Network.WiFi/Interop/Interop.WiFi.cs246
-rwxr-xr-xTizen.Network.WiFi/Tizen.Network.WiFi/ConnectionStateChangedEventArgs.cs4
-rwxr-xr-xTizen.Network.WiFi/Tizen.Network.WiFi/WiFiAP.cs33
-rwxr-xr-xTizen.Network.WiFi/Tizen.Network.WiFi/WiFiAddressInformation.cs28
-rwxr-xr-xTizen.Network.WiFi/Tizen.Network.WiFi/WiFiConfiguration.cs15
-rwxr-xr-xTizen.Network.WiFi/Tizen.Network.WiFi/WiFiEap.cs50
-rwxr-xr-xTizen.Network.WiFi/Tizen.Network.WiFi/WiFiEapConfiguration.cs62
-rwxr-xr-xTizen.Network.WiFi/Tizen.Network.WiFi/WiFiManagerImpl.cs109
-rwxr-xr-xTizen.Network.WiFi/Tizen.Network.WiFi/WiFiNetwork.cs36
-rwxr-xr-xTizen.Network.WiFi/Tizen.Network.WiFi/WiFiNetworkChange.cs51
-rwxr-xr-xTizen.Network.WiFi/Tizen.Network.WiFi/WiFiSecurity.cs36
-rwxr-xr-xpackaging/csapi-network-wifi.spec2
12 files changed, 261 insertions, 411 deletions
diff --git a/Tizen.Network.WiFi/Interop/Interop.WiFi.cs b/Tizen.Network.WiFi/Interop/Interop.WiFi.cs
index 6a94c07..9a2cdf8 100755
--- a/Tizen.Network.WiFi/Interop/Interop.WiFi.cs
+++ b/Tizen.Network.WiFi/Interop/Interop.WiFi.cs
@@ -37,70 +37,70 @@ internal static partial class Interop
//capi-network-wifi-1.0.65-19.23.armv7l
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_initialize")]
- internal static extern int Initialize(out IntPtr wifi);
+ internal static extern int Initialize(out SafeWiFiManagerHandle wifi);
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_deinitialize")]
internal static extern int Deinitialize(IntPtr wifi);
////Wi-Fi Manager
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_activate")]
- internal static extern int Activate(IntPtr wifi, VoidCallback callback, IntPtr userData);
+ internal static extern int Activate(SafeWiFiManagerHandle wifi, VoidCallback callback, IntPtr userData);
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_activate_with_wifi_picker_tested")]
- internal static extern int ActivateWithWiFiPickerTested(IntPtr wifi, VoidCallback callback, IntPtr userData);
+ internal static extern int ActivateWithWiFiPickerTested(SafeWiFiManagerHandle wifi, VoidCallback callback, IntPtr userData);
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_deactivate")]
- internal static extern int Deactivate(IntPtr wifi, VoidCallback callback, IntPtr userData);
+ internal static extern int Deactivate(SafeWiFiManagerHandle wifi, VoidCallback callback, IntPtr userData);
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_is_activated")]
- internal static extern int IsActive(IntPtr wifi, out bool activated);
+ internal static extern int IsActive(SafeWiFiManagerHandle wifi, out bool activated);
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_get_mac_address")]
- internal static extern int GetMacAddress(IntPtr wifi, out string macAddress);
+ internal static extern int GetMacAddress(SafeWiFiManagerHandle wifi, out string macAddress);
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_get_network_interface_name")]
- internal static extern int GetNetworkInterfaceName(IntPtr wifi, out string interfaceName);
+ internal static extern int GetNetworkInterfaceName(SafeWiFiManagerHandle wifi, out string interfaceName);
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_scan")]
- internal static extern int Scan(IntPtr wifi, VoidCallback callback, IntPtr userData);
+ internal static extern int Scan(SafeWiFiManagerHandle wifi, VoidCallback callback, IntPtr userData);
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_scan_specific_ap")]
- internal static extern int ScanSpecificAP(IntPtr wifi, string essid, VoidCallback callback, IntPtr userData);
+ internal static extern int ScanSpecificAP(SafeWiFiManagerHandle wifi, string essid, VoidCallback callback, IntPtr userData);
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_get_connected_ap")]
- internal static extern int GetConnectedAP(IntPtr wifi, out IntPtr ap);
+ internal static extern int GetConnectedAP(SafeWiFiManagerHandle wifi, out IntPtr ap);
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_foreach_found_ap")]
- internal static extern int GetForeachFoundAPs(IntPtr wifi, HandleCallback callback, IntPtr userData);
+ internal static extern int GetForeachFoundAPs(SafeWiFiManagerHandle wifi, HandleCallback callback, IntPtr userData);
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_foreach_found_specific_ap")]
- internal static extern int GetForeachFoundSpecificAPs(IntPtr wifi, HandleCallback callback, IntPtr userData);
+ internal static extern int GetForeachFoundSpecificAPs(SafeWiFiManagerHandle wifi, HandleCallback callback, IntPtr userData);
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_connect")]
- internal static extern int Connect(IntPtr wifi, IntPtr ap, VoidCallback callback, IntPtr userData);
+ internal static extern int Connect(SafeWiFiManagerHandle wifi, IntPtr ap, VoidCallback callback, IntPtr userData);
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_disconnect")]
- internal static extern int Disconnect(IntPtr wifi, IntPtr ap, VoidCallback callback, IntPtr userData);
+ internal static extern int Disconnect(SafeWiFiManagerHandle wifi, IntPtr ap, VoidCallback callback, IntPtr userData);
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_connect_by_wps_pbc")]
- internal static extern int ConnectByWpsPbc(IntPtr wifi, IntPtr ap, VoidCallback callback, IntPtr userData);
+ internal static extern int ConnectByWpsPbc(SafeWiFiManagerHandle wifi, IntPtr ap, VoidCallback callback, IntPtr userData);
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_connect_by_wps_pin")]
- internal static extern int ConnectByWpsPin(IntPtr wifi, IntPtr ap, string pin, VoidCallback callback, IntPtr userData);
+ internal static extern int ConnectByWpsPin(SafeWiFiManagerHandle wifi, IntPtr ap, string pin, VoidCallback callback, IntPtr userData);
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_forget_ap")]
- internal static extern int RemoveAP(IntPtr wifi, IntPtr ap);
+ internal static extern int RemoveAP(SafeWiFiManagerHandle wifi, IntPtr ap);
//Wi-Fi Monitor
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_get_connection_state")]
- internal static extern int GetConnectionState(IntPtr wifi, out int connectionState);
+ internal static extern int GetConnectionState(SafeWiFiManagerHandle wifi, out int connectionState);
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_set_device_state_changed_cb")]
- internal static extern int SetDeviceStateChangedCallback(IntPtr wifi, DeviceStateChangedCallback callback, IntPtr userData);
+ internal static extern int SetDeviceStateChangedCallback(SafeWiFiManagerHandle wifi, DeviceStateChangedCallback callback, IntPtr userData);
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_unset_device_state_changed_cb")]
- internal static extern int UnsetDeviceStateChangedCallback(IntPtr wifi);
+ internal static extern int UnsetDeviceStateChangedCallback(SafeWiFiManagerHandle wifi);
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_set_background_scan_cb")]
- internal static extern int SetBackgroundScanCallback(IntPtr wifi, VoidCallback callback, IntPtr userData);
+ internal static extern int SetBackgroundScanCallback(SafeWiFiManagerHandle wifi, VoidCallback callback, IntPtr userData);
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_unset_background_scan_cb")]
- internal static extern int UnsetBackgroundScanCallback(IntPtr wifi);
+ internal static extern int UnsetBackgroundScanCallback(SafeWiFiManagerHandle wifi);
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_set_connection_state_changed_cb")]
- internal static extern int SetConnectionStateChangedCallback(IntPtr wifi, ConnectionStateChangedCallback callback, IntPtr userData);
+ internal static extern int SetConnectionStateChangedCallback(SafeWiFiManagerHandle wifi, ConnectionStateChangedCallback callback, IntPtr userData);
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_unset_connection_state_changed_cb")]
- internal static extern int UnsetConnectionStateChangedCallback(IntPtr wifi);
+ internal static extern int UnsetConnectionStateChangedCallback(SafeWiFiManagerHandle wifi);
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_set_rssi_level_changed_cb")]
- internal static extern int SetRssiLevelchangedCallback(IntPtr wifi, RssiLevelChangedCallback callback, IntPtr userData);
+ internal static extern int SetRssiLevelchangedCallback(SafeWiFiManagerHandle wifi, RssiLevelChangedCallback callback, IntPtr userData);
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_unset_rssi_level_changed_cb")]
- internal static extern int UnsetRssiLevelchangedCallback(IntPtr wifi);
+ internal static extern int UnsetRssiLevelchangedCallback(SafeWiFiManagerHandle wifi);
internal static class AP
{
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_create")]
- internal static extern int Create(IntPtr wifi, string essid, out IntPtr ap);
+ internal static extern int Create(SafeWiFiManagerHandle wifi, string essid, out IntPtr ap);
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_hidden_create")]
- internal static extern int CreateHiddenAP(IntPtr wifi, string essid, out IntPtr ap);
+ internal static extern int CreateHiddenAP(SafeWiFiManagerHandle wifi, string essid, out IntPtr ap);
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_destroy")]
internal static extern int Destroy(IntPtr ap);
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_clone")]
@@ -110,105 +110,105 @@ internal static partial class Interop
////Network Information
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_get_essid")]
- internal static extern int GetEssid(IntPtr ap, out IntPtr essid);
+ internal static extern int GetEssid(SafeWiFiAPHandle ap, out IntPtr essid);
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_get_bssid")]
- internal static extern int GetBssid(IntPtr ap, out IntPtr bssid);
+ internal static extern int GetBssid(SafeWiFiAPHandle ap, out IntPtr bssid);
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_get_rssi")]
- internal static extern int GetRssi(IntPtr ap, out int rssi);
+ internal static extern int GetRssi(SafeWiFiAPHandle ap, out int rssi);
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_get_frequency")]
- internal static extern int GetFrequency(IntPtr ap, out int frequency);
+ internal static extern int GetFrequency(SafeWiFiAPHandle ap, out int frequency);
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_get_max_speed")]
- internal static extern int GetMaxSpeed(IntPtr ap, out int maxSpeed);
+ internal static extern int GetMaxSpeed(SafeWiFiAPHandle ap, out int maxSpeed);
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_is_favorite")]
- internal static extern int IsFavorite(IntPtr ap, out bool isFavorite);
+ internal static extern int IsFavorite(SafeWiFiAPHandle ap, out bool isFavorite);
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_is_passpoint")]
- internal static extern int IsPasspoint(IntPtr ap, out bool isPasspoint);
+ internal static extern int IsPasspoint(SafeWiFiAPHandle ap, out bool isPasspoint);
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_get_connection_state")]
- internal static extern int GetConnectionState(IntPtr ap, out int connectionState);
+ internal static extern int GetConnectionState(SafeWiFiAPHandle ap, out int connectionState);
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_get_ip_config_type")]
- internal static extern int GetIPConfigType(IntPtr ap, int addressFamily, out int ipConfigType);
+ internal static extern int GetIPConfigType(SafeWiFiAPHandle ap, int addressFamily, out int ipConfigType);
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_set_ip_config_type")]
- internal static extern int SetIPConfigType(IntPtr ap, int addressFamily, int ipConfigType);
+ internal static extern int SetIPConfigType(SafeWiFiAPHandle ap, int addressFamily, int ipConfigType);
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_get_ip_address")]
- internal static extern int GetIPAddress(IntPtr ap, int addressFamily, out IntPtr ipAddress);
+ internal static extern int GetIPAddress(SafeWiFiAPHandle ap, int addressFamily, out IntPtr ipAddress);
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_set_ip_address")]
- internal static extern int SetIPAddress(IntPtr ap, int addressFamily, string ipAddress);
+ internal static extern int SetIPAddress(SafeWiFiAPHandle ap, int addressFamily, string ipAddress);
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_get_subnet_mask")]
- internal static extern int GetSubnetMask(IntPtr ap, int addressFamily, out IntPtr subnetMask);
+ internal static extern int GetSubnetMask(SafeWiFiAPHandle ap, int addressFamily, out IntPtr subnetMask);
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_set_subnet_mask")]
- internal static extern int SetSubnetMask(IntPtr ap, int addressFamily, string subnetMask);
+ internal static extern int SetSubnetMask(SafeWiFiAPHandle ap, int addressFamily, string subnetMask);
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_get_gateway_address")]
- internal static extern int GetGatewayAddress(IntPtr ap, int addressFamily, out IntPtr gatewayAddress);
+ internal static extern int GetGatewayAddress(SafeWiFiAPHandle ap, int addressFamily, out IntPtr gatewayAddress);
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_set_gateway_address")]
- internal static extern int SetGatewayAddress(IntPtr ap, int addressFamily, string gatewayAddress);
+ internal static extern int SetGatewayAddress(SafeWiFiAPHandle ap, int addressFamily, string gatewayAddress);
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_get_proxy_address")]
- internal static extern int GetProxyAddress(IntPtr ap, int addressFamily, out IntPtr proxyAddress);
+ internal static extern int GetProxyAddress(SafeWiFiAPHandle ap, int addressFamily, out IntPtr proxyAddress);
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_set_proxy_address")]
- internal static extern int SetProxyAddress(IntPtr ap, int addressFamily, string proxyAddress);
+ internal static extern int SetProxyAddress(SafeWiFiAPHandle ap, int addressFamily, string proxyAddress);
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_get_proxy_type")]
- internal static extern int GetProxyType(IntPtr ap, out int proxyType);
+ internal static extern int GetProxyType(SafeWiFiAPHandle ap, out int proxyType);
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_set_proxy_type")]
- internal static extern int SetProxyType(IntPtr ap, int proxyType);
+ internal static extern int SetProxyType(SafeWiFiAPHandle ap, int proxyType);
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_get_dns_address")]
- internal static extern int GetDnsAddress(IntPtr ap, int order, int addressFamily, out IntPtr dnsAddress);
+ internal static extern int GetDnsAddress(SafeWiFiAPHandle ap, int order, int addressFamily, out IntPtr dnsAddress);
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_set_dns_address")]
- internal static extern int SetDnsAddress(IntPtr ap, int order, int addressFamily, string dnsAddress);
+ internal static extern int SetDnsAddress(SafeWiFiAPHandle ap, int order, int addressFamily, string dnsAddress);
////Security Information
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_get_security_type")]
- internal static extern int GetSecurityType(IntPtr ap, out int securityType);
+ internal static extern int GetSecurityType(SafeWiFiAPHandle ap, out int securityType);
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_set_security_type")]
- internal static extern int SetSecurityType(IntPtr ap, int securityType);
+ internal static extern int SetSecurityType(SafeWiFiAPHandle ap, int securityType);
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_get_encryption_type")]
- internal static extern int GetEncryptionType(IntPtr ap, out int encryptionType);
+ internal static extern int GetEncryptionType(SafeWiFiAPHandle ap, out int encryptionType);
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_set_encryption_type")]
- internal static extern int SetEncryptionType(IntPtr ap, int encryptionType);
+ internal static extern int SetEncryptionType(SafeWiFiAPHandle ap, int encryptionType);
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_is_passphrase_required")]
- internal static extern int IsPassphraseRequired(IntPtr ap, out bool required);
+ internal static extern int IsPassphraseRequired(SafeWiFiAPHandle ap, out bool required);
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_set_passphrase")]
- internal static extern int SetPassphrase(IntPtr ap, string passphrase);
+ internal static extern int SetPassphrase(SafeWiFiAPHandle ap, string passphrase);
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_is_wps_supported")]
- internal static extern int IsWpsSupported(IntPtr ap, out bool supported);
+ internal static extern int IsWpsSupported(SafeWiFiAPHandle ap, out bool supported);
////EAP
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_set_eap_passphrase")]
- internal static extern int SetEapPassphrase(IntPtr ap, string userName, string password);
+ internal static extern int SetEapPassphrase(SafeWiFiAPHandle ap, string userName, string password);
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_get_eap_passphrase")]
- internal static extern int GetEapPassphrase(IntPtr ap, out IntPtr userName, out bool isPasswordSet);
+ internal static extern int GetEapPassphrase(SafeWiFiAPHandle ap, out IntPtr userName, out bool isPasswordSet);
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_get_eap_ca_cert_file")]
- internal static extern int GetEapCaCertFile(IntPtr ap, out IntPtr file);
+ internal static extern int GetEapCaCertFile(SafeWiFiAPHandle ap, out IntPtr file);
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_set_eap_ca_cert_file")]
- internal static extern int SetEapCaCertFile(IntPtr ap, string file);
+ internal static extern int SetEapCaCertFile(SafeWiFiAPHandle ap, string file);
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_get_eap_client_cert_file")]
- internal static extern int GetEapClientCertFile(IntPtr ap, out IntPtr file);
+ internal static extern int GetEapClientCertFile(SafeWiFiAPHandle ap, out IntPtr file);
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_set_eap_client_cert_file")]
- internal static extern int SetEapClientCertFile(IntPtr ap, string file);
+ internal static extern int SetEapClientCertFile(SafeWiFiAPHandle ap, string file);
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_get_eap_private_key_file")]
- internal static extern int GetEapPrivateKeyFile(IntPtr ap, out IntPtr file);
+ internal static extern int GetEapPrivateKeyFile(SafeWiFiAPHandle ap, out IntPtr file);
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_set_eap_private_key_info")]
- internal static extern int SetEapPrivateKeyFile(IntPtr ap, string file, string password);
+ internal static extern int SetEapPrivateKeyFile(SafeWiFiAPHandle ap, string file, string password);
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_get_eap_type")]
- internal static extern int GetEapType(IntPtr ap, out int eapType);
+ internal static extern int GetEapType(SafeWiFiAPHandle ap, out int eapType);
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_set_eap_type")]
- internal static extern int SetEapType(IntPtr ap, int eapType);
+ internal static extern int SetEapType(SafeWiFiAPHandle ap, int eapType);
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_get_eap_auth_type")]
- internal static extern int GetEapAuthType(IntPtr ap, out int file);
+ internal static extern int GetEapAuthType(SafeWiFiAPHandle ap, out int file);
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_set_eap_auth_type")]
- internal static extern int SetEapAuthType(IntPtr ap, int file);
+ internal static extern int SetEapAuthType(SafeWiFiAPHandle ap, int file);
}
internal static class Config
{
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_config_create")]
- internal static extern int Create(IntPtr wifi, string name, string passPhrase, int securityType, out IntPtr config);
+ internal static extern int Create(SafeWiFiManagerHandle wifi, string name, string passPhrase, int securityType, out IntPtr config);
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_config_clone")]
internal static extern int Clone(IntPtr origin, out IntPtr cloned);
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_config_destroy")]
internal static extern int Destroy(IntPtr config);
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_config_save")]
- internal static extern int SaveConfiguration(IntPtr wifi, IntPtr config);
+ internal static extern int SaveConfiguration(SafeWiFiManagerHandle wifi, IntPtr config);
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_config_foreach_configuration")]
- internal static extern int GetForeachConfiguration(IntPtr wifi, HandleCallback callback, IntPtr userData);
+ internal static extern int GetForeachConfiguration(SafeWiFiManagerHandle wifi, HandleCallback callback, IntPtr userData);
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_config_get_name")]
internal static extern int GetName(IntPtr config, out IntPtr name);
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_config_get_security_type")]
@@ -222,33 +222,107 @@ internal static partial class Interop
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_config_get_hidden_ap_property")]
internal static extern int GetHiddenAPProperty(IntPtr config, out bool isHidden);
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_config_get_eap_anonymous_identity")]
- internal static extern int GetEapAnonymousIdentity(IntPtr config, out IntPtr anonymousIdentify);
+ internal static extern int GetEapAnonymousIdentity(SafeWiFiConfigHandle config, out IntPtr anonymousIdentify);
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_config_set_eap_anonymous_identity")]
- internal static extern int SetEapAnonymousIdentity(IntPtr config, string anonymousIdentify);
+ internal static extern int SetEapAnonymousIdentity(SafeWiFiConfigHandle config, string anonymousIdentify);
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_config_get_eap_ca_cert_file")]
- internal static extern int GetEapCaCertFile(IntPtr config, out IntPtr caCert);
+ internal static extern int GetEapCaCertFile(SafeWiFiConfigHandle config, out IntPtr caCert);
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_config_set_eap_ca_cert_file")]
- internal static extern int SetEapCaCertFile(IntPtr config, string caCert);
+ internal static extern int SetEapCaCertFile(SafeWiFiConfigHandle config, string caCert);
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_config_get_eap_client_cert_file")]
- internal static extern int GetEapClientCertFile(IntPtr config, out IntPtr clientCert);
+ internal static extern int GetEapClientCertFile(SafeWiFiConfigHandle config, out IntPtr clientCert);
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_config_set_eap_client_cert_file")]
- internal static extern int SetEapClientCertFile(IntPtr config, string privateKey, string clientCert);
+ internal static extern int SetEapClientCertFile(SafeWiFiConfigHandle config, string privateKey, string clientCert);
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_config_get_eap_identity")]
- internal static extern int GetEapIdentity(IntPtr config, out IntPtr identify);
+ internal static extern int GetEapIdentity(SafeWiFiConfigHandle config, out IntPtr identify);
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_config_set_eap_identity")]
- internal static extern int SetEapIdentity(IntPtr config, string identify);
+ internal static extern int SetEapIdentity(SafeWiFiConfigHandle config, string identify);
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_config_get_eap_type")]
- internal static extern int GetEapType(IntPtr config, out int eapType);
+ internal static extern int GetEapType(SafeWiFiConfigHandle config, out int eapType);
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_config_set_eap_type")]
- internal static extern int SetEapType(IntPtr config, int eapType);
+ internal static extern int SetEapType(SafeWiFiConfigHandle config, int eapType);
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_config_get_eap_auth_type")]
- internal static extern int GetEapAuthType(IntPtr config, out int eapAuthType);
+ internal static extern int GetEapAuthType(SafeWiFiConfigHandle config, out int eapAuthType);
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_config_set_eap_auth_type")]
- internal static extern int SetEapAuthType(IntPtr config, int eapAuthType);
+ internal static extern int SetEapAuthType(SafeWiFiConfigHandle config, int eapAuthType);
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_config_get_eap_subject_match")]
- internal static extern int GetEapSubjectMatch(IntPtr config, out IntPtr subjectMatch);
+ internal static extern int GetEapSubjectMatch(SafeWiFiConfigHandle config, out IntPtr subjectMatch);
[DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_config_set_eap_subject_match")]
- internal static extern int SetEapSubjectMatch(IntPtr config, string subjectMatch);
+ internal static extern int SetEapSubjectMatch(SafeWiFiConfigHandle config, string subjectMatch);
+ }
+
+ internal sealed class SafeWiFiManagerHandle : SafeHandle
+ {
+ public SafeWiFiManagerHandle() : base(IntPtr.Zero, true)
+ {
+ }
+
+ public override bool IsInvalid
+ {
+ get
+ {
+ return this.handle == IntPtr.Zero;
+ }
+ }
+
+ protected override bool ReleaseHandle()
+ {
+ WiFi.Deinitialize(this.handle);
+ this.SetHandle(IntPtr.Zero);
+ return true;
+ }
+ }
+
+ internal sealed class SafeWiFiAPHandle : SafeHandle
+ {
+ public SafeWiFiAPHandle() : base(IntPtr.Zero, true)
+ {
+ }
+
+ public SafeWiFiAPHandle(IntPtr handle) : base(handle, true)
+ {
+ }
+
+ public override bool IsInvalid
+ {
+ get
+ {
+ return this.handle == IntPtr.Zero;
+ }
+ }
+
+ protected override bool ReleaseHandle()
+ {
+ WiFi.AP.Destroy(this.handle);
+ this.SetHandle(IntPtr.Zero);
+ return true;
+ }
+ }
+
+ internal sealed class SafeWiFiConfigHandle : SafeHandle
+ {
+ public SafeWiFiConfigHandle() : base(IntPtr.Zero, true)
+ {
+ }
+
+ public SafeWiFiConfigHandle(IntPtr handle) : base(handle, true)
+ {
+ }
+
+ public override bool IsInvalid
+ {
+ get
+ {
+ return this.handle == IntPtr.Zero;
+ }
+ }
+
+ protected override bool ReleaseHandle()
+ {
+ WiFi.Config.Destroy(this.handle);
+ this.SetHandle(IntPtr.Zero);
+ return true;
+ }
}
}
}
diff --git a/Tizen.Network.WiFi/Tizen.Network.WiFi/ConnectionStateChangedEventArgs.cs b/Tizen.Network.WiFi/Tizen.Network.WiFi/ConnectionStateChangedEventArgs.cs
index fee5ca8..37c2a4d 100755
--- a/Tizen.Network.WiFi/Tizen.Network.WiFi/ConnectionStateChangedEventArgs.cs
+++ b/Tizen.Network.WiFi/Tizen.Network.WiFi/ConnectionStateChangedEventArgs.cs
@@ -26,10 +26,10 @@ namespace Tizen.Network.WiFi
private WiFiConnectionState _state = WiFiConnectionState.Disconnected;
private WiFiAP _ap;
- internal ConnectionStateChangedEventArgs(WiFiConnectionState s, IntPtr _apHandle)
+ internal ConnectionStateChangedEventArgs(WiFiConnectionState s, IntPtr apHandle)
{
_state = s;
- _ap = new WiFiAP(_apHandle);
+ _ap = new WiFiAP(apHandle);
}
/// <summary>
diff --git a/Tizen.Network.WiFi/Tizen.Network.WiFi/WiFiAP.cs b/Tizen.Network.WiFi/Tizen.Network.WiFi/WiFiAP.cs
index e18b7d4..ab275af 100755
--- a/Tizen.Network.WiFi/Tizen.Network.WiFi/WiFiAP.cs
+++ b/Tizen.Network.WiFi/Tizen.Network.WiFi/WiFiAP.cs
@@ -30,7 +30,7 @@ namespace Tizen.Network.WiFi
private int _requestId = 0;
private WiFiNetwork _network;
private WiFiSecurity _security;
- private bool disposed = false;
+ private bool _disposed = false;
/// <summary>
/// The network information of the access point(AP).
@@ -99,17 +99,15 @@ namespace Tizen.Network.WiFi
private void Dispose(bool disposing)
{
- if (disposed)
+ if (_disposed)
return;
if (disposing)
{
- _network.Dispose();
- _security.Dispose();
Interop.WiFi.AP.Destroy(_apHandle);
_apHandle = IntPtr.Zero;
}
- disposed = true;
+ _disposed = true;
}
private void createHandle(string id, bool hidden)
@@ -117,11 +115,12 @@ namespace Tizen.Network.WiFi
int ret = -1;
if (hidden)
{
- ret = Interop.WiFi.AP.CreateHiddenAP(WiFiManagerImpl.Instance.GetHandle(), id, out _apHandle);
+ ret = Interop.WiFi.AP.CreateHiddenAP(WiFiManagerImpl.Instance.GetSafeHandle(), id, out _apHandle);
}
+
else
{
- ret = Interop.WiFi.AP.Create(WiFiManagerImpl.Instance.GetHandle(), id, out _apHandle);
+ ret = Interop.WiFi.AP.Create(WiFiManagerImpl.Instance.GetSafeHandle(), id, out _apHandle);
}
if (ret != (int)WiFiError.None)
@@ -133,8 +132,9 @@ namespace Tizen.Network.WiFi
private void Initialize()
{
- _network = new WiFiNetwork(_apHandle);
- _security = new WiFiSecurity(_apHandle);
+ Interop.WiFi.SafeWiFiAPHandle apHandle = new Interop.WiFi.SafeWiFiAPHandle(_apHandle);
+ _network = new WiFiNetwork(apHandle);
+ _security = new WiFiSecurity(apHandle);
}
/// <summary>
@@ -150,11 +150,6 @@ namespace Tizen.Network.WiFi
}
}
- internal IntPtr GetHandle()
- {
- return _apHandle;
- }
-
/// <summary>
/// Connects the access point asynchronously.
/// </summary>
@@ -181,7 +176,7 @@ namespace Tizen.Network.WiFi
}
};
}
- int ret = Interop.WiFi.Connect(WiFiManagerImpl.Instance.GetHandle(), _apHandle, _callback_map[id], id);
+ int ret = Interop.WiFi.Connect(WiFiManagerImpl.Instance.GetSafeHandle(), _apHandle, _callback_map[id], id);
if (ret != (int)WiFiError.None)
{
Log.Error(Globals.LogTag, "Failed to connect wifi, Error - " + (WiFiError)ret);
@@ -216,7 +211,7 @@ namespace Tizen.Network.WiFi
}
};
}
- int ret = Interop.WiFi.ConnectByWpsPbc(WiFiManagerImpl.Instance.GetHandle(), _apHandle, _callback_map[id], id);
+ int ret = Interop.WiFi.ConnectByWpsPbc(WiFiManagerImpl.Instance.GetSafeHandle(), _apHandle, _callback_map[id], id);
if (ret != (int)WiFiError.None)
{
Log.Error(Globals.LogTag, "Failed to connect wifi, Error - " + (WiFiError)ret);
@@ -252,7 +247,7 @@ namespace Tizen.Network.WiFi
}
};
}
- int ret = Interop.WiFi.ConnectByWpsPin(WiFiManagerImpl.Instance.GetHandle(), _apHandle, pin, _callback_map[id], id);
+ int ret = Interop.WiFi.ConnectByWpsPin(WiFiManagerImpl.Instance.GetSafeHandle(), _apHandle, pin, _callback_map[id], id);
if (ret != (int)WiFiError.None)
{
Log.Error(Globals.LogTag, "Failed to connect wifi, Error - " + (WiFiError)ret);
@@ -287,7 +282,7 @@ namespace Tizen.Network.WiFi
}
};
}
- int ret = Interop.WiFi.Disconnect(WiFiManagerImpl.Instance.GetHandle(), _apHandle, _callback_map[id], id);
+ int ret = Interop.WiFi.Disconnect(WiFiManagerImpl.Instance.GetSafeHandle(), _apHandle, _callback_map[id], id);
if (ret != (int)WiFiError.None)
{
Log.Error(Globals.LogTag, "Failed to disconnect wifi, Error - " + (WiFiError)ret);
@@ -302,7 +297,7 @@ namespace Tizen.Network.WiFi
/// </summary>
public void RemoveAP()
{
- int ret = Interop.WiFi.RemoveAP(WiFiManagerImpl.Instance.GetHandle(), _apHandle);
+ int ret = Interop.WiFi.RemoveAP(WiFiManagerImpl.Instance.GetSafeHandle(), _apHandle);
if (ret != (int)WiFiError.None)
{
Log.Error(Globals.LogTag, "Failed to remove with AP, Error - " + (WiFiError)ret);
diff --git a/Tizen.Network.WiFi/Tizen.Network.WiFi/WiFiAddressInformation.cs b/Tizen.Network.WiFi/Tizen.Network.WiFi/WiFiAddressInformation.cs
index 5c1e388..c2d2588 100755
--- a/Tizen.Network.WiFi/Tizen.Network.WiFi/WiFiAddressInformation.cs
+++ b/Tizen.Network.WiFi/Tizen.Network.WiFi/WiFiAddressInformation.cs
@@ -22,39 +22,15 @@ namespace Tizen.Network.WiFi
{
internal class WiFiAddressInformation : IAddressInformation
{
- private IntPtr _handle;
+ private Interop.WiFi.SafeWiFiAPHandle _handle;
private AddressFamily _family;
- private bool _disposed = false;
- internal WiFiAddressInformation(IntPtr handle, AddressFamily family)
+ internal WiFiAddressInformation(Interop.WiFi.SafeWiFiAPHandle handle, AddressFamily family)
{
_handle = handle;
_family = family;
}
- ~WiFiAddressInformation()
- {
- Dispose(false);
- }
-
- protected void Dispose(bool disposing)
- {
- if (_disposed)
- return;
-
- if (disposing)
- {
- // Free managed objects.
- }
- _handle = IntPtr.Zero;
- _disposed = true;
- }
-
- public void Dispose()
- {
- Dispose(true);
- }
-
public System.Net.IPAddress Dns1
{
get
diff --git a/Tizen.Network.WiFi/Tizen.Network.WiFi/WiFiConfiguration.cs b/Tizen.Network.WiFi/Tizen.Network.WiFi/WiFiConfiguration.cs
index e2d67d0..1f25515 100755
--- a/Tizen.Network.WiFi/Tizen.Network.WiFi/WiFiConfiguration.cs
+++ b/Tizen.Network.WiFi/Tizen.Network.WiFi/WiFiConfiguration.cs
@@ -28,7 +28,7 @@ namespace Tizen.Network.WiFi
public class WiFiConfiguration : IDisposable
{
private IntPtr _configHandle = IntPtr.Zero;
- private bool disposed = false;
+ private bool _disposed = false;
private WiFiEapConfiguration _eapConfig;
/// <summary>
@@ -132,7 +132,8 @@ namespace Tizen.Network.WiFi
internal WiFiConfiguration(IntPtr handle)
{
_configHandle = handle;
- _eapConfig = new WiFiEapConfiguration(_configHandle);
+ Interop.WiFi.SafeWiFiConfigHandle configHandle = new Interop.WiFi.SafeWiFiConfigHandle(handle);
+ _eapConfig = new WiFiEapConfiguration(configHandle);
}
/// <summary>
@@ -143,12 +144,13 @@ namespace Tizen.Network.WiFi
/// <param name="type">Security type of the WiFi.</param>
public WiFiConfiguration(string name, string passPhrase, WiFiSecurityType type)
{
- int ret = Interop.WiFi.Config.Create(WiFiManagerImpl.Instance.GetHandle(), name, passPhrase, (int)type, out _configHandle);
+ int ret = Interop.WiFi.Config.Create(WiFiManagerImpl.Instance.GetSafeHandle(), name, passPhrase, (int)type, out _configHandle);
if (ret != (int)WiFiError.None)
{
Log.Error(Globals.LogTag, "Failed to create config handle, Error - " + (WiFiError)ret);
}
- _eapConfig = new WiFiEapConfiguration(_configHandle);
+ Interop.WiFi.SafeWiFiConfigHandle configHandle = new Interop.WiFi.SafeWiFiConfigHandle(_configHandle);
+ _eapConfig = new WiFiEapConfiguration(configHandle);
}
~WiFiConfiguration()
@@ -167,16 +169,15 @@ namespace Tizen.Network.WiFi
private void Dispose(bool disposing)
{
- if (disposed)
+ if (_disposed)
return;
if (disposing)
{
- _eapConfig.Dispose();
Interop.WiFi.Config.Destroy(_configHandle);
_configHandle = IntPtr.Zero;
}
- disposed = true;
+ _disposed = true;
}
internal IntPtr GetHandle()
diff --git a/Tizen.Network.WiFi/Tizen.Network.WiFi/WiFiEap.cs b/Tizen.Network.WiFi/Tizen.Network.WiFi/WiFiEap.cs
index 325e5f9..dcc174c 100755
--- a/Tizen.Network.WiFi/Tizen.Network.WiFi/WiFiEap.cs
+++ b/Tizen.Network.WiFi/Tizen.Network.WiFi/WiFiEap.cs
@@ -26,10 +26,9 @@ namespace Tizen.Network.WiFi
/// <summary>
/// A class for managing the EAP information of access point(AP).
/// </summary>
- public class WiFiEap : IWiFiEap, IDisposable
+ public class WiFiEap : IWiFiEap
{
- private IntPtr _apHandle = IntPtr.Zero;
- private bool disposed = false;
+ private Interop.WiFi.SafeWiFiAPHandle _apHandle;
/// <summary>
/// The file path of CA Certificate of EAP.
@@ -113,38 +112,11 @@ namespace Tizen.Network.WiFi
}
}
- internal WiFiEap(IntPtr apHandle)
+ internal WiFiEap(Interop.WiFi.SafeWiFiAPHandle apHandle)
{
_apHandle = apHandle;
}
- ~WiFiEap()
- {
- Dispose(false);
- }
-
- /// <summary>
- /// A method to destroy the managed objects in WiFiEap.
- /// </summary>
- public void Dispose()
- {
- Dispose(true);
- GC.SuppressFinalize(this);
- }
-
- private void Dispose(bool disposing)
- {
- if (disposed)
- return;
-
- if (disposing)
- {
- // Free managed objects.
- }
- _apHandle = IntPtr.Zero;
- disposed = true;
- }
-
/// <summary>
/// Gets the private key file of EAP.
/// </summary>
@@ -156,7 +128,7 @@ namespace Tizen.Network.WiFi
if (ret != (int)WiFiError.None)
{
Log.Error(Globals.LogTag, "Failed to get private key file, Error - " + (WiFiError)ret);
- WiFiErrorFactory.ThrowWiFiException(ret, _apHandle);
+ WiFiErrorFactory.ThrowWiFiException(ret, _apHandle.DangerousGetHandle());
}
return Marshal.PtrToStringAnsi(strPtr);
}
@@ -172,7 +144,7 @@ namespace Tizen.Network.WiFi
if (ret != (int)WiFiError.None)
{
Log.Error(Globals.LogTag, "Failed to set private key file, Error - " + (WiFiError)ret);
- WiFiErrorFactory.ThrowWiFiException(ret, _apHandle);
+ WiFiErrorFactory.ThrowWiFiException(ret, _apHandle.DangerousGetHandle());
}
}
@@ -187,7 +159,7 @@ namespace Tizen.Network.WiFi
if (ret != (int)WiFiError.None)
{
Log.Error(Globals.LogTag, "Failed to get client cert file, Error - " + (WiFiError)ret);
- WiFiErrorFactory.ThrowWiFiException(ret, _apHandle);
+ WiFiErrorFactory.ThrowWiFiException(ret, _apHandle.DangerousGetHandle());
}
return Marshal.PtrToStringAnsi(strPtr);
}
@@ -202,7 +174,7 @@ namespace Tizen.Network.WiFi
if (ret != (int)WiFiError.None)
{
Log.Error(Globals.LogTag, "Failed to set client cert file, Error - " + (WiFiError)ret);
- WiFiErrorFactory.ThrowWiFiException(ret, _apHandle);
+ WiFiErrorFactory.ThrowWiFiException(ret, _apHandle.DangerousGetHandle());
}
}
@@ -218,7 +190,7 @@ namespace Tizen.Network.WiFi
if (ret != (int)WiFiError.None)
{
Log.Error(Globals.LogTag, "Failed to get user name in eap passphrase, Error - " + (WiFiError)ret);
- WiFiErrorFactory.ThrowWiFiException(ret, _apHandle);
+ WiFiErrorFactory.ThrowWiFiException(ret, _apHandle.DangerousGetHandle());
}
return Marshal.PtrToStringAnsi(strptr);
}
@@ -235,7 +207,7 @@ namespace Tizen.Network.WiFi
if (ret != (int)WiFiError.None)
{
Log.Error(Globals.LogTag, "Failed to get IsPasswordSet in passphrase, Error - " + (WiFiError)ret);
- WiFiErrorFactory.ThrowWiFiException(ret, _apHandle);
+ WiFiErrorFactory.ThrowWiFiException(ret, _apHandle.DangerousGetHandle());
}
return passwordSet;
}
@@ -250,7 +222,7 @@ namespace Tizen.Network.WiFi
if (ret != (int)WiFiError.None)
{
Log.Error(Globals.LogTag, "Failed to set username, Error - " + (WiFiError)ret);
- WiFiErrorFactory.ThrowWiFiException(ret, _apHandle);
+ WiFiErrorFactory.ThrowWiFiException(ret, _apHandle.DangerousGetHandle());
}
}
@@ -264,7 +236,7 @@ namespace Tizen.Network.WiFi
if (ret != (int)WiFiError.None)
{
Log.Error(Globals.LogTag, "Failed to set password, Error - " + (WiFiError)ret);
- WiFiErrorFactory.ThrowWiFiException(ret, _apHandle);
+ WiFiErrorFactory.ThrowWiFiException(ret, _apHandle.DangerousGetHandle());
}
}
} //WiFiEapInformation
diff --git a/Tizen.Network.WiFi/Tizen.Network.WiFi/WiFiEapConfiguration.cs b/Tizen.Network.WiFi/Tizen.Network.WiFi/WiFiEapConfiguration.cs
index 2235453..5d301d8 100755
--- a/Tizen.Network.WiFi/Tizen.Network.WiFi/WiFiEapConfiguration.cs
+++ b/Tizen.Network.WiFi/Tizen.Network.WiFi/WiFiEapConfiguration.cs
@@ -22,10 +22,9 @@ namespace Tizen.Network.WiFi
/// <summary>
/// A class for managing the EAP configuration.
/// </summary>
- public class WiFiEapConfiguration : IWiFiEap, IDisposable
+ public class WiFiEapConfiguration : IWiFiEap
{
- private IntPtr _configHandle = IntPtr.Zero;
- private bool disposed = false;
+ private Interop.WiFi.SafeWiFiConfigHandle _configHandle;
/// <summary>
/// The file path of CA Certificate of EAP.
@@ -39,7 +38,7 @@ namespace Tizen.Network.WiFi
if (ret != (int)WiFiError.None)
{
Log.Error(Globals.LogTag, "Failed to get caCertFile Error - " + (WiFiError)ret);
- WiFiErrorFactory.ThrowWiFiException(ret, _configHandle);
+ WiFiErrorFactory.ThrowWiFiException(ret, _configHandle.DangerousGetHandle());
}
return Marshal.PtrToStringAnsi(strPtr);
}
@@ -49,7 +48,7 @@ namespace Tizen.Network.WiFi
if (ret != (int)WiFiError.None)
{
Log.Error(Globals.LogTag, "Failed to set caCertFile, Error - " + (WiFiError)ret);
- WiFiErrorFactory.ThrowWiFiException(ret, _configHandle);
+ WiFiErrorFactory.ThrowWiFiException(ret, _configHandle.DangerousGetHandle());
}
}
}
@@ -66,7 +65,7 @@ namespace Tizen.Network.WiFi
if (ret != (int)WiFiError.None)
{
Log.Error(Globals.LogTag, "Failed to eap type Error - " + (WiFiError)ret);
- WiFiErrorFactory.ThrowWiFiException(ret, _configHandle);
+ WiFiErrorFactory.ThrowWiFiException(ret, _configHandle.DangerousGetHandle());
}
return (WiFiEapType)type;
}
@@ -76,7 +75,7 @@ namespace Tizen.Network.WiFi
if (ret != (int)WiFiError.None)
{
Log.Error(Globals.LogTag, "Failed to set eap type, Error - " + (WiFiError)ret);
- WiFiErrorFactory.ThrowWiFiException(ret, _configHandle);
+ WiFiErrorFactory.ThrowWiFiException(ret, _configHandle.DangerousGetHandle());
}
}
}
@@ -93,7 +92,7 @@ namespace Tizen.Network.WiFi
if (ret != (int)WiFiError.None)
{
Log.Error(Globals.LogTag, "Failed to get auth type Error - " + (WiFiError)ret);
- WiFiErrorFactory.ThrowWiFiException(ret, _configHandle);
+ WiFiErrorFactory.ThrowWiFiException(ret, _configHandle.DangerousGetHandle());
}
return (WiFiAuthenticationType)type;
}
@@ -103,7 +102,7 @@ namespace Tizen.Network.WiFi
if (ret != (int)WiFiError.None)
{
Log.Error(Globals.LogTag, "Failed to set eap auth type, Error - " + (WiFiError)ret);
- WiFiErrorFactory.ThrowWiFiException(ret, _configHandle);
+ WiFiErrorFactory.ThrowWiFiException(ret, _configHandle.DangerousGetHandle());
}
}
}
@@ -120,7 +119,7 @@ namespace Tizen.Network.WiFi
if (ret != (int)WiFiError.None)
{
Log.Error(Globals.LogTag, "Failed to get anonymous identify Error - " + (WiFiError)ret);
- WiFiErrorFactory.ThrowWiFiException(ret, _configHandle);
+ WiFiErrorFactory.ThrowWiFiException(ret, _configHandle.DangerousGetHandle());
return "";
}
return Marshal.PtrToStringAnsi(strPtr);
@@ -131,7 +130,7 @@ namespace Tizen.Network.WiFi
if (ret != (int)WiFiError.None)
{
Log.Error(Globals.LogTag, "Failed to set anonymous identify, Error - " + (WiFiError)ret);
- WiFiErrorFactory.ThrowWiFiException(ret, _configHandle);
+ WiFiErrorFactory.ThrowWiFiException(ret, _configHandle.DangerousGetHandle());
}
}
}
@@ -148,7 +147,7 @@ namespace Tizen.Network.WiFi
if (ret != (int)WiFiError.None)
{
Log.Error(Globals.LogTag, "Failed to get identify Error - " + (WiFiError)ret);
- WiFiErrorFactory.ThrowWiFiException(ret, _configHandle);
+ WiFiErrorFactory.ThrowWiFiException(ret, _configHandle.DangerousGetHandle());
return "";
}
return Marshal.PtrToStringAnsi(strPtr);
@@ -159,7 +158,7 @@ namespace Tizen.Network.WiFi
if (ret != (int)WiFiError.None)
{
Log.Error(Globals.LogTag, "Failed to set identify, Error - " + (WiFiError)ret);
- WiFiErrorFactory.ThrowWiFiException(ret, _configHandle);
+ WiFiErrorFactory.ThrowWiFiException(ret, _configHandle.DangerousGetHandle());
}
}
}
@@ -176,7 +175,7 @@ namespace Tizen.Network.WiFi
if (ret != (int)WiFiError.None)
{
Log.Error(Globals.LogTag, "Failed to get subject match Error - " + (WiFiError)ret);
- WiFiErrorFactory.ThrowWiFiException(ret, _configHandle);
+ WiFiErrorFactory.ThrowWiFiException(ret, _configHandle.DangerousGetHandle());
return "";
}
return Marshal.PtrToStringAnsi(strPtr);
@@ -187,43 +186,16 @@ namespace Tizen.Network.WiFi
if (ret != (int)WiFiError.None)
{
Log.Error(Globals.LogTag, "Failed to set subject match, Error - " + (WiFiError)ret);
- WiFiErrorFactory.ThrowWiFiException(ret, _configHandle);
+ WiFiErrorFactory.ThrowWiFiException(ret, _configHandle.DangerousGetHandle());
}
}
}
- internal WiFiEapConfiguration(IntPtr handle)
+ internal WiFiEapConfiguration(Interop.WiFi.SafeWiFiConfigHandle handle)
{
_configHandle = handle;
}
- ~WiFiEapConfiguration()
- {
- Dispose(false);
- }
-
- /// <summary>
- /// A method to destroy the managed objects in WiFiEapConfiguration.
- /// </summary>
- public void Dispose()
- {
- Dispose(true);
- GC.SuppressFinalize(this);
- }
-
- private void Dispose(bool disposing)
- {
- if (disposed)
- return;
-
- if (disposing)
- {
- // Free managed objects.
- }
- _configHandle = IntPtr.Zero;
- disposed = true;
- }
-
/// <summary>
/// Gets access point client cert file from configuration.
/// </summary>
@@ -235,7 +207,7 @@ namespace Tizen.Network.WiFi
if (ret != (int)WiFiError.None)
{
Log.Error(Globals.LogTag, "Failed to get client cert file, Error - " + (WiFiError)ret);
- WiFiErrorFactory.ThrowWiFiException(ret, _configHandle);
+ WiFiErrorFactory.ThrowWiFiException(ret, _configHandle.DangerousGetHandle());
}
return Marshal.PtrToStringAnsi(strPtr);
}
@@ -251,7 +223,7 @@ namespace Tizen.Network.WiFi
if (ret != (int)WiFiError.None)
{
Log.Error(Globals.LogTag, "Failed to set client cert file, Error - " + (WiFiError)ret);
- WiFiErrorFactory.ThrowWiFiException(ret, _configHandle);
+ WiFiErrorFactory.ThrowWiFiException(ret, _configHandle.DangerousGetHandle());
}
}
} //WiFiEapConfiguration
diff --git a/Tizen.Network.WiFi/Tizen.Network.WiFi/WiFiManagerImpl.cs b/Tizen.Network.WiFi/Tizen.Network.WiFi/WiFiManagerImpl.cs
index 7cc4baa..5ced4a4 100755
--- a/Tizen.Network.WiFi/Tizen.Network.WiFi/WiFiManagerImpl.cs
+++ b/Tizen.Network.WiFi/Tizen.Network.WiFi/WiFiManagerImpl.cs
@@ -18,6 +18,7 @@ using System;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
+using System.Runtime.InteropServices;
namespace Tizen.Network.WiFi
{
@@ -26,10 +27,9 @@ namespace Tizen.Network.WiFi
internal const string LogTag = "Tizen.Network.WiFi";
}
- internal class HandleHolder : IDisposable
+ internal class HandleHolder
{
- private IntPtr _handle = IntPtr.Zero;
- private bool disposed = false;
+ private Interop.WiFi.SafeWiFiManagerHandle _handle;
internal HandleHolder()
{
@@ -38,45 +38,19 @@ namespace Tizen.Network.WiFi
Log.Debug(Globals.LogTag, "Handle: " + _handle);
}
- ~HandleHolder()
+ internal Interop.WiFi.SafeWiFiManagerHandle GetSafeHandle()
{
- Dispose(false);
- }
-
- internal IntPtr GetHandle()
- {
- Log.Debug(Globals.LogTag, "Handleholder handle = " + _handle);
+ Log.Debug(Globals.LogTag, "Handleholder safehandle = " + _handle);
return _handle;
}
- public void Dispose()
- {
- Dispose(true);
- GC.SuppressFinalize(this);
- }
-
- private void Dispose(bool disposing)
- {
- Log.Debug(Globals.LogTag, ">>> HandleHolder Dispose with " + disposing);
- Log.Debug(Globals.LogTag, ">>> Handle: " + _handle);
- if (disposed)
- return;
-
- if (disposing)
- {
- // Free managed objects.
- WiFiManagerImpl.Instance.Deinitialize(_handle);
- }
- disposed = true;
- }
}
- internal partial class WiFiManagerImpl : IDisposable
+ internal partial class WiFiManagerImpl
{
private static WiFiManagerImpl _instance = null;
private Dictionary<IntPtr, Interop.WiFi.VoidCallback> _callback_map = new Dictionary<IntPtr, Interop.WiFi.VoidCallback>();
private int _requestId = 0;
private string _macAddress;
- private bool disposed = false;
internal string MacAddress
{
@@ -85,7 +59,7 @@ namespace Tizen.Network.WiFi
if (String.IsNullOrEmpty(_macAddress))
{
string address;
- int ret = Interop.WiFi.GetMacAddress(GetHandle(), out address);
+ int ret = Interop.WiFi.GetMacAddress(GetSafeHandle(), out address);
if (ret != (int)WiFiError.None)
{
Log.Error(Globals.LogTag, "Failed to get mac address, Error - " + (WiFiError)ret);
@@ -105,7 +79,7 @@ namespace Tizen.Network.WiFi
get
{
string name;
- int ret = Interop.WiFi.GetNetworkInterfaceName(GetHandle(), out name);
+ int ret = Interop.WiFi.GetNetworkInterfaceName(GetSafeHandle(), out name);
if (ret != (int)WiFiError.None)
{
Log.Error(Globals.LogTag, "Failed to get interface name, Error - " + (WiFiError)ret);
@@ -120,7 +94,7 @@ namespace Tizen.Network.WiFi
get
{
int state;
- int ret = Interop.WiFi.GetConnectionState(GetHandle(), out state);
+ int ret = Interop.WiFi.GetConnectionState(GetSafeHandle(), out state);
if (ret != (int)WiFiError.None)
{
Log.Error(Globals.LogTag, "Failed to get connection state, Error - " + (WiFiError)ret);
@@ -135,7 +109,7 @@ namespace Tizen.Network.WiFi
get
{
bool active;
- int ret = Interop.WiFi.IsActive(GetHandle(), out active);
+ int ret = Interop.WiFi.IsActive(GetSafeHandle(), out active);
if (ret != (int)WiFiError.None)
{
Log.Error(Globals.LogTag, "Failed to get isActive, Error - " + (WiFiError)ret);
@@ -169,40 +143,15 @@ namespace Tizen.Network.WiFi
{
}
- ~WiFiManagerImpl()
- {
- Dispose(false);
- }
-
- public void Dispose()
- {
- Dispose(true);
- GC.SuppressFinalize(this);
- }
-
- private void Dispose(bool disposing)
- {
- if (disposed)
- return;
-
- if (disposing)
- {
- // Free managed objects.
- }
- //Free unmanaged objects
- RemoveAllRegisteredEvent();
- disposed = true;
- }
-
- internal IntPtr GetHandle()
+ internal Interop.WiFi.SafeWiFiManagerHandle GetSafeHandle()
{
Log.Debug(Globals.LogTag, "GetHandle, Thread Id = " + Thread.CurrentThread.ManagedThreadId);
- return s_threadName.Value.GetHandle();
+ return s_threadName.Value.GetSafeHandle();
}
- internal IntPtr Initialize()
+ internal Interop.WiFi.SafeWiFiManagerHandle Initialize()
{
- IntPtr handle;
+ Interop.WiFi.SafeWiFiManagerHandle handle = new Interop.WiFi.SafeWiFiManagerHandle();
int ret = Interop.WiFi.Initialize(out handle);
if (ret != (int)WiFiError.None)
{
@@ -212,16 +161,6 @@ namespace Tizen.Network.WiFi
return handle;
}
- internal void Deinitialize(IntPtr handle)
- {
- int ret = Interop.WiFi.Deinitialize(handle);
- if (ret != (int)WiFiError.None)
- {
- Log.Error(Globals.LogTag, "Failed to deinitialize wifi, Error - " + (WiFiError)ret);
- WiFiErrorFactory.ThrowWiFiException(ret);
- }
- }
-
internal IEnumerable<WiFiAP> GetFoundAPs()
{
List<WiFiAP> apList = new List<WiFiAP>();
@@ -238,7 +177,7 @@ namespace Tizen.Network.WiFi
return false;
};
- int ret = Interop.WiFi.GetForeachFoundAPs(GetHandle(), callback, IntPtr.Zero);
+ int ret = Interop.WiFi.GetForeachFoundAPs(GetSafeHandle(), callback, IntPtr.Zero);
if (ret != (int)WiFiError.None)
{
Log.Error(Globals.LogTag, "Failed to get all APs, Error - " + (WiFiError)ret);
@@ -265,7 +204,7 @@ namespace Tizen.Network.WiFi
};
- int ret = Interop.WiFi.GetForeachFoundSpecificAPs(GetHandle(), callback, IntPtr.Zero);
+ int ret = Interop.WiFi.GetForeachFoundSpecificAPs(GetSafeHandle(), callback, IntPtr.Zero);
if (ret != (int)WiFiError.None)
{
Log.Error(Globals.LogTag, "Failed to get specific APs, Error - " + (WiFiError)ret);
@@ -291,7 +230,7 @@ namespace Tizen.Network.WiFi
return false;
};
- int ret = Interop.WiFi.Config.GetForeachConfiguration(GetHandle(), callback, IntPtr.Zero);
+ int ret = Interop.WiFi.Config.GetForeachConfiguration(GetSafeHandle(), callback, IntPtr.Zero);
if (ret != (int)WiFiError.None)
{
Log.Error(Globals.LogTag, "Failed to get configurations, Error - " + (WiFiError)ret);
@@ -304,7 +243,7 @@ namespace Tizen.Network.WiFi
internal void SaveWiFiNetworkConfiguration(WiFiConfiguration config)
{
IntPtr configHandle = config.GetHandle();
- int ret = Interop.WiFi.Config.SaveConfiguration(GetHandle(), configHandle);
+ int ret = Interop.WiFi.Config.SaveConfiguration(GetSafeHandle(), configHandle);
if (ret != (int)WiFiError.None)
{
Log.Error(Globals.LogTag, "Failed to save configuration, Error - " + (WiFiError)ret);
@@ -316,7 +255,7 @@ namespace Tizen.Network.WiFi
{
IntPtr apHandle;
- int ret = Interop.WiFi.GetConnectedAP(GetHandle(), out apHandle);
+ int ret = Interop.WiFi.GetConnectedAP(GetSafeHandle(), out apHandle);
if (ret != (int)WiFiError.None)
{
Log.Error(Globals.LogTag, "Failed to connect with AP, Error - " + (WiFiError)ret);
@@ -348,7 +287,7 @@ namespace Tizen.Network.WiFi
}
};
}
- int ret = Interop.WiFi.Activate(GetHandle(), _callback_map[id], id);
+ int ret = Interop.WiFi.Activate(GetSafeHandle(), _callback_map[id], id);
if (ret != (int)WiFiError.None)
{
Log.Error(Globals.LogTag, "Failed to activate wifi, Error - " + (WiFiError)ret);
@@ -379,7 +318,7 @@ namespace Tizen.Network.WiFi
}
};
}
- int ret = Interop.WiFi.ActivateWithWiFiPickerTested(GetHandle(), _callback_map[id], id);
+ int ret = Interop.WiFi.ActivateWithWiFiPickerTested(GetSafeHandle(), _callback_map[id], id);
if (ret != (int)WiFiError.None)
{
Log.Error(Globals.LogTag, "Failed to activate wifi, Error - " + (WiFiError)ret);
@@ -410,7 +349,7 @@ namespace Tizen.Network.WiFi
}
};
}
- int ret = Interop.WiFi.Deactivate(GetHandle(), _callback_map[id], id);
+ int ret = Interop.WiFi.Deactivate(GetSafeHandle(), _callback_map[id], id);
if (ret != (int)WiFiError.None)
{
Log.Error(Globals.LogTag, "Failed to deactivate wifi, Error - " + (WiFiError)ret);
@@ -441,7 +380,7 @@ namespace Tizen.Network.WiFi
}
};
}
- int ret = Interop.WiFi.Scan(GetHandle(), _callback_map[id], id);
+ int ret = Interop.WiFi.Scan(GetSafeHandle(), _callback_map[id], id);
if (ret != (int)WiFiError.None)
{
Log.Error(Globals.LogTag, "Failed to scan all AP, Error - " + (WiFiError)ret);
@@ -472,7 +411,7 @@ namespace Tizen.Network.WiFi
}
};
}
- int ret = Interop.WiFi.ScanSpecificAP(GetHandle(), essid, _callback_map[id], id);
+ int ret = Interop.WiFi.ScanSpecificAP(GetSafeHandle(), essid, _callback_map[id], id);
if (ret != (int)WiFiError.None)
{
Log.Error(Globals.LogTag, "Failed to scan with specific AP, Error - " + (WiFiError)ret);
diff --git a/Tizen.Network.WiFi/Tizen.Network.WiFi/WiFiNetwork.cs b/Tizen.Network.WiFi/Tizen.Network.WiFi/WiFiNetwork.cs
index d98ed81..49319bc 100755
--- a/Tizen.Network.WiFi/Tizen.Network.WiFi/WiFiNetwork.cs
+++ b/Tizen.Network.WiFi/Tizen.Network.WiFi/WiFiNetwork.cs
@@ -25,12 +25,11 @@ namespace Tizen.Network.WiFi
/// <summary>
/// A class for managing the Wi-Fi network information.
/// </summary>
- public class WiFiNetwork : IDisposable
+ public class WiFiNetwork
{
- private IntPtr _apHandle = IntPtr.Zero;
+ private Interop.WiFi.SafeWiFiAPHandle _apHandle;
private IAddressInformation _ipv4;
private IAddressInformation _ipv6;
- private bool disposed = false;
private string _essid;
/// <summary>
@@ -252,7 +251,7 @@ namespace Tizen.Network.WiFi
}
}
- internal WiFiNetwork(IntPtr apHandle)
+ internal WiFiNetwork(Interop.WiFi.SafeWiFiAPHandle apHandle)
{
_apHandle = apHandle;
_ipv4 = new WiFiAddressInformation(apHandle, AddressFamily.IPv4);
@@ -266,34 +265,5 @@ namespace Tizen.Network.WiFi
}
_essid = Marshal.PtrToStringAnsi(strPtr);
}
-
- ~WiFiNetwork()
- {
- Dispose(false);
- }
-
- /// <summary>
- /// A method to destroy managed WiFiNetwork objects.
- /// </summary>
- public void Dispose()
- {
- Dispose(true);
- GC.SuppressFinalize(this);
- }
-
- private void Dispose(bool disposing)
- {
- if (disposed)
- return;
-
- if (disposing)
- {
- _ipv4.Dispose();
- _ipv6.Dispose();
- }
- _apHandle = IntPtr.Zero;
- disposed = true;
- }
-
} //WiFiNetworkInformation
}
diff --git a/Tizen.Network.WiFi/Tizen.Network.WiFi/WiFiNetworkChange.cs b/Tizen.Network.WiFi/Tizen.Network.WiFi/WiFiNetworkChange.cs
index 2a5693c..ac1eabf 100755
--- a/Tizen.Network.WiFi/Tizen.Network.WiFi/WiFiNetworkChange.cs
+++ b/Tizen.Network.WiFi/Tizen.Network.WiFi/WiFiNetworkChange.cs
@@ -132,30 +132,6 @@ namespace Tizen.Network.WiFi
}
}
- internal void RemoveAllRegisteredEvent()
- {
- //unregister all remaining events when this object is released.
- if (_deviceStateChanged != null)
- {
- UnregisterDeviceStateChangedEvent();
- }
-
- if (_connectionStateChanged != null)
- {
- UnregisterConnectionStateChangedEvent();
- }
-
- if (_rssiLevelChanged != null)
- {
- UnregisterRssiLevelChangedEvent();
- }
-
- if (_backgroundScanFinished != null)
- {
- UnregisterBackgroundScanFinishedEvent();
- }
- }
-
private void RegisterDeviceStateChangedEvent()
{
_deviceChangedCallback = (int deviceState, IntPtr userDate) =>
@@ -164,7 +140,7 @@ namespace Tizen.Network.WiFi
DeviceStateChangedEventArgs e = new DeviceStateChangedEventArgs(state);
_deviceStateChanged.SafeInvoke(null, e);
};
- int ret = Interop.WiFi.SetDeviceStateChangedCallback(GetHandle(), _deviceChangedCallback, IntPtr.Zero);
+ int ret = Interop.WiFi.SetDeviceStateChangedCallback(GetSafeHandle(), _deviceChangedCallback, IntPtr.Zero);
if (ret != (int)WiFiError.None)
{
Log.Error(Globals.LogTag, "Failed to set device state changed callback, Error - " + (WiFiError)ret);
@@ -173,7 +149,7 @@ namespace Tizen.Network.WiFi
private void UnregisterDeviceStateChangedEvent()
{
- int ret = Interop.WiFi.UnsetDeviceStateChangedCallback(GetHandle());
+ int ret = Interop.WiFi.UnsetDeviceStateChangedCallback(GetSafeHandle());
if (ret != (int)WiFiError.None)
{
Log.Error(Globals.LogTag, "Failed to unset device state changed callback, Error - " + (WiFiError)ret);
@@ -182,13 +158,16 @@ namespace Tizen.Network.WiFi
private void RegisterConnectionStateChangedEvent()
{
- _connectionChangedCallback = (int connectionState, IntPtr ap, IntPtr userDate) =>
+ _connectionChangedCallback = (int connectionState, IntPtr ap, IntPtr userData) =>
{
- WiFiConnectionState state = (WiFiConnectionState)connectionState;
- ConnectionStateChangedEventArgs e = new ConnectionStateChangedEventArgs(state, ap);
- _connectionStateChanged.SafeInvoke(null, e);
+ if (ap != IntPtr.Zero)
+ {
+ WiFiConnectionState state = (WiFiConnectionState)connectionState;
+ ConnectionStateChangedEventArgs e = new ConnectionStateChangedEventArgs(state, ap);
+ _connectionStateChanged.SafeInvoke(null, e);
+ }
};
- int ret = Interop.WiFi.SetConnectionStateChangedCallback(GetHandle(), _connectionChangedCallback, IntPtr.Zero);
+ int ret = Interop.WiFi.SetConnectionStateChangedCallback(GetSafeHandle(), _connectionChangedCallback, IntPtr.Zero);
if (ret != (int)WiFiError.None)
{
Log.Error(Globals.LogTag, "Failed to set copnnection state changed callback, Error - " + (WiFiError)ret);
@@ -197,7 +176,7 @@ namespace Tizen.Network.WiFi
private void UnregisterConnectionStateChangedEvent()
{
- int ret = Interop.WiFi.UnsetConnectionStateChangedCallback(GetHandle());
+ int ret = Interop.WiFi.UnsetConnectionStateChangedCallback(GetSafeHandle());
if (ret != (int)WiFiError.None)
{
Log.Error(Globals.LogTag, "Failed to unset device state changed callback, Error - " + (WiFiError)ret);
@@ -213,7 +192,7 @@ namespace Tizen.Network.WiFi
RssiLevelChangedEventArgs e = new RssiLevelChangedEventArgs(level);
_rssiLevelChanged.SafeInvoke(null, e);
};
- int ret = Interop.WiFi.SetRssiLevelchangedCallback(GetHandle(), _rssiChangedCallback, IntPtr.Zero);
+ int ret = Interop.WiFi.SetRssiLevelchangedCallback(GetSafeHandle(), _rssiChangedCallback, IntPtr.Zero);
if (ret != (int)WiFiError.None)
{
Log.Error(Globals.LogTag, "Failed to set rssi level changed callback, Error - " + (WiFiError)ret);
@@ -222,7 +201,7 @@ namespace Tizen.Network.WiFi
private void UnregisterRssiLevelChangedEvent()
{
- int ret = Interop.WiFi.UnsetRssiLevelchangedCallback(GetHandle());
+ int ret = Interop.WiFi.UnsetRssiLevelchangedCallback(GetSafeHandle());
if (ret != (int)WiFiError.None)
{
Log.Error(Globals.LogTag, "Failed to unset rssi level changed callback, Error - " + (WiFiError)ret);
@@ -236,7 +215,7 @@ namespace Tizen.Network.WiFi
EventArgs e = new EventArgs();
_backgroundScanFinished.SafeInvoke(null, e);
};
- int ret = Interop.WiFi.SetBackgroundScanCallback(GetHandle(), _backgroundScanFinishedCallback, IntPtr.Zero);
+ int ret = Interop.WiFi.SetBackgroundScanCallback(GetSafeHandle(), _backgroundScanFinishedCallback, IntPtr.Zero);
if (ret != (int)WiFiError.None)
{
Log.Error(Globals.LogTag, "Failed to set background scan callback, Error - " + (WiFiError)ret);
@@ -245,7 +224,7 @@ namespace Tizen.Network.WiFi
private void UnregisterBackgroundScanFinishedEvent()
{
- int ret = Interop.WiFi.UnsetBackgroundScanCallback(GetHandle());
+ int ret = Interop.WiFi.UnsetBackgroundScanCallback(GetSafeHandle());
if (ret != (int)WiFiError.None)
{
Log.Error(Globals.LogTag, "Failed to unset background scan callback, Error - " + (WiFiError)ret);
diff --git a/Tizen.Network.WiFi/Tizen.Network.WiFi/WiFiSecurity.cs b/Tizen.Network.WiFi/Tizen.Network.WiFi/WiFiSecurity.cs
index cdd395e..47646dd 100755
--- a/Tizen.Network.WiFi/Tizen.Network.WiFi/WiFiSecurity.cs
+++ b/Tizen.Network.WiFi/Tizen.Network.WiFi/WiFiSecurity.cs
@@ -22,11 +22,10 @@ namespace Tizen.Network.WiFi
/// <summary>
/// A class for managing the WiFi security information.
/// </summary>
- public class WiFiSecurity : IDisposable
+ public class WiFiSecurity
{
- private IntPtr _apHandle = IntPtr.Zero;
+ private Interop.WiFi.SafeWiFiAPHandle _apHandle;
private WiFiEap _eap;
- private bool disposed = false;
/// <summary>
/// The type of Wi-Fi security.
@@ -129,39 +128,12 @@ namespace Tizen.Network.WiFi
}
}
- internal WiFiSecurity(IntPtr apHandle)
+ internal WiFiSecurity(Interop.WiFi.SafeWiFiAPHandle apHandle)
{
_apHandle = apHandle;
_eap = new WiFiEap(apHandle);
}
- ~WiFiSecurity()
- {
- Dispose(false);
- }
-
- /// <summary>
- /// A method to destroy managed WiFiSecurity objects.
- /// </summary>
- public void Dispose()
- {
- Dispose(true);
- GC.SuppressFinalize(this);
- }
-
- private void Dispose(bool disposing)
- {
- if (disposed)
- return;
-
- if (disposing)
- {
- _eap.Dispose();
- }
- _apHandle = IntPtr.Zero;
- disposed = true;
- }
-
/// <summary>
/// Sets the passphrase.
/// </summary>
@@ -171,7 +143,7 @@ namespace Tizen.Network.WiFi
if (ret != (int)WiFiError.None)
{
Log.Error(Globals.LogTag, "Failed to set passphrase, Error - " + (WiFiError)ret);
- WiFiErrorFactory.ThrowWiFiException(ret, _apHandle);
+ WiFiErrorFactory.ThrowWiFiException(ret, _apHandle.DangerousGetHandle());
}
}
} //WiFiSecurityInformation
diff --git a/packaging/csapi-network-wifi.spec b/packaging/csapi-network-wifi.spec
index bac3d8e..ef2ed19 100755
--- a/packaging/csapi-network-wifi.spec
+++ b/packaging/csapi-network-wifi.spec
@@ -1,6 +1,6 @@
Name: csapi-network-wifi
Summary: Tizen Wi-Fi API for C#
-Version: 1.0.7
+Version: 1.0.8
Release: 1
Group: Development/Libraries
License: Apache-2.0