Struct ConfigurationNodeProxyBlocking

Source
pub struct ConfigurationNodeProxyBlocking<'c>(/* private fields */);
Expand description

Configuration Object

Implementations§

Source§

impl<'c> ConfigurationNodeProxyBlocking<'c>

Source

pub fn new(conn: &Connection) -> Result<ConfigurationNodeProxyBlocking<'c>>

Creates a new proxy with the default service and path.

Source

pub fn builder(conn: &Connection) -> ProxyBuilder<'c, Self>

Returns a customizable builder for this proxy.

Source

pub fn into_inner(self) -> Proxy<'c>

Consumes self, returning the underlying zbus::Proxy.

Source

pub fn inner(&self) -> &Proxy<'c>

The reference to the underlying zbus::Proxy.

Source

pub fn access_grant(&self, uid: u32) -> Result<()>

AccessGrant method

By default, only the user ID (UID) who imported the configuration have access to it. This method used to grant other users access to the configuration.

§Arguments
  • uid - The UID to the user account which is granted access.
Source

pub fn access_revoke(&self, uid: u32) -> Result<()>

AccessRevoke method

This revokes access to a configuration object for a specific user. Please note that the owner (the user which imported the configuration) cannot have its access revoked.

§Arguments
  • uid - The UID to the user account which gets the access revoked.
Source

pub fn fetch(&self) -> Result<String>

Fetch method

This method will return a string of the stored configuration profile as it is stored. This should be contain the same information which was imported. It will not necessarily be an identical copy of what was imported, as it has been processed during the import.

§Returns

The configuration file as a plain string blob.

Source

pub fn fetch_json(&self) -> Result<String>

FetchJSON method

This is a variant of Fetch, which returns the configuration profile formatted as a JSON string blob. The intention of this is for user front-ends to have a simple API to retrieve the complete configuration profile in a format which can easily be parsed and presented in a user interface.

§Returns

The configuration file as a JSON formatted string blob.

Source

pub fn remove(&self) -> Result<()>

Remove method

Removes a VPN profile from the configuration manager. If the configuration is persistent, it will be removed from the disk as well. This method takes no arguments and does not return anything on success. If an error occurs, a D-Bus error is returned.

Source

pub fn seal(&self) -> Result<()>

Seal method

This method makes the configuration read-only. That means it can no longer be manipulated, nor removed.

Source

pub fn set_option(&self, option: &str, value: &str) -> Result<()>

SetOption method

This method allows manipulation of a stored configuration. This is targeted at user front-ends to be able to easily manipulate imported configuration files.

** WARNING: ** This method is currently not implemented!

§Arguments
  • option - String containing the name of the option to be modified.
  • value - String containing the new value of the option.
Source

