diff options
| author | Mason Reed <mason@vector35.com> | 2024-10-02 19:51:27 -0400 |
|---|---|---|
| committer | mason <35282038+emesare@users.noreply.github.com> | 2024-10-03 18:58:48 +0000 |
| commit | 0beb551d0a393af4c75397195a45e22d7b3aba70 (patch) | |
| tree | 5d8ea59743ea0adaed402fee1e2b22e7db335207 /rust/src/headless.rs | |
| parent | e8488aaa64fb847ca2e639369176cf88c1bc4f8e (diff) | |
Checkout enterprise license in rust headless mode
Diffstat (limited to 'rust/src/headless.rs')
| -rw-r--r-- | rust/src/headless.rs | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/rust/src/headless.rs b/rust/src/headless.rs index 1de41aec..0cc92faa 100644 --- a/rust/src/headless.rs +++ b/rust/src/headless.rs @@ -20,6 +20,7 @@ use crate::{ use std::env; use std::path::PathBuf; +use std::time::Duration; #[cfg(not(target_os = "windows"))] fn binja_path() -> PathBuf { @@ -82,6 +83,13 @@ use binaryninjacore_sys::{BNInitPlugins, BNInitRepoPlugins, BNSetBundledPluginDi /// /// You can instead call this through [`Session`] or [`script_helper`] pub fn init() { + match crate::product().as_str() { + "Binary Ninja Enterprise Client" | "Binary Ninja Ultimate" => { + crate::enterprise::checkout_license(Duration::from_secs(900)).expect("Failed to checkout license"); + }, + _ => {} + } + unsafe { let path = binja_path().join("plugins").into_os_string(); let path = path.into_string().unwrap(); @@ -96,6 +104,13 @@ pub fn init() { /// /// ⚠️ Important! Must be called at the end of scripts. ⚠️ pub fn shutdown() { + match crate::product().as_str() { + "Binary Ninja Enterprise Client" | "Binary Ninja Ultimate" => { + crate::enterprise::release_license() + }, + _ => {} + } + unsafe { binaryninjacore_sys::BNShutdown() }; } |
