sss_simpleifp 2.6.1
Data Structures | Macros | Typedefs | Enumerations | Functions
Simple interface to SSSD InfoPipe responder.

Libsss_simpleifp provides a synchronous interface to simplify basic communication with SSSD InfoPipe responder. More...

Data Structures

struct  sss_sifp_object
 D-Bus object. More...
 

Macros

#define SSS_SIFP_ADDRESS   "org.freedesktop.sssd.infopipe"
 SSSD InfoPipe bus address.
 
#define SSS_SIFP_PATH   "/org/freedesktop/sssd/infopipe"
 SSSD InfoPipe object path. More...
 
#define SSS_SIFP_IFACE   "org.freedesktop.sssd.infopipe"
 SSSD InfoPipe object path. More...
 

Typedefs

typedef struct sss_sifp_ctx sss_sifp_ctx
 Opaque libsss_sifp context. More...
 
typedef void() sss_sifp_free_func(void *ptr, void *pvt)
 Typedef for memory allocation functions.
 
typedef enum sss_sifp_error sss_sifp_error
 Error codes used by libsss_sifp.
 
typedef struct sss_sifp_attr sss_sifp_attr
 D-Bus object attribute.
 
typedef struct sss_sifp_object sss_sifp_object
 D-Bus object.
 

Enumerations

enum  sss_sifp_error {
  SSS_SIFP_OK = 0 , SSS_SIFP_OUT_OF_MEMORY , SSS_SIFP_INVALID_ARGUMENT , SSS_SIFP_IO_ERROR ,
  SSS_SIFP_INTERNAL_ERROR , SSS_SIFP_NOT_SUPPORTED , SSS_SIFP_ATTR_MISSING , SSS_SIFP_ATTR_NULL ,
  SSS_SIFP_INCORRECT_TYPE , SSS_SIFP_ERROR_SENTINEL
}
 Error codes used by libsss_sifp. More...
 

Functions

sss_sifp_error sss_sifp_init (sss_sifp_ctx **_ctx)
 Initialize sss_sifp context using default allocator (malloc) More...
 
sss_sifp_error sss_sifp_init_ex (void *alloc_pvt, sss_sifp_alloc_func *alloc_func, sss_sifp_free_func *free_func, sss_sifp_ctx **_ctx)
 Initialize sss_sifp context. More...
 
const char * sss_sifp_get_last_io_error_name (sss_sifp_ctx *ctx)
 Return last error name from underlying D-Bus communication. More...
 
const char * sss_sifp_get_last_io_error_message (sss_sifp_ctx *ctx)
 Return last error message from underlying D-Bus communication. More...
 
const char * sss_sifp_strerr (sss_sifp_error error)
 Translate error code into human readable message. More...
 
sss_sifp_error sss_sifp_fetch_attr (sss_sifp_ctx *ctx, const char *object_path, const char *interface, const char *name, sss_sifp_attr ***_attrs)
 Fetch selected attributes of given object. More...
 
sss_sifp_error sss_sifp_fetch_all_attrs (sss_sifp_ctx *ctx, const char *object_path, const char *interface, sss_sifp_attr ***_attrs)
 Fetch all attributes of given object. More...
 
sss_sifp_error sss_sifp_fetch_object (sss_sifp_ctx *ctx, const char *object_path, const char *interface, sss_sifp_object **_object)
 Fetch D-Bus object. More...
 
sss_sifp_error sss_sifp_find_attr_as_bool (sss_sifp_attr **attrs, const char *name, bool *_value)
 Find attribute in list and return its value. More...
 
sss_sifp_error sss_sifp_find_attr_as_int16 (sss_sifp_attr **attrs, const char *name, int16_t *_value)
 Find attribute in list and return its value. More...
 
sss_sifp_error sss_sifp_find_attr_as_uint16 (sss_sifp_attr **attrs, const char *name, uint16_t *_value)
 Find attribute in list and return its value. More...
 
sss_sifp_error sss_sifp_find_attr_as_int32 (sss_sifp_attr **attrs, const char *name, int32_t *_value)
 Find attribute in list and return its value. More...
 
