Server

Struct Server 

Source
pub struct Server<P: OsqueryPlugin + Clone + Send + Sync + 'static> { /* private fields */ }

Implementations§

Source§

impl<P: OsqueryPlugin + Clone + Send + 'static> Server<P>

Source

pub fn new(name: Option<&str>, socket_path: &str) -> Result<Self, Error>

Source

pub fn register_plugin(&mut self, plugin: P) -> &Self

Registers a plugin, something which implements the OsqueryPlugin trait. Consumes the plugin.

Source

pub fn run(&mut self) -> Result<()>

Run the server, blocking until shutdown is requested.

This method starts the server, registers with osquery, and enters a loop that pings osquery periodically. The loop exits when shutdown is triggered by any of:

  • osquery calling the shutdown RPC
  • Connection to osquery being lost
  • stop() being called from another thread

For signal handling (SIGTERM/SIGINT), use run_with_signal_handling() instead.

Source

pub fn run_with_signal_handling(&mut self) -> Result<()>

Run the server with signal handling enabled (Unix only).

This method registers handlers for SIGTERM and SIGINT that will trigger graceful shutdown. Use this instead of run() if you want the server to respond to OS signals (e.g., systemd sending SIGTERM, or Ctrl+C sending SIGINT).

The loop exits when shutdown is triggered by any of:

  • SIGTERM or SIGINT signal received
  • osquery calling the shutdown RPC
  • Connection to osquery being lost
  • stop() being called from another thread
§Platform Support

This method is only available on Unix platforms. For Windows, use run() and implement your own signal handling.

Source

pub fn get_stop_handle(&self) -> ServerStopHandle

Get a handle that can be used to stop the server from another thread.

The returned handle can be cloned and shared across threads. Calling stop() on the handle will cause the server’s run() method to exit gracefully on the next iteration.

Source

pub fn stop(&self)

Request the server to stop.

This is a convenience method equivalent to calling stop() on a ServerStopHandle. The server will exit its run() loop on the next iteration.

Source

pub fn is_running(&self) -> bool

Check if the server is still running.

Returns true if the server has not been requested to stop, false if stop() has been called or shutdown has been triggered by another mechanism (e.g., osquery shutdown RPC, connection loss).

Auto Trait Implementations§

§

impl<P> Freeze for Server<P>

§

impl<P> !RefUnwindSafe for Server<P>

§

impl<P> Send for Server<P>

§

impl<P> Sync for Server<P>

§

impl<P> Unpin for Server<P>
where P: Unpin,

§

impl<P> !UnwindSafe for Server<P>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.