]> git.saurik.com Git - apple/configd.git/blob - scutil.tproj/session.c
246e91761012caf626e10fa306db890d32cd37ee
[apple/configd.git] / scutil.tproj / session.c
1 /*
2 * Copyright (c) 2000-2003 Apple Computer, Inc. All rights reserved.
3 *
4 * @APPLE_LICENSE_HEADER_START@
5 *
6 * Copyright (c) 1999-2003 Apple Computer, Inc. All Rights Reserved.
7 *
8 * This file contains Original Code and/or Modifications of Original Code
9 * as defined in and that are subject to the Apple Public Source License
10 * Version 2.0 (the 'License'). You may not use this file except in
11 * compliance with the License. Please obtain a copy of the License at
12 * http://www.opensource.apple.com/apsl/ and read it before using this
13 * file.
14 *
15 * The Original Code and all software distributed under the License are
16 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
17 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
18 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
19 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
20 * Please see the License for the specific language governing rights and
21 * limitations under the License.
22 *
23 * @APPLE_LICENSE_HEADER_END@
24 */
25
26 /*
27 * Modification History
28 *
29 * June 1, 2001 Allan Nathanson <ajn@apple.com>
30 * - public API conversion
31 *
32 * November 9, 2000 Allan Nathanson <ajn@apple.com>
33 * - initial revision
34 */
35
36 #include "scutil.h"
37 #include "session.h"
38 #include "notify.h"
39
40 void
41 do_open(int argc, char **argv)
42 {
43 if (store) {
44 CFRelease(store);
45 CFRelease(watchedKeys);
46 CFRelease(watchedPatterns);
47 }
48
49 store = SCDynamicStoreCreate(NULL, CFSTR("scutil"), storeCallback, NULL);
50 if (!store) {
51 SCPrint(TRUE, stdout, CFSTR(" %s\n"), SCErrorString(SCError()));
52 return;
53 }
54
55 watchedKeys = CFArrayCreateMutable(NULL, 0, &kCFTypeArrayCallBacks);
56 watchedPatterns = CFArrayCreateMutable(NULL, 0, &kCFTypeArrayCallBacks);
57
58 return;
59 }
60
61
62 void
63 do_close(int argc, char **argv)
64 {
65 if (notifyRls) {
66 CFRunLoopRemoveSource(CFRunLoopGetCurrent(), notifyRls, kCFRunLoopDefaultMode);
67 CFRelease(notifyRls);
68 notifyRls = NULL;
69 }
70
71 if (notifyRl) {
72 CFRunLoopStop(notifyRl);
73 notifyRl = NULL;
74 }
75
76 if (store) {
77 CFRelease(store);
78 store = NULL;
79 CFRelease(watchedKeys);
80 watchedKeys = NULL;
81 CFRelease(watchedPatterns);
82 watchedPatterns = NULL;
83 }
84 return;
85 }
86
87
88 void
89 do_lock(int argc, char **argv)
90 {
91 if (!SCDynamicStoreLock(store)) {
92 SCPrint(TRUE, stdout, CFSTR(" %s\n"), SCErrorString(SCError()));
93 }
94 return;
95 }
96
97
98 void
99 do_unlock(int argc, char **argv)
100 {
101 if (!SCDynamicStoreUnlock(store)) {
102 SCPrint(TRUE, stdout, CFSTR(" %s\n"), SCErrorString(SCError()));
103 }
104 return;
105 }