gi-gio-2.0.38: Gio bindings

Copyright | Will Thompson and Iñaki García Etxebarria
License | LGPL-2.1
Maintainer | Iñaki García Etxebarria
Safe Haskell | None
Language | Haskell2010

GI.Gio.Objects.Credentials

Contents

- Exported types
- Methods
  - getUnixPid
  - getUnixUser
  - isSameUser
  - new
  - setNative
  - setUnixUser
  - toString

Description

The `GCredentials` type is a reference-counted wrapper for native credentials.

The information in `GCredentials` 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 `G_CREDENTIALS_TYPE_LINUX_UCRED`.

On Apple operating systems (including iOS, tvOS, and macOS), the native credential type is a `struct xucred`. This corresponds to `G_CREDENTIALS_TYPE_APPLE_XUCRED`.

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

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

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

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

Since GLib 2.72, on Windows, the native credentials may contain the PID of a process. This corresponds to `G_CREDENTIALS_TYPE_WIN32_PID`.

Since: 2.26

Synopsis

- newtype Credentials = Credentials (ManagedPtr Credentials)
- class (GObject o, IsDescendantOf Credentials o) => IsCredentials o
- toCredentials :: (MonadIO m, IsCredentials o) => o -> m Credentials
- credentialsGetUnixPid :: (HasCallStack, MonadIO m, IsCredentials a) => a -> m Int32
- credentialsGetUnixUser :: (HasCallStack, MonadIO m, IsCredentials a) => a -> m Word32
- credentialsIsSameUser :: (HasCallStack, MonadIO m, IsCredentials a, IsCredentials b) => a -> b -> m ()
- credentialsNew :: (HasCallStack, MonadIO m) => m Credentials
- credentialsSetNative :: (HasCallStack, MonadIO m, IsCredentials a) => a -> CredentialsType -> Ptr () -> m ()
- credentialsSetUnixUser :: (HasCallStack, MonadIO m, IsCredentials a) => a -> Word32 -> m ()
- credentialsToString :: (HasCallStack, MonadIO m, IsCredentials a) => a -> m Text

# Exported types

newtype Credentials Source #

Memory-managed wrapper type.

Constructors

Credentials (ManagedPtr Credentials) |

#### Instances

Instances details

Eq Credentials Source # |
Instance details Defined in GI.Gio.Objects.Credentials Methods (==) :: Credentials -> Credentials -> Bool Source # (/=) :: Credentials -> Credentials -> Bool Source #
GObject Credentials Source # |
Instance details Defined in GI.Gio.Objects.Credentials
ManagedPtrNewtype Credentials Source # |
Instance details Defined in GI.Gio.Objects.Credentials Methods toManagedPtr :: Credentials -> ManagedPtr Credentials Source #
TypedObject Credentials Source # |
Instance details Defined in GI.Gio.Objects.Credentials Methods glibType :: IO GType Source #
HasParentTypes Credentials Source # |
Instance details Defined in GI.Gio.Objects.Credentials
IsGValue (Maybe Credentials) Source # | Convert `Credentials` to and from `GValue`. See `toGValue` and `fromGValue`.
Instance details Defined in GI.Gio.Objects.Credentials Methods gvalueGType_ :: IO GType Source # gvalueSet_ :: Ptr GValue -> Maybe Credentials -> IO () Source # gvalueGet_ :: Ptr GValue -> IO (Maybe Credentials) Source #
type ParentTypes Credentials Source # |
Instance details Defined in GI.Gio.Objects.Credentials type ParentTypes Credentials = '[Object]

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

### Click to display all available methods, including inherited ones

Expand

#### Methods

bindProperty, bindPropertyFull, forceFloating, freezeNotify, getv, isFloating, isSameUser, notify, notifyByPspec, ref, refSink, runDispose, stealData, stealQdata, thawNotify, toString, unref, watchClosure.

#### Getters

getData, getProperty, getQdata, getUnixPid, getUnixUser.

#### Setters

setData, setDataFull, setNative, setProperty, setUnixUser.

## 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 `(uid_t) -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.

As the signedness of `uid_t` is not specified by POSIX, it is recommended to check `error` for failure rather than trying to check the return value, particularly in language bindings.

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 a 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