pub fn set_override(&self, name: &str, value: &Value<'_>) -> Result<()>

SetOverride method

Modifies an override parameter in the configuration profile.

§Arguments
  • name - Property name to modify.
  • value - The new value the property should have. The data type ov must match the data type of the property in the D-Bus object.
Source

pub fn unset_override(&self, name: &str) -> Result<()>

UnsetOverride method

Unset an override setting.

§Arguments
  • name - Override property name to remove.
Source

pub fn acl(&self) -> Result<Vec<u32>>

An array of UID values granted access.

Source

pub fn cached_acl( &self, ) -> Result<Option<<Result<Vec<u32>> as ResultAdapter>::Ok>, <Result<Vec<u32>> as ResultAdapter>::Err>

Get the cached value of the acl property, or None if the property is not cached.

Source

pub fn receive_acl_changed( &self, ) -> PropertyIterator<'c, <Result<Vec<u32>> as ResultAdapter>::Ok>

Create a stream for the acl property changes. This is a convenient wrapper around zbus::blocking::Proxy::receive_property_changed.

Source

pub fn dco(&self) -> Result<bool>

If set to true, the VPN tunnel will make use of the kernel accelerated Data Channel Offload (DCO) feature (requires kernel support).

Source

pub fn cached_dco( &self, ) -> Result<Option<<Result<bool> as ResultAdapter>::Ok>, <Result<bool> as ResultAdapter>::Err>

Get the cached value of the dco property, or None if the property is not cached.

Source

pub fn receive_dco_changed( &self, ) -> PropertyIterator<'c, <Result<bool> as ResultAdapter>::Ok>

Create a stream for the dco property changes. This is a convenient wrapper around zbus::blocking::Proxy::receive_property_changed.

Source

pub fn set_dco(&self, value: bool) -> Result<()>

Source

pub fn import_timestamp(&self) -> Result<u64>

Unix Epoch timestamp of the import time.

Source

pub fn cached_import_timestamp( &self, ) -> Result<Option<<Result<u64> as ResultAdapter>::Ok>, <Result<u64> as ResultAdapter>::Err>

Get the cached value of the import_timestamp property, or None if the property is not cached.

Source

pub fn receive_import_timestamp_changed( &self, ) -> PropertyIterator<'c, <Result<u64> as ResultAdapter>::Ok>

Create a stream for the import_timestamp property changes. This is a convenient wrapper around zbus::blocking::Proxy::receive_property_changed.

Source

pub fn last_used_timestamp(&self) -> Result<u64>

Unix Epoch timestamp of the last time it Fetch was called.

It will track/count Fetch usage only if the calling user is openvpn.

Source

pub fn cached_last_used_timestamp( &self, ) -> Result<Option<<Result<u64> as ResultAdapter>::Ok>, <Result<u64> as ResultAdapter>::Err>

Get the cached value of the last_used_timestamp property, or None if the property is not cached.

Source

pub fn receive_last_used_timestamp_changed( &self, ) -> PropertyIterator<'c, <Result<u64> as ResultAdapter>::Ok>

Create a stream for the last_used_timestamp property changes. This is a convenient wrapper around zbus::blocking::Proxy::receive_property_changed.

Source

pub fn locked_down(&self) -> Result<bool>

If set to true, only the owner and openvpn user can retrieve the configuration file. Other users granted access can only use this profile to start a new tunnel.

Source

pub fn cached_locked_down( &self, ) -> Result<Option<<Result<bool> as ResultAdapter>::Ok>, <Result<bool> as ResultAdapter>::Err>

Get the cached value of the locked_down property, or None if the property is not cached.

Source

pub fn receive_locked_down_changed( &self, ) -> PropertyIterator<'c, <Result<bool> as ResultAdapter>::Ok>

Create a stream for the locked_down property changes. This is a convenient wrapper around zbus::blocking::Proxy::receive_property_changed.

Source

pub fn set_locked_down(&self, value: bool) -> Result<()>

Source

pub fn name(&self) -> Result<String>

Contains the user friendly name of the configuration profile

Source

pub fn cached_name( &self, ) -> Result<Option<<Result<String> as ResultAdapter>::Ok>, <Result<String> as ResultAdapter>::Err>

Get the cached value of the name property, or None if the property is not cached.

Source

pub fn receive_name_changed( &self, ) -> PropertyIterator<'c, <Result<String> as ResultAdapter>::Ok>

Create a stream for the name property changes. This is a convenient wrapper around zbus::blocking::Proxy::receive_property_changed.

Source

pub fn set_name(&self, value: &str) -> Result<()>

Source

pub fn overrides(&self) -> Result<HashMap<String, OwnedValue>>

Contains all the override settings enabled. This is stored as a key/value based dictionary, where value can be any arbitrary data type.

Source

pub fn cached_overrides( &self, ) -> Result<Option<<Result<HashMap<String, OwnedValue>> as ResultAdapter>::Ok>, <Result<HashMap<String, OwnedValue>> as ResultAdapter>::Err>

Get the cached value of the overrides property, or None if the property is not cached.

Source

pub fn receive_overrides_changed( &self, ) -> PropertyIterator<'c, <Result<HashMap<String, OwnedValue>> as ResultAdapter>::Ok>

Create a stream for the overrides property changes. This is a convenient wrapper around zbus::blocking::Proxy::receive_property_changed.

Source

pub fn owner(&self) -> Result<u32>

The UID value of the user which did the import.

Source

pub fn cached_owner( &self, ) -> Result<Option<<Result<u32> as ResultAdapter>::Ok>, <Result<u32> as ResultAdapter>::Err>

Get the cached value of the owner property, or None if the property is not cached.

Source

pub fn receive_owner_changed( &self, ) -> PropertyIterator<'c, <Result<u32> as ResultAdapter>::Ok>

Create a stream for the owner property changes. This is a convenient wrapper around zbus::blocking::Proxy::receive_property_changed.

Source

pub fn persistent(&self) -> Result<bool>

If set to true, this configuration will be saved to disk by the configuration manager. The location of the file storage is managed by the configuration manager itself and the configuration manager will load persistent profiles each time it starts.

Source

pub fn cached_persistent( &self, ) -> Result<Option<<Result<bool> as ResultAdapter>::Ok>, <Result<bool> as ResultAdapter>::Err>

Get the cached value of the persistent property, or None if the property is not cached.

Source

pub fn receive_persistent_changed( &self, ) -> PropertyIterator<'c, <Result<bool> as ResultAdapter>::Ok>

Create a stream for the persistent property changes. This is a convenient wrapper around zbus::blocking::Proxy::receive_property_changed.

Source

pub fn public_access(&self) -> Result<bool>

If set to true, access control is disabled. But only owner may change this property, modify the ACL or delete the configuration.

Source

pub fn cached_public_access( &self, ) -> Result<Option<<Result<bool> as ResultAdapter>::Ok>, <Result<bool> as ResultAdapter>::Err>

Get the cached value of the public_access property, or None if the property is not cached.

Source

pub fn receive_public_access_changed( &self, ) -> PropertyIterator<'c, <Result<bool> as ResultAdapter>::Ok>

Create a stream for the public_access property changes. This is a convenient wrapper around zbus::blocking::Proxy::receive_property_changed.

Source

pub fn set_public_access(&self, value: bool) -> Result<()>

Source

pub fn readonly(&self) -> Result<bool>

If set to true, the configuration have been sealed and can no longer be modified.

Source

pub fn cached_readonly( &self, ) -> Result<Option<<Result<bool> as ResultAdapter>::Ok>, <Result<bool> as ResultAdapter>::Err>

Get the cached value of the readonly property, or None if the property is not cached.

Source

pub fn receive_readonly_changed( &self, ) -> PropertyIterator<'c, <Result<bool> as ResultAdapter>::Ok>

Create a stream for the readonly property changes. This is a convenient wrapper around zbus::blocking::Proxy::receive_property_changed.

Source

pub fn single_use(&self) -> Result<bool>

If set to true, this configuration profile will be automatically removed after the first Fetch call. This is intended to be used by command line clients providing a similar user experience as the OpenVPN 2.x versions provides.

Source

pub fn cached_single_use( &self, ) -> Result<Option<<Result<bool> as ResultAdapter>::Ok>, <Result<bool> as ResultAdapter>::Err>

Get the cached value of the single_use property, or None if the property is not cached.

Source

pub fn receive_single_use_changed( &self, ) -> PropertyIterator<'c, <Result<bool> as ResultAdapter>::Ok>

Create a stream for the single_use property changes. This is a convenient wrapper around zbus::blocking::Proxy::receive_property_changed.

Source

pub fn transfer_owner_session(&self) -> Result<bool>

If set to true, another user granted access to this profile will transfer the VPN session ownership back to the profile owner at start up.

Source

pub fn cached_transfer_owner_session( &self, ) -> Result<Option<<Result<bool> as ResultAdapter>::Ok>, <Result<bool> as ResultAdapter>::Err>

Get the cached value of the transfer_owner_session property, or None if the property is not cached.

Source

pub fn receive_transfer_owner_session_changed( &self, ) -> PropertyIterator<'c, <Result<bool> as ResultAdapter>::Ok>

Create a stream for the transfer_owner_session property changes. This is a convenient wrapper around zbus::blocking::Proxy::receive_property_changed.

Source

pub fn set_transfer_owner_session(&self, value: bool) -> Result<()>

Source

pub fn used_count(&self) -> Result<u32>

Number of times Fetch has been called.

It will track/count Fetch usage only if the calling user is openvpn.

Source

pub fn cached_used_count( &self, ) -> Result<Option<<Result<u32> as ResultAdapter>::Ok>, <Result<u32> as ResultAdapter>::Err>

Get the cached value of the used_count property, or None if the property is not cached.

Source

pub fn receive_used_count_changed( &self, ) -> PropertyIterator<'c, <Result<u32> as ResultAdapter>::Ok>

Create a stream for the used_count property changes. This is a convenient wrapper around zbus::blocking::Proxy::receive_property_changed.

Source

pub fn valid(&self) -> Result<bool>

Contains an indication if the configuration profile is considered functional for a VPN session.

Source

pub fn cached_valid( &self, ) -> Result<Option<<Result<bool> as ResultAdapter>::Ok>, <Result<bool> as ResultAdapter>::Err>

Get the cached value of the valid property, or None if the property is not cached.

Source

pub fn receive_valid_changed( &self, ) -> PropertyIterator<'c, <Result<bool> as ResultAdapter>::Ok>

Create a stream for the valid property changes. This is a convenient wrapper around zbus::blocking::Proxy::receive_property_changed.

Methods from Deref<Target = Proxy<'c>>§

Source

pub fn connection(&self) -> &Connection

Get a reference to the associated connection.

Source

pub fn destination(&self) -> &BusName<'_>

Get a reference to the destination service name.

Source

pub fn path(&self) -> &ObjectPath<'_>

Get a reference to the object path.

Source

pub fn interface(&self) -> &InterfaceName<'_>

Get a reference to the interface.

Source

pub fn introspect(&self) -> Result<String, Error>

Introspect the associated object, and return the XML description.

See the xml module for parsing the result.

Source

pub fn cached_property<T>( &self, property_name: &str, ) -> Result<Option<T>, Error>

Get the cached value of the property property_name.

This returns None if the property is not in the cache. This could be because the cache was invalidated by an update, because caching was disabled for this property or proxy, or because the cache has not yet been populated. Use get_property to fetch the value from the peer.

Source

pub fn cached_property_raw<'p>( &'p self, property_name: &'p str, ) -> Option<impl Deref<Target = Value<'static>> + 'p>

Get the cached value of the property property_name.

Same as cached_property, but gives you access to the raw value stored in the cache. This is useful if you want to avoid allocations and cloning.

Source

pub fn get_property<T>(&self, property_name: &str) -> Result<T, Error>

Get the property property_name.

Get the property value from the cache or call the Get method of the org.freedesktop.DBus.Properties interface.

Source

pub fn set_property<'t, T>( &self, property_name: &str, value: T, ) -> Result<(), Error>
where T: 't + Into<Value<'t>>,

Set the property property_name.

Effectively, call the Set method of the org.freedesktop.DBus.Properties interface.

Source

pub fn call_method<'m, M, B>( &self, method_name: M, body: &B, ) -> Result<Arc<Message>, Error>

Call a method and return the reply.

Typically, you would want to use call method instead. Use this method if you need to deserialize the reply message manually (this way, you can avoid the memory allocation/copying, by deserializing the reply to an unowned type).

Source

pub fn call<'m, M, B, R>(&self, method_name: M, body: &B) -> Result<R, Error>

Call a method and return the reply body.

Use call_method instead if you need to deserialize the reply manually/separately.

Source

pub fn call_with_flags<'m, M, B, R>( &self, method_name: M, flags: BitFlags<MethodFlags>, body: &B, ) -> Result<Option<R>, Error>

Call a method and return the reply body, optionally supplying a set of method flags to control the way the method call message is sent and handled.

Use call instead if you do not need any special handling via additional flags. If the NoReplyExpected flag is passed , this will return None immediately after sending the message, similar to call_noreply

Source

pub fn call_noreply<'m, M, B>( &self, method_name: M, body: &B, ) -> Result<(), Error>

Call a method without expecting a reply

This sets the NoReplyExpected flag on the calling message and does not wait for a reply.

Source

pub fn receive_signal<'m, M>( &self, signal_name: M, ) -> Result<SignalIterator<'m>, Error>
where M: TryInto<MemberName<'m>>, <M as TryInto<MemberName<'m>>>::Error: Into<Error>,

Create a stream for signal named signal_name.

§Errors

Apart from general I/O errors that can result from socket communications, calling this method will also result in an error if the destination service has not yet registered its well-known name with the bus (assuming you’re using the well-known name as destination).

Source

pub fn receive_signal_with_args<'m, M>( &self, signal_name: M, args: &[(u8, &str)], ) -> Result<SignalIterator<'m>, Error>
where M: TryInto<MemberName<'m>>, <M as TryInto<MemberName<'m>>>::Error: Into<Error>,

Same as Proxy::receive_signal but with a filter.

The D-Bus specification allows you to filter signals by their arguments, which helps avoid a lot of unnecessary traffic and processing since the filter is run on the server side. Use this method where possible. Note that this filtering is limited to arguments of string types.

The arguments are passed as a tuples of argument index and expected value.

Source

pub fn receive_all_signals(&self) -> Result<SignalIterator<'static>, Error>

Create a stream for all signals emitted by this service.

§Errors

Apart from general I/O errors that can result from socket communications, calling this method will also result in an error if the destination service has not yet registered its well-known name with the bus (assuming you’re using the well-known name as destination).

Source

pub fn receive_property_changed<'name, T>( &self, name: &'name str, ) -> PropertyIterator<'a, T>
where 'name: 'a,

