sss_simpleifp  1.13.0
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_IFP   "org.freedesktop.sssd.infopipe"
 SSSD InfoPipe bus address.
 
#define SSS_SIFP_IFACE_IFP   SSS_SIFP_IFP
 SSSD InfoPipe interface.
 

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

Typedef Documentation

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

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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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
void sss_sifp_free ( sss_sifp_ctx **  _ctx)

Free sss_sifp context and set it to NULL.

Parameters
[in,out]_ctxsss_sifp context
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
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
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
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
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.
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_error sss_sifp_init ( sss_sifp_ctx **  _ctx)

Initialize sss_sifp context using default allocator (malloc)

Parameters
[out]_ctxsss_sifp context
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