sss_sifp_error sss_sifp_find_attr_as_uint32 (sss_sifp_attr **attrs, const char *name, uint32_t *_value)
 Find attribute in list and return its value. More...
 
sss_sifp_error sss_sifp_find_attr_as_int64 (sss_sifp_attr **attrs, const char *name, int64_t *_value)
 Find attribute in list and return its value. More...
 
sss_sifp_error sss_sifp_find_attr_as_uint64 (sss_sifp_attr **attrs, const char *name, uint64_t *_value)
 Find attribute in list and return its value. More...
 
sss_sifp_error sss_sifp_find_attr_as_string (sss_sifp_attr **attrs, const char *name, const char **_value)
 Find attribute in list and return its value. More...
 
sss_sifp_error sss_sifp_find_attr_as_string_dict (sss_sifp_attr **attrs, const char *name, hash_table_t **_value)
 Find attribute in list and return its value. More...
 
sss_sifp_error sss_sifp_find_attr_as_bool_array (sss_sifp_attr **attrs, const char *name, unsigned int *_num_values, bool **_value)
 Find attribute in list and return its values. More...
 
sss_sifp_error sss_sifp_find_attr_as_int16_array (sss_sifp_attr **attrs, const char *name, unsigned int *_num_values, int16_t **_value)
 Find attribute in list and return its values. More...
 
sss_sifp_error sss_sifp_find_attr_as_uint16_array (sss_sifp_attr **attrs, const char *name, unsigned int *_num_values, uint16_t **_value)
 Find attribute in list and return its values. More...
 
sss_sifp_error sss_sifp_find_attr_as_int32_array (sss_sifp_attr **attrs, const char *name, unsigned int *_num_values, int32_t **_value)
 Find attribute in list and return its values. More...
 
sss_sifp_error sss_sifp_find_attr_as_uint32_array (sss_sifp_attr **attrs, const char *name, unsigned int *_num_values, uint32_t **_value)
 Find attribute in list and return its values. More...
 
sss_sifp_error sss_sifp_find_attr_as_int64_array (sss_sifp_attr **attrs, const char *name, unsigned int *_num_values, int64_t **_value)
 Find attribute in list and return its values. More...
 
sss_sifp_error sss_sifp_find_attr_as_uint64_array (sss_sifp_attr **attrs, const char *name, unsigned int *_num_values, uint64_t **_value)
 Find attribute in list and return its values. More...
 
sss_sifp_error sss_sifp_find_attr_as_string_array (sss_sifp_attr **attrs, const char *name, unsigned int *_num_values, const char *const **_value)
 Find attribute in list and return its values. More...
 
void sss_sifp_free (sss_sifp_ctx **_ctx)
 Free sss_sifp context and set it to NULL. More...
 
void sss_sifp_free_attrs (sss_sifp_ctx *ctx, sss_sifp_attr ***_attrs)
 Free attribute list and set it to NULL. More...
 
void sss_sifp_free_object (sss_sifp_ctx *ctx, sss_sifp_object **_object)
 Free sss_sifp object and set it to NULL. More...
 
void sss_sifp_free_string (sss_sifp_ctx *ctx, char **_str)
 Free string and set it to NULL. More...
 
void sss_sifp_free_string_array (sss_sifp_ctx *ctx, char ***_str_array)
 Free array of strings and set it to NULL. More...
 

Detailed Description

Libsss_simpleifp provides a synchronous interface to simplify basic communication with SSSD InfoPipe responder.

This interface is not a full replacement for the complete D-Bus API and it provides only access to the most common tasks like fetching attributes of SSSD objects.

If there is a need for a more sophisticated communication with the SSSD InfoPipe responder a D-Bus API of your choice should be used.

Macro Definition Documentation

◆ SSS_SIFP_IFACE

#define SSS_SIFP_IFACE   "org.freedesktop.sssd.infopipe"

SSSD InfoPipe object path.

Look at InfoPipe introspection and SSSD documentation for more interfaces.

◆ SSS_SIFP_PATH

#define SSS_SIFP_PATH   "/org/freedesktop/sssd/infopipe"