Get an iterator to receive owner changed events.

If the proxy destination is a unique name, the stream will be notified of the peer disconnection from the bus (with a None value).

If the proxy destination is a well-known name, the stream will be notified whenever the name owner is changed, either by a new peer being granted ownership (Some value) or when the name is released (with a None value).

Note that zbus doesn’t queue the updates. If the listener is slower than the receiver, it will only receive the last update.

Source

pub fn receive_owner_changed(&self) -> Result<OwnerChangedIterator<'_>, Error>

Get an iterator to receive property changed events.

Note that zbus doesn’t queue the updates. If the listener is slower than the receiver, it will only receive the last update.

Source

pub fn inner(&self) -> &Proxy<'a>

Get a reference to the underlying async Proxy.

Trait Implementations§

Source§

impl<'c> AsMut<Proxy<'c>> for ConfigurationNodeProxyBlocking<'c>

Source§

fn as_mut(&mut self) -> &mut Proxy<'c>

Converts this type into a mutable reference of the (usually inferred) input type.
Source§

impl<'c> AsRef<Proxy<'c>> for ConfigurationNodeProxyBlocking<'c>

Source§

fn as_ref(&self) -> &Proxy<'c>

Converts this type into a shared reference of the (usually inferred) input type.
Source§

impl<'c> Clone for ConfigurationNodeProxyBlocking<'c>

