Asterisk - The Open Source Telephony Project
18.5.0
|
Universally unique identifier support. More...
#include "asterisk.h"
#include <uuid/uuid.h>
#include <fcntl.h>
#include "asterisk/uuid.h"
#include "asterisk/utils.h"
#include "asterisk/strings.h"
#include "asterisk/logger.h"
#include "asterisk/lock.h"
Go to the source code of this file.
Data Structures | |
struct | ast_uuid |
Functions | |
struct ast_uuid * | ast_str_to_uuid (char *str) |
Convert a string to a UUID. More... | |
void | ast_uuid_clear (struct ast_uuid *uuid) |
Clear a UUID by setting it to be a nil UUID (all 0s) More... | |
int | ast_uuid_compare (struct ast_uuid *left, struct ast_uuid *right) |
Compare two UUIDs. More... | |
struct ast_uuid * | ast_uuid_copy (struct ast_uuid *src) |
Make a copy of a UUID. More... | |
struct ast_uuid * | ast_uuid_generate (void) |
Generate a UUID. More... | |
char * | ast_uuid_generate_str (char *buf, size_t size) |
Generate a UUID string. More... | |
void | ast_uuid_init (void) |
Initialize the UUID system. More... | |
int | ast_uuid_is_nil (struct ast_uuid *uuid) |
Check if a UUID is a nil UUID (all 0s) More... | |
char * | ast_uuid_to_str (struct ast_uuid *uuid, char *buf, size_t size) |
Convert a UUID to a string. More... | |
static void | generate_uuid (struct ast_uuid *uuid) |
Variables | |
static int | has_dev_urandom |
static ast_mutex_t | uuid_lock = { PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP , NULL, {1, 0} } |
Universally unique identifier support.
Definition in file uuid.c.
struct ast_uuid* ast_str_to_uuid | ( | char * | str | ) |
Convert a string to a UUID.
This function allocates memory on the heap. The returned pointer must be freed using ast_free()
str | The string to convert to a UUID |
NULL | Failed to convert |
non-NULL | The heap-allocated converted UUID |
Definition at line 151 of file uuid.c.
References ast_free, ast_log, ast_malloc, LOG_WARNING, NULL, and ast_uuid::uu.
Referenced by AST_TEST_DEFINE(), and is_valid_uuid().
void ast_uuid_clear | ( | struct ast_uuid * | uuid | ) |
Clear a UUID by setting it to be a nil UUID (all 0s)
uuid | UUID to clear |
Definition at line 184 of file uuid.c.
References ast_uuid::uu.
Referenced by AST_TEST_DEFINE().
Compare two UUIDs.
left | First UUID to compare |
right | Second UUID to compare |
<0 | left is lexicographically less than right |
0 | left and right are the same |
>0 | left is lexicographically greater than right |
Definition at line 179 of file uuid.c.
References ast_uuid::uu.
Referenced by AST_TEST_DEFINE().
Make a copy of a UUID.
This function allocates memory on the heap. The returned pointer must be freed using ast_free()
src | The source UUID to copy |
NULL | Failed to copy |
non-NULL | The heap-allocated duplicate UUID |
Definition at line 168 of file uuid.c.
References ast_malloc, NULL, and ast_uuid::uu.
Referenced by AST_TEST_DEFINE().
struct ast_uuid* ast_uuid_generate | ( | void | ) |
Generate a UUID.
This function allocates memory on the heap. The returned pointer must be freed using ast_free()
NULL | Generation failed |
non-NULL | heap-allocated UUID |
Definition at line 125 of file uuid.c.
References ast_malloc, generate_uuid(), and NULL.
Referenced by AST_TEST_DEFINE().
char* ast_uuid_generate_str | ( | char * | buf, |
size_t | size | ||
) |
Generate a UUID string.
buf | The buffer where the UUID string will be stored |
size | The size of the buffer. Must be at least AST_UUID_STR_LEN. |
Definition at line 143 of file uuid.c.
References ast_uuid_to_str(), and generate_uuid().
Referenced by add_msid_to_stream(), ast_datastores_alloc_datastore(), ast_rtp_new(), ast_sip_publish_client_alloc_datastore(), ast_sip_session_alloc_datastore(), ast_sorcery_alloc(), AST_TEST_DEFINE(), ast_websocket_uri_cb(), asterisk_daemon(), bridge_base_init(), build_entity_id(), generate_exchange_uuid(), mock_retrieve_multiple(), playback_create(), sorcery_config_open(), and stir_shaken_add_origid().
void ast_uuid_init | ( | void | ) |
Initialize the UUID system.
Definition at line 194 of file uuid.c.
References ast_debug, ast_log, dev_urandom_fd, has_dev_urandom, LOG_WARNING, and ast_uuid::uu.
Referenced by asterisk_daemon().
int ast_uuid_is_nil | ( | struct ast_uuid * | uuid | ) |
Check if a UUID is a nil UUID (all 0s)
uuid | UUID to check |
0 | The UUID is not nil |
non-zero | The UUID is nil |
Definition at line 189 of file uuid.c.
References ast_uuid::uu.
Referenced by AST_TEST_DEFINE().
char* ast_uuid_to_str | ( | struct ast_uuid * | uuid, |
char * | buf, | ||
size_t | size | ||
) |
Convert a UUID to a string.
uuid | The UUID to convert to a string | |
[out] | buf | The buffer where the UUID string will be stored |
size | The size of the buffer. Must be at least AST_UUID_STR_LEN. |
Definition at line 136 of file uuid.c.
References ast_assert, ast_str_to_lower(), AST_UUID_STR_LEN, and ast_uuid::uu.
Referenced by AST_TEST_DEFINE(), and ast_uuid_generate_str().
|
static |
Definition at line 52 of file uuid.c.
References ast_mutex_lock, ast_mutex_unlock, has_dev_urandom, ast_uuid::uu, and uuid_lock.
Referenced by ast_uuid_generate(), and ast_uuid_generate_str().
|
static |
Definition at line 37 of file uuid.c.
Referenced by ast_uuid_init(), and generate_uuid().
|
static |
Definition at line 35 of file uuid.c.
Referenced by generate_uuid().