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