Source§

fn clone(&self) -> ConfigurationNodeProxyBlocking<'c>

Returns a duplicate of the value. Read more
1.0.0 · Source§

const fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<'c> Debug for ConfigurationNodeProxyBlocking<'c>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'c> Deref for ConfigurationNodeProxyBlocking<'c>

Source§

type Target = Proxy<'c>

The resulting type after dereferencing.
Source§

fn deref(&self) -> &Self::Target

Dereferences the value.
Source§

impl<'c> DerefMut for ConfigurationNodeProxyBlocking<'c>

Source§

fn deref_mut(&mut self) -> &mut Self::Target

Mutably dereferences the value.
Source§

impl<'c> From<Proxy<'c>> for ConfigurationNodeProxyBlocking<'c>

Source§

fn from(proxy: Proxy<'c>) -> Self

Converts to this type from the input type.
Source§

impl<'a> ProxyDefault for ConfigurationNodeProxyBlocking<'a>

Source§

const INTERFACE: &'static str = "net.openvpn.v3.configuration"

Source§

const DESTINATION: &'static str = "net.openvpn.v3.configuration"

Source§

const PATH: &'static str = "/net/openvpn/v3/configuration"

Source§

impl<'c> Serialize for ConfigurationNodeProxyBlocking<'c>

Source§

fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl<'c> Type for ConfigurationNodeProxyBlocking<'c>

Source§

fn signature() -> Signature<'static>

Get the signature for the implementing type. Read more

Auto Trait Implementations§

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DynamicType for T
where T: Type + ?Sized,

Source§

fn dynamic_signature(&self) -> Signature<'_>

Get the signature for the implementing type. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more