⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 openfireprefpane.m

📁 openfire 服务器源码下载
💻 M
字号:
////  openfirePrefPane.m//  Preference panel for Openfire////  Created by Daniel Henninger on 7/7/06.//  Copyright (c) 2006 Jive Software. All rights reserved.////  Concept taken from MySQL preference panel, as well as some borrowed code.//#import <Security/Security.h>#import <CoreFoundation/CoreFoundation.h>#import "openfirePrefPane.h"@implementation openfirePrefPane- (void)mainViewDidLoad{	AuthorizationItem authItems[1]; 	// we only want to get authorization for one command    authItems[0].name = kAuthorizationRightExecute;	// we want the right to execute	char *cmd = [[[NSBundle bundleForClass:[self class]] pathForAuxiliaryExecutable:@"HelperTool"] fileSystemRepresentation];    authItems[0].value = cmd;		// the path to the helper tool    authItems[0].valueLength = strlen(cmd);	// length of the command    authItems[0].flags = 0;				// no extra flags    	AuthorizationRights authRights;    authRights.count = 1;		// we have one item    authRights.items = authItems;	// here is the values for our item	[authView setAuthorizationRights:&authRights];	[authView setAutoupdate:YES];	[authView setDelegate:self];	[authView updateStatus:self];    [statusProgress setStyle:NSProgressIndicatorSpinningStyle];    [statusProgress setDisplayedWhenStopped:NO];	[self updateStatus];}- (BOOL)isRunning{    FILE *ps;    char buff[1024];        if((ps=popen(pscmd, "r")) == NULL)    {        // There was an error opening the pipe. Alert the user.        NSBeginAlertSheet(            @"Error!",            @"OK",            nil,            nil,            [NSApp mainWindow],            self,            nil,            nil,            self,            @"An error occured while detecting a running Openfire process.",            nil);                return NO;    }    else    {		BOOL running = NO;        if(fgets(buff, 1024, ps)) {			running = YES;			printf(buff);		}        pclose(ps);        return running;    }}- (IBAction)openAdminInterface:(id)sender{	NSString *stringURL = @"http://localhost:9090/";	[[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:stringURL]];}- (IBAction)toggleAutoStart:(id)sender{	char *args[2];	args[0] = "boot"; 	args[1] = NULL;		OSStatus ourStatus = AuthorizationExecuteWithPrivileges([[authView authorization] authorizationRef],															[authView authorizationRights]->items[0].value,															kAuthorizationFlagDefaults, args, NULL);        	if(ourStatus != errAuthorizationSuccess)	{		// alert user the startup has failed		NSBeginAlertSheet(						  @"Error!",						  @"OK",						  nil,						  nil,						  [NSApp mainWindow],						  self,						  nil,						  nil,						  self,						  @"Could not toggle Openfire startup.",						  nil);		[statusTimer invalidate];		[self checkStatus];	}		[self updateStatus];}- (IBAction)toggleServer:(id)sender{	[statusMessage setHidden:YES];	[statusProgress startAnimation:self];    [startButton setEnabled:NO];	    if(![self isRunning])    {        [self startServer];		statusTimer = [NSTimer scheduledTimerWithTimeInterval:4 target:self 			selector:@selector(checkStatus) userInfo:nil repeats:NO];    }    else    {        [self stopServer];        statusTimer = [NSTimer scheduledTimerWithTimeInterval:4 target:self             selector:@selector(checkStatus) userInfo:nil repeats:NO];    }    [self updateStatus];}- (void)checkStatus{	[statusProgress stopAnimation:self];	[statusMessage setHidden:NO];    [startButton setEnabled:YES];    [self updateStatus];}- (void)updateStatus{	if ([self isRunning] == NO)	{		[statusMessage setStringValue:@"Stopped"];		[statusMessage setTextColor:[NSColor redColor]];		[statusDescription setStringValue:@"The server may take a few seconds to start up."];		[startButton setTitle:@"Start Openfire"];		[viewAdminButton setEnabled:NO];	}	else 	{		[statusMessage setStringValue:@"Running"];		[statusMessage setTextColor:[NSColor greenColor]];		[statusDescription setStringValue:@"The server may take a few seconds to stop."];		[startButton setTitle:@"Stop Openfire"];		[viewAdminButton setEnabled:YES];	}	BOOL isStartingAtBoot = [[[NSMutableDictionary dictionaryWithContentsOfFile:plistPath] objectForKey:@"RunAtLoad"] boolValue];	[autoStartCheckbox setState:(isStartingAtBoot ? NSOnState : NSOffState)];}- (void)startServer{	char *args[0];	args[1] = NULL;				OSStatus ourStatus = AuthorizationExecuteWithPrivileges([[authView authorization] authorizationRef],															[authView authorizationRights]->items[0].value,															kAuthorizationFlagDefaults, args, NULL);	// wait for the server to start	if(ourStatus != errAuthorizationSuccess)	{		// alert user the startup has failed		NSBeginAlertSheet(			@"Error!",			@"OK",			nil,			nil,			[NSApp mainWindow],			self,			nil,			nil,			self,			@"Could not start the Openfire server.",			nil);		[statusTimer invalidate];		[self checkStatus];	}}- (void) stopServer{	char *args[1];	args[0] = NULL;			OSStatus ourStatus = AuthorizationExecuteWithPrivileges([[authView authorization] authorizationRef],															[authView authorizationRights]->items[0].value,															kAuthorizationFlagDefaults, args, NULL);		if(ourStatus != errAuthorizationSuccess)	{		// alert user the startup has failed		NSBeginAlertSheet(			@"Error!",			@"OK",			nil,			nil,			[NSApp mainWindow],			self,			nil,			nil,			self,			@"Could not stop the Openfire server.",			nil);		[statusTimer invalidate];		[self checkStatus];	}}@end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -