Struct gio::TlsConnection
source · pub struct TlsConnection { /* private fields */ }
Expand description
GTlsConnection
is the base TLS connection class type, which wraps
a IOStream
and provides TLS encryption on top of it. Its
subclasses, TlsClientConnection
and
TlsServerConnection
, implement client-side and server-side TLS,
respectively.
For DTLS (Datagram TLS) support, see Gio::DtlsConnection
.
This is an Abstract Base Class, you cannot instantiate it.
§Properties
§advertised-protocols
The list of application-layer protocols that the connection advertises that it is willing to speak. See g_tls_connection_set_advertised_protocols().
Readable | Writeable
§base-io-stream
The #GIOStream 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 #GIOStream has been constructed, application code may only run its own operations on this stream when no #GIOStream operations are running.
Readable | Writeable | Construct Only
§certificate
The connection’s certificate; see g_tls_connection_set_certificate().
Readable | Writeable
§ciphersuite-name
The name of the TLS ciphersuite in use. See g_tls_connection_get_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 g_tls_backend_get_default_database().
When using a non-default database, #GTlsConnection must fall back to using the #GTlsDatabase to perform certificate verification using g_tls_database_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 #GTlsDatabase that just wraps the default #GTlsDatabase, you might expect that you have not changed anything, but this is not true because you may have altered the behavior of #GTlsConnection by causing it to use g_tls_database_verify_chain(). See the documentation of g_tls_database_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 #GTlsInteraction 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 g_tls_connection_get_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 #GTlsConnection::accept-certificate.
(You can watch for a #GObject::notify signal on this property to detect when a handshake has occurred.)
Readable
§peer-certificate-errors
The errors noticed while verifying
#GTlsConnection:peer-certificate. Normally this should be 0, but
it may not be if #GTlsClientConnection:validation-flags is not
TlsCertificateFlags::VALIDATE_ALL
, or if
#GTlsConnection::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 g_tls_connection_get_protocol_version().
Readable
§rehandshake-mode
The rehandshaking mode. See g_tls_connection_set_rehandshake_mode().
Readable | Writeable | Construct
§require-close-notify
Whether or not proper TLS close notification is required. See g_tls_connection_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
IOStream
§closed
Whether the stream is closed.
Readable
§input-stream
The InputStream
to read from.
Readable
§output-stream
The OutputStream
to write to.
Readable
§Signals
§accept-certificate
Emitted during the TLS handshake after the peer certificate has been received. You can examine @peer_cert’s certification path by calling g_tls_certificate_get_issuer() on it.
For a client-side connection, @peer_cert is the server’s
certificate, and the signal will only be emitted if the
certificate was not acceptable according to @conn’s
#GTlsClientConnection:validation_flags. If you would like the
certificate to be accepted despite @errors, return true
from the
signal handler. Otherwise, if no handler accepts the certificate,
the handshake will fail with TlsError::BadCertificate
.
GLib guarantees that if certificate verification fails, this signal
will be emitted with at least one error will be set in @errors, 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 ignore
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.
For a server-side connection, @peer_cert is the certificate
presented by the client, if this was requested via the server’s
#GTlsServerConnection:authentication_mode. On the server side,
the signal is always emitted when the client presents a
certificate, and the certificate will only be accepted if a
handler returns true
.
Note that if this signal is emitted as part of asynchronous I/O
in the main thread, then you should not attempt to interact with
the user before returning from the signal handler. If you want to
let the user decide whether or not to accept the certificate, you
would have to return false
from the signal handler on the first
attempt, and then after the connection attempt returns a
TlsError::BadCertificate
, you can interact with the user, and
if the user decides to accept the certificate, remember that fact,
create a new connection, and return true
from the signal handler
the next time.
If you are doing I/O in another thread, you do not need to worry about this, and can simply block in the signal handler until the UI thread returns an answer.
§Implements
TlsConnectionExt
, IOStreamExt
, [trait@glib::ObjectExt
], TlsConnectionExtManual
, IOStreamExtManual
GLib type: GObject with reference counted clone semantics.
Implementations§
source§impl TlsConnection
impl TlsConnection
pub const NONE: Option<&'static TlsConnection> = None
Trait Implementations§
source§impl Clone for TlsConnection
impl Clone for TlsConnection
source§impl Debug for TlsConnection
impl Debug for TlsConnection
source§impl HasParamSpec for TlsConnection
impl HasParamSpec for TlsConnection
type ParamSpec = ParamSpecObject
§type SetValue = TlsConnection
type SetValue = TlsConnection
type BuilderFn = fn(_: &str) -> ParamSpecObjectBuilder<'_, TlsConnection>
fn param_spec_builder() -> Self::BuilderFn
source§impl Hash for TlsConnection
impl Hash for TlsConnection
source§impl Ord for TlsConnection
impl Ord for TlsConnection
source§fn cmp(&self, other: &Self) -> Ordering
fn cmp(&self, other: &Self) -> Ordering
Comparison for two GObjects.
Compares the memory addresses of the provided objects.
1.21.0 · source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
source§impl ParentClassIs for TlsConnection
impl ParentClassIs for TlsConnection
source§impl<OT: ObjectType> PartialEq<OT> for TlsConnection
impl<OT: ObjectType> PartialEq<OT> for TlsConnection
source§impl<OT: ObjectType> PartialOrd<OT> for TlsConnection
impl<OT: ObjectType> PartialOrd<OT> for TlsConnection
source§fn partial_cmp(&self, other: &OT) -> Option<Ordering>
fn partial_cmp(&self, other: &OT) -> Option<Ordering>
Partial comparison for two GObjects.
Compares the memory addresses of the provided objects.
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 TlsConnection
impl StaticType for TlsConnection
source§fn static_type() -> Type
fn static_type() -> Type
Self
.impl Eq for TlsConnection
impl IsA<IOStream> for TlsConnection
impl IsA<TlsConnection> for TlsClientConnection
impl IsA<TlsConnection> for TlsServerConnection
Auto Trait Implementations§
impl Freeze for TlsConnection
impl RefUnwindSafe for TlsConnection
impl !Send for TlsConnection
impl !Sync for TlsConnection
impl Unpin for TlsConnection
impl UnwindSafe for TlsConnection
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: MayDowncastTo<T>,
fn downcast<T>(self) -> Result<T, Self>where
T: ObjectType,
Self: MayDowncastTo<T>,
T
. Read moresource§fn downcast_ref<T>(&self) -> Option<&T>where
T: ObjectType,
Self: MayDowncastTo<T>,
fn downcast_ref<T>(&self) -> Option<&T>where
T: ObjectType,
Self: MayDowncastTo<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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)source§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 O
impl<O> IOStreamExt for O
source§fn clear_pending(&self)
fn clear_pending(&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: FnOnce(Result<(), Error>) + 'static>(
&self,
io_priority: Priority,
cancellable: Option<&impl IsA<Cancellable>>,
callback: P,
)
fn close_async<P: FnOnce(Result<(), Error>) + 'static>( &self, io_priority: Priority, cancellable: Option<&impl IsA<Cancellable>>, callback: P, )
fn close_future( &self, io_priority: Priority, ) -> Pin<Box_<dyn Future<Output = Result<(), Error>> + 'static>>
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: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId
source§impl<O> IOStreamExtManual for O
impl<O> IOStreamExtManual for O
fn into_async_read_write(self) -> Result<IOStreamAsyncReadWrite<Self>, Self>
source§impl<T> IntoClosureReturnValue for T
impl<T> IntoClosureReturnValue for T
fn into_closure_return_value(self) -> Option<Value>
source§impl<U> IsSubclassableExt for Uwhere
U: IsClass + ParentClassIs,
impl<U> IsSubclassableExt for Uwhere
U: IsClass + ParentClassIs,
fn parent_class_init<T>(class: &mut Class<U>)
fn parent_instance_init<T>(instance: &mut InitializingObject<T>)
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,
) -> SignalHandlerId
fn connect<F>( &self, signal_name: &str, after: bool, callback: F, ) -> SignalHandlerId
signal_name
on this object. Read moresource§fn connect_id<F>(
&self,
signal_id: SignalId,
details: Option<Quark>,
after: bool,
callback: F,
) -> SignalHandlerId
fn connect_id<F>( &self, signal_id: SignalId, details: Option<Quark>, after: bool, callback: F, ) -> SignalHandlerId
signal_id
on this object. Read moresource§fn connect_local<F>(
&self,
signal_name: &str,
after: bool,
callback: F,
) -> SignalHandlerId
fn connect_local<F>( &self, signal_name: &str, after: bool, callback: F, ) -> SignalHandlerId
signal_name
on this object. Read moresource§fn connect_local_id<F>(
&self,
signal_id: SignalId,
details: Option<Quark>,
after: bool,
callback: F,
) -> SignalHandlerId
fn connect_local_id<F>( &self, signal_id: SignalId, details: Option<Quark>, after: bool, callback: F, ) -> SignalHandlerId
signal_id
on this object. Read moresource§unsafe fn connect_unsafe<F>(
&self,
signal_name: &str,
after: bool,
callback: F,
) -> SignalHandlerId
unsafe fn connect_unsafe<F>( &self, signal_name: &str, after: bool, callback: F, ) -> SignalHandlerId
signal_name
on this object. Read moresource§unsafe fn connect_unsafe_id<F>(
&self,
signal_id: SignalId,
details: Option<Quark>,
after: bool,
callback: F,
) -> SignalHandlerId
unsafe fn connect_unsafe_id<F>( &self, signal_id: SignalId, details: Option<Quark>, after: bool, callback: F, ) -> SignalHandlerId
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) -> SignalHandlerId
fn connect_notify<F>(&self, name: Option<&str>, f: F) -> SignalHandlerId
notify
signal of the object. Read moresource§fn connect_notify_local<F>(&self, name: Option<&str>, f: F) -> SignalHandlerId
fn connect_notify_local<F>(&self, name: Option<&str>, f: F) -> SignalHandlerId
notify
signal of the object. Read moresource§unsafe fn connect_notify_unsafe<F>(
&self,
name: Option<&str>,
f: F,
) -> SignalHandlerId
unsafe fn connect_notify_unsafe<F>( &self, name: Option<&str>, f: F, ) -> SignalHandlerId
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>
fn add_weak_ref_notify<F>(&self, f: F) -> WeakRefNotify<T>
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<'a, 'f, 't, O>(
&'a self,
source_property: &'a str,
target: &'a O,
target_property: &'a str,
) -> BindingBuilder<'a, 'f, 't>where
O: ObjectType,
fn bind_property<'a, 'f, 't, O>(
&'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> 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>
source§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>
source§fn peer_certificate_errors(&self) -> TlsCertificateFlags
fn peer_certificate_errors(&self) -> TlsCertificateFlags
source§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 #GTlsProtocolVersion. 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
source§fn handshake(
&self,
cancellable: Option<&impl IsA<Cancellable>>,
) -> Result<(), Error>
fn handshake( &self, cancellable: Option<&impl IsA<Cancellable>>, ) -> Result<(), Error>
source§fn handshake_async<P: FnOnce(Result<(), Error>) + 'static>(
&self,
io_priority: Priority,
cancellable: Option<&impl IsA<Cancellable>>,
callback: P,
)
fn handshake_async<P: FnOnce(Result<(), Error>) + 'static>( &self, io_priority: Priority, cancellable: Option<&impl IsA<Cancellable>>, callback: P, )
fn handshake_future( &self, io_priority: Priority, ) -> Pin<Box_<dyn Future<Output = Result<(), Error>> + 'static>>
source§fn set_certificate(&self, certificate: &impl IsA<TlsCertificate>)
fn set_certificate(&self, certificate: &impl IsA<TlsCertificate>)
source§fn set_database(&self, database: Option<&impl IsA<TlsDatabase>>)
fn set_database(&self, database: Option<&impl IsA<TlsDatabase>>)
None
, then
peer certificate validation will always set the
TlsCertificateFlags::UNKNOWN_CA
error (meaning
#GTlsConnection::accept-certificate will always be emitted on
client-side connections, unless that bit is not set in
#GTlsClientConnection: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)
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>
fn advertised_protocols(&self) -> Vec<GString>
v2_60
only.source§fn base_io_stream(&self) -> Option<IOStream>
fn base_io_stream(&self) -> Option<IOStream>
source§fn connect_accept_certificate<F: Fn(&Self, &TlsCertificate, TlsCertificateFlags) -> bool + 'static>(
&self,
f: F,
) -> SignalHandlerId
fn connect_accept_certificate<F: Fn(&Self, &TlsCertificate, TlsCertificateFlags) -> bool + 'static>( &self, f: F, ) -> SignalHandlerId
source§fn connect_advertised_protocols_notify<F: Fn(&Self) + 'static>(
&self,
f: F,
) -> SignalHandlerId
fn connect_advertised_protocols_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId
v2_60
only.fn connect_certificate_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId
source§fn connect_ciphersuite_name_notify<F: Fn(&Self) + 'static>(
&self,
f: F,
) -> SignalHandlerId
fn connect_ciphersuite_name_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId
v2_70
only.fn connect_database_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId
fn connect_interaction_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId
source§fn connect_negotiated_protocol_notify<F: Fn(&Self) + 'static>(
&self,
f: F,
) -> SignalHandlerId
fn connect_negotiated_protocol_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId
v2_60
only.fn connect_peer_certificate_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId
fn connect_peer_certificate_errors_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId
source§fn connect_protocol_version_notify<F: Fn(&Self) + 'static>(
&self,
f: F,
) -> SignalHandlerId
fn connect_protocol_version_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId
v2_70
only.source§fn connect_rehandshake_mode_notify<F: Fn(&Self) + 'static>(
&self,
f: F,
) -> SignalHandlerId
fn connect_rehandshake_mode_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId
fn connect_require_close_notify_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId
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.None
for the the value
of @protocols will disable ALPN negotiation. Read more