SSSD InfoPipe object path.

Look at InfoPipe introspection and SSSD documentation for more objects.

Typedef Documentation

◆ sss_sifp_ctx

typedef struct sss_sifp_ctx sss_sifp_ctx

Opaque libsss_sifp context.

One context shall not be used by multiple threads. Each thread needs to create and use its own context.

See also
sss_sifp_init
sss_sifp_init_ex

Enumeration Type Documentation

◆ sss_sifp_error

Error codes used by libsss_sifp.

Enumerator
SSS_SIFP_OK 

Success.

SSS_SIFP_OUT_OF_MEMORY 

Ran out of memory during processing.

SSS_SIFP_INVALID_ARGUMENT 

Invalid argument.

SSS_SIFP_IO_ERROR 

Input/output error.

See also
sss_sifp_get_last_io_error() to get more information
SSS_SIFP_INTERNAL_ERROR 

Internal error.

SSS_SIFP_NOT_SUPPORTED 

Operation not supported.

SSS_SIFP_ATTR_MISSING 

Attribute does not exist.

SSS_SIFP_ATTR_NULL 

Attribute does not have any value set.

SSS_SIFP_INCORRECT_TYPE 

Incorrect attribute type.

SSS_SIFP_ERROR_SENTINEL 

Always last.

Function Documentation

◆ sss_sifp_fetch_all_attrs()

sss_sifp_error sss_sifp_fetch_all_attrs ( sss_sifp_ctx ctx,
const char *  object_path,
const char *  interface,
sss_sifp_attr ***  _attrs 
)

Fetch all attributes of given object.

Parameters
[in]ctxsss_sifp context
[in]object_pathD-Bus object path
[in]interfaceD-Bus interface
[out]_attrsAcquired attributes

◆ sss_sifp_fetch_attr()

sss_sifp_error sss_sifp_fetch_attr ( sss_sifp_ctx ctx,
const char *  object_path,
const char *  interface,
const char *  name,
sss_sifp_attr ***  _attrs 
)

Fetch selected attributes of given object.

Parameters
[in]ctxsss_sifp context
[in]object_pathD-Bus object path
[in]interfaceD-Bus interface
[in]nameName of desired attribute
[out]_attrsList of acquired attributes

◆ sss_sifp_fetch_object()

sss_sifp_error sss_sifp_fetch_object ( sss_sifp_ctx ctx,
const char *  object_path,
const char *  interface,
sss_sifp_object **  _object 
)

Fetch D-Bus object.

Parameters
[in]ctxsss_sifp context
[in]object_pathD-Bus object path
[in]interfaceD-Bus interface
[out]_objectObject and its attributes

◆ sss_sifp_find_attr_as_bool()

sss_sifp_error sss_sifp_find_attr_as_bool ( sss_sifp_attr **  attrs,
const char *  name,
bool *  _value 
)

Find attribute in list and return its value.

Parameters
[in]attrsAttributes
[in]nameName of the attribute to find
[out]_valueOutput value

◆ sss_sifp_find_attr_as_bool_array()

sss_sifp_error sss_sifp_find_attr_as_bool_array ( sss_sifp_attr **  attrs,
const char *  name,
unsigned int *  _num_values,
bool **  _value 
)

Find attribute in list and return its values.

Parameters
[in]attrsAttributes
[in]nameName of the attribute to find
[out]_num_valuesNumber of values in the array
[out]_valueOutput array

◆ sss_sifp_find_attr_as_int16()

sss_sifp_error sss_sifp_find_attr_as_int16 ( sss_sifp_attr **  attrs,
const char *  name,
int16_t *  _value 
)

Find attribute in list and return its value.

Parameters
[in]attrsAttributes
[in]nameName of the attribute to find
[out]_valueOutput value

◆ sss_sifp_find_attr_as_int16_array()

sss_sifp_error sss_sifp_find_attr_as_int16_array ( sss_sifp_attr **  attrs,
const char *  name,
unsigned int *  _num_values,
int16_t **  _value 
)

Find attribute in list and return its values.

