70 lines
1.4 KiB
Mathematica
70 lines
1.4 KiB
Mathematica
|
//
|
||
|
// file: Helper.m
|
||
|
// project: (open-source) installer
|
||
|
// description: main/entry point of daemon
|
||
|
//
|
||
|
// created by Patrick Wardle
|
||
|
// copyright (c) 2018 Objective-See. All rights reserved.
|
||
|
//
|
||
|
|
||
|
@import OSLog;
|
||
|
@import Foundation;
|
||
|
|
||
|
#import "consts.h"
|
||
|
#import "XPCProtocol.h"
|
||
|
#import "HelperListener.h"
|
||
|
#import "HelperInterface.h"
|
||
|
|
||
|
/* GLOBALS */
|
||
|
|
||
|
//log handle
|
||
|
os_log_t logHandle = nil;
|
||
|
|
||
|
//helper daemon entry point
|
||
|
// create XPC listener object and then just wait
|
||
|
int main(int argc, const char * argv[])
|
||
|
{
|
||
|
//pragmas
|
||
|
#pragma unused(argc)
|
||
|
#pragma unused(argv)
|
||
|
|
||
|
//status
|
||
|
int status = -1;
|
||
|
|
||
|
//init log
|
||
|
logHandle = os_log_create(BUNDLE_ID, "installer (helper)");
|
||
|
|
||
|
//pool
|
||
|
@autoreleasepool
|
||
|
{
|
||
|
//helper listener (XPC) obj
|
||
|
HelperListener* helperListener = nil;
|
||
|
|
||
|
//alloc/init helper listener XPC obj
|
||
|
helperListener = [[HelperListener alloc] init];
|
||
|
if(nil == helperListener)
|
||
|
{
|
||
|
//err msg
|
||
|
os_log_error(logHandle, "ERROR: failed to initialize user comms XPC listener");
|
||
|
|
||
|
//bail
|
||
|
goto bail;
|
||
|
}
|
||
|
|
||
|
//dbg msg
|
||
|
os_log_debug(logHandle, "listening for client XPC connections...");
|
||
|
|
||
|
//run loop
|
||
|
[[NSRunLoop currentRunLoop] run];
|
||
|
|
||
|
} //pool
|
||
|
|
||
|
//happy
|
||
|
// though not sure how we'll ever get here?
|
||
|
status = 0;
|
||
|
|
||
|
bail:
|
||
|
|
||
|
return status;
|
||
|
}
|