]>
Commit | Line | Data |
---|---|---|
e3d460c9 A |
1 | /* |
2 | * Copyright (c) 2015 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 | * This is to fool os services to not provide the Keychain manager | |
866f8763 | 26 | * interface that doesn't work since we don't have unified headers |
e3d460c9 A |
27 | * between iOS and OS X. rdar://23405418/ |
28 | */ | |
29 | #define __KEYCHAINCORE__ 1 | |
30 | ||
31 | #import <Foundation/Foundation.h> | |
32 | #import <Security/Security.h> | |
33 | #import <Security/SecItemPriv.h> | |
34 | #import <err.h> | |
35 | ||
36 | #include "builtin_commands.h" | |
37 | ||
38 | ||
39 | int | |
40 | command_bubble(__unused int argc, __unused char * const * argv) | |
41 | { | |
42 | @autoreleasepool { | |
43 | CFErrorRef error = NULL; | |
44 | uid_t uid; | |
45 | ||
46 | if (argc < 2) | |
47 | errx(1, "missing uid argument"); | |
48 | ||
49 | uid = atoi(argv[1]); | |
50 | if (uid == 0) | |
51 | errx(1, "syncbubble for root not supported"); | |
52 | ||
53 | NSArray *services = @[@"com.apple.cloudd.sync", @"com.apple.mailq.sync"]; | |
54 | ||
55 | if (_SecSyncBubbleTransfer((__bridge CFArrayRef)services, uid, &error)) { | |
56 | errx(1, "%s", [[NSString stringWithFormat:@"sync bubble populated\n"] UTF8String]); | |
57 | } else { | |
58 | errx(1, "%s", [[NSString stringWithFormat:@"sync bubble failed to inflate: %@\n", error] UTF8String]); | |
59 | } | |
e3d460c9 | 60 | } |
e3d460c9 | 61 | } |