/// </code>
public static void Deinitialize()
{
+ s_presenceListenerId = 1;
+ s_presenceCallbacksMap.Clear();
+ s_presenceHandlesMap.Clear();
+
+ s_requestId = 1;
+ s_resourceFoundCallbacksMap.Clear();
+ s_deviceInformationCallbacksMap.Clear();
+ s_platformInformationCallbacksMap.Clear();
+
+ PresenceReceived = delegate{};
+ ResourceFound = delegate{};
+ PlatformInformationFound = delegate{};
+ DeviceInformationFound = delegate{};
+ FindingErrorOccurred = delegate{};
+
Interop.IoTConnectivity.Client.IoTCon.Deinitialize();
}
/// </code>
public static int StartReceivingPresence(string hostAddress, string resourceType)
{
- Interop.IoTConnectivity.Client.RemoteResource.ConnectivityType connectivityType = RemoteResource.GetConnectivityType(hostAddress);
- if (connectivityType == Interop.IoTConnectivity.Client.RemoteResource.ConnectivityType.None)
- {
- Log.Error(IoTConnectivityErrorFactory.LogTag, "Unable to parse host address");
- throw new ArgumentException("Unable to parse host address");
- }
+ Interop.IoTConnectivity.Client.RemoteResource.ConnectivityType connectivityType = Interop.IoTConnectivity.Client.RemoteResource.ConnectivityType.Ip;
if (resourceType != null && !ResourceTypes.IsValid(resourceType))
{
/// </code>
public static int StartFindingResource(string hostAddress, ResourceQuery query = null)
{
- Interop.IoTConnectivity.Client.RemoteResource.ConnectivityType connectivityType = RemoteResource.GetConnectivityType(hostAddress);
- if (connectivityType == Interop.IoTConnectivity.Client.RemoteResource.ConnectivityType.None)
- {
- Log.Error(IoTConnectivityErrorFactory.LogTag, "Unable to parse host address");
- throw new ArgumentException("Unable to parse host address");
- }
+ Interop.IoTConnectivity.Client.RemoteResource.ConnectivityType connectivityType = Interop.IoTConnectivity.Client.RemoteResource.ConnectivityType.Ip;
IntPtr id = IntPtr.Zero;
lock (s_resourceFoundCallbacksMap)
/// </code>
public static int StartFindingDeviceInformation(string hostAddress, ResourceQuery query = null)
{
- Interop.IoTConnectivity.Client.RemoteResource.ConnectivityType connectivityType = RemoteResource.GetConnectivityType(hostAddress);
- if (connectivityType == Interop.IoTConnectivity.Client.RemoteResource.ConnectivityType.None)
- {
- Log.Error(IoTConnectivityErrorFactory.LogTag, "Unable to parse host address");
- throw new ArgumentException("Unable to parse host address");
- }
+ Interop.IoTConnectivity.Client.RemoteResource.ConnectivityType connectivityType = Interop.IoTConnectivity.Client.RemoteResource.ConnectivityType.Ip;
IntPtr id = IntPtr.Zero;
lock (s_deviceInformationCallbacksMap)
/// </code>
public static int StartFindingPlatformInformation(string hostAddress, ResourceQuery query = null)
{
- Interop.IoTConnectivity.Client.RemoteResource.ConnectivityType connectivityType = RemoteResource.GetConnectivityType(hostAddress);
- if (connectivityType == Interop.IoTConnectivity.Client.RemoteResource.ConnectivityType.None)
- {
- Log.Error(IoTConnectivityErrorFactory.LogTag, "Unable to parse host address");
- throw new ArgumentException("Unable to parse host address");
- }
+ Interop.IoTConnectivity.Client.RemoteResource.ConnectivityType connectivityType = Interop.IoTConnectivity.Client.RemoteResource.ConnectivityType.Ip;
IntPtr id = IntPtr.Zero;
lock (s_platformInformationCallbacksMap)
{
Interop.IoTConnectivity.Client.RemoteResource.ConnectivityType type = Interop.IoTConnectivity.Client.RemoteResource.ConnectivityType.None;
+ Log.Info(IoTConnectivityErrorFactory.LogTag, hostAddress);
+
if (hostAddress == IoTConnectivityClientManager.MulticastAddress)
{
type = Interop.IoTConnectivity.Client.RemoteResource.ConnectivityType.Ipv4;
hostName = hostParts[0];
}
}
+ if (hostAddress.Contains("%"))
+ {
+ string[] hostParts = hostAddress.Split('%');
+ if (hostParts.Length == 2)
+ {
+ hostName = hostParts[0];
+ }
+ }
+ if (hostName.Contains("["))
+ {
+ string[] hostParts = hostName.Split('[');
+ if (hostParts.Length == 2)
+ {
+ hostName = hostParts[1];
+ }
+ }
+ Log.Info(IoTConnectivityErrorFactory.LogTag, hostName);
if (IPAddress.TryParse(hostName, out address))
{
switch (address.AddressFamily)
break;
}
}
+ else
+ {
+ Log.Error(IoTConnectivityErrorFactory.LogTag, "Failed to parse hostname " + hostName);
+ }
}
return type;
}