]> git.saurik.com Git - apple/mdnsresponder.git/blobdiff - mDNSMacOSX/PreferencePane/ConfigurationAuthority.c
mDNSResponder-379.27.tar.gz
[apple/mdnsresponder.git] / mDNSMacOSX / PreferencePane / ConfigurationAuthority.c
index d5b2d1a10b5eddce920ee2e4e3325d09ba2743fa..a2ab546492a69d26c125c7cd0c99e1bab1d841e3 100644 (file)
 #include <AssertMacros.h>
 
 
-static AuthorizationRef        gAuthRef = 0;
+static AuthorizationRef gAuthRef = 0;
 
-static AuthorizationItem       gAuthorizations[] = {   { UPDATE_SC_RIGHT, 0, NULL, 0 }, 
-                                                                                                       { EDIT_SYS_KEYCHAIN_RIGHT, 0, NULL, 0 }};
-static AuthorizationRights     gAuthSet = { sizeof gAuthorizations / sizeof gAuthorizations[0], gAuthorizations };
+static AuthorizationItem gAuthorizations[] = {   { UPDATE_SC_RIGHT, 0, NULL, 0 },
+                                                 { EDIT_SYS_KEYCHAIN_RIGHT, 0, NULL, 0 }};
+static AuthorizationRights gAuthSet = { sizeof gAuthorizations / sizeof gAuthorizations[0], gAuthorizations };
 
