diff options
author | Adam Ierymenko <adam.ierymenko@gmail.com> | 2014-01-15 17:00:53 -0800 |
---|---|---|
committer | Adam Ierymenko <adam.ierymenko@gmail.com> | 2014-01-15 17:00:53 -0800 |
commit | 99c384e110f34d780ba78a76de95616a6801fcfa (patch) | |
tree | afde6e50a00975c94947f6b48f609ddae461730c /ZeroTierUI/mac_doprivileged.mm | |
parent | 49076d406e2941016c8b0ccc1d30abbcd49e486c (diff) | |
download | infinitytier-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.mm | 24 |
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); +} |