Parameters
[in]attrsAttributes
[in]nameName of the attribute to find
[out]_num_valuesNumber of values in the array
[out]_valueOutput array

◆ sss_sifp_find_attr_as_int32()

sss_sifp_error sss_sifp_find_attr_as_int32 ( sss_sifp_attr **  attrs,
const char *  name,
int32_t *  _value 
)

Find attribute in list and return its value.

Parameters
[in]attrsAttributes
[in]nameName of the attribute to find
[out]_valueOutput value

◆ sss_sifp_find_attr_as_int32_array()

sss_sifp_error sss_sifp_find_attr_as_int32_array ( sss_sifp_attr **  attrs,
const char *  name,
unsigned int *  _num_values,
int32_t **  _value 
)

Find attribute in list and return its values.

Parameters
[in]attrsAttributes
[in]nameName of the attribute to find
[out]_num_valuesNumber of values in the array
[out]_valueOutput array

◆ sss_sifp_find_attr_as_int64()

sss_sifp_error sss_sifp_find_attr_as_int64 ( sss_sifp_attr **  attrs,
const char *  name,
int64_t *  _value 
)

Find attribute in list and return its value.

Parameters
[in]attrsAttributes
[in]nameName of the attribute to find
[out]_valueOutput value

◆ sss_sifp_find_attr_as_int64_array()

sss_sifp_error sss_sifp_find_attr_as_int64_array ( sss_sifp_attr **  attrs,
const char *  name,
unsigned int *  _num_values,
int64_t **  _value 
)

Find attribute in list and return its values.

Parameters
[in]attrsAttributes
[in]nameName of the attribute to find
[out]_num_valuesNumber of values in the array
[out]_valueOutput array

◆ sss_sifp_find_attr_as_string()

sss_sifp_error sss_sifp_find_attr_as_string ( sss_sifp_attr **  attrs,
const char *  name,
const char **  _value 
)

Find attribute in list and return its value.

Parameters
[in]attrsAttributes
[in]nameName of the attribute to find
[out]_valueOutput value

◆ sss_sifp_find_attr_as_string_array()

sss_sifp_error sss_sifp_find_attr_as_string_array ( sss_sifp_attr **  attrs,
const char *  name,
unsigned int *  _num_values,
const char *const **  _value 
)

Find attribute in list and return its values.

Parameters
[in]attrsAttributes
[in]nameName of the attribute to find
[out]_num_valuesNumber of values in the array
[out]_valueOutput array

◆ sss_sifp_find_attr_as_string_dict()

sss_sifp_error sss_sifp_find_attr_as_string_dict ( sss_sifp_attr **  attrs,
const char *  name,
hash_table_t **  _value 
)

Find attribute in list and return its value.

The dictionary is stored in dhash table, the values are pointers to NULL-terminated string array.

Parameters
[in]attrsAttributes
[in]nameName of the attribute to find
[out]_valueOutput value

◆ sss_sifp_find_attr_as_uint16()

sss_sifp_error sss_sifp_find_attr_as_uint16 ( sss_sifp_attr **  attrs,
const char *  name,
uint16_t *  _value 
)

Find attribute in list and return its value.

Parameters
[in]attrsAttributes
[in]nameName of the attribute to find
[out]_valueOutput value

◆ sss_sifp_find_attr_as_uint16_array()

sss_sifp_error sss_sifp_find_attr_as_uint16_array ( sss_sifp_attr **  attrs,
const char *  name,
unsigned int *  _num_values,
uint16_t **  _value 
)

Find attribute in list and return its values.

Parameters
[in]attrsAttributes
[in]nameName of the attribute to find
[out]_num_valuesNumber of values in the array
[out]_valueOutput array

◆ sss_sifp_find_attr_as_uint32()

sss_sifp_error sss_sifp_find_attr_as_uint32 ( sss_sifp_attr **  attrs,
const char *  name,
uint32_t *  _value 
)

Find attribute in list and return its value.

Parameters
[in]attrsAttributes
[in]nameName of the attribute to find
[out]_valueOutput value

◆ sss_sifp_find_attr_as_uint32_array()

