|
Asterisk - The Open Source Telephony Project GIT-master-9647a4f
|
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. | |
| void | ast_uuid_clear (struct ast_uuid *uuid) |
| Clear a UUID by setting it to be a nil UUID (all 0s) | |
| int | ast_uuid_compare (struct ast_uuid *left, struct ast_uuid *right) |
| Compare two UUIDs. | |
| struct ast_uuid * | ast_uuid_copy (struct ast_uuid *src) |
| Make a copy of a UUID. | |
| struct ast_uuid * | ast_uuid_generate (void) |
| Generate a UUID. | |
| char * | ast_uuid_generate_str (char *buf, size_t size) |
| Generate a UUID string. | |
| void | ast_uuid_init (void) |
| Initialize the UUID system. | |
| int | ast_uuid_is_nil (struct ast_uuid *uuid) |
| Check if a UUID is a nil UUID (all 0s) | |
| char * | ast_uuid_to_str (struct ast_uuid *uuid, char *buf, size_t size) |
| Convert a UUID to a string. | |
| static void | generate_uuid (struct ast_uuid *uuid) |
Variables | |
| static int | has_dev_urandom |
| static ast_mutex_t | uuid_lock = AST_MUTEX_INIT_VALUE |
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 149 of file uuid.c.
References ast_free, ast_log, ast_malloc, LOG_WARNING, NULL, str, and uuid().
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 182 of file uuid.c.
References uuid().
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 177 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 166 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 123 of file uuid.c.
References ast_malloc, generate_uuid(), NULL, and uuid().
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 141 of file uuid.c.
References ast_uuid_to_str(), buf, generate_uuid(), and uuid().
Referenced by add_msid_to_stream(), ast_aeap_message_id_generate(), 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_TEST_DEFINE(), AST_TEST_DEFINE(), ast_websocket_uri_cb(), asterisk_daemon(), bridge_base_init(), build_entity_id(), generate_exchange_uuid(), pack_payload(), playback_create(), sorcery_config_open(), uuid(), websocket_client_create(), and websocket_new().
| void ast_uuid_init | ( | void | ) |
Initialize the UUID system.
Definition at line 192 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 187 of file uuid.c.
References uuid().
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 134 of file uuid.c.
References ast_assert, ast_str_to_lower(), AST_UUID_STR_LEN, buf, and uuid().
Referenced by AST_TEST_DEFINE(), and ast_uuid_generate_str().
|
static |
Definition at line 50 of file uuid.c.
References ast_mutex_lock, ast_mutex_unlock, has_dev_urandom, uuid(), 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().