2 * Copyright (c) 2005-2017 Apple Inc. All rights reserved.
4 * @APPLE_LICENSE_HEADER_START@
6 * This file contains Original Code and/or Modifications of Original Code
7 * as defined in and that are subject to the Apple Public Source License
8 * Version 2.0 (the 'License'). You may not use this file except in
9 * compliance with the License. Please obtain a copy of the License at
10 * http://www.opensource.apple.com/apsl/ and read it before using this
13 * The Original Code and all software distributed under the License are
14 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
15 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
16 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
17 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
18 * Please see the License for the specific language governing rights and
19 * limitations under the License.
21 * @APPLE_LICENSE_HEADER_END@
24 #ifndef _SCNETWORKCONFIGURATIONPRIVATE_H
25 #define _SCNETWORKCONFIGURATIONPRIVATE_H
27 #include <Availability.h>
28 #include <TargetConditionals.h>
29 #include <sys/cdefs.h>
30 #include <CoreFoundation/CoreFoundation.h>
31 #include <SystemConfiguration/SystemConfiguration.h>
32 #include <SystemConfiguration/SCValidation.h>
33 #include <IOKit/IOKitLib.h>
36 @header SCNetworkConfigurationPrivate
43 @group Interface configuration
47 #pragma mark SCNetworkInterface configuration (typedefs, consts, enums)
50 @const kSCNetworkInterfaceTypeBridge
52 extern const CFStringRef kSCNetworkInterfaceTypeBridge
__OSX_AVAILABLE_STARTING(__MAC_10_7
,__IPHONE_4_0
/*SPI*/);
56 @const kSCNetworkInterfaceTypeLoopback
58 extern const CFStringRef kSCNetworkInterfaceTypeLoopback
__OSX_AVAILABLE_STARTING(__MAC_10_7
,__IPHONE_4_0
/*SPI*/);
61 @const kSCNetworkInterfaceLoopback
62 @discussion A network interface representing the loopback
65 extern const SCNetworkInterfaceRef kSCNetworkInterfaceLoopback
__OSX_AVAILABLE_STARTING(__MAC_10_7
,__IPHONE_4_0
/*SPI*/);
68 @const kSCNetworkInterfaceTypeVPN
70 extern const CFStringRef kSCNetworkInterfaceTypeVPN
__OSX_AVAILABLE_STARTING(__MAC_10_7
,__IPHONE_4_0
/*SPI*/);
73 @group Interface configuration (Bridge)
77 @typedef SCBridgeInterfaceRef
78 @discussion This is the type of a reference to an object that represents
81 typedef SCNetworkInterfaceRef SCBridgeInterfaceRef
;
83 typedef CF_ENUM(uint32_t, SCNetworkServicePrimaryRank
) {
84 kSCNetworkServicePrimaryRankDefault
= 0,
85 kSCNetworkServicePrimaryRankFirst
= 1,
86 kSCNetworkServicePrimaryRankLast
= 2,
87 kSCNetworkServicePrimaryRankNever
= 3,
88 kSCNetworkServicePrimaryRankScoped
= 4
92 #pragma mark SCNetworkInterface configuration (SPI)
95 @group Interface configuration
98 static __inline__ CFTypeRef
99 isA_SCNetworkInterface(CFTypeRef obj
)
101 return (isA_CFType(obj
, SCNetworkInterfaceGetTypeID()));
104 static __inline__ CFTypeRef
105 isA_SCBondInterface(CFTypeRef obj
)
107 CFStringRef interfaceType
;
109 if (!isA_SCNetworkInterface(obj
)) {
110 // if not an SCNetworkInterface
114 interfaceType
= SCNetworkInterfaceGetInterfaceType((SCNetworkInterfaceRef
)obj
);
115 if (!CFEqual(interfaceType
, kSCNetworkInterfaceTypeBond
)) {
123 static __inline__ CFTypeRef
124 isA_SCBridgeInterface(CFTypeRef obj
)
126 CFStringRef interfaceType
;
128 if (!isA_SCNetworkInterface(obj
)) {
129 // if not an SCNetworkInterface
133 interfaceType
= SCNetworkInterfaceGetInterfaceType((SCNetworkInterfaceRef
)obj
);
134 if (!CFEqual(interfaceType
, kSCNetworkInterfaceTypeBridge
)) {
142 static __inline__ CFTypeRef
143 isA_SCVLANInterface(CFTypeRef obj
)
145 CFStringRef interfaceType
;
147 if (!isA_SCNetworkInterface(obj
)) {
148 // if not an SCNetworkInterface
152 interfaceType
= SCNetworkInterfaceGetInterfaceType((SCNetworkInterfaceRef
)obj
);
153 if (!CFEqual(interfaceType
, kSCNetworkInterfaceTypeVLAN
)) {
162 @function _SCNetworkInterfaceCompare
163 @discussion Compares two SCNetworkInterface objects.
164 @param val1 The SCNetworkInterface object.
165 @param val2 The SCNetworkInterface object.
166 @param context Not used.
167 @result A comparison result.
170 _SCNetworkInterfaceCompare (const void *val1
,
172 void *context
) __OSX_AVAILABLE_STARTING(__MAC_10_5
,__IPHONE_2_0
);
175 @function _SCNetworkInterfaceCopyActive
176 @discussion Creates an SCNetworkInterface and associated with interface name
177 and SCDynamicStoreRef
178 @param store The SCDynamicStoreRef
179 @param bsdName The interface name
180 @result the SCNetworkInterface
182 SCNetworkInterfaceRef
183 _SCNetworkInterfaceCopyActive (SCDynamicStoreRef store
,
184 CFStringRef bsdName
) __OSX_AVAILABLE_STARTING(__MAC_10_8
,__IPHONE_5_0
);
187 @function _SCNetworkInterfaceCopyAllWithPreferences
188 Returns all network capable interfaces on the system.
189 @param prefs The "preferences" session.
190 @result The list of interfaces on the system.
191 You must release the returned value.
193 CFArrayRef
/* of SCNetworkInterfaceRef's */
194 _SCNetworkInterfaceCopyAllWithPreferences (SCPreferencesRef prefs
) __OSX_AVAILABLE_STARTING(__MAC_10_7
,__IPHONE_5_0
/*SPI*/);
197 @function _SCNetworkInterfaceCopyBTPANInterface
198 @discussion Returns the SCNetworkInterface associated with the BT-PAN interface
199 @result The BT-PAN interface; NULL if the interface is not (yet) known.
201 SCNetworkInterfaceRef
202 _SCNetworkInterfaceCopyBTPANInterface (void) __OSX_AVAILABLE_STARTING(__MAC_10_9
,__IPHONE_NA
);
205 @function _SCNetworkInterfaceCopySlashDevPath
206 @discussion Returns the /dev pathname for the interface.
207 @param interface The network interface.
208 @result The /dev pathname associated with the interface (e.g. "/dev/modem");
209 NULL if no path is available.
212 _SCNetworkInterfaceCopySlashDevPath (SCNetworkInterfaceRef interface
) __OSX_AVAILABLE_STARTING(__MAC_10_6
,__IPHONE_3_0
);
214 #define kIncludeNoVirtualInterfaces 0x0
215 #define kIncludeVLANInterfaces 0x1
216 #define kIncludeBondInterfaces 0x2
217 #define kIncludeBridgeInterfaces 0x4
218 #define kIncludeAllVirtualInterfaces 0xffffffff
221 @function _SCNetworkInterfaceCreateWithBSDName
222 @discussion Create a new network interface associated with the provided
223 BSD interface name. This API supports Ethernet, FireWire, and
224 IEEE 802.11 interfaces.
225 @param bsdName The BSD interface name.
226 @param flags Indicates whether virtual (Bond, Bridge, VLAN)
227 network interfaces should be included.
228 @result A reference to the new SCNetworkInterface.
229 You must release the returned value.
231 SCNetworkInterfaceRef
232 _SCNetworkInterfaceCreateWithBSDName (CFAllocatorRef allocator
,
234 UInt32 flags
) __OSX_AVAILABLE_STARTING(__MAC_10_5
,__IPHONE_2_0
);
237 @function _SCNetworkInterfaceCreateWithEntity
238 @discussion Create a new network interface associated with the provided
239 SCDynamicStore service entity dictionary.
240 @param interface_entity The entity dictionary.
241 @param service The network service.
242 @result A reference to the new SCNetworkInterface.
243 You must release the returned value.
245 SCNetworkInterfaceRef
246 _SCNetworkInterfaceCreateWithEntity (CFAllocatorRef allocator
,
247 CFDictionaryRef interface_entity
,
248 SCNetworkServiceRef service
) __OSX_AVAILABLE_STARTING(__MAC_10_5
,__IPHONE_2_0
);
251 @function _SCNetworkInterfaceCreateWithIONetworkInterfaceObject
252 @discussion Create a new network interface associated with the provided
253 IORegistry "IONetworkInterface" object.
254 @param if_obj The IONetworkInterface object.
255 @result A reference to the new SCNetworkInterface.
256 You must release the returned value.
258 SCNetworkInterfaceRef
259 _SCNetworkInterfaceCreateWithIONetworkInterfaceObject (io_object_t if_obj
) __OSX_AVAILABLE_STARTING(__MAC_10_5
,__IPHONE_2_0
);
262 @function SCNetworkInterfaceGetPrimaryRank
263 @discussion We allow caller to retrieve the rank on an interface.
264 @param interface The interface to get the rank
265 @result SCNetworkServicePrimaryRank
267 SCNetworkServicePrimaryRank
268 SCNetworkInterfaceGetPrimaryRank (SCNetworkInterfaceRef interface
) __OSX_AVAILABLE_STARTING(__MAC_10_8
,__IPHONE_5_0
);
271 @function SCNetworkInterfaceSetPrimaryRank
272 @discussion We allow caller to set an assertion on an interface.
273 The rank assertion lives as long as the SCNetworkInterfaceRef
275 @param interface The interface to set the rank assertion
276 @param newRank The new rank to be set
277 @result TRUE if operation is successful; FALSE if an error was encountered.
280 SCNetworkInterfaceSetPrimaryRank (SCNetworkInterfaceRef interface
,
281 SCNetworkServicePrimaryRank newRank
) __OSX_AVAILABLE_STARTING(__MAC_10_8
,__IPHONE_5_0
);
283 #define kSCNetworkInterfaceConfigurationActionKey CFSTR("New Interface Detected Action")
284 #define kSCNetworkInterfaceConfigurationActionValueNone CFSTR("None")
285 #define kSCNetworkInterfaceConfigurationActionValuePrompt CFSTR("Prompt")
286 #define kSCNetworkInterfaceConfigurationActionValueConfigure CFSTR("Configure")
288 #define kSCNetworkInterfaceNetworkConfigurationOverridesKey CFSTR("NetworkConfigurationOverrides")
289 #define kSCNetworkInterfaceHiddenConfigurationKey CFSTR("HiddenConfiguration")
290 #define kSCNetworkInterfaceHiddenPortKey CFSTR("HiddenPort") /* for serial ports */
291 #define kSCNetworkInterfaceHiddenInterfaceKey CFSTR("HiddenInterface") /* for network interfaces */
293 // IORegistry property to indicate that a [WWAN] interface is not yet ready
294 #define kSCNetworkInterfaceInitializingKey CFSTR("Initializing")
297 @function _SCNetworkInterfaceCopyInterfaceInfo
298 @discussion Returns interface details
299 @param interface The network interface.
300 @result A dictionary with details about the network interface.
303 _SCNetworkInterfaceCopyInterfaceInfo (SCNetworkInterfaceRef interface
) __OSX_AVAILABLE_STARTING(__MAC_10_6
,__IPHONE_3_0
);
306 @function _SCNetworkInterfaceGetConfigurationAction
307 @discussion Returns a user-notification / auto-configuration action for the interface.
308 @param interface The network interface.
309 @result The user-notification / auto-configuration action;
310 NULL if the default action should be used.
313 _SCNetworkInterfaceGetConfigurationAction (SCNetworkInterfaceRef interface
) __OSX_AVAILABLE_STARTING(__MAC_10_6
,__IPHONE_2_0
);
316 @function _SCNetworkInterfaceGetFamilyType
317 @discussion Returns the family type for the interface.
318 @param interface The network interface.
319 @result The family type (ift_family) associated with the interface;
320 NULL if no family type is available.
323 _SCNetworkInterfaceGetFamilyType (SCNetworkInterfaceRef interface
) __OSX_AVAILABLE_STARTING(__MAC_10_12
,__IPHONE_10_0
);
326 @function _SCNetworkInterfaceGetFamilySubType
327 @discussion Returns the family subtype for the interface.
328 @param interface The network interface.
329 @result The family subtype (ift_subfamily) associated with the interface;
330 NULL if no family subtype is available.
333 _SCNetworkInterfaceGetFamilySubType (SCNetworkInterfaceRef interface
) __OSX_AVAILABLE_STARTING(__MAC_10_12
,__IPHONE_10_0
);
336 @function _SCNetworkInterfaceGetHardwareAddress
337 @discussion Returns a link layer address for the interface.
338 @param interface The network interface.
339 @result The hardware (MAC) address for the interface.
340 NULL if no hardware address is available.
343 _SCNetworkInterfaceGetHardwareAddress (SCNetworkInterfaceRef interface
) __OSX_AVAILABLE_STARTING(__MAC_10_5
,__IPHONE_2_0
);
346 @function _SCNetworkInterfaceGetIOInterfaceNamePrefix
347 @discussion Returns the IOInterfaceNamePrefix for the interface.
348 @param interface The network interface.
349 @result The IOInterfaceNamePrefix associated with the interface;
350 NULL if no IOInterfaceNamePrefix is available.
353 _SCNetworkInterfaceGetIOInterfaceNamePrefix (SCNetworkInterfaceRef interface
) __OSX_AVAILABLE_STARTING(__MAC_10_8
,__IPHONE_6_0
);
356 @function _SCNetworkInterfaceGetIOInterfaceType
357 @discussion Returns the IOInterfaceType for the interface.
358 @param interface The network interface.
359 @result The IOInterfaceType associated with the interface
362 _SCNetworkInterfaceGetIOInterfaceType (SCNetworkInterfaceRef interface
) __OSX_AVAILABLE_STARTING(__MAC_10_5
,__IPHONE_2_0
);
365 @function _SCNetworkInterfaceGetIOInterfaceUnit
366 @discussion Returns the IOInterfaceUnit for the interface.
367 @param interface The network interface.
368 @result The IOInterfaceUnit associated with the interface;
369 NULL if no IOInterfaceUnit is available.
372 _SCNetworkInterfaceGetIOInterfaceUnit (SCNetworkInterfaceRef interface
) __OSX_AVAILABLE_STARTING(__MAC_10_5
,__IPHONE_2_0
);
375 @function _SCNetworkInterfaceGetIOPath
376 @discussion Returns the IOPath for the interface.
377 @param interface The network interface.
378 @result The IOPath associated with the interface;
379 NULL if no IOPath is available.
382 _SCNetworkInterfaceGetIOPath (SCNetworkInterfaceRef interface
) __OSX_AVAILABLE_STARTING(__MAC_10_5
,__IPHONE_2_0
);
385 @function _SCNetworkInterfaceGetIORegistryEntryID
386 @discussion Returns the IORegistry entry ID for the interface.
387 @param interface The network interface.
388 @result The IORegistry entry ID associated with the interface;
389 Zero if no entry ID is available.
392 _SCNetworkInterfaceGetIORegistryEntryID (SCNetworkInterfaceRef interface
) __OSX_AVAILABLE_STARTING(__MAC_10_8
,__IPHONE_5_0
);
395 @function _SCNetworkInterfaceIsApplePreconfigured
396 @discussion Identifies if a network interface is internal/pre-configured.
397 @param interface The network interface.
398 @result TRUE if the interface is an internal/pre-configured.
401 _SCNetworkInterfaceIsApplePreconfigured (SCNetworkInterfaceRef interface
) __OSX_AVAILABLE_STARTING(__MAC_10_12
,__IPHONE_10_0
);
404 @function _SCNetworkInterfaceIsBluetoothPAN
405 @discussion Identifies if a network interface is a Bluetooth PAN (GN) device.
406 @param interface The network interface.
407 @result TRUE if the interface is a Bluetooth PAN device.
410 _SCNetworkInterfaceIsBluetoothPAN (SCNetworkInterfaceRef interface
) __OSX_AVAILABLE_STARTING(__MAC_10_6
,__IPHONE_3_0
);
413 @function _SCNetworkInterfaceIsBluetoothPAN_NAP
414 @discussion Identifies if a network interface is a Bluetooth PAN-NAP device.
415 @param interface The network interface.
416 @result TRUE if the interface is a Bluetooth PAN-NAP device.
419 _SCNetworkInterfaceIsBluetoothPAN_NAP (SCNetworkInterfaceRef interface
) __OSX_AVAILABLE_STARTING(__MAC_10_7
,__IPHONE_5_0
);
422 @function _SCNetworkInterfaceIsBluetoothP2P
423 @discussion Identifies if a network interface is a Bluetooth P2P (PAN-U) device.
424 @param interface The network interface.
425 @result TRUE if the interface is a Bluetooth P2P device.
428 _SCNetworkInterfaceIsBluetoothP2P (SCNetworkInterfaceRef interface
) __OSX_AVAILABLE_STARTING(__MAC_10_7
,__IPHONE_5_0
);
431 @function _SCNetworkInterfaceIsBuiltin
432 @discussion Identifies if a network interface is "built-in".
433 @param interface The network interface.
434 @result TRUE if the interface is "built-in".
437 _SCNetworkInterfaceIsBuiltin (SCNetworkInterfaceRef interface
) __OSX_AVAILABLE_STARTING(__MAC_10_5
,__IPHONE_2_0
);
440 @function _SCNetworkInterfaceIsHiddenConfiguration
441 @discussion Identifies if the configuration of a network interface should be
442 hidden from any user interface (e.g. the "Network" pref pane).
443 @param interface The network interface.
444 @result TRUE if the interface configuration should be hidden.
447 _SCNetworkInterfaceIsHiddenConfiguration (SCNetworkInterfaceRef interface
) __OSX_AVAILABLE_STARTING(__MAC_10_7
,__IPHONE_4_0
);
450 @function _SCNetworkInterfaceIsTethered
451 @discussion Identifies if a network interface is an Apple tethered device (e.g. an iPhone).
452 @param interface The network interface.
453 @result TRUE if the interface is a tethered device.
456 _SCNetworkInterfaceIsTethered (SCNetworkInterfaceRef interface
) __OSX_AVAILABLE_STARTING(__MAC_10_6
,__IPHONE_3_0
);
459 @function _SCNetworkInterfaceIsThunderbolt
460 @discussion Identifies if a network interface is a Thunderbolt device
461 @param interface The network interface.
462 @result TRUE if the interface is a Thunderbolt device.
465 _SCNetworkInterfaceIsThunderbolt (SCNetworkInterfaceRef interface
) __OSX_AVAILABLE_STARTING(__MAC_10_9
,__IPHONE_7_0
);
468 @function _SCNetworkInterfaceIsPhysicalEthernet
469 @discussion Indicates whether a network interface is a real ethernet interface i.e. one with an ethernet PHY.
470 @param interface The network interface.
471 @result TRUE if the interface is a real ethernet interface.
474 _SCNetworkInterfaceIsPhysicalEthernet (SCNetworkInterfaceRef interface
) __OSX_AVAILABLE_STARTING(__MAC_10_7
,__IPHONE_5_0
);
477 @function _SCNetworkInterfaceForceConfigurationRefresh
478 @discussion Forces a configuration refresh of the
480 @param ifName Network interface name.
481 @result TRUE if the refresh was successfully posted.
484 _SCNetworkInterfaceForceConfigurationRefresh (CFStringRef ifName
) __OSX_AVAILABLE_STARTING(__MAC_10_5
,__IPHONE_2_0
);
487 @function SCNetworkInterfaceCopyCapability
488 @discussion For the specified network interface, returns information
489 about the currently requested capabilities, the active capabilities,
490 and the capabilities which are available.
491 @param interface The desired network interface.
492 @param capability The desired capability;
493 NULL to return a CFDictionary of all capabilities.
494 @result a CFTypeRef representing the current value of requested
496 NULL if the capability is not available for this
497 interface or if an error was encountered.
498 You must release the returned value.
501 SCNetworkInterfaceCopyCapability (SCNetworkInterfaceRef interface
,
502 CFStringRef capability
) __OSX_AVAILABLE_STARTING(__MAC_10_7
,__IPHONE_5_0
/*SPI*/);
505 @function SCNetworkInterfaceSetCapability
506 @discussion For the specified network interface, sets the requested
508 @param interface The desired network interface.
509 @param capability The desired capability.
510 @param newValue The new requested setting for the capability;
511 NULL to restore the default setting.
512 @result TRUE if the configuration was updated; FALSE if an error was encountered.
515 SCNetworkInterfaceSetCapability (SCNetworkInterfaceRef interface
,
516 CFStringRef capability
,
517 CFTypeRef newValue
) __OSX_AVAILABLE_STARTING(__MAC_10_7
,__IPHONE_5_0
/*SPI*/);
520 #pragma mark SCBondInterface configuration (SPIs)
523 @function _SCBondInterfaceCopyActive
524 @discussion Returns all Ethernet Bond interfaces on the system.
525 @result The list of SCBondInterface interfaces on the system.
526 You must release the returned value.
529 _SCBondInterfaceCopyActive (void) __OSX_AVAILABLE_STARTING(__MAC_10_5
,__IPHONE_4_0
/*SPI*/);
532 @function _SCBondInterfaceUpdateConfiguration
533 @discussion Updates the bond interface configuration.
534 @param prefs The "preferences" session.
535 @result TRUE if the bond interface configuration was updated.; FALSE if the
536 an error was encountered.
539 _SCBondInterfaceUpdateConfiguration (SCPreferencesRef prefs
) __OSX_AVAILABLE_STARTING(__MAC_10_5
,__IPHONE_4_0
/*SPI*/);
542 @function SCBondInterfaceGetMode
543 @discussion Return the mode for the given bond interface.
544 @param bond The bond interface to get the mode from.
545 @result A CFNumberRef containing the mode (IF_BOND_MODE_{LACP,STATIC}).
548 SCBondInterfaceGetMode (SCBondInterfaceRef bond
) __OSX_AVAILABLE_STARTING(__MAC_10_5
,__IPHONE_4_0
/*SPI*/);
551 @function SCBondInterfaceSetMode
552 @discussion Set the mode on the bond interface.
553 @param bond The bond interface on which to adjust the mode.
554 @param mode The mode value (0=IF_BOND_MODE_LACP,1=IF_BOND_MODE_STATIC)
555 @result TRUE if operation succeeded.
558 SCBondInterfaceSetMode (SCBondInterfaceRef bond
,
559 CFNumberRef mode
) __OSX_AVAILABLE_STARTING(__MAC_10_5
,__IPHONE_4_0
/*SPI*/);
562 #pragma mark SCBridgeInterface configuration (SPIs)
565 @function SCBridgeInterfaceCopyAll
566 @discussion Returns all bridge interfaces on the system.
567 @param prefs The "preferences" session.
568 @result The list of bridge interfaces on the system.
569 You must release the returned value.
571 CFArrayRef
/* of SCBridgeInterfaceRef's */
572 SCBridgeInterfaceCopyAll (SCPreferencesRef prefs
) __OSX_AVAILABLE_STARTING(__MAC_10_7
,__IPHONE_4_0
/*SPI*/);
575 @function SCBridgeInterfaceCopyAvailableMemberInterfaces
576 @discussion Returns all network capable devices on the system
577 that can be added to an bridge interface.
578 @param prefs The "preferences" session.
579 @result The list of interfaces.
580 You must release the returned value.
582 CFArrayRef
/* of SCNetworkInterfaceRef's */
583 SCBridgeInterfaceCopyAvailableMemberInterfaces (SCPreferencesRef prefs
) __OSX_AVAILABLE_STARTING(__MAC_10_7
,__IPHONE_4_0
/*SPI*/);
586 @function SCBridgeInterfaceCreate
587 @discussion Create a new SCBridgeInterface interface.
588 @param prefs The "preferences" session.
589 @result A reference to the new SCBridgeInterface.
590 You must release the returned value.
593 SCBridgeInterfaceCreate (SCPreferencesRef prefs
) __OSX_AVAILABLE_STARTING(__MAC_10_7
,__IPHONE_4_0
/*SPI*/);
596 @function SCBridgeInterfaceRemove
597 @discussion Removes the SCBridgeInterface from the configuration.
598 @param bridge The SCBridgeInterface interface.
599 @result TRUE if the interface was removed; FALSE if an error was encountered.
602 SCBridgeInterfaceRemove (SCBridgeInterfaceRef bridge
) __OSX_AVAILABLE_STARTING(__MAC_10_7
,__IPHONE_4_0
/*SPI*/);
605 @function SCBridgeInterfaceGetMemberInterfaces
606 @discussion Returns the member interfaces for the specified bridge interface.
607 @param bridge The SCBridgeInterface interface.
608 @result The list of interfaces.
610 CFArrayRef
/* of SCNetworkInterfaceRef's */
611 SCBridgeInterfaceGetMemberInterfaces (SCBridgeInterfaceRef bridge
) __OSX_AVAILABLE_STARTING(__MAC_10_7
,__IPHONE_4_0
/*SPI*/);
614 @function SCBridgeInterfaceGetOptions
615 @discussion Returns the configuration settings associated with a bridge interface.
616 @param bridge The SCBridgeInterface interface.
617 @result The configuration settings associated with the bridge interface;
618 NULL if no changes to the default configuration have been saved.
621 SCBridgeInterfaceGetOptions (SCBridgeInterfaceRef bridge
) __OSX_AVAILABLE_STARTING(__MAC_10_7
,__IPHONE_4_0
/*SPI*/);
624 @function SCBridgeInterfaceSetMemberInterfaces
625 @discussion Sets the member interfaces for the specified bridge interface.
626 @param bridge The SCBridgeInterface interface.
627 @param members The desired member interfaces.
628 @result TRUE if the configuration was stored; FALSE if an error was encountered.
631 SCBridgeInterfaceSetMemberInterfaces (SCBridgeInterfaceRef bridge
,
632 CFArrayRef members
) /* of SCNetworkInterfaceRef's */
633 __OSX_AVAILABLE_STARTING(__MAC_10_7
,__IPHONE_4_0
/*SPI*/);
636 @function SCBridgeInterfaceSetLocalizedDisplayName
637 @discussion Sets the localized display name for the specified bridge interface.
638 @param bridge The SCBridgeInterface interface.
639 @param newName The new display name.
640 @result TRUE if the configuration was stored; FALSE if an error was encountered.
643 SCBridgeInterfaceSetLocalizedDisplayName (SCBridgeInterfaceRef bridge
,
644 CFStringRef newName
) __OSX_AVAILABLE_STARTING(__MAC_10_7
,__IPHONE_4_0
/*SPI*/);
647 @function SCBridgeInterfaceSetOptions
648 @discussion Sets the configuration settings for the specified bridge interface.
649 @param bridge The SCBridgeInterface interface.
650 @param newOptions The new configuration settings.
651 @result TRUE if the configuration was stored; FALSE if an error was encountered.
654 SCBridgeInterfaceSetOptions (SCBridgeInterfaceRef bridge
,
655 CFDictionaryRef newOptions
) __OSX_AVAILABLE_STARTING(__MAC_10_7
,__IPHONE_4_0
/*SPI*/);
660 @function _SCBridgeInterfaceCopyActive
661 @discussion Returns all bridge interfaces on the system.
662 @result The list of SCBridgeInterface interfaces on the system.
663 You must release the returned value.
666 _SCBridgeInterfaceCopyActive (void) __OSX_AVAILABLE_STARTING(__MAC_10_7
,__IPHONE_4_0
/*SPI*/);
669 @function _SCBridgeInterfaceUpdateConfiguration
670 @discussion Updates the bridge interface configuration.
671 @param prefs The "preferences" session.
672 @result TRUE if the bridge interface configuration was updated.; FALSE if the
673 an error was encountered.
676 _SCBridgeInterfaceUpdateConfiguration (SCPreferencesRef prefs
) __OSX_AVAILABLE_STARTING(__MAC_10_7
,__IPHONE_4_0
/*SPI*/);
680 #pragma mark SCVLANInterface configuration (SPIs)
683 @function _SCVLANInterfaceCopyActive
684 @discussion Returns all VLAN interfaces on the system.
685 @result The list of SCVLANInterface interfaces on the system.
686 You must release the returned value.
689 _SCVLANInterfaceCopyActive (void) __OSX_AVAILABLE_STARTING(__MAC_10_5
,__IPHONE_4_0
/*SPI*/);
692 @function _SCVLANInterfaceUpdateConfiguration
693 @discussion Updates the VLAN interface configuration.
694 @param prefs The "preferences" session.
695 @result TRUE if the VLAN interface configuration was updated.; FALSE if the
696 an error was encountered.
699 _SCVLANInterfaceUpdateConfiguration (SCPreferencesRef prefs
) __OSX_AVAILABLE_STARTING(__MAC_10_5
,__IPHONE_4_0
/*SPI*/);
703 #pragma mark SCNetworkInterface Password SPIs
707 kSCNetworkInterfacePasswordTypePPP
= 1,
708 kSCNetworkInterfacePasswordTypeIPSecSharedSecret
,
709 kSCNetworkInterfacePasswordTypeEAPOL
,
710 kSCNetworkInterfacePasswordTypeIPSecXAuth
,
711 kSCNetworkInterfacePasswordTypeVPN
,
713 typedef uint32_t SCNetworkInterfacePasswordType
;
716 SCNetworkInterfaceCheckPassword (SCNetworkInterfaceRef interface
,
717 SCNetworkInterfacePasswordType passwordType
) __OSX_AVAILABLE_STARTING(__MAC_10_5
,__IPHONE_2_0
);
720 SCNetworkInterfaceCopyPassword (SCNetworkInterfaceRef interface
,
721 SCNetworkInterfacePasswordType passwordType
) __OSX_AVAILABLE_STARTING(__MAC_10_5
,__IPHONE_2_0
);
724 SCNetworkInterfaceRemovePassword (SCNetworkInterfaceRef interface
,
725 SCNetworkInterfacePasswordType passwordType
) __OSX_AVAILABLE_STARTING(__MAC_10_5
,__IPHONE_2_0
);
728 SCNetworkInterfaceSetPassword (SCNetworkInterfaceRef interface
,
729 SCNetworkInterfacePasswordType passwordType
,
731 CFDictionaryRef options
) __OSX_AVAILABLE_STARTING(__MAC_10_5
,__IPHONE_2_0
);
735 SCNetworkInterfaceGetDisableUntilNeeded (SCNetworkInterfaceRef interface
) __OSX_AVAILABLE_STARTING(__MAC_10_11
,__IPHONE_9_0
);
738 SCNetworkInterfaceSetDisableUntilNeeded (SCNetworkInterfaceRef interface
,
739 Boolean disable
) __OSX_AVAILABLE_STARTING(__MAC_10_11
,__IPHONE_9_0
);
743 SCNetworkInterfaceGetQoSMarkingPolicy (SCNetworkInterfaceRef interface
) __OSX_AVAILABLE_STARTING(__MAC_10_13
,__IPHONE_10_0
);
746 SCNetworkInterfaceSetQoSMarkingPolicy (SCNetworkInterfaceRef interface
,
747 CFDictionaryRef policy
) __OSX_AVAILABLE_STARTING(__MAC_10_13
,__IPHONE_10_0
);
751 #pragma mark SCNetworkProtocol configuration (SPI)
755 @group Protocol configuration
759 static __inline__ CFTypeRef
760 isA_SCNetworkProtocol(CFTypeRef obj
)
762 return (isA_CFType(obj
, SCNetworkProtocolGetTypeID()));
766 @function _SCNetworkProtocolCompare
767 @discussion Compares two SCNetworkProtocol objects.
768 @param val1 The SCNetworkProtocol object.
769 @param val2 The SCNetworkProtocol object.
770 @param context Not used.
771 @result A comparison result.
774 _SCNetworkProtocolCompare (const void *val1
,
776 void *context
) __OSX_AVAILABLE_STARTING(__MAC_10_13
,__IPHONE_11_0
);
780 #pragma mark SCNetworkService configuration (SPI)
784 @group Service configuration
788 static __inline__ CFTypeRef
789 isA_SCNetworkService(CFTypeRef obj
)
791 return (isA_CFType(obj
, SCNetworkServiceGetTypeID()));
795 @function _SCNetworkServiceCompare
796 @discussion Compares two SCNetworkService objects.
797 @param val1 The SCNetworkService object.
798 @param val2 The SCNetworkService object.
799 @param context The service order (from SCNetworkSetGetServiceOrder).
800 @result A comparison result.
803 _SCNetworkServiceCompare (const void *val1
,
805 void *context
) __OSX_AVAILABLE_STARTING(__MAC_10_7
,__IPHONE_4_0
);
808 @function _SCNetworkServiceCopyActive
809 @discussion Returns the network service with the specified identifier.
811 Note: The service returned by this SPI differs from the SCNetworkServiceCopy
812 API in that queries and operations interact with the "active" service
813 represented in the SCDynamicStore. Only a limited subset of the
814 SCNetworkService APIs are supported.
815 @param store The dynamic store session.
816 @param serviceID The unique identifier for the service.
817 @result A reference to the SCNetworkService represented in the SCDynamicStore;
818 NULL if the serviceID does not exist in the SCDynamicStore or if an
819 error was encountered.
820 You must release the returned value.
823 _SCNetworkServiceCopyActive (SCDynamicStoreRef store
,
824 CFStringRef serviceID
) __OSX_AVAILABLE_STARTING(__MAC_10_6
,__IPHONE_2_1
);
827 @function SCNetworkServiceGetPrimaryRank
828 @discussion Returns the primary service rank associated with a service.
829 @param service The network service.
830 @result The primary service rank associated with the specified application;
831 kSCNetworkServicePrimaryRankDefault if no rank is associated with the
832 application or an error was encountered.
834 SCNetworkServicePrimaryRank
835 SCNetworkServiceGetPrimaryRank (SCNetworkServiceRef service
) __OSX_AVAILABLE_STARTING(__MAC_10_6
,__IPHONE_2_0
);
838 @function SCNetworkServiceSetPrimaryRank
839 @discussion Updates the the primary service rank associated with a service.
840 @param service The network service.
841 @param newRank The new primary service rank; kSCNetworkServicePrimaryRankDefault
842 if the default service rank should be used.
843 @result TRUE if the rank was stored; FALSE if an error was encountered.
845 Notes : The kSCNetworkServicePrimaryRankFirst and kSCNetworkServicePrimaryRankLast
846 values can only valid as a transient setting.
849 SCNetworkServiceSetPrimaryRank (SCNetworkServiceRef service
,
850 SCNetworkServicePrimaryRank newRank
) __OSX_AVAILABLE_STARTING(__MAC_10_6
,__IPHONE_2_0
);
853 @function _SCNetworkServiceIsVPN
854 @discussion Identifies a VPN service.
855 @param service The network service.
856 @result TRUE if the service is a VPN.
859 _SCNetworkServiceIsVPN (SCNetworkServiceRef service
) __OSX_AVAILABLE_STARTING(__MAC_10_7
,__IPHONE_4_0
);
862 @function SCNetworkServiceSetExternalID
863 @discussion Set the external identifier for a network service.
864 @param service A reference to the network service.
865 @param identifierDomain A service can have multiple external identifiers. This string specifies which external identifier to set.
866 @param identifier The new external identifier to assign to the network service.
867 @result Returns TRUE if the external identifier was set successfully, FALSE if an error occurred.
870 SCNetworkServiceSetExternalID (SCNetworkServiceRef service
,
871 CFStringRef identifierDomain
,
872 CFStringRef identifier
);
875 @function SCNetworkServiceCopyExternalID
876 @discussion Copy the external identifier for a network service.
877 @param service The network service.
878 @param identifierDomain A service can have multiple external identifiers. This string specifies which external identifier to copy.
879 @result Returns the service's external identifier, or NULL if the service does not have an external identifier in the given domain.
882 SCNetworkServiceCopyExternalID (SCNetworkServiceRef service
,
883 CFStringRef identifierDomain
);
886 @function _SCNetworkServiceSetServiceID
887 @discussion Sets serviceID of the service to a different value provided.
888 @param service The network service
889 @param newServiceID The new service ID
890 @result TRUE if new service ID is set successfully.
893 _SCNetworkServiceSetServiceID (SCNetworkServiceRef service
,
894 CFStringRef newServiceID
) __OSX_AVAILABLE_STARTING(__MAC_10_10
,__IPHONE_8_0
);
897 #pragma mark SCNetworkSet configuration (SPI)
901 @group Set configuration
905 static __inline__ CFTypeRef
906 isA_SCNetworkSet(CFTypeRef obj
)
908 return (isA_CFType(obj
, SCNetworkSetGetTypeID()));
913 @function _SCNetworkSetCompare
914 @discussion Compares two SCNetworkSet objects.
915 @param val1 The SCNetworkSet object.
916 @param val2 The SCNetworkSet object.
917 @param context Not used.
918 @result A comparison result.
921 _SCNetworkSetCompare (const void *val1
,
923 void *context
) __OSX_AVAILABLE_STARTING(__MAC_10_13
,__IPHONE_11_0
);
926 @function SCNetworkSetCopyAvailableInterfaces
927 @discussion Returns all available interfaces for the set.
928 The interfaces excludes those of bond and bridge members.
929 @param set The network set.
930 @result The list of SCNetworkInterfaces.
931 You must release the returned value.
934 SCNetworkSetCopyAvailableInterfaces (SCNetworkSetRef set
) __OSX_AVAILABLE_STARTING(__MAC_10_9
,__IPHONE_7_0
/*SPI*/);
937 @function _SCNetworkSetCreateDefault
938 @discussion Create a new [default] set in the configuration.
939 @param prefs The "preferences" session.
940 @result A reference to the new SCNetworkSet.
941 You must release the returned value.
944 _SCNetworkSetCreateDefault (SCPreferencesRef prefs
) __OSX_AVAILABLE_STARTING(__MAC_10_12
,__IPHONE_10_0
/*SPI*/);
947 @function SCNetworkSetEstablishDefaultConfiguration
948 @discussion Updates a network set by adding services for
949 any network interface that is not currently
951 If the provided set contains one (or more) services, new
952 services will only be added for those interfaces that are
953 not represented in *any* set.
954 Otherwise, new services will be added for those interfaces
955 that are not represented in the provided set.
956 The new services are established with "default" configuration
958 @param set The network set.
959 @result TRUE if the configuration was updated; FALSE if no
960 changes were required or if an error was encountered.
963 SCNetworkSetEstablishDefaultConfiguration (SCNetworkSetRef set
) __OSX_AVAILABLE_STARTING(__MAC_10_5
,__IPHONE_2_0
);
966 @function SCNetworkSetEstablishDefaultInterfaceConfiguration
967 @discussion Updates a network set by adding services for
968 the specified network interface if is not currently
970 If the provided set contains one (or more) services, new
971 services will only be added for interfaces that are not
972 represented in *any* set.
973 Otherwise, new services will be added for interfaces that
974 are not represented in the provided set.
975 The new services are established with "default" configuration
977 @param set The network set.
978 @param interface The network interface.
979 @result TRUE if the configuration was updated; FALSE if no
980 changes were required or if an error was encountered.
983 SCNetworkSetEstablishDefaultInterfaceConfiguration (SCNetworkSetRef set
,
984 SCNetworkInterfaceRef interface
) __OSX_AVAILABLE_STARTING(__MAC_10_5
,__IPHONE_2_0
);
987 @function SCNetworkSetCopySelectedVPNService
988 @discussion On the iPhone we only allow a single VPN network service
989 to be selected at any given time. This API will identify
990 the selected VPN service.
991 @param set The network set.
992 @result The selected VPN service; NULL if no service has been
994 You must release the returned value.
997 SCNetworkSetCopySelectedVPNService (SCNetworkSetRef set
) __OSX_AVAILABLE_STARTING(__MAC_10_7
,__IPHONE_4_0
);
1000 @function SCNetworkSetSetSelectedVPNService
1001 @discussion On the iPhone we only allow a single VPN network service
1002 to be selected at any given time. This API should be used to
1003 select a VPN service.
1004 @param set The network set.
1005 @param service The VPN service to be selected.
1006 @result TRUE if the name was saved; FALSE if an error was encountered.
1009 SCNetworkSetSetSelectedVPNService (SCNetworkSetRef set
,
1010 SCNetworkServiceRef service
) __OSX_AVAILABLE_STARTING(__MAC_10_7
,__IPHONE_4_0
);
1013 _SCNetworkSetSetSetID (SCNetworkSetRef set
,
1014 CFStringRef setID
) __OSX_AVAILABLE_STARTING(__MAC_10_10
, __IPHONE_8_0
);
1017 @group VPN Service configuration
1021 #pragma mark VPN Service configuration
1023 typedef SCNetworkServiceRef VPNServiceRef
;
1026 @function VPNServiceCopyAllMatchingExternalID
1027 @discussion Copy the VPN services with the given external identifier.
1028 @param prefs A reference to the prefs where the VPN services are stored.
1029 @param identifierDomain A service can have multiple external identifiers. This string specifies which one to match with the given identifier.
1030 @param identifier The external identifier of the desired services.
1031 @result A array of references to the VPN services with the given identifier, or NULL if no such service exists
1034 VPNServiceCopyAllMatchingExternalID (SCPreferencesRef prefs
,
1035 CFStringRef identifierDomain
,
1036 CFStringRef identifier
) __OSX_AVAILABLE_STARTING(__MAC_10_9
,__IPHONE_7_0
/*SPI*/);
1039 @function VPNServiceCopyAll
1040 @discussion Copy all VPN services.
1041 @param prefs A reference to the prefs where the VPN services are stored.
1042 @result An array containing VPNServiceRefs for all the VPN services.
1045 VPNServiceCopyAll (SCPreferencesRef prefs
) __OSX_AVAILABLE_STARTING(__MAC_10_9
,__IPHONE_7_0
/*SPI*/);
1048 @function VPNServiceCopyAppRuleIDs
1049 @discussion Copy all the app rule identifiers for a VPN service.
1050 @param service A reference to the VPN service.
1051 @result An array of CFStringRefs, each string containing the identifier of a app rule in the given service.
1054 VPNServiceCopyAppRuleIDs (VPNServiceRef service
) __OSX_AVAILABLE_STARTING(__MAC_10_9
,__IPHONE_7_0
/*SPI*/);
1057 @function VPNServiceSetAppRule
1058 @discussion Add or modify an app rule in a VPN service. The ruleSettings dictionary must contain one of the following keys:
1059 <pre>kSCValNetVPNAppRuleExecutableMatch</pre>
1060 <pre>kSCValNetVPNAppRuleAccountIdentifierMatch</pre>
1061 The ruleSettings dictionary may also contain the following keys:
1062 <pre>kSCValNetVPNAppRuleDNSDomainMatch</pre>
1063 See SCSchemaDefinitionsPrivate.h for more details.
1064 @param service A reference to the VPN service.
1065 @param ruleIdentifier The identifier of the new app rule.
1066 @param ruleSettings The settings for the new app rule. See the dictionary keys defined above.
1067 @result TRUE if the app rule was set successfully, FALSE if an error occurred.
1070 VPNServiceSetAppRule (VPNServiceRef service
,
1071 CFStringRef ruleIdentifier
,
1072 CFDictionaryRef ruleSettings
) __OSX_AVAILABLE_STARTING(__MAC_10_9
,__IPHONE_7_0
/*SPI*/);
1075 @function VPNServiceCopyAppRule
1076 @discussion Copy the settings for a app rule in a VPN service.
1077 @param service The app tunnel service.
1078 @param ruleIdentifier The ID of the app rule.
1079 @result The rule settings, or NULL if the app rule could not be found.
1082 VPNServiceCopyAppRule (VPNServiceRef service
,
1083 CFStringRef ruleIdentifier
) __OSX_AVAILABLE_STARTING(__MAC_10_9
,__IPHONE_7_0
/*SPI*/);
1086 @function VPNServiceRemoveAppRule
1087 @discussion Remove an app rule from a VPN service.
1088 @param service The VPN service.
1089 @param ruleIdentifier The ID of the app rule to remove.
1090 @result Returns TRUE if the app rule was removed successfully; FALSE otherwise.
1093 VPNServiceRemoveAppRule (VPNServiceRef service
,
1094 CFStringRef ruleIdentifier
) __OSX_AVAILABLE_STARTING(__MAC_10_9
,__IPHONE_7_0
/*SPI*/);
1097 @function VPNServiceIsManagedAppVPN
1098 @discussion Check to see if a VPN service is a managed App VPN service
1099 @param service The VPN servie.
1100 @result Returns TRUE if the service is a managed App VPN service; FALSE otherwise.
1103 VPNServiceIsManagedAppVPN (VPNServiceRef service
) __OSX_AVAILABLE_STARTING(__MAC_10_9
,__IPHONE_7_0
/*SPI*/);
1106 @group Migration SPI
1109 #pragma mark Migration SPI
1111 extern const CFStringRef kSCNetworkConfigurationRepair
/* CFBoolean */ __OSX_AVAILABLE_STARTING(__MAC_10_10
, __IPHONE_8_0
);
1113 extern const CFStringRef kSCNetworkConfigurationMigrationActionKey
/* CFNumber */ __OSX_AVAILABLE_STARTING(__MAC_10_10
,__IPHONE_8_0
);
1115 typedef CF_ENUM(uint32_t, SCNetworkConfigurationMigrationAction
) {
1116 kSCNetworkConfigurationMigrationAction_CleanInstall
= 0,
1117 kSCNetworkConfigurationMigrationAction_Upgrade
= 1,
1118 kSCNetworkConfigurationMigrationAction_Restore
= 2,
1122 @function _SCNetworkConfigurationCopyMigrationPaths
1123 @result Returns an array of paths that we would need from the source
1126 _SCNetworkConfigurationCopyMigrationPaths(CFDictionaryRef options
) __OSX_AVAILABLE_STARTING(__MAC_10_10
,__IPHONE_8_0
);
1129 @function _SCNetworkConfigurationPerformMigration
1130 @discussion Updates the network configuration of the target system with
1131 configurations from previous system. Both sourceDir and targetDir
1132 cannot be NULL, since NULL indicates API to look at the local system
1133 @param sourceDir A reference which points to the root of a directory populated
1134 with the list of requested directories/path from the "source" volume. Passing NULL
1135 will indicate that sourceDir should point to local system
1136 @param currentDir A reference which points to the root of a directory populated
1137 with the list of requested directories/path from the "destination" volume. Passing
1138 NULL will indicate that currentDir should point to local system.
1139 @param targetDir A reference which points to the root of a directory that we
1140 will populate (update) with new configuration. Passing NULL will mean that we want to
1141 migrate to the currentDir. If not NULL, then this path should exist.
1142 @param options Argument which will tell us what action we are supposed to take
1143 (clean-install, upgrade, migrate/restore settings from another system, ...)
1144 @result Returns array which would consist of those paths that should be moved
1145 from the "targetDir" directory to destination volume. You must release the returned value.
1150 _SCNetworkConfigurationPerformMigration (CFURLRef sourceDir
,
1151 CFURLRef currentDir
,
1153 CFDictionaryRef options
) __OSX_AVAILABLE_STARTING(__MAC_10_10
,__IPHONE_8_0
);
1157 @function _SCNetworkConfigurationCheckValidity
1158 @discussion Verifies whether the configuration files present in the specified
1159 directory have valid mappings or not
1160 @param configDir A reference which points to the directory where the configuration
1162 @result TRUE if valid configurations are found
1167 _SCNetworkConfigurationCheckValidity (CFURLRef configDir
,
1168 CFDictionaryRef options
) __OSX_AVAILABLE_STARTING(__MAC_10_10
,__IPHONE_8_0
);
1172 @function _SCNetworkConfigurationCheckValidityWithPreferences
1173 @discussion Validates the specified preferences.plist against NetworkInterfaces.plist
1174 @param prefs the preferences ref pointing to the said preferences.plist
1175 @param ni_prefs the preferences ref pointing to the said NetworkInterfaces.plist
1176 @result TRUE if the configurations are valid against each other
1181 _SCNetworkConfigurationCheckValidityWithPreferences
1182 (SCPreferencesRef prefs
,
1183 SCPreferencesRef ni_prefs
,
1184 CFDictionaryRef options
) __OSX_AVAILABLE_STARTING(__MAC_10_11
, __IPHONE_9_0
);
1188 @function _SCNetworkMigrationAreConfigurationsIdentical
1189 @discussion Compares the migration output between network configurations
1190 with the expected output.
1191 @param configurationURL A URL pointing to the top-level directory of the
1192 configuration to compare. This directory is expected to have
1193 a Library/Preferences/SystemConfiguration subdirectoy.
1194 @param expectedConfigurationURL A URL pointing to the top-level directory of
1195 the expected configuration. This directory is expected to have
1196 a Library/Preferences/SystemConfiguration subdirectoy.
1197 @result TRUE if configurations match with the expected configurations
1202 _SCNetworkMigrationAreConfigurationsIdentical (CFURLRef configurationURL
,
1203 CFURLRef expectedConfigurationURL
) __OSX_AVAILABLE_STARTING(__MAC_10_10
,__IPHONE_8_0
);
1206 @function _SCNetworkConfigurationCopyMigrationRemovePaths
1207 @discussion List of paths to files which we want to be removed from the target filesystem after migration
1208 @param targetPaths the CFArray returned by _SCNetworkConfigurationPerformMigration
1209 @param targetDir the CFURL passed to _SCNetworkConfigurationPerformMigration
1210 @result An array of CFURL's; NULL if no paths need to be removed from the target filesystem
1214 CFArrayRef
// of CFURLRef's
1215 _SCNetworkConfigurationCopyMigrationRemovePaths (CFArrayRef targetPaths
,
1216 CFURLRef targetDir
) __OSX_AVAILABLE_STARTING(__MAC_10_10
, __IPHONE_8_0
);
1219 #endif /* _SCNETWORKCONFIGURATIONPRIVATE_H */