-static CFDictionaryRef CreateRightsDict( CFStringRef prompt)
+static CFDictionaryRef  CreateRightsDict( CFStringRef prompt)
 /* Create a CFDictionary decribing an auth right. See /etc/authorization for examples. */
 /* Specifies that the right requires admin authentication, which persists for 5 minutes. */
 {
-       CFMutableDictionaryRef  dict = NULL, tmpDict;
-       CFMutableArrayRef               mechanisms;
-       CFNumberRef                             timeout;
-       int                                             val;
-       
-       tmpDict = CFDictionaryCreateMutable( (CFAllocatorRef) NULL, 0, &kCFCopyStringDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks);
-       require( tmpDict != NULL, MakeDictFailed);
-
-       CFDictionaryAddValue(tmpDict, CFSTR("class"), CFSTR("user"));
-       CFDictionaryAddValue(tmpDict, CFSTR("comment"), prompt);
-       CFDictionaryAddValue(tmpDict, CFSTR("group"), CFSTR("admin"));
-
-       mechanisms = CFArrayCreateMutable((CFAllocatorRef) NULL, 1, &kCFTypeArrayCallBacks);
-       require( mechanisms != NULL, MakeArrayFailed);
-       CFArrayAppendValue( mechanisms, CFSTR("builtin:authenticate"));
-       CFDictionaryAddValue( tmpDict, CFSTR("mechanisms"), mechanisms);
-
-       val = 300;      // seconds
-       timeout = CFNumberCreate((CFAllocatorRef) NULL, kCFNumberIntType, &val);
-       require( timeout != NULL, MakeIntFailed);
-       CFDictionaryAddValue( tmpDict, CFSTR("timeout"), timeout);
-       CFDictionaryAddValue( tmpDict, CFSTR("shared"), kCFBooleanTrue);
-
-       dict = tmpDict;
-       tmpDict = NULL;
-
-       CFRelease( timeout);
+    CFMutableDictionaryRef dict = NULL, tmpDict;
+    CFMutableArrayRef mechanisms;
+    CFNumberRef timeout;
+    int val;
+
+    tmpDict = CFDictionaryCreateMutable( (CFAllocatorRef) NULL, 0, &kCFCopyStringDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks);
+    require( tmpDict != NULL, MakeDictFailed);
+
+    CFDictionaryAddValue(tmpDict, CFSTR("class"), CFSTR("user"));
+    CFDictionaryAddValue(tmpDict, CFSTR("comment"), prompt);
+    CFDictionaryAddValue(tmpDict, CFSTR("group"), CFSTR("admin"));
+
+    mechanisms = CFArrayCreateMutable((CFAllocatorRef) NULL, 1, &kCFTypeArrayCallBacks);
+    require( mechanisms != NULL, MakeArrayFailed);
+    CFArrayAppendValue( mechanisms, CFSTR("builtin:authenticate"));
+    CFDictionaryAddValue( tmpDict, CFSTR("mechanisms"), mechanisms);
+
+    val = 300;  // seconds
+    timeout = CFNumberCreate((CFAllocatorRef) NULL, kCFNumberIntType, &val);
+    require( timeout != NULL, MakeIntFailed);
+    CFDictionaryAddValue( tmpDict, CFSTR("timeout"), timeout);
+    CFDictionaryAddValue( tmpDict, CFSTR("shared"), kCFBooleanTrue);
+
+    dict = tmpDict;
+    tmpDict = NULL;
+
+    CFRelease( timeout);
 MakeIntFailed:
-       CFRelease( mechanisms);
+    CFRelease( mechanisms);
 MakeArrayFailed:
-       if ( tmpDict)
-               CFRelease( tmpDict);
+    if ( tmpDict)
+        CFRelease( tmpDict);
 MakeDictFailed:
-       return dict;
+    return dict;
 }
 
 OSStatus InitConfigAuthority(void)
 /* Initialize the authorization record-keeping */
 {
-       OSStatus        err;
-       CFDictionaryRef dict;
-       CFStringRef             rightInfo;
-
-       err = AuthorizationCreate((AuthorizationRights*) NULL, (AuthorizationEnvironment*) NULL,
-                                                               (AuthorizationFlags) 0, &gAuthRef);
-       require_noerr( err, NewAuthFailed);
-
-       err = AuthorizationRightGet( UPDATE_SC_RIGHT, (CFDictionaryRef*) NULL);
-       if (err == errAuthorizationDenied)
-       {
-               rightInfo = CFCopyLocalizedString(CFSTR("Authentication required to set Dynamic DNS preferences."), 
-                                               CFSTR("Describes operation that requires user authorization"));
-               require_action( rightInfo != NULL, GetStrFailed, err=coreFoundationUnknownErr;);
-               dict = CreateRightsDict(rightInfo);
-               require_action( dict != NULL, GetStrFailed, err=coreFoundationUnknownErr;);
-
-               err = AuthorizationRightSet(gAuthRef, UPDATE_SC_RIGHT, dict, (CFStringRef) NULL, 
-                                                                       (CFBundleRef) NULL, (CFStringRef) NULL);
-               CFRelease(rightInfo);
-               CFRelease(dict);
-       }
-       require_noerr( err, AuthSetFailed);
-
-       err = AuthorizationRightGet( EDIT_SYS_KEYCHAIN_RIGHT, (CFDictionaryRef*) NULL);
-       if (err == errAuthorizationDenied)
-       {
-               rightInfo = CFCopyLocalizedString( CFSTR("Authentication required to edit System Keychain."), 
-                                               CFSTR("Describes operation that requires user authorization"));
-               require_action( rightInfo != NULL, GetStrFailed, err=coreFoundationUnknownErr;);
-               dict = CreateRightsDict( rightInfo);
-               require_action( dict != NULL, GetStrFailed, err=coreFoundationUnknownErr;);
-
-               err = AuthorizationRightSet(gAuthRef, EDIT_SYS_KEYCHAIN_RIGHT, dict, (CFStringRef) NULL, 
-                                                                       (CFBundleRef) NULL, (CFStringRef) NULL);
-               CFRelease( rightInfo);
-               CFRelease( dict);
-       }
-       require_noerr( err, AuthSetFailed);
+    OSStatus err;
+    CFDictionaryRef dict;
+    CFStringRef rightInfo;
+
+    err = AuthorizationCreate((AuthorizationRights*) NULL, (AuthorizationEnvironment*) NULL,
+                              (AuthorizationFlags) 0, &gAuthRef);
+    require_noerr( err, NewAuthFailed);
+
+    err = AuthorizationRightGet( UPDATE_SC_RIGHT, (CFDictionaryRef*) NULL);
+    if (err == errAuthorizationDenied)
+    {
+        rightInfo = CFCopyLocalizedString(CFSTR("Authentication required to set Dynamic DNS preferences."),
+                                          CFSTR("Describes operation that requires user authorization"));
+        require_action( rightInfo != NULL, GetStrFailed, err=coreFoundationUnknownErr;);
+        dict = CreateRightsDict(rightInfo);
+        require_action( dict != NULL, GetStrFailed, err=coreFoundationUnknownErr;);
+
+        err = AuthorizationRightSet(gAuthRef, UPDATE_SC_RIGHT, dict, (CFStringRef) NULL,
+                                    (CFBundleRef) NULL, (CFStringRef) NULL);
+        CFRelease(rightInfo);
+        CFRelease(dict);
+    }
+    require_noerr( err, AuthSetFailed);
+
+    err = AuthorizationRightGet( EDIT_SYS_KEYCHAIN_RIGHT, (CFDictionaryRef*) NULL);
+    if (err == errAuthorizationDenied)
+    {
+        rightInfo = CFCopyLocalizedString( CFSTR("Authentication required to edit System Keychain."),
+                                           CFSTR("Describes operation that requires user authorization"));
+        require_action( rightInfo != NULL, GetStrFailed, err=coreFoundationUnknownErr;);
+        dict = CreateRightsDict( rightInfo);
+        require_action( dict != NULL, GetStrFailed, err=coreFoundationUnknownErr;);
+
+        err = AuthorizationRightSet(gAuthRef, EDIT_SYS_KEYCHAIN_RIGHT, dict, (CFStringRef) NULL,
+                                    (CFBundleRef) NULL, (CFStringRef) NULL);
+        CFRelease( rightInfo);
+        CFRelease( dict);
+    }
+    require_noerr( err, AuthSetFailed);
 
 AuthSetFailed:
 GetStrFailed:
 NewAuthFailed:
-       return err;
+    return err;
 }
 
