gi-gio-2.0.25: Gio bindings
CopyrightWill Thompson Iñaki García Etxebarria and Jonas Platte
LicenseLGPL-2.1
MaintainerIñaki García Etxebarria
Safe HaskellNone
LanguageHaskell2010

GI.Gio.Objects.Credentials

Description

The Credentials type is a reference-counted wrapper for native credentials. This information is typically used for identifying, authenticating and authorizing other processes.

Some operating systems supports looking up the credentials of the remote peer of a communication endpoint - see e.g. socketGetCredentials.

Some operating systems supports securely sending and receiving credentials over a Unix Domain Socket, see UnixCredentialsMessage, unixConnectionSendCredentials and unixConnectionReceiveCredentials for details.

On Linux, the native credential type is a struct ucred - see the unix(7) man page for details. This corresponds to CredentialsTypeLinuxUcred.

On FreeBSD, Debian GNU/kFreeBSD, and GNU/Hurd, the native credential type is a struct cmsgcred. This corresponds to CredentialsTypeFreebsdCmsgcred.

On NetBSD, the native credential type is a struct unpcbid. This corresponds to CredentialsTypeNetbsdUnpcbid.

On OpenBSD, the native credential type is a struct sockpeercred. This corresponds to CredentialsTypeOpenbsdSockpeercred.

On Solaris (including OpenSolaris and its derivatives), the native credential type is a ucred_t. This corresponds to CredentialsTypeSolarisUcred.

Since: 2.26

Synopsis

Exported types

newtype Credentials Source #

Memory-managed wrapper type.

Instances

Instances details
Eq Credentials Source # 
Instance details

Defined in GI.Gio.Objects.Credentials

GObject Credentials Source # 
Instance details

Defined in GI.Gio.Objects.Credentials

Methods

gobjectType :: IO GType #

IsGValue Credentials Source #

Convert Credentials to and from GValue with toGValue and fromGValue.

Instance details

Defined in GI.Gio.Objects.Credentials

HasParentTypes Credentials Source # 
Instance details

Defined in GI.Gio.Objects.Credentials

type ParentTypes Credentials Source # 
Instance details

Defined in GI.Gio.Objects.Credentials

class (GObject o, IsDescendantOf Credentials o) => IsCredentials o Source #

Type class for types which can be safely cast to Credentials, for instance with toCredentials.

Instances

Instances details
(GObject o, IsDescendantOf Credentials o) => IsCredentials o Source # 
Instance details

Defined in GI.Gio.Objects.Credentials

toCredentials :: (MonadIO m, IsCredentials o) => o -> m Credentials Source #

Cast to Credentials, for types for which this is known to be safe. For general casts, use castTo.

Methods

Overloaded methods

getUnixPid

credentialsGetUnixPid Source #

Arguments

:: (HasCallStack, MonadIO m, IsCredentials a) 
=> a

credentials: A Credentials

-> m Int32

Returns: The UNIX process ID, or -1 if error is set. (Can throw GError)

Tries to get the UNIX process identifier from credentials. This method is only available on UNIX platforms.

This operation can fail if Credentials is not supported on the OS or if the native credentials type does not contain information about the UNIX process ID.

Since: 2.36

getUnixUser

credentialsGetUnixUser Source #

Arguments

:: (HasCallStack, MonadIO m, IsCredentials a) 
=> a

credentials: A Credentials

-> m Word32

Returns: The UNIX user identifier or -1 if error is set. (Can throw GError)

Tries to get the UNIX user identifier from credentials. This method is only available on UNIX platforms.

This operation can fail if Credentials is not supported on the OS or if the native credentials type does not contain information about the UNIX user.

Since: 2.26

isSameUser

credentialsIsSameUser Source #

Arguments

:: (HasCallStack, MonadIO m, IsCredentials a, IsCredentials b) 
=> a

credentials: A Credentials.

-> b

otherCredentials: A Credentials.

-> m ()

(Can throw GError)

Checks if credentials and otherCredentials is the same user.

This operation can fail if Credentials is not supported on the the OS.

Since: 2.26

new

credentialsNew Source #

Arguments

:: (HasCallStack, MonadIO m) 
=> m Credentials

Returns: A Credentials. Free with objectUnref.

Creates a new Credentials object with credentials matching the the current process.

Since: 2.26

setNative

credentialsSetNative Source #

Arguments

:: (HasCallStack, MonadIO m, IsCredentials a) 
=> a

credentials: A Credentials.

-> CredentialsType

nativeType: The type of native credentials to set.

-> Ptr ()

native: A pointer to native credentials.

-> m () 

Copies the native credentials of type nativeType from native into credentials.

It is a programming error (which will cause an warning to be logged) to use this method if there is no Credentials support for the OS or if nativeType isn't supported by the OS.

Since: 2.26

setUnixUser

credentialsSetUnixUser Source #

Arguments

:: (HasCallStack, MonadIO m, IsCredentials a) 
=> a

credentials: A Credentials.

-> Word32

uid: The UNIX user identifier to set.

-> m ()

(Can throw GError)

Tries to set the UNIX user identifier on credentials. This method is only available on UNIX platforms.

This operation can fail if Credentials is not supported on the OS or if the native credentials type does not contain information about the UNIX user. It can also fail if the OS does not allow the use of "spoofed" credentials.

Since: 2.26

toString

credentialsToString Source #

Arguments

:: (HasCallStack, MonadIO m, IsCredentials a) 
=> a

credentials: A Credentials object.

-> m Text

Returns: A string that should be freed with free.

Creates a human-readable textual representation of credentials that can be used in logging and debug messages. The format of the returned string may change in future GLib release.

Since: 2.26