]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
OSXPreferencePane
authorClaudio Bisegni <Claudio.Bisegni@lnf.infn.it>
Mon, 1 Mar 2010 19:41:48 +0000 (20:41 +0100)
committerDerrick Brashear <shadow@dementia.org>
Mon, 1 Mar 2010 23:15:56 +0000 (15:15 -0800)
checkAfsStatusForStartup method modification for search /afs volume for determinate if afs is on has been transfered into checkAfsStatus. checkAfsStatusForStartup method is used to check when afs start axitn system startup. Anyway these are only workaround we must use osx api or afs api to make this job.

Change-Id: If9be5a91418eccc0c58a69b566af140d619d3057
Reviewed-on: http://gerrit.openafs.org/1492
Reviewed-by: Claudio Bisegni <Claudio.Bisegni@lnf.infn.it>
Tested-by: Claudio Bisegni <Claudio.Bisegni@lnf.infn.it>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
(cherry picked from commit b7b51cb22c56cb7304a9d6c9c9b12eaaa470db49)
Reviewed-on: http://gerrit.openafs.org/1494

src/platform/DARWIN/AFSPreference/AFSCommanderPref.m
src/platform/DARWIN/AFSPreference/AFSPropertyManager.h
src/platform/DARWIN/AFSPreference/AFSPropertyManager.m
src/platform/DARWIN/AFSPreference/afshlp.m

index ecaacfbd2640447e99263819c9075f3558ee716c..687d5be611d0298b3423a628ba5f790124871821 100644 (file)
 // -------------------------------------------------------------------------------
 -(void) setAfsStatus
 {
+       
        BOOL afsIsUp = [afsProperty checkAfsStatus];
-       BOOL afsEnabledAtStartup = [afsProperty checkAfsStatusForStartup];
+       BOOL afsEnabledAtStartup = NO;
+       
+       NSMutableString *commandOutput = [NSMutableString stringWithCapacity:20];
+       NSString *rootHelperApp = [[self bundle] pathForResource:@"afshlp" ofType:@""];
+               
+                       // make the parameter to call the root helper app
+       const char *checkAFSDaemonParam[] = {"check_afs_daemon",  0L};
+       if([[AuthUtil shared] autorize] == noErr) {
+                               //now disable the launchd configuration
+               [[AuthUtil shared] execUnixCommand:[rootHelperApp UTF8String]
+                                                                         args:checkAFSDaemonParam
+                                                                       output:commandOutput];
+               afsEnabledAtStartup = [commandOutput rangeOfString:@"afshlp:afs daemon registration result:1"].location!=NSNotFound;
+       }
+
+       
+       
 
 
        [((NSButton *)startStopButton) setTitle: (afsIsUp?kAfsButtonShutdown:kAfsButtonStartup)];
index 0009387043d8be08b82b422b9be718ad7c2070b2..63306456dbb7f2324c7a57932276c6770796142c 100644 (file)
@@ -13,8 +13,8 @@
 
 #define AFS_DAEMON_STARTUPSCRIPT       "/Library/OpenAFS/Tools/root.client/usr/vice/etc/afs.rc"
 #define AFS_DAEMON_PATH                                "/Library/LaunchDaemons/org.openafs.filesystems.afs.plist"
-#define AFS_FS_MOUNT                    "AFS"
-#define AFS_DAEMON_LAUNCH_PATH         "/private/var/db/openafs/etc/launchafs.sh"
+#define AFS_FS_MOUNT                "AFS"
+#define AFS_LAUNCHCTL_GREP_STR         "org.openafs.filesystems.afs"
 /*!
     @class             AFSPropertyManager
     @abstract   AFS Manage Class
index a5fb45e3d7644be3d7c3bbea735b01ee0973943d..5a5c54039423f75961f717e2c8184ad2ecf1593b 100644 (file)
 -(BOOL) checkAfsStatus
 {
        BOOL result = NO;
-       NSString *fsResult = [TaskUtil executeTaskSearchingPath:@"fs" args:[NSArray arrayWithObjects:@"checkserver", nil]];
-       result = (fsResult?([fsResult rangeOfString:@"All servers are running."].location != NSNotFound):NO);
+       NSString *dfResult = [TaskUtil executeTaskSearchingPath:@"/bin/df" args:[NSArray arrayWithObjects:nil]];
+       result = (dfResult?([dfResult rangeOfString:@AFS_FS_MOUNT].location != NSNotFound):NO);
        return result;  
 }
 
 // -------------------------------------------------------------------------------
 -(BOOL) checkAfsStatusForStartup {
        BOOL result = NO;
-       NSString *dfResult = [TaskUtil executeTaskSearchingPath:@"/bin/df" args:[NSArray arrayWithObjects:nil]];
-       result = (dfResult?([dfResult rangeOfString:@AFS_FS_MOUNT].location != NSNotFound):NO);
+               //NSString *fsResult = [TaskUtil executeTaskSearchingPath:@"launchctl" args:[NSArray arrayWithObjects: @"list", nil]];
+               //result = (fsResult?([fsResult rangeOfString:@AFS_LAUNCHCTL_GREP_STR].location != NSNotFound):NO);
        return result;
 }
 
index fe382b7b7c3abf42396815e33cb05a65488e0b57..f3617d9781dbf4bd4706c7cf17f585ceac4d16c3 100644 (file)
@@ -89,6 +89,10 @@ void runCommand(int argc, char *argv[])
                [PListManager launchctlStringCommand:enable?@"load":@"unload"
                                                                          option:[NSArray arrayWithObjects:@"-w", nil]
                                                                   plistName:@AFS_DAEMON_PATH];
+       } else if(argc == 2 && [cmdString rangeOfString:@"check_afs_daemon"].location!=NSNotFound) {
+               NSString *fsResult = [TaskUtil executeTaskSearchingPath:@"launchctl" args:[NSArray arrayWithObjects: @"list", nil]];
+               BOOL checkAfsDaemon = (fsResult?([fsResult rangeOfString:@"org.openafs.filesystems.afs"].location != NSNotFound):NO);
+               printf("afshlp:afs daemon registration result:%d",checkAfsDaemon);
        }
 }