diff options
Diffstat (limited to 'attic/ZeroTierUI/mac_doprivileged.mm')
-rw-r--r-- | attic/ZeroTierUI/mac_doprivileged.mm | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/attic/ZeroTierUI/mac_doprivileged.mm b/attic/ZeroTierUI/mac_doprivileged.mm new file mode 100644 index 00000000..5bd6a7a6 --- /dev/null +++ b/attic/ZeroTierUI/mac_doprivileged.mm @@ -0,0 +1,24 @@ +#include <string.h> +#include <stdio.h> + +#include "mac_doprivileged.h" + +#undef slots +#include <Cocoa/Cocoa.h> + +bool macExecutePrivilegedShellCommand(const char *commandAndArgs) +{ + char tmp[32768]; + + snprintf(tmp,sizeof(tmp),"do shell script \"%s\" with administrator privileges\n",commandAndArgs); + tmp[32767] = (char)0; + + NSString *scriptApple = [[NSString alloc] initWithUTF8String:tmp]; + NSAppleScript *as = [[NSAppleScript alloc] initWithSource:scriptApple]; + NSDictionary *err = nil; + [as executeAndReturnError:&err]; + [as release]; + [scriptApple release]; + + return (err == nil); +} |