Пример #1
0
void KprNetworkInterfaceCleanup()
{
#if TARGET_OS_IPHONE
	if (gNetworkInterfaceReachability) {
		SCNetworkReachabilityUnscheduleFromRunLoop(gNetworkInterfaceReachability, CFRunLoopGetCurrent(), kCFRunLoopDefaultMode);
		CFRelease(gNetworkInterfaceReachability);
	}
#elif TARGET_OS_MAC
	if (gNetworkInterfaceSource) {
		CFRelease(gNetworkInterfaceSource);
		gNetworkInterfaceSource = NULL;
	}
	if (gNetworkInterfaceStore) {
		CFRelease(gNetworkInterfaceStore);
		gNetworkInterfaceStore = NULL;
	}
#elif TARGET_OS_WIN32
	if (gNetworkInterfaceHandle) {
		CancelMibChangeNotify2(gNetworkInterfaceHandle);
		gNetworkInterfaceHandle = 0;
	}
#elif TARGET_OS_KPL
	#ifdef KPR_CONFIG
	KplNetInterfaceTerminate();
	#endif
#endif
}
Пример #2
0
void FskNetInterfaceTerminate(void) {
	while (interfaceChangeCBList->list)
		FskNetInterfaceRemoveNotifier((FskNetInterfaceNotifier)interfaceChangeCBList->list);

	FskNetCleanupNetworkEnumeration();
#if TARGET_OS_WIN32
	removeWindowsNetworkInterfaceChangeTracker();
#elif TARGET_OS_IPHONE
	removeIOSNetworkInterfaceChangeTracker();
#elif TARGET_OS_MAC
	removeMacNetworkInterfaceChangeTracker();
#endif

#if TARGET_OS_KPL
	KplNetInterfaceTerminate();
#endif /* TARGET_OS_KPL */

	FskListMutexDispose(interfaceChangeCBList);
}