Skip to content

Commit 6a06d67

Browse files
committed
Add API for whether an extension is listed.
1 parent 25782a7 commit 6a06d67

5 files changed

Lines changed: 18 additions & 0 deletions

File tree

binaryninjaapi.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20086,6 +20086,7 @@ namespace BinaryNinja {
2008620086
bool IsBeingDeleted() const;
2008720087
bool IsBeingUpdated() const;
2008820088
bool IsInstalled() const;
20089+
bool IsListed() const;
2008920090
bool IsEnabled() const;
2009020091
bool IsRunning() const;
2009120092
bool IsUpdatePending() const;

binaryninjacore.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8363,6 +8363,7 @@ extern "C"
83638363
BINARYNINJACOREAPI const char* BNPluginGetLongdescription(BNPlugin* p);
83648364
BINARYNINJACOREAPI uint64_t BNPluginGetLastUpdate(BNPlugin* p);
83658365
BINARYNINJACOREAPI bool BNPluginIsInstalled(BNPlugin* p);
8366+
BINARYNINJACOREAPI bool BNPluginIsListed(BNPlugin* p);
83668367
BINARYNINJACOREAPI bool BNPluginIsEnabled(BNPlugin* p);
83678368
BINARYNINJACOREAPI BNPluginStatus BNPluginGetPluginStatus(BNPlugin* p);
83688369
BINARYNINJACOREAPI BNPluginType* BNPluginGetPluginTypes(BNPlugin* p, size_t* count);

pluginmanager.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,12 @@ bool Extension::IsInstalled() const
3737
return BNPluginIsInstalled(m_object);
3838
}
3939

40+
41+
bool Extension::IsListed() const
42+
{
43+
return BNPluginIsListed(m_object);
44+
}
45+
4046
bool Extension::IsEnabled() const
4147
{
4248
return BNPluginIsEnabled(m_object);

python/pluginmanager.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,11 @@ def installed(self) -> bool:
8989
"""Boolean True if the plugin is installed, False otherwise"""
9090
return core.BNPluginIsInstalled(self.handle)
9191

92+
@property
93+
def listed(self) -> bool:
94+
"""Boolean True if the plugin is present in its repository's latest successful listing"""
95+
return core.BNPluginIsListed(self.handle)
96+
9297
def install(self, version_id=None) -> bool:
9398
"""Attempt to install the given plugin. Defaults to the latest available version."""
9499
if self.delete_pending:

rust/src/repository/plugin.rs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -211,6 +211,11 @@ impl Extension {
211211
unsafe { BNPluginIsInstalled(self.handle.as_ptr()) }
212212
}
213213

214+
/// true if the plugin is present in its repository's latest successful listing
215+
pub fn is_listed(&self) -> bool {
216+
unsafe { BNPluginIsListed(self.handle.as_ptr()) }
217+
}
218+
214219
/// true if the plugin is enabled, false otherwise
215220
pub fn is_enabled(&self) -> bool {
216221
unsafe { BNPluginIsEnabled(self.handle.as_ptr()) }

0 commit comments

Comments
 (0)