summaryrefslogtreecommitdiff
path: root/ZeroTierUI/mac_doprivileged.mm
diff options
context:
space:
mode:
authorAdam Ierymenko <adam.ierymenko@gmail.com>2014-01-15 17:00:53 -0800
committerAdam Ierymenko <adam.ierymenko@gmail.com>2014-01-15 17:00:53 -0800
commit99c384e110f34d780ba78a76de95616a6801fcfa (patch)
treeafde6e50a00975c94947f6b48f609ddae461730c /ZeroTierUI/mac_doprivileged.mm
parent49076d406e2941016c8b0ccc1d30abbcd49e486c (diff)
downloadinfinitytier-99c384e110f34d780ba78a76de95616a6801fcfa.tar.gz
infinitytier-99c384e110f34d780ba78a76de95616a6801fcfa.zip
New way of doing authenticate and install. Now with more kittens.
Diffstat (limited to 'ZeroTierUI/mac_doprivileged.mm')
-rw-r--r--ZeroTierUI/mac_doprivileged.mm24
1 files changed, 24 insertions, 0 deletions
diff --git a/ZeroTierUI/mac_doprivileged.mm b/ZeroTierUI/mac_doprivileged.mm
new file mode 100644
index 00000000..5bd6a7a6
--- /dev/null
+++ b/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);
+}