]> git.saurik.com Git - apple/system_cmds.git/blobdiff - msa/VoucherContentSysctl.cpp
system_cmds-643.30.1.tar.gz
[apple/system_cmds.git] / msa / VoucherContentSysctl.cpp
diff --git a/msa/VoucherContentSysctl.cpp b/msa/VoucherContentSysctl.cpp
new file mode 100644 (file)
index 0000000..c2282e8
--- /dev/null
@@ -0,0 +1,27 @@
+//
+//  VoucherContentSysctl.cpp
+//  system_cmds
+//
+//  Created by James McIlree on 4/29/14.
+//
+//
+
+#include "global.h"
+
+VoucherContentSysctl::VoucherContentSysctl(bool is_enabled) :
+       _original_value(0),
+       _new_value(is_enabled ? 1 : 0)
+{
+       size_t original_value_size = sizeof(_original_value);
+       if (sysctlbyname("kern.ipc_voucher_trace_contents", &_original_value, &original_value_size, &_new_value, sizeof(_new_value))) {
+               log_msg(ASL_LEVEL_ERR, "Unable to %s kern.ipc_voucher_trace_contents sysctl", is_enabled ? "set" : "clear");
+       }
+}
+
+VoucherContentSysctl::~VoucherContentSysctl() {
+       if (_original_value != _new_value) {
+               if (sysctlbyname("kern.ipc_voucher_trace_contents", NULL, 0, &_original_value, sizeof(_original_value))) {
+                       log_msg(ASL_LEVEL_ERR, "Unable to restore original value of kern.ipc_voucher_trace_contents sysctl");
+               }
+       }
+}