summaryrefslogtreecommitdiff
path: root/attic/ZeroTierUI/mac_doprivileged.mm
diff options
context:
space:
mode:
Diffstat (limited to 'attic/ZeroTierUI/mac_doprivileged.mm')
-rw-r--r--attic/ZeroTierUI/mac_doprivileged.mm24
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);
+}