]> git.saurik.com Git - apple/configd.git/blob - SystemConfiguration.fproj/genSCPreferences.c
configd-1109.101.1.tar.gz
[apple/configd.git] / SystemConfiguration.fproj / genSCPreferences.c
1 /*
2 * Copyright (c) 2000-2020 Apple Inc. All rights reserved.
3 *
4 * @APPLE_LICENSE_HEADER_START@
5 *
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
11 * file.
12 *
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.
20 *
21 * @APPLE_LICENSE_HEADER_END@
22 */
23
24 /*
25 * genSCPreferences.c
26 * - generates System Configuration header/cfile
27 * - invoke with "header" to generate the header
28 * - invoke with "cfile" to generate the cfile
29 */
30
31 /*
32 * Modification History
33 *
34 * 12 March 2015 Sushant Chavan (sushant_chavan@apple.com)
35 * - cleanup of SC_SCHEMA_DECLARATION and SC_SCHEMA_KV macros.
36 *
37 * 4 March 2004 Allan Nathanson (ajn@apple.com)
38 * - an alternate scheme to help facilitate access to the schema
39 * definitions for cross-compilation to earlier releases AND
40 * access to CFM applications.
41 *
42 * 16 July 2003 Allan Nathanson (ajn@apple.com)
43 * - changes to facilitate cross-compilation to earlier releases
44 *
45 * 5 May 2003 Allan Nathanson (ajn@apple.com)
46 * - switch back to "extern const CFStringRef ..."
47 *
48 * 1 June 2001 Allan Nathanson <ajn@apple.com>
49 * - public API conversion
50 *
51 * 27 Apr 2001 Allan Nathanson (ajn@apple.com)
52 * - switch from "extern const CFStringRef ..." to "#define ..."
53 *
54 * 3 Nov 2000 Dieter Siegmund (dieter@apple)
55 * - created
56 */
57 #include <stdio.h>
58 #include <stdlib.h>
59 #include <string.h>
60 #include <unistd.h>
61 #include <mach/boolean.h>
62
63 char copyright_string[] =
64 "/*\n"
65 " * Copyright (c) 2000-2020 Apple Inc. All rights reserved.\n"
66 " *\n"
67 " * @APPLE_LICENSE_HEADER_START@\n"
68 " *\n"
69 " * This file contains Original Code and/or Modifications of Original Code\n"
70 " * as defined in and that are subject to the Apple Public Source License\n"
71 " * Version 2.0 (the 'License'). You may not use this file except in\n"
72 " * compliance with the License. Please obtain a copy of the License at\n"
73 " * http://www.opensource.apple.com/apsl/ and read it before using this\n"
74 " * file.\n"
75 " *\n"
76 " * The Original Code and all software distributed under the License are\n"
77 " * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER\n"
78 " * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,\n"
79 " * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,\n"
80 " * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.\n"
81 " * Please see the License for the specific language governing rights and\n"
82 " * limitations under the License.\n"
83 " *\n"
84 " * @APPLE_LICENSE_HEADER_END@\n"
85 " */\n";
86
87
88 typedef enum {
89 DEFINE,
90 DEFINE_PRIVATE,
91 COMMENT,
92 GROUP,
93 SC_10_1,
94 SC_10_1_IPHONE_NA,
95 SC_10_2,
96 SC_10_3,
97 SC_10_1_10_4, // deprecated in 10.4
98 SC_10_4,
99 SC_10_5,
100 SC_10_5_IPHONE_NA,
101 SC_10_5_10_7_IPHONE_NA, // deprecated in 10.7
102 SC_10_1_10_9, // deprecated in 10.9
103 SC_10_2_10_9, // deprecated in 10.9
104 SC_10_2_10_13, // deprecated in 10.13
105 SC_10_2_10_15, // deprecated in 10.15
106 SC_10_3_10_9, // deprecated in 10.9
107 SC_10_3_10_15, // deprecated in 10.15
108 SC_10_4_10_9, // deprecated in 10.9
109 SC_10_6_IPHONE_2_0,
110 SC_10_6_IPHONE_3_0,
111 SC_10_7_IPHONE_4_0,
112 COMMENT_PRIVATE,
113 GROUP_PRIVATE,
114 SC_10_5_PRIVATE,
115 SC_10_2_10_12_IPHONE_2_0_10_0, // deprecated in OSX 10.12, iOS 10.0
116 SC_10_3_10_12_IPHONE_2_0_10_0, // deprecated in OSX 10.12, iOS 10.0
117 SC_10_6_IPHONE_2_0_PRIVATE,
118 SC_10_6_IPHONE_3_0_PRIVATE,
119 SC_10_7_IPHONE_4_0_PRIVATE,
120 SC_10_7_IPHONE_5_0_PRIVATE,
121 SC_10_8_IPHONE_6_0_PRIVATE,
122 SC_10_9_IPHONE_6_0_PRIVATE,
123 SC_10_9_IPHONE_7_0_PRIVATE,
124 SC_10_10_IPHONE_7_0_PRIVATE,
125 SC_10_10_IPHONE_8_0_PRIVATE,
126 SC_10_11_IPHONE_9_0_PRIVATE,
127 SC_10_12_IPHONE_10_0_PRIVATE,
128 SC_10_13_IPHONE_10_0_PRIVATE,
129 SC_10_13_IPHONE_11_0_PRIVATE,
130 SC_10_14_IPHONE_12_0_PRIVATE,
131 SC_10_15_IPHONE_13_0_PRIVATE,
132 SC_10_15_4_IPHONE_13_4_PRIVATE,
133 SC_11_0_IPHONE_14_0_PRIVATE,
134 SC_IPHONE_2_0_PRIVATE,
135 SC_IPHONE_7_0_PRIVATE,
136 SC_IPHONE_8_0_PRIVATE,
137 SC_IPHONE_14_PRIVATE,
138 COMMENT_DEPRECATED,
139 GROUP_DEPRECATED,
140 COMMENT_DEPRECATED_NO_HEADER,
141 GROUP_DEPRECATED_NO_HEADER,
142 DEPRECATED_NO_HEADER,
143 END
144 } controlType;
145
146 #define SC_SCHEMA_DECLARATION "SC_SCHEMA_DECLARATION"
147 #define SC_SCHEMA_KV "SC_SCHEMA_KV"
148
149 #define KEY_PREFIX "kSC"
150
151 #define COMP "Comp"
152 #define DYNAMICSTORE "DynamicStore"
153 #define PREF "Pref"
154 #define PROP "Prop"
155 #define PATH "Path"
156 #define NETENT "EntNet"
157 #define NETPROP "PropNet"
158 #define NETVAL "ValNet"
159 #define SETUPENT "EntSetup"
160 #define SETUPPROP "PropSetup"
161 #define SYSTEMENT "EntSystem"
162 #define SYSTEMPROP "PropSystem"
163 #define RESV "Resv"
164 #define USERSENT "EntUsers"
165 #define USERSPROP "PropUsers"
166 #define VERSION "Version"
167 #define VIRTUALPROP "PropVirtualNetworkInterfaces"
168
169 #define CFARRAY_CFDICTIONARY "CFArray[CFDictionary]"
170 #define CFARRAY_CFNUMBER "CFArray[CFNumber]"
171 #define CFARRAY_CFSTRING "CFArray[CFString]"
172 #define CFBOOLEAN "CFBoolean"
173 #define CFDATA "CFData"
174 #define CFDATE "CFDate"
175 #define CFDICTIONARY "CFDictionary"
176 #define CFNUMBER "CFNumber"
177 #define CFNUMBER_BOOL "CFNumber (0 or 1)"
178 #define CFSTRING "CFString"
179
180 #define ACCESSPOINTNAME "AccessPointName"
181 #define ACCOUNT "Account"
182 #define ACSP "ACSP" // Apple Client Server Protocol
183 #define ACTION "Action"
184 #define ACTIVE "Active"
185 #define ADDITIONAL "Additional"
186 #define ADDRESS "Address"
187 #define ADDRESSES "Addresses"
188 #define AFTER "After"
189 #define AGGRESSIVE "Aggressive"
190 #define AIRPORT "AirPort"
191 #define ALERT "Alert"
192 #define ALIVE "Alive"
193 #define ALLOW "Allow"
194 #define ALLOWED "Allowed"
195 #define ALLOWNETCREATION "AllowNetCreation"
196 #define ALTERNATE "Alternate"
197 #define ALWAYS "Always"
198 #define ANYREGEX "AnyRegex"
199 #define APP "App"
200 #define APPLE "Apple"
201 #define APPLETALK "AppleTalk"
202 #define ARP "ARP"
203 #define AUDIOVIDEOCALLS "AudioVideoCalls"
204 #define AUTH "Auth"
205 #define AUTHENTICATIONMETHOD "AuthenticationMethod"
206 #define AUTOCONFIG "AutoConfig"
207 #define AUTODISCOVERY "AutoDiscovery"
208 #define AUTOMATIC "Automatic"
209 #define AV "AV"
210 #define BEFORE "Before"
211 #define BINDINGMETHODS "BindingMethods"
212 #define BOND "Bond"
213 #define BOOTP "BOOTP"
214 #define BRIDGE "Bridge"
215 #define BROADCAST "Broadcast"
216 #define BYPASS "Bypass"
217 #define CALLWAITINGAUDIBLEALERT "CallWaitingAudibleAlert"
218 #define CAPABILITIES "Capabilities"
219 #define CAPABILITY "Capability"
220 #define CAPTIVEPORTAL "CaptivePortal"
221 #define CAUSE "Cause"
222 #define CCP "CCP"
223 #define CELLULAR "Cellular"
224 #define CERTIFICATE "Certificate"
225 #define CGA "CGA"
226 #define CHAP "CHAP"
227 #define CLAT46 "CLAT46"
228 #define COLLISION "Collision"
229 #define COMM "Comm"
230 #define COMPATIBLE "Compatible"
231 #define COMPRESSIONACFIELD "CompressionACField"
232 #define COMPRESSIONPFIELD "CompressionPField"
233 #define COMPRESSIONVJ "CompressionVJ"
234 #define COMPUTERNAME "ComputerName"
235 #define COMPLETIONTIME "CompletionTime"
236 #define CONFIGMETHOD "ConfigMethod"
237 #define CONFIGURATION "Configuration"
238 #define CONFIRMED "Confirmed"
239 #define CONNECT "Connect"
240 #define CONNECTDELAY "ConnectDelay"
241 #define CONNECTION "Connection"
242 #define CONNECTSPEED "ConnectSpeed"
243 #define CONNECTTIME "ConnectTime"
244 #define CONSERVATIVE "Conservative"
245 #define CONSOLEUSER "ConsoleUser"
246 #define CONTEXTID "ContextID"
247 #define CREDENTIAL "Credential"
248 #define CURRENTSET "CurrentSet"
249 #define DATACOMPRESSION "DataCompression"
250 #define DEFAULT "Default"
251 #define DEFAULTZONE "DefaultZone"
252 #define DELEGATION "Delegation"
253 #define DESIGNATED "Designated"
254 #define DEST "Dest"
255 #define DESTINATION "Destination"
256 #define DETACHING "Detaching"
257 #define DEVICE "Device"
258 #define DEVICENAME "DeviceName"
259 #define DHCP "DHCP"
260 #define DHCPCLIENTID "DHCPClientID"
261 #define DIALMODE "DialMode"
262 #define DIALONDEMAND "DialOnDemand"
263 #define DISABLEUNTILNEEDED "DisableUntilNeeded"
264 #define DISCONNECT "Disconnect"
265 #define DISCONNECTONANSWER "DisconnectOnAnswer"
266 #define DISCONNECTONFASTUSERSWITCH "DisconnectOnFastUserSwitch"
267 #define DISCONNECTONIDLE "DisconnectOnIdle"
268 #define DISCONNECTONIDLETIMER "DisconnectOnIdleTimer"
269 #define DISCONNECTONLOGOUT "DisconnectOnLogout"
270 #define DISCONNECTONSLEEP "DisconnectOnSleep"
271 #define DISCONNECTONWAKE "DisconnectOnWake"
272 #define DISCONNECTONWAKETIMER "DisconnectOnWakeTimer"
273 #define DISCONNECTTIME "DisconnectTime"
274 #define DISCOVERY "Discovery"
275 #define DISPLAYTERMINALWINDOW "DisplayTerminalWindow"
276 #define DNS "DNS"
277 #define DOMAIN "Domain"
278 #define DOMAINS "Domains"
279 #define DURINGSLEEP "DuringSleep"
280 #define EAP "EAP"
281 #define EAPOL "EAPOL"
282 #define ECHO "Echo"
283 #define ECHOFAILURE "EchoFailure"
284 #define ECHOINTERVAL "EchoInterval"
285 #define ENABLE "Enable"
286 #define ENABLED "Enabled"
287 #define ENCODING "Encoding"
288 #define ENCRYPTION "Encryption"
289 #define ERRORCORRECTION "ErrorCorrection"
290 #define ETHERNET "Ethernet"
291 #define EVALUATE "Evaluate"
292 #define EXCEPTIONSLIST "ExceptionsList"
293 #define EXCLUDED "Excluded"
294 #define EXCLUDESIMPLEHOSTNAMES "ExcludeSimpleHostnames"
295 #define EXECUTABLE "Executable"
296 #define EXPENSIVE "Expensive"
297 #define EXPIRED "Expired"
298 #define EXTERNAL "External"
299 #define FAILOVER "Failover"
300 #define FAILURE "Failure"
301 #define FALLBACK "FallBack"
302 #define FILE "File"
303 #define FIREWIRE "FireWire"
304 #define FIRST "First"
305 #define FLAGS "Flags"
306 #define FTP "FTP"
307 #define GATEWAY "Gateway"
308 #define GID "GID"
309 #define GLOBAL "Global"
310 #define GOPHER "Gopher"
311 #define HARDWARE "Hardware"
312 #define HIGH "High"
313 #define HOLD "Hold"
314 #define HOSTNAME "HostName"
315 #define HOSTNAMES "HostNames"
316 #define HTTP "HTTP"
317 #define HTTPS "HTTPS"
318 #define HYBRID "Hybrid"
319 #define IDENTIFIER "Identifier"
320 #define IDENTIFIERS "Identifiers"
321 #define IDLE "Idle"
322 #define IFNEEDED "IfNeeded"
323 #define IGNORE "Ignore"
324 #define IGNOREDIALTONE "IgnoreDialTone"
325 #define IGNORELINKSTATUS "IgnoreLinkStatus"
326 #define INACTIVE "Inactive"
327 #define INCLUDED "Included"
328 #define INFO "Info"
329 #define INFORM "INFORM"
330 #define INTERFACE "Interface"
331 #define INTERFACENAME "InterfaceName"
332 #define INTERFACES "Interfaces"
333 #define IP "IP"
334 #define IPCP "IPCP"
335 #define IPSEC "IPSec"
336 #define IPV4 "IPv4"
337 #define IPV6 "IPv6"
338 #define JAVASCRIPT "JavaScript"
339 #define JOIN "Join"
340 #define JUMBO_MTU "JUMBO_MTU"
341 #define KEYCHAIN "Keychain"
342 #define KEYID "KeyID"
343 #define L2TP "L2TP"
344 #define LAST "Last"
345 #define LAYER "Layer"
346 #define LCP "LCP"
347 #define LINK "Link"
348 #define LINKISSUES "LinkIssues"
349 #define LINKLOCAL "LinkLocal"
350 #define LINKQUALITY "LinkQuality"
351 #define LOCALCERTIFICATE "LocalCertificate"
352 #define LOCALHOSTNAME "LocalHostName"
353 #define LOCALIDENTIFIER "LocalIdentifier"
354 #define LOGFILE "Logfile"
355 #define LOOPBACK "Loopback"
356 #define LOW "Low"
357 #define LRO "LRO"
358 #define MACADDRESS "MACAddress"
359 #define MANUAL "Manual"
360 #define MATCH "Match"
361 #define MEDIA "Media"
362 #define MIXED "Mixed"
363 #define MODE "Mode"
364 #define MODEL "Model"
365 #define MODEM "Modem"
366 #define MODULEID "ModuleID"
367 #define MPPE128 "MPPE128"
368 #define MPPE40 "MPPE40"
369 #define MRU "MRU"
370 #define MSCHAP1 "MSCHAP1"
371 #define MSCHAP2 "MSCHAP2"
372 #define MTU "MTU"
373 #define MULTIPATH "Multipath"
374 #define NAME "Name"
375 #define NAT64 "NAT64"
376 #define NETBIOS "NetBIOS"
377 #define NETINFO "NetInfo"
378 #define NETWORK "Network"
379 #define NETWORKID "NetworkID"
380 #define NETWORKRANGE "NetworkRange"
381 #define NETWORKSERVICES "NetworkServices"
382 #define NEVER "Never"
383 #define NO "No"
384 #define NODE "Node"
385 #define NODEID "NodeID"
386 #define NOTE "Note"
387 #define ONDEMAND "OnDemand"
388 #define ONRETRY "OnRetry"
389 #define OPTIONS "Options"
390 #define ORDER "Order"
391 #define ORDERS "Orders"
392 #define OVERRIDEPRIMARY "OverridePrimary"
393 #define PAP "PAP"
394 #define PARAMETERS "Parameters"
395 #define PASSIVE "Passive"
396 #define PASSWORD "Password"
397 #define PEER "Peer"
398 #define PERFORM "Perform"
399 #define PERSONALITY "Personality"
400 #define PLAT "PLAT"
401 #define PLUGIN "Plugin"
402 #define PLUGINS "Plugins"
403 #define POLICY "Policy"
404 #define PORT "Port"
405 #define PORTINUSE "PortInUse"
406 #define POWER "Power"
407 #define PPP "PPP"
408 #define PPPOE "PPPoE"
409 #define PPPSERIAL "PPPSerial"
410 #define PPTP "PPTP"
411 #define PREFERRED "Preferred"
412 #define PREFIX "Prefix"
413 #define PREFIXLENGTH "PrefixLength"
414 #define PREFIXLIST "PrefixList"
415 #define PREFS "Prefs"
416 #define PRIMARYINTERFACE "PrimaryInterface"
417 #define PRIMARYRANK "PrimaryRank"
418 #define PRIMARYSERVICE "PrimaryService"
419 #define PRIORITY "Priority"
420 #define PROBE "Probe"
421 #define PROMPT "Prompt"
422 #define PROTOCOL "Protocol"
423 #define PROXIES "Proxies"
424 #define PROXY "Proxy"
425 #define PULSEDIAL "PulseDial"
426 #define QOSMARKING "QoSMarking"
427 #define RANKED "Ranked"
428 #define RECEIVEACCM "ReceiveACCM"
429 #define RECENT "Recent"
430 #define REDIAL "Redial"
431 #define REDIALCOUNT "RedialCount"
432 #define REDIALINTERVAL "RedialInterval"
433 #define REFRESH "Refresh"
434 #define REGION "Region"
435 #define RELAY "Relay"
436 #define REMINDER "Reminder"
437 #define REMINDERTIME "ReminderTime"
438 #define REMOTEADDRESS "RemoteAddress"
439 #define REQUEST "Request"
440 #define REQUESTED "Requested"
441 #define REQUIRED "Required"
442 #define REQUIREMENT "Requirement"
443 #define RESOLVED "Resolved"
444 #define RETRYCONNECTTIME "RetryConnectTime"
445 #define ROOTSEPARATOR "RootSeparator"
446 #define ROUTE "Route"
447 #define ROUTER "Router"
448 #define ROUTERADVERTISEMENT "RouterAdvertisement"
449 #define ROUTES "Routes"
450 #define RTSP "RTSP"
451 #define RULE "Rule"
452 #define RULES "Rules"
453 #define RXCSUM "RXCSUM"
454 #define SAVEPASSWORDS "SavePasswords"
455 #define SCOPE "Scope"
456 #define SCOPED "Scoped"
457 #define SCRIPT "Script"
458 #define SEARCH "Search"
459 #define SEEDNETWORKRANGE "SeedNetworkRange"
460 #define SEEDROUTER "SeedRouter"
461 #define SEEDZONES "SeedZones"
462 #define SERVER "Server"
463 #define SERVERS "Servers"
464 #define SERVICE "Service"
465 #define SERVICEID "ServiceID"
466 #define SERVICEIDS "ServiceIDs"
467 #define SERVICEINDEX "ServiceIndex"
468 #define SERVICES "Services"
469 #define SESSIONTIMER "SessionTimer"
470 #define SETS "Sets"
471 #define SETUP "Setup"
472 #define SHAREDSECRET "SharedSecret"
473 #define SIGNING "Signing"
474 #define SMB "SMB"
475 #define SOCKS "SOCKS"
476 #define SORTLIST "SortList"
477 #define SPEAKER "Speaker"
478 #define SPECIFIC "Specific"
479 #define SPEED "Speed"
480 #define SSID "SSID"
481 #define STARTTIME "StartTime"
482 #define STATE "State"
483 #define STATUS "Status"
484 #define STF "6to4"
485 #define STRONGEST "Strongest"
486 #define SUBNETMASK "SubnetMask"
487 #define SUBNETMASKS "SubnetMasks"
488 #define SUBTYPE "SubType"
489 #define SUPPLEMENTAL "Supplemental"
490 #define SUPPORTED "Supported"
491 #define SUPPORTSMODEMONHOLD "SupportsModemOnHold"
492 #define SUSPENDED "Suspended"
493 #define SYSTEM "System"
494 #define TAG "Tag"
495 #define TAGS "Tags"
496 #define TERMINALSCRIPT "TerminalScript"
497 #define TFO "TFO"
498 #define TIMEOUT "Timeout"
499 #define TIMER "Timer"
500 #define TIMESTAMP "TimeStamp"
501 #define TOKEN "Token"
502 #define TRANSMITACCM "TransmitACCM"
503 #define TRANSPORT "Transport"
504 #define TRANSPORTCONVERTER "TransportConverter"
505 #define TSO "TSO"
506 #define TSO4 "TSO4"
507 #define TSO6 "TSO6"
508 #define TXCSUM "TXCSUM"
509 #define TYPE "Type"
510 #define UID "UID"
511 #define UPDATED "Updated"
512 #define URL "URL"
513 #define URLSTRING "URLString"
514 #define USE "Use"
515 #define USERDEFINEDNAME "UserDefinedName"
516 #define USERS "Users"
517 #define UUID "UUID"
518 #define VENDOR "Vendor"
519 #define VERBOSELOGGING "VerboseLogging"
520 #define VIRTUALNETWORKINTERFACES "VirtualNetworkInterfaces"
521 #define VLAN "VLAN"
522 #define VLAN_HWTAGGING "VLAN_HWTAGGING"
523 #define VLAN_MTU "VLAN_MTU"
524 #define VPN "VPN"
525 #define WAITFORDIALTONE "WaitForDialTone"
526 #define WHITELISTED "Whitelisted"
527 #define WIFI "WiFi"
528 #define WINS "WINS"
529 #define WORKGROUP "Workgroup"
530 #define XAUTH "XAuth"
531
532
533 typedef struct {
534 int control;
535 const char * prefix;
536 const char * key;
537 const char * value;
538 const char * type;
539 } schemaDefinition;
540
541 static schemaDefinition names[] = {
542
543 { GROUP, NULL, "Reserved Keys", NULL, NULL },
544
545 { SC_10_1, RESV, LINK, "__LINK__", CFSTRING },
546 { SC_10_1, RESV, INACTIVE, "__INACTIVE__", NULL },
547 { COMMENT, "", NULL, NULL, NULL },
548
549 { GROUP, NULL, "Generic Keys", NULL, NULL },
550
551 { SC_10_1, PROP, INTERFACENAME, NULL, CFSTRING },
552 { SC_10_1, PROP, MACADDRESS, NULL, CFSTRING },
553 { SC_10_1, PROP, USERDEFINEDNAME, NULL, CFSTRING },
554 { SC_10_1, PROP, VERSION, NULL, CFSTRING },
555 { COMMENT, "", NULL, NULL, NULL },
556
557 { GROUP_PRIVATE, NULL, "Generic Keys", NULL, NULL },
558 { SC_10_5_PRIVATE, NETPROP, IGNORELINKSTATUS, NULL, CFBOOLEAN },
559 { SC_10_10_IPHONE_8_0_PRIVATE, PROP, CONFIRMED INTERFACENAME, NULL, CFSTRING },
560 { SC_10_11_IPHONE_9_0_PRIVATE, PROP, DISABLEUNTILNEEDED, NULL, CFNUMBER_BOOL },
561 { COMMENT_PRIVATE, "", NULL, NULL, NULL },
562
563
564 { GROUP, PREF, "Preference Keys", NULL, NULL },
565
566 { SC_10_1, PREF, CURRENTSET, NULL, CFSTRING },
567 { SC_10_1, PREF, NETWORKSERVICES, NULL, CFDICTIONARY },
568 { SC_10_1, PREF, SETS, NULL, CFDICTIONARY },
569 { SC_10_1, PREF, SYSTEM, NULL, CFDICTIONARY },
570 { COMMENT, "", NULL, NULL, NULL },
571
572 { GROUP_PRIVATE, PREF, "Preference Keys", NULL, NULL },
573
574 { SC_10_15_4_IPHONE_13_4_PRIVATE, PREF, VERSION, "__VERSION__", CFSTRING },
575 { SC_10_5_PRIVATE, PREF, VIRTUALNETWORKINTERFACES, NULL, CFDICTIONARY },
576 { COMMENT_PRIVATE, "", NULL, NULL, NULL },
577
578 { GROUP, COMP, "Component Keys", NULL, NULL },
579
580 { SC_10_1, COMP, NETWORK, NULL, NULL },
581 { SC_10_1, COMP, SERVICE, NULL, NULL },
582 { SC_10_1, COMP, GLOBAL, NULL, NULL },
583 { SC_10_2, COMP, HOSTNAMES, NULL, NULL },
584 { SC_10_1, COMP, INTERFACE, NULL, NULL },
585 { SC_10_1, COMP, SYSTEM, NULL, NULL },
586 { SC_10_1, COMP, USERS, NULL, NULL },
587 { COMMENT, "", NULL, NULL, NULL },
588
589 { COMMENT, "--- Regex pattern which matches any component ---", NULL },
590 { SC_10_1, COMP, ANYREGEX, "[^/]+", NULL },
591 { COMMENT, "", NULL, NULL, NULL },
592
593 { GROUP, NETENT, "Network Entity Keys", NULL, NULL },
594
595 { SC_10_1, NETENT, AIRPORT, NULL, CFDICTIONARY },
596 { DEFINE, "#if", "!TARGET_OS_IPHONE", NULL, NULL },
597 { DEPRECATED_NO_HEADER, NETENT, APPLETALK, NULL, CFDICTIONARY },
598 { DEFINE, "#endif", "// !TARGET_OS_IPHONE", NULL, NULL },
599 { SC_10_1, NETENT, DHCP, NULL, CFDICTIONARY },
600 { SC_10_1, NETENT, DNS, NULL, CFDICTIONARY },
601 { SC_10_1, NETENT, ETHERNET, NULL, CFDICTIONARY },
602 { SC_10_3, NETENT, FIREWIRE, NULL, CFDICTIONARY },
603 { SC_10_1, NETENT, INTERFACE, NULL, CFDICTIONARY },
604 { SC_10_5, NETENT, IPSEC, NULL, CFDICTIONARY },
605 { SC_10_1, NETENT, IPV4, NULL, CFDICTIONARY },
606 { SC_10_1, NETENT, IPV6, NULL, CFDICTIONARY },
607 { SC_10_3, NETENT, L2TP, NULL, CFDICTIONARY },
608 { SC_10_1, NETENT, LINK, NULL, CFDICTIONARY },
609 { SC_10_1, NETENT, MODEM, NULL, CFDICTIONARY },
610 { DEFINE, "#if", "!TARGET_OS_IPHONE", NULL, NULL },
611 { DEPRECATED_NO_HEADER, NETENT, NETINFO, NULL, CFDICTIONARY },
612 { DEFINE, "#endif", "// !TARGET_OS_IPHONE", NULL, NULL },
613 { SC_10_1, NETENT, PPP, NULL, CFDICTIONARY },
614 { SC_10_1, NETENT, PPPOE, NULL, CFDICTIONARY },
615 { SC_10_3, NETENT, PPPSERIAL, NULL, CFDICTIONARY },
616 { SC_10_3_10_12_IPHONE_2_0_10_0, NETENT, PPTP, NULL, CFDICTIONARY },
617 { SC_10_1, NETENT, PROXIES, NULL, CFDICTIONARY },
618 { DEFINE, "#if", "!TARGET_OS_IPHONE", NULL, NULL },
619 { SC_10_5_IPHONE_NA, NETENT, SMB, NULL, CFDICTIONARY },
620 { DEFINE, "#endif", "// !TARGET_OS_IPHONE", NULL, NULL },
621 { SC_10_3, NETENT, STF, NULL, CFDICTIONARY },
622 { COMMENT, "", NULL, NULL, NULL },
623
624 { GROUP_PRIVATE, NETENT, "Network Entity Keys", NULL, NULL },
625
626 { SC_10_9_IPHONE_7_0_PRIVATE, NETENT, APP LAYER, NULL, CFDICTIONARY},
627 { SC_IPHONE_14_PRIVATE, NETENT, CAPTIVEPORTAL, NULL, CFDICTIONARY },
628 { SC_10_5_PRIVATE, NETENT, EAPOL, NULL, CFDICTIONARY },
629 { SC_10_7_IPHONE_5_0_PRIVATE, NETENT, IDLE ROUTE, NULL, NULL}, // notification
630 { SC_10_10_IPHONE_7_0_PRIVATE, NETENT, INTERFACE ACTIVE DURINGSLEEP REQUESTED, ACTIVE DURINGSLEEP REQUESTED, CFDICTIONARY},
631 { SC_10_10_IPHONE_7_0_PRIVATE, NETENT, INTERFACE ACTIVE DURINGSLEEP SUPPORTED, ACTIVE DURINGSLEEP SUPPORTED, CFDICTIONARY},
632 { SC_10_15_IPHONE_13_0_PRIVATE, NETENT, INTERFACE DELEGATION, NULL, NULL}, // notification
633 { SC_10_6_IPHONE_2_0_PRIVATE, NETENT, IPV4 ARP COLLISION, NULL, NULL}, // notification
634 { SC_10_6_IPHONE_2_0_PRIVATE, NETENT, IPV4 PORTINUSE, PORTINUSE, NULL}, // notification
635 { SC_10_10_IPHONE_8_0_PRIVATE, NETENT, IPV4 ROUTER ARP FAILURE, NULL, NULL}, // notification
636 { SC_10_10_IPHONE_8_0_PRIVATE, NETENT, IPV4 ROUTER ARP ALIVE, NULL, NULL}, // notification
637 { SC_10_13_IPHONE_11_0_PRIVATE, NETENT, IPV6 ROUTER EXPIRED, NULL, NULL}, // notification
638 { SC_10_9_IPHONE_7_0_PRIVATE, NETENT, LINKISSUES, NULL, CFDICTIONARY},
639 { SC_10_7_IPHONE_5_0_PRIVATE, NETENT, LINKQUALITY, NULL, CFDICTIONARY},
640 { SC_10_7_IPHONE_4_0_PRIVATE, NETENT, LOOPBACK, NULL, CFDICTIONARY },
641 { SC_10_14_IPHONE_12_0_PRIVATE, NETENT, NAT64, NULL, CFDICTIONARY },
642 { SC_10_13_IPHONE_11_0_PRIVATE, NETENT, NAT64 PREFIX REQUEST, NULL, NULL}, // notification
643 { SC_10_6_IPHONE_3_0_PRIVATE, NETENT, ONDEMAND, NULL, CFDICTIONARY },
644 { SC_10_13_IPHONE_10_0_PRIVATE, NETENT, QOSMARKING POLICY, NULL, CFDICTIONARY },
645 { SC_10_5_PRIVATE, NETENT, REFRESH CONFIGURATION, NULL, NULL }, // notification
646 { SC_10_6_IPHONE_2_0_PRIVATE, NETENT, SERVICE, "__SERVICE__", CFDICTIONARY },
647 { SC_10_7_IPHONE_4_0_PRIVATE, NETENT, VPN, NULL, CFDICTIONARY },
648 { COMMENT_PRIVATE, "", NULL, NULL, NULL },
649
650 { GROUP, NETPROP, KEY_PREFIX COMP NETWORK " Properties", NULL, NULL },
651
652 { SC_10_2, NETPROP, OVERRIDEPRIMARY, NULL, CFNUMBER_BOOL },
653 { SC_10_1, NETPROP, SERVICE ORDER, NULL, CFARRAY_CFSTRING },
654 { SC_10_1, NETPROP, PPP OVERRIDEPRIMARY, NULL, CFNUMBER_BOOL },
655 { COMMENT, "", NULL, NULL, NULL },
656
657 { GROUP, NETPROP INTERFACES, KEY_PREFIX COMP NETWORK INTERFACE " Properties", NULL, NULL },
658
659 { SC_10_2, NETPROP, INTERFACES, NULL, CFARRAY_CFSTRING },
660 { COMMENT, "", NULL, NULL, NULL },
661
662 { GROUP, NETPROP LOCALHOSTNAME, KEY_PREFIX COMP NETWORK HOSTNAMES " Properties", NULL, NULL },
663
664 { SC_10_2, NETPROP, LOCALHOSTNAME, NULL, CFSTRING },
665 { COMMENT, "", NULL, NULL, NULL },
666
667 { GROUP_DEPRECATED, NETPROP AIRPORT, KEY_PREFIX NETENT AIRPORT " (Hardware) Entity Keys", NULL, NULL },
668
669 { SC_10_2_10_9, NETPROP AIRPORT, ALLOWNETCREATION, NULL, CFNUMBER_BOOL },
670 { SC_10_1_10_9, NETPROP AIRPORT, AUTH PASSWORD, NULL, CFDATA },
671 { SC_10_1_10_9, NETPROP AIRPORT, AUTH PASSWORD ENCRYPTION, NULL, CFSTRING },
672 { SC_10_2_10_9, NETPROP AIRPORT, JOIN MODE, NULL, CFSTRING },
673 { SC_10_1_10_9, NETPROP AIRPORT, POWER ENABLED, NULL, CFNUMBER_BOOL },
674 { SC_10_1_10_9, NETPROP AIRPORT, PREFERRED NETWORK, NULL, CFSTRING },
675 { SC_10_2_10_9, NETPROP AIRPORT, SAVEPASSWORDS, NULL, CFNUMBER_BOOL },
676 { COMMENT_DEPRECATED, "", NULL, NULL, NULL },
677 { COMMENT_DEPRECATED, "--- " KEY_PREFIX NETPROP AIRPORT JOIN MODE " values ---", NULL, NULL, NULL },
678 { SC_10_3_10_9, NETVAL AIRPORT JOIN MODE, AUTOMATIC, NULL, NULL },
679 { SC_10_2_10_9, NETVAL AIRPORT JOIN MODE, PREFERRED, NULL, NULL },
680 { SC_10_4_10_9, NETVAL AIRPORT JOIN MODE, RANKED, NULL, NULL },
681 { SC_10_2_10_9, NETVAL AIRPORT JOIN MODE, RECENT, NULL, NULL },
682 { SC_10_2_10_9, NETVAL AIRPORT JOIN MODE, STRONGEST, NULL, NULL },
683 { COMMENT_DEPRECATED, "", NULL, NULL, NULL },
684 { COMMENT_DEPRECATED, "--- " KEY_PREFIX NETPROP AIRPORT PASSWORD ENCRYPTION " values ---", NULL, NULL, NULL },
685 { SC_10_3_10_9, NETVAL AIRPORT AUTH PASSWORD ENCRYPTION, KEYCHAIN, NULL, NULL },
686 { COMMENT_DEPRECATED, "", NULL, NULL, NULL },
687
688 { GROUP_DEPRECATED_NO_HEADER, NETPROP APPLETALK, KEY_PREFIX NETENT APPLETALK " Entity Keys", NULL, NULL },
689
690 { DEFINE, "#if", "!TARGET_OS_IPHONE", NULL, NULL },
691 // { DEPRECATED_NO_HEADER, NETPROP APPLETALK, COMPUTERNAME, NULL, CFSTRING },
692 // { DEPRECATED_NO_HEADER, NETPROP APPLETALK, COMPUTERNAME ENCODING, NULL, CFNUMBER },
693 { DEPRECATED_NO_HEADER, NETPROP APPLETALK, CONFIGMETHOD, NULL, CFSTRING },
694 { DEPRECATED_NO_HEADER, NETPROP APPLETALK, DEFAULTZONE, NULL, CFSTRING },
695 { DEPRECATED_NO_HEADER, NETPROP APPLETALK, NETWORKID, NULL, CFNUMBER },
696 // { DEPRECATED_NO_HEADER, NETPROP APPLETALK, NETWORKRANGE, NULL, CFARRAY_CFNUMBER },
697 { DEPRECATED_NO_HEADER, NETPROP APPLETALK, NODEID, NULL, CFNUMBER },
698 // { DEPRECATED_NO_HEADER, NETPROP APPLETALK, SEEDNETWORKRANGE, NULL, CFARRAY_CFNUMBER },
699 // { DEPRECATED_NO_HEADER, NETPROP APPLETALK, SEEDZONES, NULL, CFARRAY_CFSTRING },
700 { COMMENT_DEPRECATED_NO_HEADER, "", NULL, NULL, NULL },
701 { COMMENT_DEPRECATED_NO_HEADER, "--- " KEY_PREFIX NETPROP APPLETALK CONFIGMETHOD " values ---", NULL, NULL, NULL },
702 { DEPRECATED_NO_HEADER, NETVAL APPLETALK CONFIGMETHOD, NODE, NULL, NULL },
703 // { DEPRECATED_NO_HEADER, NETVAL APPLETALK CONFIGMETHOD, ROUTER, NULL, NULL },
704 // { DEPRECATED_NO_HEADER, NETVAL APPLETALK CONFIGMETHOD, SEEDROUTER, NULL, NULL },
705 { DEFINE, "#endif", "// !TARGET_OS_IPHONE", NULL, NULL },
706 { COMMENT_DEPRECATED_NO_HEADER, "", NULL, NULL, NULL },
707
708
709 { GROUP, NETPROP DNS, KEY_PREFIX NETENT DNS " Entity Keys", NULL, NULL },
710
711 { SC_10_1, NETPROP DNS, DOMAIN NAME, NULL, CFSTRING },
712 { SC_10_4, NETPROP DNS, OPTIONS, NULL, CFSTRING },
713 { SC_10_1, NETPROP DNS, SEARCH DOMAINS, NULL, CFARRAY_CFSTRING},
714 { SC_10_4, NETPROP DNS, SEARCH ORDER, NULL, CFNUMBER},
715 { SC_10_1, NETPROP DNS, SERVER ADDRESSES, NULL, CFARRAY_CFSTRING },
716 { SC_10_4, NETPROP DNS, SERVER PORT, NULL, CFNUMBER },
717 { SC_10_4, NETPROP DNS, SERVER TIMEOUT, NULL, CFNUMBER },
718 { SC_10_1, NETPROP DNS, SORTLIST, NULL, CFARRAY_CFSTRING },
719 { SC_10_4, NETPROP DNS, SUPPLEMENTAL MATCH DOMAINS, NULL, CFARRAY_CFSTRING},
720 { SC_10_4, NETPROP DNS, SUPPLEMENTAL MATCH ORDERS, NULL, CFARRAY_CFNUMBER},
721 { COMMENT, "", NULL, NULL, NULL },
722
723 { GROUP_PRIVATE, NETPROP DNS, KEY_PREFIX NETENT DNS " Entity Keys", NULL, NULL },
724
725 { SC_10_11_IPHONE_9_0_PRIVATE, NETPROP DNS, CONFIRMED SERVICEID, NULL, CFSTRING },
726 { SC_10_9_IPHONE_7_0_PRIVATE, NETPROP DNS, SERVICE IDENTIFIER, NULL, CFNUMBER },
727 { SC_10_9_IPHONE_7_0_PRIVATE, NETPROP DNS, SUPPLEMENTAL MATCH DOMAINS NO SEARCH, NULL, CFNUMBER_BOOL},
728 { COMMENT_PRIVATE, "", NULL, NULL, NULL },
729
730 { GROUP_PRIVATE, NETPROP CAPTIVEPORTAL, KEY_PREFIX NETENT CAPTIVEPORTAL " Entity Keys", NULL, NULL },
731
732 { SC_IPHONE_14_PRIVATE, NETPROP CAPTIVEPORTAL, URL, NULL, CFSTRING },
733 { COMMENT_PRIVATE, "", NULL, NULL, NULL },
734
735 { GROUP, NETPROP ETHERNET, KEY_PREFIX NETENT ETHERNET " (Hardware) Entity Keys", NULL, NULL },
736
737 { SC_10_2, NETPROP ETHERNET, MEDIA SUBTYPE, NULL, CFSTRING },
738 { SC_10_2, NETPROP ETHERNET, MEDIA OPTIONS, NULL, CFARRAY_CFSTRING },
739 { SC_10_2, NETPROP ETHERNET, MTU, NULL, CFNUMBER },
740 { COMMENT, "", NULL, NULL, NULL },
741
742 { GROUP_PRIVATE, NETPROP ETHERNET, KEY_PREFIX NETENT ETHERNET " (Hardware) Entity Keys", NULL, NULL },
743
744 { SC_10_7_IPHONE_5_0_PRIVATE, NETPROP ETHERNET, CAPABILITY AV, AV, CFNUMBER_BOOL },
745 { SC_10_7_IPHONE_5_0_PRIVATE, NETPROP ETHERNET, CAPABILITY JUMBO_MTU, JUMBO_MTU, CFNUMBER_BOOL },
746 { SC_10_7_IPHONE_5_0_PRIVATE, NETPROP ETHERNET, CAPABILITY LRO, LRO, CFNUMBER_BOOL },
747 { SC_10_7_IPHONE_5_0_PRIVATE, NETPROP ETHERNET, CAPABILITY RXCSUM, RXCSUM, CFNUMBER_BOOL },
748 { SC_10_7_IPHONE_5_0_PRIVATE, NETPROP ETHERNET, CAPABILITY TSO, TSO, CFNUMBER_BOOL },
749 { SC_10_7_IPHONE_5_0_PRIVATE, NETPROP ETHERNET, CAPABILITY TSO4, TSO4, CFNUMBER_BOOL },
750 { SC_10_7_IPHONE_5_0_PRIVATE, NETPROP ETHERNET, CAPABILITY TSO6, TSO6, CFNUMBER_BOOL },
751 { SC_10_7_IPHONE_5_0_PRIVATE, NETPROP ETHERNET, CAPABILITY TXCSUM, TXCSUM, CFNUMBER_BOOL },
752 { SC_10_7_IPHONE_5_0_PRIVATE, NETPROP ETHERNET, CAPABILITY VLAN_HWTAGGING, VLAN_HWTAGGING, CFNUMBER_BOOL },
753 { SC_10_7_IPHONE_5_0_PRIVATE, NETPROP ETHERNET, CAPABILITY VLAN_MTU, VLAN_MTU, CFNUMBER_BOOL },
754 { COMMENT_PRIVATE, "", NULL, NULL, NULL },
755
756 { GROUP, NETPROP FIREWIRE, KEY_PREFIX NETENT FIREWIRE " (Hardware) Entity Keys", NULL, NULL },
757
758 { COMMENT, "* RESERVED FOR FUTURE USE *", NULL, NULL, NULL },
759 { COMMENT, "", NULL, NULL, NULL },
760
761 { GROUP, NETPROP INTERFACE, KEY_PREFIX NETENT INTERFACE " Entity Keys", NULL, NULL },
762
763 { SC_10_1, NETPROP INTERFACE, DEVICENAME, NULL, CFSTRING },
764 { SC_10_1, NETPROP INTERFACE, HARDWARE, NULL, CFSTRING },
765 { SC_10_1, NETPROP INTERFACE, TYPE, NULL, CFSTRING },
766 { SC_10_1, NETPROP INTERFACE, SUBTYPE, NULL, CFSTRING },
767 { SC_10_2_10_13, NETPROP INTERFACE, SUPPORTSMODEMONHOLD, NULL, CFNUMBER_BOOL },
768 { COMMENT, "", NULL, NULL, NULL },
769 { COMMENT, "--- " KEY_PREFIX NETPROP INTERFACE TYPE " values ---", NULL, NULL, NULL },
770 { SC_10_1, NETVAL INTERFACE TYPE, ETHERNET, NULL, NULL },
771 { SC_10_3, NETVAL INTERFACE TYPE, FIREWIRE, NULL, NULL },
772 { SC_10_1, NETVAL INTERFACE TYPE, PPP, NULL, NULL },
773 { SC_10_3, NETVAL INTERFACE TYPE, STF, NULL, NULL },
774 { SC_10_6_IPHONE_2_0, NETVAL INTERFACE TYPE, IPSEC, NULL, NULL },
775 { COMMENT, "", NULL, NULL, NULL },
776 { COMMENT, "--- " KEY_PREFIX NETPROP SERVICE SUBTYPE " values (for " PPP ") ---", NULL, NULL, NULL },
777 { SC_10_1, NETVAL INTERFACE SUBTYPE, PPPOE, NULL, NULL },
778 { SC_10_1, NETVAL INTERFACE SUBTYPE, PPPSERIAL, NULL, NULL },
779 { SC_10_2_10_12_IPHONE_2_0_10_0, NETVAL INTERFACE SUBTYPE, PPTP, NULL, NULL },
780 { SC_10_3, NETVAL INTERFACE SUBTYPE, L2TP, NULL, NULL },
781 { COMMENT, "", NULL, NULL, NULL },
782
783 { GROUP_PRIVATE, NETPROP INTERFACE, KEY_PREFIX NETENT INTERFACE " Entity Keys", NULL, NULL },
784
785 { COMMENT_PRIVATE, "--- " KEY_PREFIX NETPROP INTERFACE TYPE " values ---", NULL, NULL, NULL },
786 { SC_10_7_IPHONE_4_0_PRIVATE, NETVAL INTERFACE TYPE, LOOPBACK, NULL, NULL },
787 { SC_10_7_IPHONE_4_0_PRIVATE, NETVAL INTERFACE TYPE, VPN, NULL, NULL },
788 { COMMENT_PRIVATE, "", NULL, NULL, NULL },
789
790 { GROUP, NETPROP IPSEC, KEY_PREFIX NETENT IPSEC " Entity Keys", NULL, NULL },
791
792 { SC_10_5, NETPROP IPSEC, AUTHENTICATIONMETHOD, NULL, CFSTRING },
793 { SC_10_5, NETPROP IPSEC, LOCALCERTIFICATE, NULL, CFDATA },
794 { SC_10_5, NETPROP IPSEC, LOCALIDENTIFIER, NULL, CFSTRING },
795 { SC_10_5, NETPROP IPSEC, LOCALIDENTIFIER TYPE, NULL, CFSTRING },
796 { SC_10_5, NETPROP IPSEC, SHAREDSECRET, NULL, CFSTRING },
797 { SC_10_5, NETPROP IPSEC, SHAREDSECRET ENCRYPTION, NULL, CFSTRING },
798 { SC_10_6_IPHONE_2_0, NETPROP IPSEC, CONNECTTIME, NULL, CFNUMBER },
799 { SC_10_6_IPHONE_2_0, NETPROP IPSEC, REMOTEADDRESS, NULL, CFSTRING },
800 { SC_10_6_IPHONE_2_0, NETPROP IPSEC, STATUS, STATUS, CFNUMBER },
801 { SC_10_6_IPHONE_2_0, NETPROP IPSEC, XAUTH ENABLED, NULL, CFNUMBER_BOOL },
802 { SC_10_6_IPHONE_2_0, NETPROP IPSEC, XAUTH NAME, NULL, CFSTRING },
803 { SC_10_6_IPHONE_2_0, NETPROP IPSEC, XAUTH PASSWORD, NULL, CFSTRING },
804 { SC_10_6_IPHONE_2_0, NETPROP IPSEC, XAUTH PASSWORD ENCRYPTION, NULL, CFSTRING },
805 { SC_10_9_IPHONE_7_0_PRIVATE, NETPROP IPSEC, DISCONNECTONWAKE, NULL, CFNUMBER_BOOL },
806 { SC_10_9_IPHONE_7_0_PRIVATE, NETPROP IPSEC, DISCONNECTONWAKETIMER, NULL, CFNUMBER },
807 { COMMENT, "", NULL, NULL, NULL },
808 { COMMENT, "--- " KEY_PREFIX NETPROP IPSEC AUTHENTICATIONMETHOD " values ---", NULL, NULL, NULL },
809 { SC_10_5, NETVAL IPSEC AUTHENTICATIONMETHOD, SHAREDSECRET, NULL, NULL },
810 { SC_10_5, NETVAL IPSEC AUTHENTICATIONMETHOD, CERTIFICATE, NULL, NULL },
811 { SC_10_5, NETVAL IPSEC AUTHENTICATIONMETHOD, HYBRID, NULL, NULL },
812 { COMMENT, "", NULL, NULL, NULL },
813 { COMMENT, "--- " KEY_PREFIX NETPROP IPSEC LOCALIDENTIFIER TYPE " values ---", NULL, NULL, NULL },
814 { SC_10_5, NETVAL IPSEC LOCALIDENTIFIER TYPE, KEYID, NULL, NULL },
815 { COMMENT, "", NULL, NULL, NULL },
816 { COMMENT, "--- " KEY_PREFIX NETPROP IPSEC SHAREDSECRET ENCRYPTION " values ---", NULL, NULL, NULL },
817 { SC_10_5, NETVAL IPSEC SHAREDSECRET ENCRYPTION, KEYCHAIN, NULL, NULL },
818 { COMMENT, "", NULL, NULL, NULL },
819 { COMMENT, "--- " KEY_PREFIX NETPROP IPSEC XAUTH PASSWORD ENCRYPTION " values ---", NULL, NULL, NULL },
820 { SC_10_6_IPHONE_2_0, NETVAL IPSEC XAUTH PASSWORD ENCRYPTION, KEYCHAIN, NULL, NULL },
821 { SC_10_6_IPHONE_3_0, NETVAL IPSEC XAUTH PASSWORD ENCRYPTION, PROMPT, NULL, NULL },
822 { COMMENT, "", NULL, NULL, NULL },
823
824 { GROUP_PRIVATE, NETPROP IPSEC, KEY_PREFIX NETENT IPSEC " Entity Keys", NULL, NULL },
825
826 { SC_10_6_IPHONE_3_0_PRIVATE, NETPROP IPSEC, LAST CAUSE, NULL, CFNUMBER },
827 { COMMENT_PRIVATE, "", NULL, NULL, NULL },
828 { COMMENT_PRIVATE, "--- " ONDEMAND ": ---", NULL, NULL, NULL },
829 { SC_10_6_IPHONE_3_0_PRIVATE, NETPROP IPSEC, ONDEMAND ENABLED, NULL, CFNUMBER_BOOL },
830 { SC_10_6_IPHONE_3_0_PRIVATE, NETPROP IPSEC, ONDEMAND MATCH DOMAINS ALWAYS, NULL, CFARRAY_CFSTRING },
831 { SC_10_6_IPHONE_3_0_PRIVATE, NETPROP IPSEC, ONDEMAND MATCH DOMAINS ONRETRY, NULL, CFARRAY_CFSTRING },
832 { SC_10_6_IPHONE_3_0_PRIVATE, NETPROP IPSEC, ONDEMAND MATCH DOMAINS NEVER, NULL, CFARRAY_CFSTRING },
833 { COMMENT_PRIVATE, "", NULL, NULL, NULL },
834
835 { GROUP, NETPROP IPV4, KEY_PREFIX NETENT IPV4 " Entity Keys", NULL, NULL },
836
837 { SC_10_1, NETPROP IPV4, ADDRESSES, NULL, CFARRAY_CFSTRING },
838 { SC_10_1, NETPROP IPV4, CONFIGMETHOD, NULL, CFSTRING },
839 { SC_10_1, NETPROP IPV4, DHCPCLIENTID, NULL, CFSTRING },
840 { SC_10_1, NETPROP IPV4, ROUTER, NULL, CFSTRING },
841 { SC_10_1, NETPROP IPV4, SUBNETMASKS, NULL, CFARRAY_CFSTRING },
842 { SC_10_1, NETPROP IPV4, DEST ADDRESSES, NULL, CFARRAY_CFSTRING },
843 { SC_10_1, NETPROP IPV4, BROADCAST ADDRESSES, NULL, CFARRAY_CFSTRING },
844 { COMMENT, "", NULL, NULL, NULL },
845 { COMMENT, "--- " KEY_PREFIX NETPROP IPV4 CONFIGMETHOD " values ---", NULL, NULL, NULL },
846 { SC_10_6_IPHONE_2_0, NETVAL IPV4 CONFIGMETHOD, AUTOMATIC, NULL, NULL },
847 { SC_10_1, NETVAL IPV4 CONFIGMETHOD, BOOTP, NULL, NULL },
848 { SC_10_1, NETVAL IPV4 CONFIGMETHOD, DHCP, NULL, NULL },
849 { SC_10_1, NETVAL IPV4 CONFIGMETHOD, INFORM, NULL, NULL },
850 { SC_10_2, NETVAL IPV4 CONFIGMETHOD, LINKLOCAL, NULL, NULL },
851 { SC_10_1, NETVAL IPV4 CONFIGMETHOD, MANUAL, NULL, NULL },
852 { SC_10_1, NETVAL IPV4 CONFIGMETHOD, PPP, NULL, NULL },
853 { COMMENT, "", NULL, NULL, NULL },
854
855 { GROUP_PRIVATE, NETPROP IPV4, KEY_PREFIX NETENT IPV4 " Entity Keys", NULL, NULL },
856 { SC_10_10_IPHONE_8_0_PRIVATE, NETPROP IPV4, ADDITIONAL ROUTES, NULL, CFARRAY_CFDICTIONARY },
857 { SC_10_7_IPHONE_5_0_PRIVATE, NETPROP IPV4, ARP RESOLVED HARDWARE ADDRESS, NULL, CFSTRING },
858 { SC_10_7_IPHONE_5_0_PRIVATE, NETPROP IPV4, ARP RESOLVED IP ADDRESS, NULL, CFSTRING },
859 { SC_10_14_IPHONE_12_0_PRIVATE, NETPROP IPV4, CLAT46, NULL, CFBOOLEAN },
860 { SC_10_7_IPHONE_4_0_PRIVATE, NETPROP IPV4, EXCLUDED ROUTES, NULL, CFARRAY_CFDICTIONARY },
861 { SC_10_7_IPHONE_4_0_PRIVATE, NETPROP IPV4, INCLUDED ROUTES, NULL, CFARRAY_CFDICTIONARY },
862 { COMMENT_PRIVATE, "", NULL, NULL, NULL },
863 { COMMENT_PRIVATE, "--- " KEY_PREFIX NETPROP IPV4 CONFIGMETHOD " values ---", NULL, NULL, NULL },
864 { SC_10_5_PRIVATE, NETVAL IPV4 CONFIGMETHOD, FAILOVER, NULL, NULL },
865 { COMMENT_PRIVATE, "", NULL, NULL, NULL },
866 { COMMENT_PRIVATE,
867 "--- "
868 KEY_PREFIX NETPROP IPV4 ADDITIONAL ROUTES ", "
869 KEY_PREFIX NETPROP IPV4 EXCLUDED ROUTES ", "
870 KEY_PREFIX NETPROP IPV4 INCLUDED ROUTES
871 " [CFDictionary] keys ---", NULL, NULL, NULL },
872 { SC_10_7_IPHONE_4_0_PRIVATE, NETPROP IPV4 ROUTE, DESTINATION ADDRESS, NULL, CFSTRING },
873 { SC_10_7_IPHONE_4_0_PRIVATE, NETPROP IPV4 ROUTE, SUBNETMASK, NULL, CFSTRING },
874 { SC_10_7_IPHONE_4_0_PRIVATE, NETPROP IPV4 ROUTE, GATEWAY ADDRESS, NULL, CFSTRING },
875 { SC_10_10_IPHONE_8_0_PRIVATE, NETPROP IPV4 ROUTE, INTERFACENAME, NULL, CFSTRING },
876 { COMMENT_PRIVATE, "", NULL, NULL, NULL },
877
878 { GROUP, NETPROP IPV6, KEY_PREFIX NETENT IPV6 " Entity Keys", NULL, NULL },
879
880 { SC_10_1, NETPROP IPV6, ADDRESSES, NULL, CFARRAY_CFSTRING },
881 { SC_10_1, NETPROP IPV6, CONFIGMETHOD, NULL, CFSTRING },
882 { SC_10_3, NETPROP IPV6, DEST ADDRESSES, NULL, CFARRAY_CFSTRING },
883 { SC_10_3, NETPROP IPV6, FLAGS, NULL, CFARRAY_CFNUMBER },
884 { SC_10_3, NETPROP IPV6, PREFIXLENGTH, NULL, CFARRAY_CFNUMBER },
885 { SC_10_3, NETPROP IPV6, ROUTER, NULL, CFSTRING },
886 { COMMENT, "", NULL, NULL, NULL },
887 { COMMENT, "--- " KEY_PREFIX NETPROP IPV6 CONFIGMETHOD " values ---", NULL, NULL, NULL },
888 { SC_10_3, NETVAL IPV6 CONFIGMETHOD, AUTOMATIC, NULL, NULL },
889 { SC_10_7_IPHONE_4_0, NETVAL IPV6 CONFIGMETHOD, LINKLOCAL, NULL, NULL },
890 { SC_10_3, NETVAL IPV6 CONFIGMETHOD, MANUAL, NULL, NULL },
891 { SC_10_3, NETVAL IPV6 CONFIGMETHOD, ROUTERADVERTISEMENT, NULL, NULL },
892 { SC_10_3, NETVAL IPV6 CONFIGMETHOD, STF, NULL, NULL },
893 { COMMENT, "", NULL, NULL, NULL },
894
895 { GROUP_PRIVATE, NETPROP IPV6, KEY_PREFIX NETENT IPV6 " Entity Keys", NULL, NULL },
896 { SC_10_10_IPHONE_8_0_PRIVATE, NETPROP IPV6, ADDITIONAL ROUTES, NULL, CFARRAY_CFDICTIONARY },
897 { SC_10_12_IPHONE_10_0_PRIVATE, NETPROP IPV6, ENABLE CGA, NULL, CFNUMBER_BOOL },
898 { SC_10_7_IPHONE_4_0_PRIVATE, NETPROP IPV6, EXCLUDED ROUTES, NULL, CFARRAY_CFDICTIONARY },
899 { SC_10_7_IPHONE_4_0_PRIVATE, NETPROP IPV6, INCLUDED ROUTES, NULL, CFARRAY_CFDICTIONARY },
900 { SC_10_12_IPHONE_10_0_PRIVATE, NETPROP IPV6, LINKLOCAL ADDRESS, NULL, CFSTRING },
901 { SC_10_14_IPHONE_12_0_PRIVATE, NETPROP IPV6, PERFORM PLAT DISCOVERY, NULL, CFBOOLEAN },
902 { COMMENT_PRIVATE, "", NULL, NULL, NULL },
903 { COMMENT_PRIVATE,
904 "--- "
905 KEY_PREFIX NETPROP IPV6 ADDITIONAL ROUTES ", "
906 KEY_PREFIX NETPROP IPV6 INCLUDED ROUTES ", "
907 KEY_PREFIX NETPROP IPV6 EXCLUDED ROUTES
908 " [CFDictionary] keys ---", NULL, NULL, NULL },
909 { SC_10_7_IPHONE_4_0_PRIVATE, NETPROP IPV6 ROUTE, DESTINATION ADDRESS, NULL, CFSTRING },
910 { SC_10_7_IPHONE_4_0_PRIVATE, NETPROP IPV6 ROUTE, PREFIXLENGTH, NULL, CFNUMBER },
911 { SC_10_7_IPHONE_4_0_PRIVATE, NETPROP IPV6 ROUTE, GATEWAY ADDRESS, NULL, CFSTRING },
912 { SC_10_10_IPHONE_8_0_PRIVATE, NETPROP IPV6 ROUTE, INTERFACENAME, NULL, CFSTRING },
913 { COMMENT_PRIVATE, "", NULL, NULL, NULL },
914
915 { GROUP, NETPROP STF, KEY_PREFIX NETENT STF " Entity Keys", NULL, NULL },
916
917 { SC_10_3, NETPROP STF, RELAY, NULL, CFSTRING },
918 { COMMENT, "", NULL, NULL, NULL },
919
920 { GROUP, NETPROP LINK, KEY_PREFIX NETENT LINK " Entity Keys", NULL, NULL },
921
922 { SC_10_1, NETPROP LINK, ACTIVE, NULL, CFBOOLEAN },
923 { SC_10_2, NETPROP LINK, DETACHING, NULL, CFBOOLEAN },
924 { COMMENT, "", NULL, NULL, NULL },
925
926 { GROUP_PRIVATE, NETPROP LINK, KEY_PREFIX NETENT LINK " Entity Keys", NULL, NULL },
927 { SC_10_10_IPHONE_8_0_PRIVATE, NETPROP LINK, EXPENSIVE, NULL, CFBOOLEAN },
928 { COMMENT_PRIVATE, "", NULL, NULL, NULL },
929
930 { GROUP_PRIVATE, NETPROP LINK, KEY_PREFIX NETENT LINKISSUES " Entity Keys", NULL, NULL },
931
932 { SC_10_9_IPHONE_7_0_PRIVATE, NETPROP LINKISSUES, MODULEID, NULL, CFDATA },
933 { SC_10_9_IPHONE_7_0_PRIVATE, NETPROP LINKISSUES, INFO, NULL, CFDATA },
934 { SC_10_9_IPHONE_7_0_PRIVATE, NETPROP LINKISSUES, TIMESTAMP, NULL, CFDATE },
935 { COMMENT_PRIVATE, "", NULL, NULL, NULL },
936
937 { GROUP_PRIVATE, NETPROP LINK, KEY_PREFIX NETENT LINKQUALITY " Entity Keys", NULL, NULL },
938
939 { SC_10_7_IPHONE_5_0_PRIVATE, NETPROP, LINKQUALITY, NULL, CFNUMBER},
940 { COMMENT_PRIVATE, "", NULL, NULL, NULL },
941
942 { GROUP, NETPROP MODEM, KEY_PREFIX NETENT MODEM " (Hardware) Entity Keys", NULL, NULL },
943
944 { SC_10_5, NETPROP MODEM, ACCESSPOINTNAME, NULL, CFSTRING },
945 { SC_10_5, NETPROP MODEM, CONNECTION PERSONALITY, NULL, CFSTRING },
946 { SC_10_1, NETPROP MODEM, CONNECTION SCRIPT, NULL, CFSTRING },
947 { SC_10_2, NETPROP MODEM, CONNECTSPEED, NULL, CFNUMBER },
948 { SC_10_1, NETPROP MODEM, DATACOMPRESSION, NULL, CFNUMBER_BOOL },
949 { SC_10_5, NETPROP MODEM, DEVICE CONTEXTID, NULL, CFSTRING },
950 { SC_10_5, NETPROP MODEM, DEVICE MODEL, NULL, CFSTRING },
951 { SC_10_5, NETPROP MODEM, DEVICE VENDOR, NULL, CFSTRING },
952 { SC_10_1, NETPROP MODEM, DIALMODE, NULL, CFSTRING },
953 { SC_10_1, NETPROP MODEM, ERRORCORRECTION, NULL, CFNUMBER_BOOL },
954 { SC_10_2, NETPROP MODEM, HOLD CALLWAITINGAUDIBLEALERT, NULL, CFNUMBER_BOOL },
955 { SC_10_2, NETPROP MODEM, HOLD DISCONNECTONANSWER, NULL, CFNUMBER_BOOL },
956 { SC_10_2, NETPROP MODEM, HOLD ENABLED, NULL, CFNUMBER_BOOL },
957 { SC_10_2, NETPROP MODEM, HOLD REMINDER, NULL, CFNUMBER_BOOL },
958 { SC_10_2, NETPROP MODEM, HOLD REMINDERTIME, NULL, CFNUMBER },
959 { SC_10_2, NETPROP MODEM, NOTE, NULL, CFSTRING },
960 { SC_10_1, NETPROP MODEM, PULSEDIAL, NULL, CFNUMBER_BOOL },
961 { SC_10_1, NETPROP MODEM, SPEAKER, NULL, CFNUMBER_BOOL },
962 { SC_10_1, NETPROP MODEM, SPEED, NULL, CFNUMBER },
963 { COMMENT, "", NULL, NULL, NULL },
964 { COMMENT, "--- " KEY_PREFIX NETPROP MODEM DIALMODE " values ---", NULL, NULL, NULL },
965 { SC_10_1, NETVAL MODEM DIALMODE, IGNOREDIALTONE, NULL, NULL },
966 { SC_10_1, NETVAL MODEM DIALMODE, MANUAL, NULL, NULL },
967 { SC_10_1, NETVAL MODEM DIALMODE, WAITFORDIALTONE, NULL, NULL },
968 { COMMENT, "", NULL, NULL, NULL },
969
970 //{ GROUP_DEPRECATED_NO_HEADER, NETPROP NETINFO, KEY_PREFIX NETENT NETINFO " Entity Keys", NULL, NULL },
971 //
972 // { DEFINE, "#if", "!TARGET_OS_IPHONE", NULL, NULL },
973 // { DEPRECATED_NO_HEADER, NETPROP NETINFO, BINDINGMETHODS, NULL, CFSTRING },
974 // { DEPRECATED_NO_HEADER, NETPROP NETINFO, SERVER ADDRESSES, NULL, CFARRAY_CFSTRING },
975 // { DEPRECATED_NO_HEADER, NETPROP NETINFO, SERVER TAGS, NULL, CFARRAY_CFSTRING },
976 // { DEPRECATED_NO_HEADER, NETPROP NETINFO, BROADCAST SERVER TAG, NULL, CFSTRING },
977 // { COMMENT_DEPRECATED_NO_HEADER, "", NULL, NULL, NULL },
978 // { COMMENT_DEPRECATED_NO_HEADER, "--- " KEY_PREFIX NETPROP NETINFO BINDINGMETHODS " values ---", NULL, NULL, NULL },
979 // { DEPRECATED_NO_HEADER, NETVAL NETINFO BINDINGMETHODS, BROADCAST, NULL, NULL },
980 // { DEPRECATED_NO_HEADER, NETVAL NETINFO BINDINGMETHODS, DHCP, NULL, NULL },
981 // { DEPRECATED_NO_HEADER, NETVAL NETINFO BINDINGMETHODS, MANUAL, NULL, NULL },
982 // { COMMENT_DEPRECATED_NO_HEADER, "", NULL, NULL, NULL },
983 // { COMMENT_DEPRECATED_NO_HEADER, "--- " KEY_PREFIX NETPROP NETINFO BROADCAST SERVER TAG " default value ---", NULL, NULL, NULL },
984 // { DEPRECATED_NO_HEADER, NETVAL NETINFO, DEFAULT SERVER TAG, "network", NULL },
985 // { DEFINE, "#endif", "// !TARGET_OS_IPHONE", NULL, NULL },
986 // { COMMENT_DEPRECATED_NO_HEADER, "", NULL, NULL, NULL },
987
988 { GROUP, NETPROP PPP, KEY_PREFIX NETENT PPP " Entity Keys", NULL, NULL },
989
990 { SC_10_3, NETPROP PPP, ACSP ENABLED, NULL, CFNUMBER_BOOL },
991 { SC_10_2, NETPROP PPP, CONNECTTIME, NULL, CFNUMBER },
992 { SC_10_2, NETPROP PPP, DEVICE LAST CAUSE, NULL, CFNUMBER },
993 { SC_10_1, NETPROP PPP, DIALONDEMAND, NULL, CFNUMBER_BOOL },
994 { SC_10_4, NETPROP PPP, DISCONNECTONFASTUSERSWITCH, NULL, CFNUMBER_BOOL },
995 { SC_10_1, NETPROP PPP, DISCONNECTONIDLE, NULL, CFNUMBER_BOOL },
996 { SC_10_1, NETPROP PPP, DISCONNECTONIDLETIMER, NULL, CFNUMBER },
997 { SC_10_1, NETPROP PPP, DISCONNECTONLOGOUT, NULL, CFNUMBER_BOOL },
998 { SC_10_2, NETPROP PPP, DISCONNECTONSLEEP, NULL, CFNUMBER_BOOL },
999 { SC_10_9_IPHONE_7_0_PRIVATE, NETPROP PPP, DISCONNECTONWAKE, NULL, CFNUMBER_BOOL },
1000 { SC_10_9_IPHONE_7_0_PRIVATE, NETPROP PPP, DISCONNECTONWAKETIMER, NULL, CFNUMBER },
1001 { SC_10_3, NETPROP PPP, DISCONNECTTIME, NULL, CFNUMBER },
1002 { SC_10_1, NETPROP PPP, IDLE REMINDER, NULL, CFNUMBER_BOOL },
1003 { SC_10_1, NETPROP PPP, IDLE REMINDER TIMER, NULL, CFNUMBER },
1004 { SC_10_2, NETPROP PPP, LAST CAUSE, NULL, CFNUMBER },
1005 { SC_10_1, NETPROP PPP, LOGFILE, NULL, CFSTRING },
1006 { SC_10_2_10_15, NETPROP PPP, PLUGINS, NULL, CFARRAY_CFSTRING },
1007 { SC_10_3, NETPROP PPP, RETRYCONNECTTIME, NULL, CFNUMBER },
1008 { SC_10_1, NETPROP PPP, SESSIONTIMER, NULL, CFNUMBER },
1009 { SC_10_2, NETPROP PPP, STATUS, NULL, CFNUMBER },
1010 { SC_10_2, NETPROP PPP, USE SESSIONTIMER, NULL, CFNUMBER_BOOL },
1011 { SC_10_1, NETPROP PPP, VERBOSELOGGING, NULL, CFNUMBER_BOOL },
1012 { COMMENT, "", NULL, NULL, NULL },
1013
1014 { COMMENT, "--- " AUTH ": ---", NULL, NULL, NULL },
1015 { SC_10_3_10_15, NETPROP PPP, AUTH EAP PLUGINS, NULL, CFARRAY_CFSTRING },
1016 { SC_10_1, NETPROP PPP, AUTH NAME, NULL, CFSTRING },
1017 { SC_10_1, NETPROP PPP, AUTH PASSWORD, NULL, CFSTRING },
1018 { SC_10_1, NETPROP PPP, AUTH PASSWORD ENCRYPTION, NULL, CFSTRING },
1019 { SC_10_3, NETPROP PPP, AUTH PROMPT, NULL, CFSTRING },
1020 { SC_10_1, NETPROP PPP, AUTH PROTOCOL, NULL, CFARRAY_CFSTRING },
1021 { COMMENT, "", NULL, NULL, NULL },
1022 { COMMENT, "--- " KEY_PREFIX NETPROP PPP AUTH PASSWORD ENCRYPTION " values ---", NULL, NULL, NULL },
1023 { SC_10_3, NETVAL PPP AUTH PASSWORD ENCRYPTION, KEYCHAIN, NULL, NULL },
1024 { SC_10_5, NETVAL PPP AUTH PASSWORD ENCRYPTION, TOKEN, NULL, NULL },
1025 { COMMENT, "", NULL, NULL, NULL },
1026 { COMMENT, "--- " KEY_PREFIX NETPROP PPP AUTH PROMPT " values ---", NULL, NULL, NULL },
1027 { SC_10_3, NETVAL PPP AUTH PROMPT, BEFORE, NULL, CFSTRING },
1028 { SC_10_3, NETVAL PPP AUTH PROMPT, AFTER, NULL, CFSTRING },
1029 { COMMENT, "", NULL, NULL, NULL },
1030 { COMMENT, "--- " KEY_PREFIX NETPROP PPP AUTH PROTOCOL " values ---", NULL, NULL, NULL },
1031 { SC_10_1, NETVAL PPP AUTH PROTOCOL, CHAP, NULL, CFSTRING },
1032 { SC_10_3, NETVAL PPP AUTH PROTOCOL, EAP, NULL, CFSTRING },
1033 { SC_10_3, NETVAL PPP AUTH PROTOCOL, MSCHAP1, NULL, CFSTRING },
1034 { SC_10_3, NETVAL PPP AUTH PROTOCOL, MSCHAP2, NULL, CFSTRING },
1035 { SC_10_1, NETVAL PPP AUTH PROTOCOL, PAP, NULL, CFSTRING },
1036 { COMMENT, "", NULL, NULL, NULL },
1037
1038 { COMMENT, "--- " COMM ": ---", NULL, NULL, NULL },
1039 { SC_10_1, NETPROP PPP, COMM ALTERNATE REMOTEADDRESS, NULL, CFSTRING },
1040 { SC_10_1, NETPROP PPP, COMM CONNECTDELAY, NULL, CFNUMBER },
1041 { SC_10_1, NETPROP PPP, COMM DISPLAYTERMINALWINDOW, NULL, CFNUMBER_BOOL },
1042 { SC_10_1, NETPROP PPP, COMM REDIALCOUNT, NULL, CFNUMBER },
1043 { SC_10_1, NETPROP PPP, COMM REDIAL ENABLED, NULL, CFNUMBER_BOOL },
1044 { SC_10_1, NETPROP PPP, COMM REDIALINTERVAL, NULL, CFNUMBER },
1045 { SC_10_1, NETPROP PPP, COMM REMOTEADDRESS, NULL, CFSTRING },
1046 { SC_10_1, NETPROP PPP, COMM TERMINALSCRIPT, NULL, CFSTRING },
1047 { SC_10_2, NETPROP PPP, COMM USE TERMINALSCRIPT, NULL, CFNUMBER_BOOL },
1048 { COMMENT, "", NULL, NULL, NULL },
1049
1050 { COMMENT, "--- " CCP ": ---", NULL, NULL, NULL },
1051 { SC_10_2, NETPROP PPP, CCP ENABLED, NULL, CFNUMBER_BOOL },
1052 { SC_10_4, NETPROP PPP, CCP MPPE40 ENABLED, NULL, CFNUMBER_BOOL },
1053 { SC_10_4, NETPROP PPP, CCP MPPE128 ENABLED, NULL, CFNUMBER_BOOL },
1054 { COMMENT, "", NULL, NULL, NULL },
1055
1056 { COMMENT, "--- " IPCP ": ---", NULL, NULL, NULL },
1057 { SC_10_1, NETPROP PPP, IPCP COMPRESSIONVJ, NULL, CFNUMBER_BOOL },
1058 { SC_10_4, NETPROP PPP, IPCP USE PEER DNS, NULL, CFNUMBER_BOOL },
1059 { COMMENT, "", NULL, NULL, NULL },
1060
1061 { COMMENT, "--- " LCP ": ---", NULL, NULL, NULL },
1062 { SC_10_1, NETPROP PPP, LCP ECHO ENABLED, NULL, CFNUMBER_BOOL },
1063 { SC_10_1, NETPROP PPP, LCP ECHOFAILURE, NULL, CFNUMBER },
1064 { SC_10_1, NETPROP PPP, LCP ECHOINTERVAL, NULL, CFNUMBER },
1065 { SC_10_1, NETPROP PPP, LCP COMPRESSIONACFIELD, NULL, CFNUMBER_BOOL },
1066 { SC_10_1, NETPROP PPP, LCP COMPRESSIONPFIELD, NULL, CFNUMBER_BOOL },
1067 { SC_10_1, NETPROP PPP, LCP MRU, NULL, CFNUMBER },
1068 { SC_10_1, NETPROP PPP, LCP MTU, NULL, CFNUMBER },
1069 { SC_10_1, NETPROP PPP, LCP RECEIVEACCM, NULL, CFNUMBER },
1070 { SC_10_1, NETPROP PPP, LCP TRANSMITACCM, NULL, CFNUMBER },
1071 { COMMENT, "", NULL, NULL, NULL },
1072
1073 { GROUP_PRIVATE, NETPROP PPP, KEY_PREFIX NETENT PPP " Entity Keys", NULL, NULL },
1074
1075 { COMMENT_PRIVATE, "--- " ONDEMAND ": ---", NULL, NULL, NULL },
1076 { SC_10_5_PRIVATE, NETPROP PPP, ONDEMAND DOMAINS, NULL, CFARRAY_CFSTRING },
1077 { SC_10_5_PRIVATE, NETPROP PPP, ONDEMAND ENABLED, NULL, CFNUMBER_BOOL },
1078 { SC_10_5_PRIVATE, NETPROP PPP, ONDEMAND HOSTNAME, NULL, CFSTRING }, // DEPRECATED, use kSCNetworkConnectionSelectionOptionOnDemandHostName
1079 { SC_10_7_IPHONE_5_0_PRIVATE, NETPROP PPP, ONDEMAND MATCH DOMAINS ALWAYS, NULL, CFARRAY_CFSTRING },
1080 { SC_10_7_IPHONE_5_0_PRIVATE, NETPROP PPP, ONDEMAND MATCH DOMAINS ONRETRY, NULL, CFARRAY_CFSTRING },
1081 { SC_10_7_IPHONE_5_0_PRIVATE, NETPROP PPP, ONDEMAND MATCH DOMAINS NEVER, NULL, CFARRAY_CFSTRING },
1082 { SC_10_5_PRIVATE, NETPROP PPP, ONDEMAND MODE, NULL, CFSTRING },
1083 { SC_10_5_PRIVATE, NETPROP PPP, ONDEMAND PRIORITY, NULL, CFSTRING },
1084 { COMMENT_PRIVATE, "", NULL, NULL, NULL },
1085 { COMMENT_PRIVATE, "--- " KEY_PREFIX NETPROP PPP ONDEMAND MODE " values ---", NULL, NULL, NULL },
1086 { SC_10_5_PRIVATE, NETVAL PPP ONDEMAND MODE, AGGRESSIVE, NULL, NULL },
1087 { SC_10_5_PRIVATE, NETVAL PPP ONDEMAND MODE, CONSERVATIVE, NULL, NULL },
1088 { SC_10_5_PRIVATE, NETVAL PPP ONDEMAND MODE, COMPATIBLE, NULL, NULL },
1089 { COMMENT_PRIVATE, "", NULL, NULL, NULL },
1090 { COMMENT_PRIVATE, "--- " KEY_PREFIX NETPROP PPP ONDEMAND PRIORITY " values ---", NULL, NULL, NULL },
1091 { SC_10_5_PRIVATE, NETVAL PPP ONDEMAND PRIORITY, DEFAULT, NULL, NULL },
1092 { SC_10_5_PRIVATE, NETVAL PPP ONDEMAND PRIORITY, HIGH, NULL, NULL },
1093 { SC_10_5_PRIVATE, NETVAL PPP ONDEMAND PRIORITY, LOW, NULL, NULL },
1094 { COMMENT_PRIVATE, "", NULL, NULL, NULL },
1095
1096 { GROUP, NETPROP PPPOE, KEY_PREFIX NETENT PPPOE " Entity Keys", NULL, NULL },
1097
1098 { COMMENT, "* RESERVED FOR FUTURE USE *", NULL, NULL, NULL },
1099 { COMMENT, "", NULL, NULL, NULL },
1100
1101 { GROUP, NETPROP PPPSERIAL, KEY_PREFIX NETENT PPPSERIAL " Entity Keys", NULL, NULL },
1102
1103 { COMMENT, "* RESERVED FOR FUTURE USE *", NULL, NULL, NULL },
1104 { COMMENT, "", NULL, NULL, NULL },
1105
1106 { GROUP, NETPROP L2TP, KEY_PREFIX NETENT L2TP " Entity Keys", NULL, NULL },
1107
1108 { SC_10_3, NETPROP L2TP, IPSEC SHAREDSECRET, NULL, CFSTRING },
1109 { SC_10_3, NETPROP L2TP, IPSEC SHAREDSECRET ENCRYPTION, NULL, CFSTRING },
1110 { SC_10_3, NETPROP L2TP, TRANSPORT, NULL, CFSTRING },
1111 { COMMENT, "", NULL, NULL, NULL },
1112 { COMMENT, "--- " KEY_PREFIX NETPROP L2TP IPSEC SHAREDSECRET ENCRYPTION " values ---", NULL, NULL, NULL },
1113 { SC_10_3, NETVAL L2TP IPSEC SHAREDSECRET ENCRYPTION, KEYCHAIN, NULL, NULL },
1114 { COMMENT, "", NULL, NULL, NULL },
1115 { COMMENT, "--- " KEY_PREFIX NETPROP L2TP TRANSPORT " values ---", NULL, NULL, NULL },
1116 { SC_10_3, NETVAL L2TP TRANSPORT, IP, NULL, NULL },
1117 { SC_10_3, NETVAL L2TP TRANSPORT, IPSEC, NULL, NULL },
1118 { COMMENT, "", NULL, NULL, NULL },
1119
1120 { GROUP_PRIVATE, NETPROP LINK, KEY_PREFIX NETENT NAT64 " Entity Keys", NULL, NULL },
1121
1122 { SC_10_14_IPHONE_12_0_PRIVATE, NETPROP NAT64, PREFIXLIST, NULL, CFARRAY_CFSTRING },
1123 { SC_10_14_IPHONE_12_0_PRIVATE, NETPROP NAT64, PLAT DISCOVERY STARTTIME, NULL, CFDATE },
1124 { SC_10_14_IPHONE_12_0_PRIVATE, NETPROP NAT64, PLAT DISCOVERY COMPLETIONTIME, NULL, CFDATE },
1125 { COMMENT_PRIVATE, "", NULL, NULL, NULL },
1126
1127 { GROUP, NETPROP PROXIES, KEY_PREFIX NETENT PROXIES " Entity Keys", NULL, NULL },
1128
1129 { SC_10_1, NETPROP PROXIES, EXCEPTIONSLIST, NULL, CFARRAY_CFSTRING },
1130 { SC_10_4, NETPROP PROXIES, EXCLUDESIMPLEHOSTNAMES, NULL, CFNUMBER_BOOL },
1131 { SC_10_1, NETPROP PROXIES, FTP ENABLE, NULL, CFNUMBER_BOOL },
1132 { SC_10_1, NETPROP PROXIES, FTP PASSIVE, NULL, CFNUMBER_BOOL },
1133 { SC_10_1, NETPROP PROXIES, FTP PORT, NULL, CFNUMBER },
1134 { SC_10_1, NETPROP PROXIES, FTP PROXY, NULL, CFSTRING },
1135 { SC_10_1, NETPROP PROXIES, GOPHER ENABLE, NULL, CFNUMBER_BOOL },
1136 { SC_10_1, NETPROP PROXIES, GOPHER PORT, NULL, CFNUMBER },
1137 { SC_10_1, NETPROP PROXIES, GOPHER PROXY, NULL, CFSTRING },
1138 { SC_10_1, NETPROP PROXIES, HTTP ENABLE, NULL, CFNUMBER_BOOL },
1139 { SC_10_1, NETPROP PROXIES, HTTP PORT, NULL, CFNUMBER },
1140 { SC_10_1, NETPROP PROXIES, HTTP PROXY, NULL, CFSTRING },
1141 { SC_10_1, NETPROP PROXIES, HTTPS ENABLE, NULL, CFNUMBER_BOOL },
1142 { SC_10_1, NETPROP PROXIES, HTTPS PORT, NULL, CFNUMBER },
1143 { SC_10_1, NETPROP PROXIES, HTTPS PROXY, NULL, CFSTRING },
1144 { SC_10_1, NETPROP PROXIES, RTSP ENABLE, NULL, CFNUMBER_BOOL },
1145 { SC_10_1, NETPROP PROXIES, RTSP PORT, NULL, CFNUMBER },
1146 { SC_10_1, NETPROP PROXIES, RTSP PROXY, NULL, CFSTRING },
1147 { SC_10_1, NETPROP PROXIES, SOCKS ENABLE, NULL, CFNUMBER_BOOL },
1148 { SC_10_1, NETPROP PROXIES, SOCKS PORT, NULL, CFNUMBER },
1149 { SC_10_1, NETPROP PROXIES, SOCKS PROXY, NULL, CFSTRING },
1150 { SC_10_4, NETPROP PROXIES, PROXY AUTOCONFIG ENABLE, NULL, CFNUMBER_BOOL },
1151 { SC_10_7_IPHONE_4_0, NETPROP PROXIES, PROXY AUTOCONFIG JAVASCRIPT, NULL, CFSTRING },
1152 { SC_10_4, NETPROP PROXIES, PROXY AUTOCONFIG URLSTRING, NULL, CFSTRING },
1153 { SC_10_4, NETPROP PROXIES, PROXY AUTODISCOVERY ENABLE, NULL, CFNUMBER_BOOL },
1154 { COMMENT, "", NULL, NULL, NULL },
1155
1156 { GROUP_PRIVATE, NETPROP PROXIES, KEY_PREFIX NETENT PROXIES " Entity Keys", NULL, NULL },
1157
1158 { SC_11_0_IPHONE_14_0_PRIVATE, NETPROP PROXIES, TRANSPORTCONVERTER ENABLE, NULL, CFNUMBER_BOOL },
1159 { SC_11_0_IPHONE_14_0_PRIVATE, NETPROP PROXIES, TRANSPORTCONVERTER PORT, NULL, CFNUMBER },
1160 { SC_11_0_IPHONE_14_0_PRIVATE, NETPROP PROXIES, TRANSPORTCONVERTER PROXY, NULL, CFARRAY_CFSTRING },
1161 { SC_11_0_IPHONE_14_0_PRIVATE, NETPROP PROXIES, TRANSPORTCONVERTER FALLBACK ALLOWED, NULL, CFNUMBER_BOOL },
1162 { SC_11_0_IPHONE_14_0_PRIVATE, NETPROP PROXIES, TRANSPORTCONVERTER MULTIPATH SERVICE TYPE, NULL, CFNUMBER },
1163 { SC_11_0_IPHONE_14_0_PRIVATE, NETPROP PROXIES, TRANSPORTCONVERTER TFO MODE, NULL, CFNUMBER },
1164 { COMMENT_PRIVATE, "", NULL, NULL, NULL },
1165 { SC_10_9_IPHONE_7_0_PRIVATE, NETPROP PROXIES, BYPASS ALLOWED, NULL, CFNUMBER_BOOL },
1166 { SC_10_9_IPHONE_6_0_PRIVATE, NETPROP PROXIES, FALLBACK ALLOWED, NULL, CFNUMBER_BOOL },
1167 { SC_10_7_IPHONE_5_0_PRIVATE, NETPROP PROXIES, SUPPLEMENTAL MATCH DOMAINS, NULL, CFARRAY_CFSTRING},
1168 { SC_10_7_IPHONE_5_0_PRIVATE, NETPROP PROXIES, SUPPLEMENTAL MATCH ORDERS, NULL, CFARRAY_CFNUMBER},
1169 { SC_10_11_IPHONE_9_0_PRIVATE, NETPROP PROXIES, SERVICE SPECIFIC, NULL, CFNUMBER_BOOL },
1170 { COMMENT_PRIVATE, "", NULL, NULL, NULL },
1171 { SC_10_7_IPHONE_5_0_PRIVATE, NETPROP PROXIES, SCOPED, "__SCOPED__", CFDICTIONARY},
1172 { SC_10_9_IPHONE_7_0_PRIVATE, NETPROP PROXIES, SERVICES, "__SERVICES__", CFDICTIONARY},
1173 { SC_10_7_IPHONE_5_0_PRIVATE, NETPROP PROXIES, SUPPLEMENTAL, "__SUPPLEMENTAL__", CFARRAY_CFDICTIONARY},
1174 { SC_10_7_IPHONE_5_0_PRIVATE, NETPROP PROXIES, SUPPLEMENTAL MATCH DOMAIN, "__MATCH_DOMAIN__", CFSTRING},
1175 { COMMENT_PRIVATE, "", NULL, NULL, NULL },
1176
1177 { GROUP_PRIVATE, NETPROP LINK, KEY_PREFIX NETENT QOSMARKING POLICY " Entity Keys", NULL, NULL },
1178
1179 { SC_10_13_IPHONE_10_0_PRIVATE, NETPROP QOSMARKING, APPLE AUDIOVIDEOCALLS,
1180 QOSMARKING APPLE AUDIOVIDEOCALLS,
1181 CFBOOLEAN},
1182 { SC_10_13_IPHONE_10_0_PRIVATE, NETPROP QOSMARKING, ENABLED,
1183 QOSMARKING ENABLED,
1184 CFBOOLEAN},
1185 { SC_10_13_IPHONE_10_0_PRIVATE, NETPROP QOSMARKING, WHITELISTED APP IDENTIFIERS,
1186 QOSMARKING WHITELISTED APP IDENTIFIERS,
1187 CFARRAY_CFSTRING},
1188 { COMMENT_PRIVATE, "", NULL, NULL, NULL },
1189
1190 { GROUP_PRIVATE, NETPROP SERVICE, KEY_PREFIX NETENT SERVICE " Entity Keys", NULL, NULL },
1191
1192 { SC_10_6_IPHONE_2_0_PRIVATE, NETPROP SERVICE, PRIMARYRANK, NULL, CFSTRING },
1193 { SC_10_12_IPHONE_10_0_PRIVATE, NETPROP SERVICE, SERVICEINDEX, NULL, CFNUMBER },
1194 { SC_10_6_IPHONE_2_0_PRIVATE, NETPROP SERVICE, USERDEFINEDNAME, NULL, CFSTRING },
1195 { COMMENT_PRIVATE, "", NULL, NULL, NULL },
1196 { COMMENT_PRIVATE, "--- " KEY_PREFIX NETPROP SERVICE PRIMARYRANK " values ---", NULL, NULL, NULL },
1197 { SC_10_6_IPHONE_2_0_PRIVATE, NETVAL SERVICE PRIMARYRANK, FIRST, NULL },
1198 { SC_10_6_IPHONE_2_0_PRIVATE, NETVAL SERVICE PRIMARYRANK, LAST, NULL },
1199 { SC_10_6_IPHONE_2_0_PRIVATE, NETVAL SERVICE PRIMARYRANK, NEVER, NULL },
1200 { SC_10_10_IPHONE_8_0_PRIVATE, NETVAL SERVICE PRIMARYRANK, SCOPED, NULL },
1201 { COMMENT_PRIVATE, "", NULL, NULL, NULL },
1202
1203 { GROUP, NETPROP SMB, KEY_PREFIX NETENT SMB " Entity Keys", NULL, NULL },
1204
1205 { DEFINE, "#if", "!TARGET_OS_IPHONE", NULL, NULL },
1206 { SC_10_5_IPHONE_NA, NETPROP SMB, NETBIOS NAME, NULL, CFSTRING },
1207 { SC_10_5_IPHONE_NA, NETPROP SMB, NETBIOS NODE TYPE, NULL, CFSTRING },
1208 { SC_10_5_10_7_IPHONE_NA, NETPROP SMB, NETBIOS SCOPE, NULL, CFSTRING },
1209 { SC_10_5_IPHONE_NA, NETPROP SMB, WINS ADDRESSES, NULL, CFARRAY_CFSTRING },
1210 { SC_10_5_IPHONE_NA, NETPROP SMB, WORKGROUP, NULL, CFSTRING },
1211 { COMMENT, "", NULL, NULL, NULL },
1212 { COMMENT, "--- " KEY_PREFIX NETPROP SMB NETBIOS NODE TYPE " values ---", NULL, NULL, NULL },
1213 { SC_10_5_IPHONE_NA, NETVAL SMB NETBIOS NODE TYPE, BROADCAST, NULL },
1214 { SC_10_5_IPHONE_NA, NETVAL SMB NETBIOS NODE TYPE, PEER, NULL },
1215 { SC_10_5_IPHONE_NA, NETVAL SMB NETBIOS NODE TYPE, MIXED, NULL },
1216 { SC_10_5_IPHONE_NA, NETVAL SMB NETBIOS NODE TYPE, HYBRID, NULL },
1217 { DEFINE, "#endif", "// !TARGET_OS_IPHONE", NULL, NULL },
1218 { COMMENT, "", NULL, NULL, NULL },
1219
1220 { GROUP_PRIVATE, NETPROP VPN, KEY_PREFIX NETENT VPN " Entity Keys", NULL, NULL },
1221
1222 { SC_10_9_IPHONE_7_0_PRIVATE, NETPROP VPN, APP RULES, NULL, CFARRAY_CFDICTIONARY },
1223 { SC_10_9_IPHONE_7_0_PRIVATE, NETPROP VPN, AUTH CREDENTIAL PASSWORD, NULL, CFSTRING },
1224 { SC_10_7_IPHONE_4_0_PRIVATE, NETPROP VPN, AUTH NAME, NULL, CFSTRING },
1225 { SC_10_7_IPHONE_4_0_PRIVATE, NETPROP VPN, AUTH PASSWORD, NULL, CFSTRING },
1226 { SC_10_7_IPHONE_4_0_PRIVATE, NETPROP VPN, AUTH PASSWORD ENCRYPTION, NULL, CFSTRING },
1227 { SC_10_9_IPHONE_7_0_PRIVATE, NETPROP VPN, AUTH PASSWORD PLUGIN TYPE, NULL, CFSTRING },
1228 { SC_10_7_IPHONE_4_0_PRIVATE, NETPROP VPN, AUTHENTICATIONMETHOD, NULL, CFSTRING },
1229 { SC_10_7_IPHONE_4_0_PRIVATE, NETPROP VPN, CONNECTTIME, NULL, CFSTRING },
1230 { SC_10_7_IPHONE_4_0_PRIVATE, NETPROP VPN, DISCONNECTONFASTUSERSWITCH, NULL, CFNUMBER_BOOL },
1231 { SC_10_7_IPHONE_4_0_PRIVATE, NETPROP VPN, DISCONNECTONIDLE, NULL, CFNUMBER_BOOL },
1232 { SC_10_7_IPHONE_4_0_PRIVATE, NETPROP VPN, DISCONNECTONIDLETIMER, NULL, CFNUMBER },
1233 { SC_10_7_IPHONE_4_0_PRIVATE, NETPROP VPN, DISCONNECTONLOGOUT, NULL, CFNUMBER_BOOL },
1234 { SC_10_7_IPHONE_4_0_PRIVATE, NETPROP VPN, DISCONNECTONSLEEP, NULL, CFNUMBER_BOOL },
1235 { SC_10_9_IPHONE_7_0_PRIVATE, NETPROP VPN, DISCONNECTONWAKE, NULL, CFNUMBER_BOOL },
1236 { SC_10_9_IPHONE_7_0_PRIVATE, NETPROP VPN, DISCONNECTONWAKETIMER, NULL, CFNUMBER },
1237 { SC_10_7_IPHONE_4_0_PRIVATE, NETPROP VPN, LOCALCERTIFICATE, NULL, CFDATA },
1238 { SC_10_7_IPHONE_4_0_PRIVATE, NETPROP VPN, LOGFILE, NULL, CFSTRING },
1239 { SC_10_7_IPHONE_4_0_PRIVATE, NETPROP VPN, MTU, NULL, CFNUMBER },
1240 { SC_10_7_IPHONE_4_0_PRIVATE, NETPROP VPN, ONDEMAND ENABLED, NULL, CFNUMBER_BOOL },
1241 { SC_10_9_IPHONE_7_0_PRIVATE, NETPROP VPN, ONDEMAND MATCH APP ENABLED, NULL, CFBOOLEAN },
1242 { SC_10_7_IPHONE_4_0_PRIVATE, NETPROP VPN, ONDEMAND MATCH DOMAINS ALWAYS, NULL, CFARRAY_CFSTRING },
1243 { SC_10_7_IPHONE_4_0_PRIVATE, NETPROP VPN, ONDEMAND MATCH DOMAINS ONRETRY, NULL, CFARRAY_CFSTRING },
1244 { SC_10_7_IPHONE_4_0_PRIVATE, NETPROP VPN, ONDEMAND MATCH DOMAINS NEVER, NULL, CFARRAY_CFSTRING },
1245 { SC_10_8_IPHONE_6_0_PRIVATE, NETPROP VPN, ONDEMAND RULES, NULL, CFARRAY_CFDICTIONARY },
1246 { SC_10_9_IPHONE_7_0_PRIVATE, NETPROP VPN, ONDEMAND SUSPENDED, NULL, CFNUMBER },
1247 { SC_10_9_IPHONE_7_0_PRIVATE, NETPROP VPN, PLUGIN CAPABILITY, NULL, CFSTRING },
1248 { SC_10_7_IPHONE_4_0_PRIVATE, NETPROP VPN, REMOTEADDRESS, NULL, CFSTRING },
1249 { SC_10_7_IPHONE_4_0_PRIVATE, NETPROP VPN, STATUS, NULL, CFNUMBER },
1250 { SC_10_7_IPHONE_4_0_PRIVATE, NETPROP VPN, VERBOSELOGGING, NULL, CFNUMBER_BOOL },
1251 { COMMENT_PRIVATE, "", NULL, NULL, NULL },
1252 { COMMENT_PRIVATE, "--- " KEY_PREFIX NETPROP VPN APP RULES " [CFDictionary] keys ---", NULL, NULL, NULL },
1253 { SC_10_9_IPHONE_7_0_PRIVATE, NETVAL VPN APP RULE, ACCOUNT IDENTIFIER MATCH, NULL, CFARRAY_CFSTRING },
1254 { SC_10_9_IPHONE_7_0_PRIVATE, NETVAL VPN APP RULE, DNS DOMAIN MATCH, NULL, CFARRAY_CFSTRING },
1255 { SC_10_9_IPHONE_7_0_PRIVATE, NETVAL VPN APP RULE, EXECUTABLE MATCH, NULL, CFARRAY_CFDICTIONARY },
1256 { SC_10_9_IPHONE_7_0_PRIVATE, NETVAL VPN APP RULE, IDENTIFIER, NULL, CFSTRING },
1257 { COMMENT_PRIVATE, "", NULL, NULL, NULL },
1258 { COMMENT_PRIVATE, "--- " KEY_PREFIX NETVAL VPN APP RULE EXECUTABLE MATCH " [CFDictionary] keys ---", NULL, NULL, NULL },
1259 { SC_10_9_IPHONE_7_0_PRIVATE, NETVAL VPN APP RULE EXECUTABLE, DESIGNATED REQUIREMENT, NULL, CFSTRING },
1260 { SC_10_9_IPHONE_7_0_PRIVATE, NETVAL VPN APP RULE EXECUTABLE, SIGNING IDENTIFIER, NULL, CFSTRING },
1261 { SC_10_9_IPHONE_7_0_PRIVATE, NETVAL VPN APP RULE EXECUTABLE, UUID, NULL, CFSTRING },
1262 { COMMENT_PRIVATE, "", NULL, NULL, NULL },
1263 { COMMENT_PRIVATE, "--- " KEY_PREFIX NETPROP VPN AUTHENTICATIONMETHOD " values ---", NULL, NULL, NULL },
1264 { SC_10_7_IPHONE_4_0_PRIVATE, NETVAL VPN AUTHENTICATIONMETHOD, PASSWORD, NULL, NULL },
1265 { SC_10_7_IPHONE_4_0_PRIVATE, NETVAL VPN AUTHENTICATIONMETHOD, CERTIFICATE, NULL, NULL },
1266 { COMMENT_PRIVATE, "", NULL, NULL, NULL },
1267 { COMMENT_PRIVATE, "--- " KEY_PREFIX NETPROP VPN AUTH PASSWORD ENCRYPTION " values ---", NULL, NULL, NULL },
1268 { SC_10_9_IPHONE_7_0_PRIVATE, NETVAL VPN AUTH PASSWORD ENCRYPTION, EXTERNAL, NULL, NULL },
1269 { SC_10_7_IPHONE_4_0_PRIVATE, NETVAL VPN AUTH PASSWORD ENCRYPTION, KEYCHAIN, NULL, NULL },
1270 { SC_10_7_IPHONE_4_0_PRIVATE, NETVAL VPN AUTH PASSWORD ENCRYPTION, PROMPT, NULL, NULL },
1271 { COMMENT_PRIVATE, "", NULL, NULL, NULL },
1272 { COMMENT_PRIVATE, "--- " KEY_PREFIX NETPROP VPN ONDEMAND RULES " [CFDictionary] keys ---", NULL, NULL, NULL },
1273 { SC_10_8_IPHONE_6_0_PRIVATE, NETPROP VPN ONDEMAND RULE, ACTION, NULL, CFSTRING },
1274 { SC_10_9_IPHONE_7_0_PRIVATE, NETPROP VPN ONDEMAND RULE, ACTION PARAMETERS, NULL, CFARRAY_CFDICTIONARY },
1275 { SC_10_8_IPHONE_6_0_PRIVATE, NETPROP VPN ONDEMAND RULE, DNS DOMAIN MATCH, NULL, CFARRAY_CFSTRING },
1276 { SC_10_8_IPHONE_6_0_PRIVATE, NETPROP VPN ONDEMAND RULE, DNS SERVER ADDRESS MATCH, NULL, CFARRAY_CFSTRING },
1277 { SC_10_9_IPHONE_7_0_PRIVATE, NETPROP VPN ONDEMAND RULE, SSID MATCH, NULL, CFARRAY_CFSTRING },
1278 { SC_10_9_IPHONE_7_0_PRIVATE, NETPROP VPN ONDEMAND RULE, INTERFACE TYPE MATCH, NULL, CFSTRING },
1279 { SC_10_8_IPHONE_6_0_PRIVATE, NETPROP VPN ONDEMAND RULE, URLSTRING PROBE, NULL, CFSTRING },
1280 { COMMENT_PRIVATE, "", NULL, NULL, NULL },
1281 { COMMENT_PRIVATE, "--- " KEY_PREFIX NETPROP VPN ONDEMAND RULE ACTION " values ---", NULL, NULL, NULL },
1282 { SC_10_8_IPHONE_6_0_PRIVATE, NETVAL VPN ONDEMAND RULE ACTION, ALLOW, NULL, NULL },
1283 { SC_10_8_IPHONE_6_0_PRIVATE, NETVAL VPN ONDEMAND RULE ACTION, IGNORE, NULL, NULL },
1284 { SC_10_8_IPHONE_6_0_PRIVATE, NETVAL VPN ONDEMAND RULE ACTION, CONNECT, NULL, NULL },
1285 { SC_10_8_IPHONE_6_0_PRIVATE, NETVAL VPN ONDEMAND RULE ACTION, DISCONNECT, NULL, NULL },
1286 { SC_10_9_IPHONE_7_0_PRIVATE, NETVAL VPN ONDEMAND RULE ACTION, EVALUATE CONNECTION, NULL, NULL },
1287 { COMMENT_PRIVATE, "", NULL, NULL, NULL },
1288 { COMMENT_PRIVATE, "--- " KEY_PREFIX NETPROP VPN ONDEMAND RULE ACTION PARAMETERS " [CFDictionary] keys ---", NULL, NULL, NULL },
1289 { SC_10_9_IPHONE_7_0_PRIVATE, NETPROP VPN ONDEMAND RULE ACTION PARAMETERS, DOMAIN ACTION, NULL, CFSTRING },
1290 { SC_10_9_IPHONE_7_0_PRIVATE, NETPROP VPN ONDEMAND RULE ACTION PARAMETERS, DOMAINS, NULL, CFARRAY_CFSTRING },
1291 { SC_10_9_IPHONE_7_0_PRIVATE, NETPROP VPN ONDEMAND RULE ACTION PARAMETERS, REQUIRED DNS SERVERS, NULL, CFARRAY_CFSTRING },
1292 { SC_10_9_IPHONE_7_0_PRIVATE, NETPROP VPN ONDEMAND RULE ACTION PARAMETERS, REQUIRED URLSTRING PROBE, NULL, CFSTRING },
1293 { COMMENT_PRIVATE, "", NULL, NULL, NULL },
1294 { COMMENT_PRIVATE, "--- " KEY_PREFIX NETPROP VPN ONDEMAND RULE ACTION PARAMETERS DOMAIN ACTION " values ---", NULL, NULL, NULL },
1295 { SC_10_9_IPHONE_7_0_PRIVATE, NETVAL VPN ONDEMAND RULE ACTION PARAMETERS DOMAIN ACTION, CONNECT IFNEEDED, NULL, NULL },
1296 { SC_10_9_IPHONE_7_0_PRIVATE, NETVAL VPN ONDEMAND RULE ACTION PARAMETERS DOMAIN ACTION, NEVER CONNECT, NULL, NULL },
1297 { COMMENT_PRIVATE, "", NULL, NULL, NULL },
1298 { COMMENT_PRIVATE, "--- " KEY_PREFIX NETPROP VPN ONDEMAND RULE INTERFACE TYPE MATCH " values ---", NULL, NULL, NULL },
1299 { SC_10_9_IPHONE_7_0_PRIVATE, NETVAL VPN ONDEMAND RULE INTERFACE TYPE MATCH, ETHERNET, NULL, NULL },
1300 { SC_10_9_IPHONE_7_0_PRIVATE, NETVAL VPN ONDEMAND RULE INTERFACE TYPE MATCH, WIFI, NULL, NULL },
1301 { COMMENT_PRIVATE, "", NULL, NULL, NULL },
1302 { COMMENT_PRIVATE, "--- " KEY_PREFIX NETPROP VPN PLUGIN CAPABILITY " values ---", NULL, NULL, NULL },
1303 { SC_10_9_IPHONE_7_0_PRIVATE, NETVAL VPN PLUGIN CAPABILITY, AUTH, NULL, NULL },
1304 { SC_10_9_IPHONE_7_0_PRIVATE, NETVAL VPN PLUGIN CAPABILITY, CONNECT, NULL, NULL },
1305 { COMMENT_PRIVATE, "", NULL, NULL, NULL },
1306
1307 { GROUP, USERSENT CONSOLEUSER, KEY_PREFIX COMP USERS " Entity Keys", NULL, NULL },
1308
1309 { DEFINE, "#if", "!TARGET_OS_IPHONE", NULL, NULL },
1310 { SC_10_1_IPHONE_NA, USERSENT, CONSOLEUSER, NULL, NULL },
1311 { DEFINE, "#endif", "// !TARGET_OS_IPHONE", NULL, NULL },
1312 { COMMENT, "", NULL, NULL, NULL },
1313
1314 { GROUP, SYSTEMPROP COMPUTERNAME, KEY_PREFIX COMP SYSTEM " Properties", NULL, NULL },
1315
1316 { SC_10_1, SYSTEMPROP, COMPUTERNAME, NULL, CFSTRING },
1317 { SC_10_1, SYSTEMPROP, COMPUTERNAME ENCODING, NULL, CFNUMBER },
1318 { COMMENT, "", NULL, NULL, NULL },
1319
1320 { GROUP_PRIVATE, SYSTEMPROP COMPUTERNAME, KEY_PREFIX COMP SYSTEM " Properties", NULL, NULL },
1321
1322 { SC_10_5_PRIVATE, SYSTEMPROP, COMPUTERNAME REGION, NULL, CFNUMBER },
1323 { SC_10_5_PRIVATE, SYSTEMPROP, HOSTNAME, NULL, CFSTRING },
1324 { COMMENT_PRIVATE, "", NULL, NULL, NULL },
1325
1326 { GROUP, DYNAMICSTORE DOMAIN, "SCDynamicStore \"domain\" prefixes", NULL, NULL },
1327
1328 { SC_10_1, DYNAMICSTORE DOMAIN, FILE, "File:", NULL },
1329 { SC_10_1, DYNAMICSTORE DOMAIN, PLUGIN, "Plugin:", NULL },
1330 { SC_10_1, DYNAMICSTORE DOMAIN, SETUP, "Setup:", NULL },
1331 { SC_10_1, DYNAMICSTORE DOMAIN, STATE, "State:", NULL },
1332 { SC_10_1, DYNAMICSTORE DOMAIN, PREFS, "Prefs:", NULL },
1333 { COMMENT, "", NULL, NULL, NULL },
1334
1335 { GROUP, DYNAMICSTORE SETUPPROP, "Preference (\"location\") Keys", NULL, NULL },
1336
1337 { SC_10_1, DYNAMICSTORE SETUPPROP, CURRENTSET, NULL, CFSTRING },
1338 { SC_10_1, DYNAMICSTORE SETUPPROP, LAST UPDATED, NULL, NULL },
1339 { COMMENT, "", NULL, NULL, NULL },
1340
1341 { GROUP, DYNAMICSTORE NETPROP, "Common/shared Keys", NULL, NULL },
1342
1343 { SC_10_1, DYNAMICSTORE NETPROP, INTERFACES, NULL, CFARRAY_CFSTRING },
1344 { SC_10_1, DYNAMICSTORE NETPROP, PRIMARYINTERFACE, NULL, CFSTRING },
1345 { SC_10_1, DYNAMICSTORE NETPROP, PRIMARYSERVICE, NULL, CFSTRING },
1346 { SC_10_1, DYNAMICSTORE NETPROP, SERVICEIDS, NULL, CFARRAY_CFSTRING },
1347 // { COMMENT, "", NULL, NULL, NULL },
1348
1349 { GROUP_PRIVATE, VIRTUALNETWORKINTERFACES, "Virtual Network Interface Keys", NULL, NULL },
1350
1351 { SC_10_5_PRIVATE, VIRTUALPROP BOND, INTERFACES, NULL, CFARRAY_CFSTRING },
1352 { SC_10_5_PRIVATE, VIRTUALPROP BOND, MODE, NULL, CFNUMBER },
1353 { SC_10_5_PRIVATE, VIRTUALPROP BOND, OPTIONS, NULL, CFDICTIONARY },
1354 { COMMENT_PRIVATE, "", NULL, NULL, NULL },
1355 { SC_10_7_IPHONE_4_0_PRIVATE, VIRTUALPROP BRIDGE, INTERFACES, NULL, CFARRAY_CFSTRING },
1356 { SC_10_7_IPHONE_4_0_PRIVATE, VIRTUALPROP BRIDGE, OPTIONS, NULL, CFDICTIONARY },
1357 { COMMENT_PRIVATE, "", NULL, NULL, NULL },
1358 { SC_10_5_PRIVATE, VIRTUALPROP VLAN, INTERFACE, NULL, CFSTRING },
1359 { SC_10_5_PRIVATE, VIRTUALPROP VLAN, TAG, NULL, CFNUMBER },
1360 { SC_10_5_PRIVATE, VIRTUALPROP VLAN, OPTIONS, NULL, CFDICTIONARY },
1361 // { COMMENT_PRIVATE, "", NULL, NULL, NULL },
1362
1363 //{ GROUP, "DEPRECATED", "Deprecated schema definition keys", NULL, NULL },
1364
1365 { DEFINE, "#if", "!TARGET_OS_IPHONE", NULL, NULL },
1366 { SC_10_1_10_4, USERSPROP CONSOLEUSER, NAME, NULL, CFSTRING },
1367 { SC_10_1_10_4, USERSPROP CONSOLEUSER, UID, NULL, CFNUMBER },
1368 { SC_10_1_10_4, USERSPROP CONSOLEUSER, GID, NULL, CFNUMBER },
1369 { DEFINE, "#endif", "// !TARGET_OS_IPHONE", NULL, NULL },
1370 // { COMMENT, "", NULL, NULL, NULL },
1371
1372 { END, NULL, NULL, NULL, NULL },
1373 };
1374
1375 enum {
1376 gen_header_e,
1377 gen_comments_e,
1378 gen_comments_private_e,
1379 gen_headerdoc_e,
1380 gen_headerdoc_private_e,
1381 gen_cfile_e,
1382 };
1383
1384 void
1385 print_comment(schemaDefinition *def)
1386 {
1387 char kbuf[256];
1388 char vbuf[256];
1389
1390 snprintf(kbuf, sizeof(kbuf), KEY_PREFIX "%s%s",
1391 def->prefix, def->key);
1392 snprintf(vbuf, sizeof(vbuf), "\"%s\"",
1393 def->value ? def->value : def->key);
1394
1395 if (def->type)
1396 printf(" * %-50s %-30s %s\n",
1397 kbuf, vbuf, def->type);
1398 else
1399 printf(" * %-50s %s\n",
1400 kbuf, vbuf);
1401
1402 return;
1403 }
1404
1405 void
1406 print_define(schemaDefinition *def)
1407 {
1408 printf("%s\t%s\n", def->prefix, def->key);
1409 return;
1410 }
1411
1412 void
1413 print_headerdoc(schemaDefinition *def)
1414 {
1415 char kbuf[256];
1416 char vbuf[256];
1417
1418 snprintf(kbuf, sizeof(kbuf), KEY_PREFIX "%s%s",
1419 def->prefix, def->key);
1420
1421 snprintf(vbuf, sizeof(vbuf), "\"%s\"",
1422 def->value ? def->value : def->key);
1423
1424
1425 printf("\n");
1426 printf("/*!\n");
1427 printf(" @const %s\n", kbuf);
1428 if (def->type) {
1429 printf(" @discussion Value is a %s\n", def->type);
1430 }
1431 printf(" */\n");
1432 printf("extern const CFStringRef %-49s", kbuf);
1433 switch (def->control) {
1434 case SC_10_1:
1435 printf(" API_AVAILABLE(macos(10.1)) SPI_AVAILABLE(ios(2.0), tvos(9.0), watchos(1.0), bridgeos(1.0));\n");
1436 break;
1437 case SC_10_1_IPHONE_NA:
1438 printf(" API_AVAILABLE(macos(10.1)) API_UNAVAILABLE(ios, tvos, watchos, bridgeos);\n");
1439 break;
1440 case SC_10_2:
1441 printf(" API_AVAILABLE(macos(10.2)) SPI_AVAILABLE(ios(2.0), tvos(9.0), watchos(1.0), bridgeos(1.0));\n");
1442 break;
1443 case SC_10_3:
1444 printf(" API_AVAILABLE(macos(10.3)) SPI_AVAILABLE(ios(2.0), tvos(9.0), watchos(1.0), bridgeos(1.0));\n");
1445 break;
1446 case SC_10_1_10_4:
1447 printf(" API_DEPRECATED(\"No longer supported\", macos(10.1,10.4)) API_UNAVAILABLE(ios, tvos, watchos, bridgeos);\n");
1448 break;
1449 case SC_10_4:
1450 printf(" API_AVAILABLE(macos(10.4)) SPI_AVAILABLE(ios(2.0), tvos(9.0), watchos(1.0), bridgeos(1.0));\n");
1451 break;
1452 case SC_10_5:
1453 printf(" API_AVAILABLE(macos(10.5)) SPI_AVAILABLE(ios(2.0), tvos(9.0), watchos(1.0), bridgeos(1.0));\n");
1454 break;
1455 case SC_10_5_IPHONE_NA:
1456 printf(" API_AVAILABLE(macos(10.5)) API_UNAVAILABLE(ios, tvos, watchos, bridgeos);\n");
1457 break;
1458 case SC_10_5_10_7_IPHONE_NA:
1459 printf(" API_DEPRECATED(\"No longer supported\", macos(10.5,10.7)) API_UNAVAILABLE(ios, tvos, watchos, bridgeos);\n");
1460 break;
1461 case SC_10_5_PRIVATE:
1462 printf(" API_AVAILABLE(macos(10.5)) SPI_AVAILABLE(ios(2.0), tvos(9.0), watchos(1.0), bridgeos(1.0));\n");
1463 break;
1464 case SC_10_1_10_9:
1465 printf(" API_DEPRECATED(\"No longer supported\", macos(10.1,10.9)) SPI_AVAILABLE(ios(2.0), tvos(9.0), watchos(1.0), bridgeos(1.0));\n");
1466 break;
1467 case SC_10_2_10_9:
1468 printf(" API_DEPRECATED(\"No longer supported\", macos(10.2,10.9)) SPI_AVAILABLE(ios(2.0), tvos(9.0), watchos(1.0), bridgeos(1.0));\n");
1469 break;
1470 case SC_10_2_10_13:
1471 printf(" API_DEPRECATED(\"No longer supported\", macos(10.2,10.13)) SPI_AVAILABLE(ios(2.0), tvos(9.0), watchos(1.0), bridgeos(1.0));\n");
1472 break;
1473 case SC_10_2_10_15:
1474 printf(" API_DEPRECATED(\"No longer supported\", macos(10.2,10.15)) SPI_AVAILABLE(ios(2.0), tvos(9.0), watchos(1.0), bridgeos(1.0));\n");
1475 break;
1476 case SC_10_3_10_9:
1477 printf(" API_DEPRECATED(\"No longer supported\", macos(10.3,10.9)) SPI_AVAILABLE(ios(2.0), tvos(9.0), watchos(1.0), bridgeos(1.0));\n");
1478 break;
1479 case SC_10_3_10_15:
1480 printf(" API_DEPRECATED(\"No longer supported\", macos(10.3,10.15)) SPI_AVAILABLE(ios(2.0), tvos(9.0), watchos(1.0), bridgeos(1.0));\n");
1481 break;
1482 case SC_10_4_10_9:
1483 printf(" API_DEPRECATED(\"No longer supported\", macos(10.4,10.9)) SPI_AVAILABLE(ios(2.0), tvos(9.0), watchos(1.0), bridgeos(1.0));\n");
1484 break;
1485 case SC_10_2_10_12_IPHONE_2_0_10_0:
1486 printf(" "
1487 " API_DEPRECATED(\"No longer supported\", macos(10.2,10.12))"
1488 " SPI_AVAILABLE(ios(2.0), tvos(9.0), watchos(1.0), bridgeos(1.0));\n"); // Note: really want SPI_DEPRECATED
1489 break;
1490 case SC_10_3_10_12_IPHONE_2_0_10_0:
1491 printf(" "
1492 " API_DEPRECATED(\"No longer supported\", macos(10.3,10.12))"
1493 " SPI_AVAILABLE(ios(2.0), tvos(9.0), watchos(1.0), bridgeos(1.0));\n"); // Note: really want SPI_DEPRECATED
1494 break;
1495 case SC_10_6_IPHONE_2_0:
1496 case SC_10_6_IPHONE_2_0_PRIVATE:
1497 printf(" API_AVAILABLE(macos(10.6)) SPI_AVAILABLE(ios(2.0), tvos(9.0), watchos(1.0), bridgeos(1.0));\n");
1498 break;
1499 case SC_10_6_IPHONE_3_0:
1500 case SC_10_6_IPHONE_3_0_PRIVATE:
1501 printf(" API_AVAILABLE(macos(10.6)) SPI_AVAILABLE(ios(3.0), tvos(9.0), watchos(1.0), bridgeos(1.0));\n");
1502 break;
1503 case SC_10_7_IPHONE_4_0:
1504 case SC_10_7_IPHONE_4_0_PRIVATE:
1505 printf(" API_AVAILABLE(macos(10.7)) SPI_AVAILABLE(ios(4.0), tvos(9.0), watchos(1.0), bridgeos(1.0));\n");
1506 break;
1507 case SC_10_7_IPHONE_5_0_PRIVATE:
1508 printf(" API_AVAILABLE(macos(10.7)) SPI_AVAILABLE(ios(5.0), tvos(9.0), watchos(1.0), bridgeos(1.0));\n");
1509 break;
1510 case SC_10_8_IPHONE_6_0_PRIVATE:
1511 printf(" API_AVAILABLE(macos(10.8)) SPI_AVAILABLE(ios(6.0), tvos(9.0), watchos(1.0), bridgeos(1.0));\n");
1512 break;
1513 case SC_10_9_IPHONE_6_0_PRIVATE:
1514 printf(" API_AVAILABLE(macos(10.9)) SPI_AVAILABLE(ios(6.0), tvos(9.0), watchos(1.0), bridgeos(1.0));\n");
1515 break;
1516 case SC_10_9_IPHONE_7_0_PRIVATE:
1517 printf(" API_AVAILABLE(macos(10.9)) SPI_AVAILABLE(ios(7.0), tvos(9.0), watchos(1.0), bridgeos(1.0));\n");
1518 break;
1519 case SC_10_10_IPHONE_7_0_PRIVATE:
1520 printf(" API_AVAILABLE(macos(10.10)) SPI_AVAILABLE(ios(7.0), tvos(9.0), watchos(1.0), bridgeos(1.0));\n");
1521 break;
1522 case SC_10_10_IPHONE_8_0_PRIVATE:
1523 printf(" API_AVAILABLE(macos(10.10)) SPI_AVAILABLE(ios(8.0), tvos(9.0), watchos(1.0), bridgeos(1.0));\n");
1524 break;
1525 case SC_10_11_IPHONE_9_0_PRIVATE:
1526 printf(" API_AVAILABLE(macos(10.11)) SPI_AVAILABLE(ios(9.0), tvos(9.0), watchos(2.0), bridgeos(2.0));\n");
1527 break;
1528 case SC_10_12_IPHONE_10_0_PRIVATE:
1529 printf(" API_AVAILABLE(macos(10.12)) SPI_AVAILABLE(ios(10.0), tvos(10.0), watchos(3.0), bridgeos(2.0));\n");
1530 break;
1531 case SC_10_13_IPHONE_10_0_PRIVATE:
1532 printf(" API_AVAILABLE(macos(10.13)) SPI_AVAILABLE(ios(10.0), tvos(10.0), watchos(3.0), bridgeos(2.0));\n");
1533 break;
1534 case SC_10_13_IPHONE_11_0_PRIVATE:
1535 printf(" API_AVAILABLE(macos(10.13)) SPI_AVAILABLE(ios(11.0), tvos(11.0), watchos(4.0), bridgeos(2.0));\n");
1536 break;
1537 case SC_10_14_IPHONE_12_0_PRIVATE:
1538 printf(" API_AVAILABLE(macos(10.14)) SPI_AVAILABLE(ios(12.0), tvos(12.0), watchos(5.0), bridgeos(3.0));\n");
1539 break;
1540 case SC_10_15_IPHONE_13_0_PRIVATE:
1541 printf(" API_AVAILABLE(macos(10.15)) SPI_AVAILABLE(ios(13.0), tvos(13.0), watchos(6.0), bridgeos(4.0));\n");
1542 break;
1543 case SC_10_15_4_IPHONE_13_4_PRIVATE:
1544 printf(" API_AVAILABLE(macos(10.15.4)) SPI_AVAILABLE(ios(13.4), tvos(13.4), watchos(6.2), bridgeos(4.0));\n");
1545 break;
1546 case SC_11_0_IPHONE_14_0_PRIVATE:
1547 printf(" API_AVAILABLE(macos(11.0)) SPI_AVAILABLE(ios(14.0), tvos(14.0), watchos(7.0), bridgeos(5.0));\n");
1548 break;
1549 case SC_IPHONE_2_0_PRIVATE:
1550 printf(" SPI_AVAILABLE(macos(10.6), ios(2.0), tvos(9.0), watchos(1.0), bridgeos(1.0));\n");
1551 break;
1552 case SC_IPHONE_7_0_PRIVATE:
1553 printf(" SPI_AVAILABLE(macos(9.0), ios(7.0), tvos(9.0), watchos(1.0), bridgeos(1.0));\n");
1554 break;
1555 case SC_IPHONE_8_0_PRIVATE:
1556 printf(" SPI_AVAILABLE(macos(10.0), ios(8.0), tvos(9.0), watchos(1.0), bridgeos(1.0));\n");
1557 break;
1558 case SC_IPHONE_14_PRIVATE:
1559 printf(" SPI_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0), watchos(7.0), bridgeos(5.0));\n");
1560 break;
1561 default:
1562 printf("\n");
1563 break;
1564 }
1565
1566 printf("#define %s %s\n", kbuf, kbuf);
1567 return;
1568 }
1569
1570 void
1571 dump_names(int type)
1572 {
1573 int i;
1574
1575 for (i = 0; TRUE; i++) {
1576 switch (names[i].control) {
1577 case END: {
1578 goto done;
1579 }
1580
1581 case COMMENT: {
1582 switch (type) {
1583 case gen_comments_e:
1584 if (names[i].prefix) {
1585 if (strlen(names[i].prefix) > 0)
1586 printf(" * %s\n", names[i].prefix);
1587 else
1588 printf(" *\n");
1589 }
1590 break;
1591 default:
1592 break;
1593 }
1594 break;
1595 }
1596
1597 case COMMENT_PRIVATE: {
1598 switch (type) {
1599 case gen_comments_private_e:
1600 if (names[i].prefix) {
1601 if (strlen(names[i].prefix) > 0)
1602 printf(" * %s\n", names[i].prefix);
1603 else
1604 printf(" *\n");
1605 }
1606 break;
1607 default:
1608 break;
1609 }
1610 break;
1611 }
1612
1613 case COMMENT_DEPRECATED:
1614 case COMMENT_DEPRECATED_NO_HEADER: {
1615 break;
1616 }
1617
1618 case DEFINE: {
1619 switch (type) {
1620 case gen_cfile_e:
1621 if ((strcmp(names[i].prefix, "#if") == 0) ||
1622 (strcmp(names[i].prefix, "#ifdef") == 0) ||
1623 (strcmp(names[i].prefix, "#ifndef") == 0))
1624 printf("\n");
1625 print_define(&names[i]);
1626 if (strcmp(names[i].prefix, "#endif") == 0)
1627 printf("\n");
1628 break;
1629 default:
1630 break;
1631 }
1632 break;
1633 }
1634
1635 case DEFINE_PRIVATE: {
1636 switch (type) {
1637 case gen_cfile_e:
1638 if ((strcmp(names[i].prefix, "#if") == 0) ||
1639 (strcmp(names[i].prefix, "#ifdef") == 0) ||
1640 (strcmp(names[i].prefix, "#ifndef") == 0))
1641 printf("\n");
1642 print_define(&names[i]);
1643 if (strcmp(names[i].prefix, "#endif") == 0)
1644 printf("\n");
1645 break;
1646 default:
1647 break;
1648 }
1649 break;
1650 }
1651
1652 case GROUP:
1653 case GROUP_DEPRECATED: {
1654 switch (type) {
1655 case gen_comments_e:
1656 if (names[i].control == GROUP) {
1657 if (names[i].key)
1658 printf(" * %s\n *\n", names[i].key);
1659 }
1660 break;
1661 case gen_headerdoc_e:
1662 if (names[i].prefix)
1663 printf("\n/*!\n @group %s\n */\n", names[i].key);
1664 break;
1665 default:
1666 break;
1667 }
1668 break;
1669 }
1670
1671 case GROUP_DEPRECATED_NO_HEADER: {
1672 break;
1673 }
1674
1675 case GROUP_PRIVATE: {
1676 switch (type) {
1677 case gen_comments_private_e:
1678 if (names[i].key)
1679 printf(" * %s\n *\n", names[i].key);
1680 break;
1681 case gen_headerdoc_private_e:
1682 if (names[i].prefix)
1683 printf("\n/*!\n @group %s\n */\n", names[i].key);
1684 break;
1685 default:
1686 break;
1687 }
1688 break;
1689 }
1690
1691 default: {
1692 char kbuf[256];
1693 char vbuf[256];
1694
1695 switch (type) {
1696 case gen_header_e:
1697 snprintf(kbuf, sizeof(kbuf), KEY_PREFIX "%s%s",
1698 names[i].prefix, names[i].key);
1699
1700 if (names[i].value)
1701 snprintf(vbuf, sizeof(vbuf), "SCSTR(\"%s\")",
1702 names[i].value);
1703 else
1704 snprintf(vbuf, sizeof(vbuf), "SCSTR(\"%s\")",
1705 names[i].key);
1706
1707 printf("#define %-50s %s\n",
1708 kbuf, vbuf);
1709 break;
1710
1711 case gen_comments_e:
1712 switch (names[i].control) {
1713 case DEPRECATED_NO_HEADER:
1714 case SC_10_1_10_4:
1715 case SC_10_1_10_9:
1716 case SC_10_2_10_9:
1717 case SC_10_2_10_13:
1718 case SC_10_2_10_15:
1719 case SC_10_3_10_9:
1720 case SC_10_3_10_15:
1721 case SC_10_4_10_9:
1722 // don't report deprecated keys
1723 break;
1724 case SC_10_5_PRIVATE:
1725 case SC_10_6_IPHONE_2_0_PRIVATE:
1726 case SC_10_6_IPHONE_3_0_PRIVATE:
1727 case SC_10_7_IPHONE_4_0_PRIVATE:
1728 case SC_10_7_IPHONE_5_0_PRIVATE:
1729 case SC_10_8_IPHONE_6_0_PRIVATE:
1730 case SC_10_9_IPHONE_6_0_PRIVATE:
1731 case SC_10_9_IPHONE_7_0_PRIVATE:
1732 case SC_10_10_IPHONE_7_0_PRIVATE:
1733 case SC_10_10_IPHONE_8_0_PRIVATE:
1734 case SC_10_11_IPHONE_9_0_PRIVATE:
1735 case SC_10_12_IPHONE_10_0_PRIVATE:
1736 case SC_10_13_IPHONE_10_0_PRIVATE:
1737 case SC_10_13_IPHONE_11_0_PRIVATE:
1738 case SC_10_14_IPHONE_12_0_PRIVATE:
1739 case SC_10_15_IPHONE_13_0_PRIVATE:
1740 case SC_10_15_4_IPHONE_13_4_PRIVATE:
1741 case SC_11_0_IPHONE_14_0_PRIVATE:
1742 case SC_IPHONE_2_0_PRIVATE:
1743 case SC_IPHONE_7_0_PRIVATE:
1744 case SC_IPHONE_8_0_PRIVATE:
1745 case SC_IPHONE_14_PRIVATE:
1746 // don't report private definitions
1747 break;
1748 default:
1749 print_comment(&names[i]);
1750 break;
1751 }
1752 break;
1753 case gen_comments_private_e:
1754 switch (names[i].control) {
1755 case DEPRECATED_NO_HEADER:
1756 case SC_10_1_10_4:
1757 case SC_10_1_10_9:
1758 case SC_10_2_10_9:
1759 case SC_10_2_10_13:
1760 case SC_10_2_10_15:
1761 case SC_10_3_10_9:
1762 case SC_10_3_10_15:
1763 case SC_10_4_10_9:
1764 // don't report deprecated keys
1765 break;
1766 case SC_10_5_PRIVATE:
1767 case SC_10_6_IPHONE_2_0_PRIVATE:
1768 case SC_10_6_IPHONE_3_0_PRIVATE:
1769 case SC_10_7_IPHONE_4_0_PRIVATE:
1770 case SC_10_7_IPHONE_5_0_PRIVATE:
1771 case SC_10_8_IPHONE_6_0_PRIVATE:
1772 case SC_10_9_IPHONE_6_0_PRIVATE:
1773 case SC_10_9_IPHONE_7_0_PRIVATE:
1774 case SC_10_10_IPHONE_7_0_PRIVATE:
1775 case SC_10_10_IPHONE_8_0_PRIVATE:
1776 case SC_10_11_IPHONE_9_0_PRIVATE:
1777 case SC_10_12_IPHONE_10_0_PRIVATE:
1778 case SC_10_13_IPHONE_10_0_PRIVATE:
1779 case SC_10_13_IPHONE_11_0_PRIVATE:
1780 case SC_10_14_IPHONE_12_0_PRIVATE:
1781 case SC_10_15_IPHONE_13_0_PRIVATE:
1782 case SC_10_15_4_IPHONE_13_4_PRIVATE:
1783 case SC_11_0_IPHONE_14_0_PRIVATE:
1784 case SC_IPHONE_2_0_PRIVATE:
1785 case SC_IPHONE_7_0_PRIVATE:
1786 case SC_IPHONE_8_0_PRIVATE:
1787 case SC_IPHONE_14_PRIVATE:
1788 print_comment(&names[i]);
1789 break;
1790 default:
1791 // don't report public definitions
1792 break;
1793 }
1794 break;
1795
1796 case gen_headerdoc_e:
1797 switch (names[i].control) {
1798 case DEPRECATED_NO_HEADER:
1799 case SC_10_5_PRIVATE:
1800 case SC_10_6_IPHONE_2_0_PRIVATE:
1801 case SC_10_6_IPHONE_3_0_PRIVATE:
1802 case SC_10_7_IPHONE_4_0_PRIVATE:
1803 case SC_10_7_IPHONE_5_0_PRIVATE:
1804 case SC_10_8_IPHONE_6_0_PRIVATE:
1805 case SC_10_9_IPHONE_6_0_PRIVATE:
1806 case SC_10_9_IPHONE_7_0_PRIVATE:
1807 case SC_10_10_IPHONE_7_0_PRIVATE:
1808 case SC_10_10_IPHONE_8_0_PRIVATE:
1809 case SC_10_11_IPHONE_9_0_PRIVATE:
1810 case SC_10_12_IPHONE_10_0_PRIVATE:
1811 case SC_10_13_IPHONE_10_0_PRIVATE:
1812 case SC_10_13_IPHONE_11_0_PRIVATE:
1813 case SC_10_14_IPHONE_12_0_PRIVATE:
1814 case SC_10_15_IPHONE_13_0_PRIVATE:
1815 case SC_10_15_4_IPHONE_13_4_PRIVATE:
1816 case SC_11_0_IPHONE_14_0_PRIVATE:
1817 case SC_IPHONE_2_0_PRIVATE:
1818 case SC_IPHONE_7_0_PRIVATE:
1819 case SC_IPHONE_8_0_PRIVATE:
1820 case SC_IPHONE_14_PRIVATE:
1821 // don't report private definitions
1822 break;
1823 default:
1824 print_headerdoc(&names[i]);
1825 break;
1826 }
1827 break;
1828 case gen_headerdoc_private_e:
1829 switch (names[i].control) {
1830 case SC_10_5_PRIVATE:
1831 case SC_10_6_IPHONE_2_0_PRIVATE:
1832 case SC_10_6_IPHONE_3_0_PRIVATE:
1833 case SC_10_7_IPHONE_4_0_PRIVATE:
1834 case SC_10_7_IPHONE_5_0_PRIVATE:
1835 case SC_10_8_IPHONE_6_0_PRIVATE:
1836 case SC_10_9_IPHONE_6_0_PRIVATE:
1837 case SC_10_9_IPHONE_7_0_PRIVATE:
1838 case SC_10_10_IPHONE_7_0_PRIVATE:
1839 case SC_10_10_IPHONE_8_0_PRIVATE:
1840 case SC_10_11_IPHONE_9_0_PRIVATE:
1841 case SC_10_12_IPHONE_10_0_PRIVATE:
1842 case SC_10_13_IPHONE_10_0_PRIVATE:
1843 case SC_10_13_IPHONE_11_0_PRIVATE:
1844 case SC_10_14_IPHONE_12_0_PRIVATE:
1845 case SC_10_15_IPHONE_13_0_PRIVATE:
1846 case SC_10_15_4_IPHONE_13_4_PRIVATE:
1847 case SC_11_0_IPHONE_14_0_PRIVATE:
1848 case SC_IPHONE_2_0_PRIVATE:
1849 case SC_IPHONE_7_0_PRIVATE:
1850 case SC_IPHONE_8_0_PRIVATE:
1851 case SC_IPHONE_14_PRIVATE:
1852 print_headerdoc(&names[i]);
1853 break;
1854 default:
1855 // don't report public definitions
1856 break;
1857 }
1858 break;
1859 case gen_cfile_e:
1860 snprintf(kbuf, sizeof(kbuf), KEY_PREFIX "%s%s",
1861 names[i].prefix, names[i].key);
1862
1863 if (names[i].value)
1864 printf("const CFStringRef %-48s = CFSTR(\"%s\");\n",
1865 kbuf, names[i].value);
1866 else
1867 printf("const CFStringRef %-48s = CFSTR(\"%s\");\n",
1868 kbuf, names[i].key);
1869 break;
1870 default:
1871 break;
1872 }
1873 break;
1874 }
1875 }
1876 }
1877 done:
1878 return;
1879 }
1880
1881 int
1882 main(int argc, char * argv[])
1883 {
1884 char * type = "";
1885
1886 if (argc >= 2)
1887 type = argv[1];
1888
1889 if (strcmp(type, "header") == 0) {
1890 printf("%s\n", copyright_string);
1891 printf("/*\n * This file is automatically generated\n * DO NOT EDIT!\n */\n\n");
1892
1893 printf("/*\n");
1894 dump_names(gen_comments_e);
1895 printf(" */\n\n\n");
1896
1897 printf("#ifndef\t_SCSCHEMADEFINITIONS_H\n");
1898 printf("#define\t_SCSCHEMADEFINITIONS_H\n");
1899 printf("\n");
1900
1901 printf("#include <os/availability.h>\n");
1902 printf("#include <TargetConditionals.h>\n");
1903 printf("#include <CoreFoundation/CFString.h>\n");
1904 printf("\n");
1905
1906 printf("/*!\n");
1907 printf(" *\t@header SCSchemaDefinitions\n");
1908 printf(" */\n\n");
1909
1910 printf("\n");
1911 printf("CF_ASSUME_NONNULL_BEGIN\n");
1912
1913 dump_names(gen_headerdoc_e);
1914
1915 printf("\n");
1916 printf("CF_ASSUME_NONNULL_END");
1917 printf("\n\n");
1918
1919 printf("#endif\t/* _SCSCHEMADEFINITIONS_H */\n");
1920 }
1921 else if (strcmp(type, "private") == 0) {
1922 printf("%s\n", copyright_string);
1923 printf("/*\n * This file is automatically generated\n * DO NOT EDIT!\n */\n\n");
1924
1925 printf("/*\n");
1926 dump_names(gen_comments_private_e);
1927 printf(" */\n\n\n");
1928
1929 printf("#ifndef _SCSCHEMADEFINITIONSPRIVATE_H\n");
1930 printf("#define _SCSCHEMADEFINITIONSPRIVATE_H\n");
1931 printf("\n");
1932
1933 printf("#include <SystemConfiguration/SCSchemaDefinitions.h>\n\n");
1934
1935 printf("/*!\n");
1936 printf(" *\t@header SCSchemaDefinitionsPrivate\n");
1937 printf(" */\n");
1938 dump_names(gen_headerdoc_private_e);
1939 printf("\n\n");
1940
1941 printf("#endif\t/* _SCSCHEMADEFINITIONSPRIVATE_H */\n");
1942 }
1943 else if (strcmp(type, "cfile") == 0) {
1944 printf("/*\n");
1945 printf(" * This file is automatically generated\n");
1946 printf(" * DO NOT EDIT!\n");
1947 printf(" */\n");
1948 printf("\n");
1949 printf("#include <TargetConditionals.h>\n");
1950 printf("#include <CoreFoundation/CFString.h>\n");
1951 printf("\n");
1952 dump_names(gen_cfile_e);
1953 }
1954 exit(0);
1955 return (0);
1956 }
1957