-OSStatus       AttemptAcquireAuthority( Boolean allowUI)
+OSStatus    AttemptAcquireAuthority( Boolean allowUI)
 /* Try to get permission for privileged ops, either implicitly or by asking the user for */
 /* authority to perform operations (if necessary) */
 {
-       AuthorizationFlags      allowFlag = allowUI ? kAuthorizationFlagInteractionAllowed : 0;
-       OSStatus                        err;
-
-       err = AuthorizationCopyRights( gAuthRef, &gAuthSet, (AuthorizationEnvironment*) NULL,
-                                                                       kAuthorizationFlagExtendRights | kAuthorizationFlagPreAuthorize |
-                                                                       allowFlag,
-                                                                       (AuthorizationRights**) NULL);
-       return err;
+    AuthorizationFlags allowFlag = allowUI ? kAuthorizationFlagInteractionAllowed : 0;
+    OSStatus err;
+
+    err = AuthorizationCopyRights( gAuthRef, &gAuthSet, (AuthorizationEnvironment*) NULL,
+                                   kAuthorizationFlagExtendRights | kAuthorizationFlagPreAuthorize |
+                                   allowFlag,
+                                   (AuthorizationRights**) NULL);
+    return err;
 }
 
 OSStatus ReleaseAuthority(void)
 /* Discard authority to perform operations */
 {
-       (void) AuthorizationFree( gAuthRef, kAuthorizationFlagDefaults);
-       gAuthRef = 0;
-       return AuthorizationCreate( (AuthorizationRights*) NULL, (AuthorizationEnvironment*) NULL,
-                                                               (AuthorizationFlags) 0, &gAuthRef);
+    (void) AuthorizationFree( gAuthRef, kAuthorizationFlagDefaults);
+    gAuthRef = 0;
+    return AuthorizationCreate( (AuthorizationRights*) NULL, (AuthorizationEnvironment*) NULL,
+                                (AuthorizationFlags) 0, &gAuthRef);
 }
 
-Boolean        CurrentlyAuthorized(void)
+Boolean CurrentlyAuthorized(void)
 {
-       OSStatus err = AttemptAcquireAuthority(true);
-       return err == noErr;
+    OSStatus err = AttemptAcquireAuthority(true);
+    return err == noErr;
 }
 
 
 OSStatus ExternalizeAuthority(AuthorizationExternalForm *pAuth)
 /* Package up current authorizations for transfer to another process */
 {
-       return AuthorizationMakeExternalForm(gAuthRef, pAuth);
+    return AuthorizationMakeExternalForm(gAuthRef, pAuth);
 }