Struct gio::TlsClientConnection
source · #[repr(transparent)]pub struct TlsClientConnection { /* private fields */ }
Expand description
TlsClientConnection
is the client-side subclass of
TlsConnection
, representing a client-side TLS connection.
Properties
accepted-cas
A list of the distinguished names of the Certificate Authorities that the server will accept client certificates signed by. If the server requests a client certificate during the handshake, then this property will be set after the handshake completes.
Each item in the list is a glib::ByteArray
which contains the complete
subject DN of the certificate authority.
Readable
server-identity
A SocketConnectable
describing the identity of the server that
is expected on the other end of the connection.
If the TlsCertificateFlags::BAD_IDENTITY
flag is set in
validation-flags
, this object will be used
to determine the expected identify of the remote end of the
connection; if server-identity
is not set,
or does not match the identity presented by the server, then the
TlsCertificateFlags::BAD_IDENTITY
validation will fail.
In addition to its use in verifying the server certificate, this is also used to give a hint to the server about what certificate we expect, which is useful for servers that serve virtual hosts.
Readable | Writeable | Construct
use-ssl3
SSL 3.0 is no longer supported. See
g_tls_client_connection_set_use_ssl3()
for details.
Readable | Writeable | Construct
validation-flags
What steps to perform when validating a certificate received from
a server. Server certificates that fail to validate in any of the
ways indicated here will be rejected unless the application
overrides the default via accept-certificate
.
GLib guarantees that if certificate verification fails, at least one
flag will be set, but it does not guarantee that all possible flags
will be set. Accordingly, you may not safely decide to ignore any
particular type of error. For example, it would be incorrect to mask
TlsCertificateFlags::EXPIRED
if you want to allow expired certificates,
because this could potentially be the only error flag set even if
other problems exist with the certificate. Therefore, there is no
safe way to use this property. This is not a horrible problem,
though, because you should not be attempting to ignore validation
errors anyway. If you really must ignore TLS certificate errors,
connect to accept-certificate
.
Readable | Writeable | Construct
TlsConnection
advertised-protocols
The list of application-layer protocols that the connection
advertises that it is willing to speak. See
TlsConnectionExtManual::set_advertised_protocols()
.
Readable | Writeable
base-io-stream
The IOStream
that the connection wraps. The connection holds a reference
to this stream, and may run operations on the stream from other threads
throughout its lifetime. Consequently, after the IOStream
has been
constructed, application code may only run its own operations on this
stream when no IOStream
operations are running.
Readable | Writeable | Construct Only
certificate
The connection’s certificate; see
TlsConnectionExt::set_certificate()
.
Readable | Writeable
ciphersuite-name
The name of the TLS ciphersuite in use. See TlsConnectionExt::ciphersuite_name()
.
Readable
database
The certificate database to use when verifying this TLS connection.
If no certificate database is set, then the default database will be
used. See TlsBackendExt::default_database()
.
When using a non-default database, TlsConnection
must fall back to using
the TlsDatabase
to perform certificate verification using
TlsDatabaseExt::verify_chain()
, which means certificate verification will
not be able to make use of TLS session context. This may be less secure.
For example, if you create your own TlsDatabase
that just wraps the
default TlsDatabase
, you might expect that you have not changed anything,
but this is not true because you may have altered the behavior of
TlsConnection
by causing it to use TlsDatabaseExt::verify_chain()
. See the
documentation of TlsDatabaseExt::verify_chain()
for more details on specific
security checks that may not be performed. Accordingly, setting a
non-default database is discouraged except for specialty applications with
unusual security requirements.
Readable | Writeable
interaction
A TlsInteraction
object to be used when the connection or certificate
database need to interact with the user. This will be used to prompt the
user for passwords where necessary.
Readable | Writeable
negotiated-protocol
The application-layer protocol negotiated during the TLS
handshake. See TlsConnectionExt::negotiated_protocol()
.
Readable
peer-certificate
The connection’s peer’s certificate, after the TLS handshake has
completed or failed. Note in particular that this is not yet set
during the emission of accept-certificate
.
(You can watch for a notify
signal on this property to
detect when a handshake has occurred.)
Readable
peer-certificate-errors
The errors noticed while verifying
peer-certificate
. Normally this should be 0, but
it may not be if validation-flags
is not
TlsCertificateFlags::VALIDATE_ALL
, or if
accept-certificate
overrode the default
behavior.
GLib guarantees that if certificate verification fails, at least
one error will be set, but it does not guarantee that all possible
errors will be set. Accordingly, you may not safely decide to
ignore any particular type of error. For example, it would be
incorrect to mask TlsCertificateFlags::EXPIRED
if you want to allow
expired certificates, because this could potentially be the only
error flag set even if other problems exist with the certificate.
Readable
protocol-version
The TLS protocol version in use. See TlsConnectionExt::protocol_version()
.
Readable
rehandshake-mode
The rehandshaking mode. See
TlsConnectionExt::set_rehandshake_mode()
.
Readable | Writeable | Construct
require-close-notify
Whether or not proper TLS close notification is required.
See TlsConnectionExt::set_require_close_notify()
.
Readable | Writeable | Construct
use-system-certdb
Whether or not the system certificate database will be used to
verify peer certificates. See
g_tls_connection_set_use_system_certdb()
.
Readable | Writeable | Construct
Implements
TlsClientConnectionExt
, TlsConnectionExt
, IOStreamExt
, glib::ObjectExt
, TlsConnectionExtManual
, IOStreamExtManual
Implementations§
source§impl TlsClientConnection
impl TlsClientConnection
pub const NONE: Option<&'static TlsClientConnection> = None
sourcepub fn new(
base_io_stream: &impl IsA<IOStream>,
server_identity: Option<&impl IsA<SocketConnectable>>
) -> Result<TlsClientConnection, Error>
pub fn new( base_io_stream: &impl IsA<IOStream>, server_identity: Option<&impl IsA<SocketConnectable>> ) -> Result<TlsClientConnection, Error>
Creates a new TlsClientConnection
wrapping base_io_stream
(which
must have pollable input and output streams) which is assumed to
communicate with the server identified by server_identity
.
See the documentation for base-io-stream
for restrictions
on when application code can run operations on the base_io_stream
after
this function has returned.
base_io_stream
the IOStream
to wrap
server_identity
the expected identity of the server
Returns
the new
TlsClientConnection
, or None
on error
Trait Implementations§
source§impl Clone for TlsClientConnection
impl Clone for TlsClientConnection
source§impl Debug for TlsClientConnection
impl Debug for TlsClientConnection
source§impl Display for TlsClientConnection
impl Display for TlsClientConnection
source§impl HasParamSpec for TlsClientConnection
impl HasParamSpec for TlsClientConnection
type ParamSpec = ParamSpecObject
§type SetValue = TlsClientConnection
type SetValue = TlsClientConnection
type BuilderFn = fn(_: &str) -> ParamSpecObjectBuilder<'_, TlsClientConnection>
fn param_spec_builder() -> Self::BuilderFn
source§impl Hash for TlsClientConnection
impl Hash for TlsClientConnection
source§impl Ord for TlsClientConnection
impl Ord for TlsClientConnection
source§impl<OT: ObjectType> PartialEq<OT> for TlsClientConnection
impl<OT: ObjectType> PartialEq<OT> for TlsClientConnection
source§impl<OT: ObjectType> PartialOrd<OT> for TlsClientConnection
impl<OT: ObjectType> PartialOrd<OT> for TlsClientConnection
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
self
and other
) and is used by the <=
operator. Read moresource§impl StaticType for TlsClientConnection
impl StaticType for TlsClientConnection
source§fn static_type() -> Type
fn static_type() -> Type
Self
.impl Eq for TlsClientConnection
impl IsA<IOStream> for TlsClientConnection
impl IsA<TlsConnection> for TlsClientConnection
Auto Trait Implementations§
impl RefUnwindSafe for TlsClientConnection
impl !Send for TlsClientConnection
impl !Sync for TlsClientConnection
impl Unpin for TlsClientConnection
impl UnwindSafe for TlsClientConnection
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> Cast for Twhere
T: ObjectType,
impl<T> Cast for Twhere T: ObjectType,
source§fn upcast<T>(self) -> Twhere
T: ObjectType,
Self: IsA<T>,
fn upcast<T>(self) -> Twhere T: ObjectType, Self: IsA<T>,
T
. Read moresource§fn upcast_ref<T>(&self) -> &Twhere
T: ObjectType,
Self: IsA<T>,
fn upcast_ref<T>(&self) -> &Twhere T: ObjectType, Self: IsA<T>,
T
. Read moresource§fn downcast<T>(self) -> Result<T, Self>where
T: ObjectType,
Self: CanDowncast<T>,
fn downcast<T>(self) -> Result<T, Self>where T: ObjectType, Self: CanDowncast<T>,
T
. Read moresource§fn downcast_ref<T>(&self) -> Option<&T>where
T: ObjectType,
Self: CanDowncast<T>,
fn downcast_ref<T>(&self) -> Option<&T>where T: ObjectType, Self: CanDowncast<T>,
T
. Read moresource§fn dynamic_cast<T>(self) -> Result<T, Self>where
T: ObjectType,
fn dynamic_cast<T>(self) -> Result<T, Self>where T: ObjectType,
T
. This handles upcasting, downcasting
and casting between interface and interface implementors. All checks are performed at
runtime, while upcast
will do many checks at compile-time already. downcast
will
perform the same checks at runtime as dynamic_cast
, but will also ensure some amount of
compile-time safety. Read moresource§fn dynamic_cast_ref<T>(&self) -> Option<&T>where
T: ObjectType,
fn dynamic_cast_ref<T>(&self) -> Option<&T>where T: ObjectType,
T
. This handles upcasting, downcasting
and casting between interface and interface implementors. All checks are performed at
runtime, while downcast
and upcast
will do many checks at compile-time already. Read moresource§unsafe fn unsafe_cast<T>(self) -> Twhere
T: ObjectType,
unsafe fn unsafe_cast<T>(self) -> Twhere T: ObjectType,
T
unconditionally. Read moresource§unsafe fn unsafe_cast_ref<T>(&self) -> &Twhere
T: ObjectType,
unsafe fn unsafe_cast_ref<T>(&self) -> &Twhere T: ObjectType,
&T
unconditionally. Read moresource§impl<T> FromGlibContainerAsVec<<T as GlibPtrDefault>::GlibType, *const GList> for Twhere
T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
impl<T> FromGlibContainerAsVec<<T as GlibPtrDefault>::GlibType, *const GList> for Twhere T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
source§impl<T> FromGlibContainerAsVec<<T as GlibPtrDefault>::GlibType, *const GPtrArray> for Twhere
T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
impl<T> FromGlibContainerAsVec<<T as GlibPtrDefault>::GlibType, *const GPtrArray> for Twhere T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
source§impl<T> FromGlibContainerAsVec<<T as GlibPtrDefault>::GlibType, *const GSList> for Twhere
T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
impl<T> FromGlibContainerAsVec<<T as GlibPtrDefault>::GlibType, *const GSList> for Twhere T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
source§impl<T> FromGlibContainerAsVec<<T as GlibPtrDefault>::GlibType, *mut GList> for Twhere
T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
impl<T> FromGlibContainerAsVec<<T as GlibPtrDefault>::GlibType, *mut GList> for Twhere T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
source§impl<T> FromGlibContainerAsVec<<T as GlibPtrDefault>::GlibType, *mut GPtrArray> for Twhere
T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
impl<T> FromGlibContainerAsVec<<T as GlibPtrDefault>::GlibType, *mut GPtrArray> for Twhere T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
source§impl<T> FromGlibContainerAsVec<<T as GlibPtrDefault>::GlibType, *mut GSList> for Twhere
T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
impl<T> FromGlibContainerAsVec<<T as GlibPtrDefault>::GlibType, *mut GSList> for Twhere T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
source§impl<T> FromGlibPtrArrayContainerAsVec<<T as GlibPtrDefault>::GlibType, *const GList> for Twhere
T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
impl<T> FromGlibPtrArrayContainerAsVec<<T as GlibPtrDefault>::GlibType, *const GList> for Twhere T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
source§impl<T> FromGlibPtrArrayContainerAsVec<<T as GlibPtrDefault>::GlibType, *const GPtrArray> for Twhere
T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
impl<T> FromGlibPtrArrayContainerAsVec<<T as GlibPtrDefault>::GlibType, *const GPtrArray> for Twhere T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
source§impl<T> FromGlibPtrArrayContainerAsVec<<T as GlibPtrDefault>::GlibType, *const GSList> for Twhere
T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
impl<T> FromGlibPtrArrayContainerAsVec<<T as GlibPtrDefault>::GlibType, *const GSList> for Twhere T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
source§impl<T> FromGlibPtrArrayContainerAsVec<<T as GlibPtrDefault>::GlibType, *mut GList> for Twhere
T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
impl<T> FromGlibPtrArrayContainerAsVec<<T as GlibPtrDefault>::GlibType, *mut GList> for Twhere T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
source§impl<T> FromGlibPtrArrayContainerAsVec<<T as GlibPtrDefault>::GlibType, *mut GPtrArray> for Twhere
T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
impl<T> FromGlibPtrArrayContainerAsVec<<T as GlibPtrDefault>::GlibType, *mut GPtrArray> for Twhere T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
source§impl<T> FromGlibPtrArrayContainerAsVec<<T as GlibPtrDefault>::GlibType, *mut GSList> for Twhere
T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
impl<T> FromGlibPtrArrayContainerAsVec<<T as GlibPtrDefault>::GlibType, *mut GSList> for Twhere T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
source§impl<O> IOStreamExt for Owhere
O: IsA<IOStream>,
impl<O> IOStreamExt for Owhere O: IsA<IOStream>,
source§fn clear_pending(&self)
fn clear_pending(&self)
self
.source§fn close(
&self,
cancellable: Option<&impl IsA<Cancellable>>
) -> Result<(), Error>
fn close( &self, cancellable: Option<&impl IsA<Cancellable>> ) -> Result<(), Error>
source§fn close_async<P>(
&self,
io_priority: Priority,
cancellable: Option<&impl IsA<Cancellable>>,
callback: P
)where
P: FnOnce(Result<(), Error>) + 'static,
fn close_async<P>( &self, io_priority: Priority, cancellable: Option<&impl IsA<Cancellable>>, callback: P )where P: FnOnce(Result<(), Error>) + 'static,
callback
will be
called. You can then call g_io_stream_close_finish()
to get
the result of the operation. Read morefn close_future( &self, io_priority: Priority ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + 'static, Global>>
source§fn input_stream(&self) -> InputStream
fn input_stream(&self) -> InputStream
source§fn output_stream(&self) -> OutputStream
fn output_stream(&self) -> OutputStream
source§fn has_pending(&self) -> bool
fn has_pending(&self) -> bool
fn connect_closed_notify<F>(&self, f: F) -> SignalHandlerIdwhere F: Fn(&O) + 'static,
source§impl<O> IOStreamExtManual for Owhere
O: IsA<IOStream>,
impl<O> IOStreamExtManual for Owhere O: IsA<IOStream>,
fn into_async_read_write(self) -> Result<IOStreamAsyncReadWrite<Self>, Self>
source§impl<T> IntoClosureReturnValue for Twhere
T: Into<Value>,
impl<T> IntoClosureReturnValue for Twhere T: Into<Value>,
fn into_closure_return_value(self) -> Option<Value>
source§impl<T> ObjectExt for Twhere
T: ObjectType,
impl<T> ObjectExt for Twhere T: ObjectType,
source§fn is<U>(&self) -> boolwhere
U: StaticType,
fn is<U>(&self) -> boolwhere U: StaticType,
true
if the object is an instance of (can be cast to) T
.source§fn object_class(&self) -> &Class<Object>
fn object_class(&self) -> &Class<Object>
ObjectClass
of the object. Read moresource§fn class_of<U>(&self) -> Option<&Class<U>>where
U: IsClass,
fn class_of<U>(&self) -> Option<&Class<U>>where U: IsClass,
T
. Read moresource§fn interface<U>(&self) -> Option<InterfaceRef<'_, U>>where
U: IsInterface,
fn interface<U>(&self) -> Option<InterfaceRef<'_, U>>where U: IsInterface,
T
of the object. Read moresource§fn set_property_from_value(&self, property_name: &str, value: &Value)
fn set_property_from_value(&self, property_name: &str, value: &Value)
source§fn set_properties(&self, property_values: &[(&str, &dyn ToValue)])
fn set_properties(&self, property_values: &[(&str, &dyn ToValue)])
source§fn set_properties_from_value(&self, property_values: &[(&str, Value)])
fn set_properties_from_value(&self, property_values: &[(&str, Value)])
source§fn property<V>(&self, property_name: &str) -> Vwhere
V: for<'b> FromValue<'b> + 'static,
fn property<V>(&self, property_name: &str) -> Vwhere V: for<'b> FromValue<'b> + 'static,
property_name
of the object and cast it to the type V. Read moresource§fn property_value(&self, property_name: &str) -> Value
fn property_value(&self, property_name: &str) -> Value
property_name
of the object. Read moresource§fn property_type(&self, property_name: &str) -> Option<Type>
fn property_type(&self, property_name: &str) -> Option<Type>
property_name
of this object. Read moresource§fn find_property(&self, property_name: &str) -> Option<ParamSpec>
fn find_property(&self, property_name: &str) -> Option<ParamSpec>
ParamSpec
of the property property_name
of this object.source§fn list_properties(&self) -> PtrSlice<ParamSpec>
fn list_properties(&self) -> PtrSlice<ParamSpec>
ParamSpec
of the properties of this object.source§fn freeze_notify(&self) -> PropertyNotificationFreezeGuard
fn freeze_notify(&self) -> PropertyNotificationFreezeGuard
source§unsafe fn set_qdata<QD>(&self, key: Quark, value: QD)where
QD: 'static,
unsafe fn set_qdata<QD>(&self, key: Quark, value: QD)where QD: 'static,
key
. Read moresource§unsafe fn qdata<QD>(&self, key: Quark) -> Option<NonNull<QD>>where
QD: 'static,
unsafe fn qdata<QD>(&self, key: Quark) -> Option<NonNull<QD>>where QD: 'static,
key
. Read moresource§unsafe fn steal_qdata<QD>(&self, key: Quark) -> Option<QD>where
QD: 'static,
unsafe fn steal_qdata<QD>(&self, key: Quark) -> Option<QD>where QD: 'static,
key
. Read moresource§unsafe fn set_data<QD>(&self, key: &str, value: QD)where
QD: 'static,
unsafe fn set_data<QD>(&self, key: &str, value: QD)where QD: 'static,
key
. Read moresource§unsafe fn data<QD>(&self, key: &str) -> Option<NonNull<QD>>where
QD: 'static,
unsafe fn data<QD>(&self, key: &str) -> Option<NonNull<QD>>where QD: 'static,
key
. Read moresource§unsafe fn steal_data<QD>(&self, key: &str) -> Option<QD>where
QD: 'static,
unsafe fn steal_data<QD>(&self, key: &str) -> Option<QD>where QD: 'static,
key
. Read moresource§fn block_signal(&self, handler_id: &SignalHandlerId)
fn block_signal(&self, handler_id: &SignalHandlerId)
source§fn unblock_signal(&self, handler_id: &SignalHandlerId)
fn unblock_signal(&self, handler_id: &SignalHandlerId)
source§fn stop_signal_emission(&self, signal_id: SignalId, detail: Option<Quark>)
fn stop_signal_emission(&self, signal_id: SignalId, detail: Option<Quark>)
source§fn stop_signal_emission_by_name(&self, signal_name: &str)
fn stop_signal_emission_by_name(&self, signal_name: &str)
source§fn connect<F>(
&self,
signal_name: &str,
after: bool,
callback: F
) -> SignalHandlerIdwhere
F: Fn(&[Value]) -> Option<Value> + Send + Sync + 'static,
fn connect<F>( &self, signal_name: &str, after: bool, callback: F ) -> SignalHandlerIdwhere F: Fn(&[Value]) -> Option<Value> + Send + Sync + 'static,
signal_name
on this object. Read moresource§fn connect_id<F>(
&self,
signal_id: SignalId,
details: Option<Quark>,
after: bool,
callback: F
) -> SignalHandlerIdwhere
F: Fn(&[Value]) -> Option<Value> + Send + Sync + 'static,
fn connect_id<F>( &self, signal_id: SignalId, details: Option<Quark>, after: bool, callback: F ) -> SignalHandlerIdwhere F: Fn(&[Value]) -> Option<Value> + Send + Sync + 'static,
signal_id
on this object. Read moresource§fn connect_local<F>(
&self,
signal_name: &str,
after: bool,
callback: F
) -> SignalHandlerIdwhere
F: Fn(&[Value]) -> Option<Value> + 'static,
fn connect_local<F>( &self, signal_name: &str, after: bool, callback: F ) -> SignalHandlerIdwhere F: Fn(&[Value]) -> Option<Value> + 'static,
signal_name
on this object. Read moresource§fn connect_local_id<F>(
&self,
signal_id: SignalId,
details: Option<Quark>,
after: bool,
callback: F
) -> SignalHandlerIdwhere
F: Fn(&[Value]) -> Option<Value> + 'static,
fn connect_local_id<F>( &self, signal_id: SignalId, details: Option<Quark>, after: bool, callback: F ) -> SignalHandlerIdwhere F: Fn(&[Value]) -> Option<Value> + 'static,
signal_id
on this object. Read moresource§unsafe fn connect_unsafe<F>(
&self,
signal_name: &str,
after: bool,
callback: F
) -> SignalHandlerIdwhere
F: Fn(&[Value]) -> Option<Value>,
unsafe fn connect_unsafe<F>( &self, signal_name: &str, after: bool, callback: F ) -> SignalHandlerIdwhere F: Fn(&[Value]) -> Option<Value>,
signal_name
on this object. Read moresource§unsafe fn connect_unsafe_id<F>(
&self,
signal_id: SignalId,
details: Option<Quark>,
after: bool,
callback: F
) -> SignalHandlerIdwhere
F: Fn(&[Value]) -> Option<Value>,
unsafe fn connect_unsafe_id<F>( &self, signal_id: SignalId, details: Option<Quark>, after: bool, callback: F ) -> SignalHandlerIdwhere F: Fn(&[Value]) -> Option<Value>,
signal_id
on this object. Read moresource§fn connect_closure(
&self,
signal_name: &str,
after: bool,
closure: RustClosure
) -> SignalHandlerId
fn connect_closure( &self, signal_name: &str, after: bool, closure: RustClosure ) -> SignalHandlerId
signal_name
on this object. Read moresource§fn connect_closure_id(
&self,
signal_id: SignalId,
details: Option<Quark>,
after: bool,
closure: RustClosure
) -> SignalHandlerId
fn connect_closure_id( &self, signal_id: SignalId, details: Option<Quark>, after: bool, closure: RustClosure ) -> SignalHandlerId
signal_id
on this object. Read moresource§fn watch_closure(&self, closure: &impl AsRef<Closure>)
fn watch_closure(&self, closure: &impl AsRef<Closure>)
closure
to the lifetime of the object. When
the object’s reference count drops to zero, the closure will be
invalidated. An invalidated closure will ignore any calls to
invoke_with_values
, or
invoke
when using Rust closures.source§fn emit<R>(&self, signal_id: SignalId, args: &[&dyn ToValue]) -> Rwhere
R: TryFromClosureReturnValue,
fn emit<R>(&self, signal_id: SignalId, args: &[&dyn ToValue]) -> Rwhere R: TryFromClosureReturnValue,
source§fn emit_with_values(&self, signal_id: SignalId, args: &[Value]) -> Option<Value>
fn emit_with_values(&self, signal_id: SignalId, args: &[Value]) -> Option<Value>
Self::emit
but takes Value
for the arguments.source§fn emit_by_name<R>(&self, signal_name: &str, args: &[&dyn ToValue]) -> Rwhere
R: TryFromClosureReturnValue,
fn emit_by_name<R>(&self, signal_name: &str, args: &[&dyn ToValue]) -> Rwhere R: TryFromClosureReturnValue,
source§fn emit_by_name_with_values(
&self,
signal_name: &str,
args: &[Value]
) -> Option<Value>
fn emit_by_name_with_values( &self, signal_name: &str, args: &[Value] ) -> Option<Value>
source§fn emit_by_name_with_details<R>(
&self,
signal_name: &str,
details: Quark,
args: &[&dyn ToValue]
) -> Rwhere
R: TryFromClosureReturnValue,
fn emit_by_name_with_details<R>( &self, signal_name: &str, details: Quark, args: &[&dyn ToValue] ) -> Rwhere R: TryFromClosureReturnValue,
source§fn emit_by_name_with_details_and_values(
&self,
signal_name: &str,
details: Quark,
args: &[Value]
) -> Option<Value>
fn emit_by_name_with_details_and_values( &self, signal_name: &str, details: Quark, args: &[Value] ) -> Option<Value>
source§fn emit_with_details<R>(
&self,
signal_id: SignalId,
details: Quark,
args: &[&dyn ToValue]
) -> Rwhere
R: TryFromClosureReturnValue,
fn emit_with_details<R>( &self, signal_id: SignalId, details: Quark, args: &[&dyn ToValue] ) -> Rwhere R: TryFromClosureReturnValue,
source§fn emit_with_details_and_values(
&self,
signal_id: SignalId,
details: Quark,
args: &[Value]
) -> Option<Value>
fn emit_with_details_and_values( &self, signal_id: SignalId, details: Quark, args: &[Value] ) -> Option<Value>
source§fn disconnect(&self, handler_id: SignalHandlerId)
fn disconnect(&self, handler_id: SignalHandlerId)
source§fn connect_notify<F>(&self, name: Option<&str>, f: F) -> SignalHandlerIdwhere
F: Fn(&T, &ParamSpec) + Send + Sync + 'static,
fn connect_notify<F>(&self, name: Option<&str>, f: F) -> SignalHandlerIdwhere F: Fn(&T, &ParamSpec) + Send + Sync + 'static,
notify
signal of the object. Read moresource§fn connect_notify_local<F>(&self, name: Option<&str>, f: F) -> SignalHandlerIdwhere
F: Fn(&T, &ParamSpec) + 'static,
fn connect_notify_local<F>(&self, name: Option<&str>, f: F) -> SignalHandlerIdwhere F: Fn(&T, &ParamSpec) + 'static,
notify
signal of the object. Read moresource§unsafe fn connect_notify_unsafe<F>(
&self,
name: Option<&str>,
f: F
) -> SignalHandlerIdwhere
F: Fn(&T, &ParamSpec),
unsafe fn connect_notify_unsafe<F>( &self, name: Option<&str>, f: F ) -> SignalHandlerIdwhere F: Fn(&T, &ParamSpec),
notify
signal of the object. Read moresource§fn notify(&self, property_name: &str)
fn notify(&self, property_name: &str)
source§fn notify_by_pspec(&self, pspec: &ParamSpec)
fn notify_by_pspec(&self, pspec: &ParamSpec)
source§fn add_weak_ref_notify<F>(&self, f: F) -> WeakRefNotify<T>where
F: FnOnce() + Send + 'static,
fn add_weak_ref_notify<F>(&self, f: F) -> WeakRefNotify<T>where F: FnOnce() + Send + 'static,
source§fn add_weak_ref_notify_local<F>(&self, f: F) -> WeakRefNotify<T>where
F: FnOnce() + 'static,
fn add_weak_ref_notify_local<F>(&self, f: F) -> WeakRefNotify<T>where F: FnOnce() + 'static,
source§fn bind_property<'f, 't, O, 'a>(
&'a self,
source_property: &'a str,
target: &'a O,
target_property: &'a str
) -> BindingBuilder<'a, 'f, 't>where
O: ObjectType,
fn bind_property<'f, 't, O, 'a>( &'a self, source_property: &'a str, target: &'a O, target_property: &'a str ) -> BindingBuilder<'a, 'f, 't>where O: ObjectType,
source§unsafe fn run_dispose(&self)
unsafe fn run_dispose(&self)
source§impl<T> PropertyGet for Twhere
T: HasParamSpec,
impl<T> PropertyGet for Twhere T: HasParamSpec,
source§impl<T> StaticTypeExt for Twhere
T: StaticType,
impl<T> StaticTypeExt for Twhere T: StaticType,
source§fn ensure_type()
fn ensure_type()
source§impl<O> TlsClientConnectionExt for Owhere
O: IsA<TlsClientConnection>,
impl<O> TlsClientConnectionExt for Owhere O: IsA<TlsClientConnection>,
source§fn copy_session_state(&self, source: &impl IsA<TlsClientConnection>)
fn copy_session_state(&self, source: &impl IsA<TlsClientConnection>)
source
should have already completed a handshake and, since TLS 1.3,
it should have been used to read data at least once. self
should not
have completed a handshake. Read moresource§fn server_identity(&self) -> Option<SocketConnectable>
fn server_identity(&self) -> Option<SocketConnectable>
self
’s expected server identity Read moresource§fn validation_flags(&self) -> TlsCertificateFlags
fn validation_flags(&self) -> TlsCertificateFlags
self
’s validation flags Read moresource§fn set_server_identity(&self, identity: &impl IsA<SocketConnectable>)
fn set_server_identity(&self, identity: &impl IsA<SocketConnectable>)
self
’s expected server identity, which is used both to tell
servers on virtual hosts which certificate to present, and also
to let self
know what name to look for in the certificate when
performing TlsCertificateFlags::BAD_IDENTITY
validation, if enabled. Read moresource§fn set_validation_flags(&self, flags: TlsCertificateFlags)
fn set_validation_flags(&self, flags: TlsCertificateFlags)
self
’s validation flags, to override the default set of
checks performed when validating a server certificate. By default,
TlsCertificateFlags::VALIDATE_ALL
is used. Read morefn connect_accepted_cas_notify<F>(&self, f: F) -> SignalHandlerIdwhere F: Fn(&O) + 'static,
fn connect_server_identity_notify<F>(&self, f: F) -> SignalHandlerIdwhere F: Fn(&O) + 'static,
fn connect_validation_flags_notify<F>(&self, f: F) -> SignalHandlerIdwhere F: Fn(&O) + 'static,
source§impl<O> TlsConnectionExt for Owhere
O: IsA<TlsConnection>,
impl<O> TlsConnectionExt for Owhere O: IsA<TlsConnection>,
source§fn emit_accept_certificate(
&self,
peer_cert: &impl IsA<TlsCertificate>,
errors: TlsCertificateFlags
) -> bool
fn emit_accept_certificate( &self, peer_cert: &impl IsA<TlsCertificate>, errors: TlsCertificateFlags ) -> bool
source§fn certificate(&self) -> Option<TlsCertificate>
fn certificate(&self) -> Option<TlsCertificate>
source§fn ciphersuite_name(&self) -> Option<GString>
fn ciphersuite_name(&self) -> Option<GString>
v2_70
only.None
if the
connection has not handshaked or has been closed. Beware that the TLS
backend may use any of multiple different naming conventions, because
OpenSSL and GnuTLS have their own ciphersuite naming conventions that
are different from each other and different from the standard, IANA-
registered ciphersuite names. The ciphersuite name is intended to be
displayed to the user for informative purposes only, and parsing it
is not recommended. Read moresource§fn database(&self) -> Option<TlsDatabase>
fn database(&self) -> Option<TlsDatabase>
self
uses to verify
peer certificates. See set_database()
. Read moresource§fn interaction(&self) -> Option<TlsInteraction>
fn interaction(&self) -> Option<TlsInteraction>
source§fn negotiated_protocol(&self) -> Option<GString>
fn negotiated_protocol(&self) -> Option<GString>
v2_60
only.source§fn peer_certificate(&self) -> Option<TlsCertificate>
fn peer_certificate(&self) -> Option<TlsCertificate>
self
’s peer’s certificate after the handshake has completed
or failed. (It is not set during the emission of
accept-certificate
.) Read moresource§fn peer_certificate_errors(&self) -> TlsCertificateFlags
fn peer_certificate_errors(&self) -> TlsCertificateFlags
self
’s peer’s
certificate, after the handshake has completed or failed. (It is
not set during the emission of accept-certificate
.) Read moresource§fn protocol_version(&self) -> TlsProtocolVersion
fn protocol_version(&self) -> TlsProtocolVersion
v2_70
only.TlsProtocolVersion::Unknown
if the connection has not handshaked, or
has been closed, or if the TLS backend has implemented a protocol version
that is not a recognized TlsProtocolVersion
. Read moresource§fn rehandshake_mode(&self) -> TlsRehandshakeMode
fn rehandshake_mode(&self) -> TlsRehandshakeMode
source§fn requires_close_notify(&self) -> bool
fn requires_close_notify(&self) -> bool
self
expects a proper TLS close notification
when the connection is closed. See
set_require_close_notify()
for details. Read moresource§fn handshake(
&self,
cancellable: Option<&impl IsA<Cancellable>>
) -> Result<(), Error>
fn handshake( &self, cancellable: Option<&impl IsA<Cancellable>> ) -> Result<(), Error>
self
. Read moresource§fn handshake_async<P>(
&self,
io_priority: Priority,
cancellable: Option<&impl IsA<Cancellable>>,
callback: P
)where
P: FnOnce(Result<(), Error>) + 'static,
fn handshake_async<P>( &self, io_priority: Priority, cancellable: Option<&impl IsA<Cancellable>>, callback: P )where P: FnOnce(Result<(), Error>) + 'static,
fn handshake_future( &self, io_priority: Priority ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + 'static, Global>>
source§fn set_certificate(&self, certificate: &impl IsA<TlsCertificate>)
fn set_certificate(&self, certificate: &impl IsA<TlsCertificate>)
self
will present to its peer
during the TLS handshake. For a TlsServerConnection
, it is
mandatory to set this, and that will normally be done at construct
time. Read moresource§fn set_database(&self, database: Option<&impl IsA<TlsDatabase>>)
fn set_database(&self, database: Option<&impl IsA<TlsDatabase>>)
TlsBackendExt::default_database()
. If set to None
, then
peer certificate validation will always set the
TlsCertificateFlags::UNKNOWN_CA
error (meaning
accept-certificate
will always be emitted on
client-side connections, unless that bit is not set in
validation-flags
). Read moresource§fn set_interaction(&self, interaction: Option<&impl IsA<TlsInteraction>>)
fn set_interaction(&self, interaction: Option<&impl IsA<TlsInteraction>>)
source§fn set_rehandshake_mode(&self, mode: TlsRehandshakeMode)
fn set_rehandshake_mode(&self, mode: TlsRehandshakeMode)
source§fn set_require_close_notify(&self, require_close_notify: bool)
fn set_require_close_notify(&self, require_close_notify: bool)
self
expects a proper TLS close notification
before the connection is closed. If this is true
(the default),
then self
will expect to receive a TLS close notification from its
peer before the connection is closed, and will return a
TlsError::Eof
error if the connection is closed without proper
notification (since this may indicate a network error, or
man-in-the-middle attack). Read moresource§fn advertised_protocols(&self) -> Vec<GString, Global>
fn advertised_protocols(&self) -> Vec<GString, Global>
v2_60
only.TlsConnectionExtManual::set_advertised_protocols()
.source§fn base_io_stream(&self) -> Option<IOStream>
fn base_io_stream(&self) -> Option<IOStream>
IOStream
that the connection wraps. The connection holds a reference
to this stream, and may run operations on the stream from other threads
throughout its lifetime. Consequently, after the IOStream
has been
constructed, application code may only run its own operations on this
stream when no IOStream
operations are running.source§fn connect_accept_certificate<F>(&self, f: F) -> SignalHandlerIdwhere
F: Fn(&O, &TlsCertificate, TlsCertificateFlags) -> bool + 'static,
fn connect_accept_certificate<F>(&self, f: F) -> SignalHandlerIdwhere F: Fn(&O, &TlsCertificate, TlsCertificateFlags) -> bool + 'static,
peer_cert
’s certification path by
calling TlsCertificateExt::issuer()
on it. Read moresource§fn connect_advertised_protocols_notify<F>(&self, f: F) -> SignalHandlerIdwhere
F: Fn(&O) + 'static,
fn connect_advertised_protocols_notify<F>(&self, f: F) -> SignalHandlerIdwhere F: Fn(&O) + 'static,
v2_60
only.fn connect_certificate_notify<F>(&self, f: F) -> SignalHandlerIdwhere F: Fn(&O) + 'static,
source§fn connect_ciphersuite_name_notify<F>(&self, f: F) -> SignalHandlerIdwhere
F: Fn(&O) + 'static,
fn connect_ciphersuite_name_notify<F>(&self, f: F) -> SignalHandlerIdwhere F: Fn(&O) + 'static,
v2_70
only.fn connect_database_notify<F>(&self, f: F) -> SignalHandlerIdwhere F: Fn(&O) + 'static,
fn connect_interaction_notify<F>(&self, f: F) -> SignalHandlerIdwhere F: Fn(&O) + 'static,
source§fn connect_negotiated_protocol_notify<F>(&self, f: F) -> SignalHandlerIdwhere
F: Fn(&O) + 'static,
fn connect_negotiated_protocol_notify<F>(&self, f: F) -> SignalHandlerIdwhere F: Fn(&O) + 'static,
v2_60
only.fn connect_peer_certificate_notify<F>(&self, f: F) -> SignalHandlerIdwhere F: Fn(&O) + 'static,
fn connect_peer_certificate_errors_notify<F>(&self, f: F) -> SignalHandlerIdwhere F: Fn(&O) + 'static,
source§fn connect_protocol_version_notify<F>(&self, f: F) -> SignalHandlerIdwhere
F: Fn(&O) + 'static,
fn connect_protocol_version_notify<F>(&self, f: F) -> SignalHandlerIdwhere F: Fn(&O) + 'static,
v2_70
only.fn connect_rehandshake_mode_notify<F>(&self, f: F) -> SignalHandlerIdwhere F: Fn(&O) + 'static,
fn connect_require_close_notify_notify<F>(&self, f: F) -> SignalHandlerIdwhere F: Fn(&O) + 'static,
source§impl<O> TlsConnectionExtManual for Owhere
O: IsA<TlsConnection>,
impl<O> TlsConnectionExtManual for Owhere O: IsA<TlsConnection>,
source§fn channel_binding_data(
&self,
type_: TlsChannelBindingType
) -> Result<ByteArray, Error>
fn channel_binding_data( &self, type_: TlsChannelBindingType ) -> Result<ByteArray, Error>
v2_66
only.source§fn set_advertised_protocols(&self, protocols: impl IntoStrV)
fn set_advertised_protocols(&self, protocols: impl IntoStrV)
v2_60
only.TlsConnectionExt::negotiated_protocol()
to find the negotiated
protocol after the handshake. Specifying None
for the the value
of protocols
will disable ALPN negotiation. Read more