sss_sifp_error sss_sifp_find_attr_as_uint32_array ( sss_sifp_attr **  attrs,
const char *  name,
unsigned int *  _num_values,
uint32_t **  _value 
)

Find attribute in list and return its values.

Parameters
[in]attrsAttributes
[in]nameName of the attribute to find
[out]_num_valuesNumber of values in the array
[out]_valueOutput array

◆ sss_sifp_find_attr_as_uint64()

sss_sifp_error sss_sifp_find_attr_as_uint64 ( sss_sifp_attr **  attrs,
const char *  name,
uint64_t *  _value 
)

Find attribute in list and return its value.

Parameters
[in]attrsAttributes
[in]nameName of the attribute to find
[out]_valueOutput value

◆ sss_sifp_find_attr_as_uint64_array()

sss_sifp_error sss_sifp_find_attr_as_uint64_array ( sss_sifp_attr **  attrs,
const char *  name,
unsigned int *  _num_values,
uint64_t **  _value 
)

Find attribute in list and return its values.

Parameters
[in]attrsAttributes
[in]nameName of the attribute to find
[out]_num_valuesNumber of values in the array
[out]_valueOutput array

◆ sss_sifp_free()

void sss_sifp_free ( sss_sifp_ctx **  _ctx)

Free sss_sifp context and set it to NULL.

Parameters
[in,out]_ctxsss_sifp context

◆ sss_sifp_free_attrs()

void sss_sifp_free_attrs ( sss_sifp_ctx ctx,
sss_sifp_attr ***  _attrs 
)

Free attribute list and set it to NULL.

Parameters
[in]ctxsss_sifp context
[in,out]_attrsAttributes

◆ sss_sifp_free_object()

void sss_sifp_free_object ( sss_sifp_ctx ctx,
sss_sifp_object **  _object 
)

Free sss_sifp object and set it to NULL.

Parameters
[in]ctxsss_sifp context
[in,out]_objectObject

◆ sss_sifp_free_string()

void sss_sifp_free_string ( sss_sifp_ctx ctx,
char **  _str 
)

Free string and set it to NULL.

Parameters
[in]ctxsss_sifp context
[in,out]_strString

◆ sss_sifp_free_string_array()

void sss_sifp_free_string_array ( sss_sifp_ctx ctx,
char ***  _str_array 
)

Free array of strings and set it to NULL.

Parameters
[in]ctxsss_sifp context
[in,out]_str_arrayArray of strings

◆ sss_sifp_get_last_io_error_message()

const char * sss_sifp_get_last_io_error_message ( sss_sifp_ctx ctx)

Return last error message from underlying D-Bus communication.

Parameters
[in]ctxsss_sifp context
Returns
Error message or NULL if no error occurred during last D-Bus call.

◆ sss_sifp_get_last_io_error_name()

const char * sss_sifp_get_last_io_error_name ( sss_sifp_ctx ctx)

Return last error name from underlying D-Bus communication.

Parameters
[in]ctxsss_sifp context
Returns
Error message or NULL if no error occurred during last D-Bus call.

◆ sss_sifp_init()

sss_sifp_error sss_sifp_init ( sss_sifp_ctx **  _ctx)

Initialize sss_sifp context using default allocator (malloc)

Parameters
[out]_ctxsss_sifp context

◆ sss_sifp_init_ex()

sss_sifp_error sss_sifp_init_ex ( void *  alloc_pvt,
sss_sifp_alloc_func *  alloc_func,
sss_sifp_free_func free_func,
sss_sifp_ctx **  _ctx 
)

Initialize sss_sifp context.

Parameters
[in]alloc_pvtPrivate data for allocation routine
[in]alloc_funcFunction to allocate memory for the context, if NULL malloc() is used
[in]free_funcFunction to free the memory of the context, if NULL free() is used
[out]_ctxsss_sifp context

◆ sss_sifp_strerr()

const char * sss_sifp_strerr ( sss_sifp_error  error)

Translate error code into human readable message.

Parameters
[in]errorsss_sifp error code
Returns
Error message.