Utility functions. More...
#include "asterisk/network.h"
#include <time.h>
#include <unistd.h>
#include <string.h>
#include "asterisk/lock.h"
#include "asterisk/logger.h"
#include "asterisk/localtime.h"
#include "asterisk/stringfields.h"
#include "asterisk/strings.h"
Go to the source code of this file.
Data Structures | |
struct | ast_eid |
An Entity ID is essentially a MAC address, brief and unique. More... | |
struct | ast_flags |
Structure used to handle boolean flags. More... | |
struct | ast_flags64 |
Structure used to handle a large number of boolean flags == used only in app_dial? More... | |
struct | ast_hostent |
struct | ast_http_digest |
Macros | |
#define | ARRAY_LEN(a) (size_t) (sizeof(a) / sizeof(0[a])) |
#define | ast_align_for(offset, type) (((offset + __alignof__(type) - 1) / __alignof__(type)) * __alignof__(type)) |
Increase offset so it is a multiple of the required alignment of type. More... | |
#define | ast_alignof(type) __alignof__(type) |
Return the number of bytes used in the alignment of type. More... | |
#define | ast_alloca(size) __builtin_alloca(size) |
call __builtin_alloca to ensure we get gcc builtin semantics More... | |
#define | ast_asprintf(ret, fmt,...) _ast_asprintf((ret), __FILE__, __LINE__, __PRETTY_FUNCTION__, fmt, __VA_ARGS__) |
A wrapper for asprintf() More... | |
#define | ast_assert(a) |
#define | AST_BACKGROUND_STACKSIZE AST_STACKSIZE |
#define | ast_calloc(num, len) _ast_calloc((num), (len), __FILE__, __LINE__, __PRETTY_FUNCTION__) |
A wrapper for calloc() More... | |
#define | ast_calloc_cache(num, len) _ast_calloc((num), (len), __FILE__, __LINE__, __PRETTY_FUNCTION__) |
A wrapper for calloc() for use in cache pools. More... | |
#define | ast_clear_flag(p, flag) |
#define | ast_clear_flag64(p, flag) |
#define | ast_clear_flag_nonstd(p, flag) |
#define | ast_copy_flags(dest, src, flagz) |
#define | ast_copy_flags64(dest, src, flagz) |
#define | ast_copy_flags_nonstd(dest, src, flagz) |
#define | AST_FLAGS_ALL UINT_MAX |
#define | ast_free free |
free() wrapper More... | |
#define | ast_free_ptr ast_free |
#define | ast_make_room_for(offset, type) (((offset + (2 * __alignof__(type) - 1)) / __alignof__(type)) * __alignof__(type)) |
Increase offset by the required alignment of type and make sure it is a multiple of said alignment. More... | |
#define | ast_malloc(len) _ast_malloc((len), __FILE__, __LINE__, __PRETTY_FUNCTION__) |
A wrapper for malloc() More... | |
#define | ast_pthread_create(a, b, c, d) |
#define | ast_pthread_create_background(a, b, c, d) |
#define | ast_pthread_create_detached(a, b, c, d) |
#define | ast_pthread_create_detached_background(a, b, c, d) |
#define | ast_realloc(p, len) _ast_realloc((p), (len), __FILE__, __LINE__, __PRETTY_FUNCTION__) |
A wrapper for realloc() More... | |
#define | ast_set2_flag(p, value, flag) |
#define | ast_set2_flag64(p, value, flag) |
#define | ast_set2_flag_nonstd(p, value, flag) |
#define | ast_set_flag(p, flag) |
#define | ast_set_flag64(p, flag) |
#define | ast_set_flag_nonstd(p, flag) |
#define | ast_set_flags_to(p, flag, value) |
#define | ast_set_flags_to64(p, flag, value) |
#define | AST_STACKSIZE (((sizeof(void *) * 8 * 8) - 16) * 1024) |
#define | ast_std_calloc calloc |
#define | ast_std_free free |
#define | ast_std_malloc malloc |
#define | ast_std_realloc realloc |
#define | ast_strdup(str) _ast_strdup((str), __FILE__, __LINE__, __PRETTY_FUNCTION__) |
A wrapper for strdup() More... | |
#define | ast_strdupa(s) |
duplicate a string in memory from the stack More... | |
#define | ast_strndup(str, len) _ast_strndup((str), (len), __FILE__, __LINE__, __PRETTY_FUNCTION__) |
A wrapper for strndup() More... | |
#define | ast_test_flag(p, flag) |
#define | ast_test_flag64(p, flag) |
#define | ast_test_flag_nonstd(p, flag) ((p)->flags & (flag)) |
#define | ast_vasprintf(ret, fmt, ap) _ast_vasprintf((ret), __FILE__, __LINE__, __PRETTY_FUNCTION__, (fmt), (ap)) |
A wrapper for vasprintf() More... | |
#define | localtime_r __dont_use_localtime_r_use_ast_localtime_instead__ |
#define | MALLOC_FAILURE_MSG ast_log(LOG_ERROR, "Memory Allocation Failure in function %s at line %d of %s\n", func, lineno, file); |
#define | MAX(a, b) ({ typeof(a) __a = (a); typeof(b) __b = (b); ((__a < __b) ? __b : __a);}) |
#define | MIN(a, b) ({ typeof(a) __a = (a); typeof(b) __b = (b); ((__a > __b) ? __b : __a);}) |
#define | RAII_VAR(vartype, varname, initval, dtor) |
Declare a variable that will call a destructor function when it goes out of scope. More... | |
Functions | |
int | _ast_asprintf (char **ret, const char *file, int lineno, const char *func, const char *fmt,...) |
void * | _ast_calloc (size_t num, size_t len, const char *file, int lineno, const char *func) |
void * | _ast_malloc (size_t len, const char *file, int lineno, const char *func) |
void * | _ast_realloc (void *p, size_t len, const char *file, int lineno, const char *func) |
char * | _ast_strdup (const char *str, const char *file, int lineno, const char *func) |
char * | _ast_strndup (const char *str, size_t len, const char *file, int lineno, const char *func) |
int | _ast_vasprintf (char **ret, const char *file, int lineno, const char *func, const char *fmt, va_list ap) |
int | ast_base64decode (unsigned char *dst, const char *src, int max) |
Decode data from base64. More... | |
int | ast_base64encode (char *dst, const unsigned char *src, int srclen, int max) |
Encode data in base64. More... | |
int | ast_base64encode_full (char *dst, const unsigned char *src, int srclen, int max, int linebreaks) |
encode text to BASE64 coding More... | |
int | ast_careful_fwrite (FILE *f, int fd, const char *s, size_t len, int timeoutms) |
Write data to a file stream with a timeout. More... | |
int | ast_carefulwrite (int fd, char *s, int len, int timeoutms) |
Try to write string, but wait no more than ms milliseconds before timing out. More... | |
void | ast_do_crash (void) |
Force a crash if DO_CRASH is defined. More... | |
int | ast_eid_cmp (const struct ast_eid *eid1, const struct ast_eid *eid2) |
Compare two EIDs. More... | |
char * | ast_eid_to_str (char *s, int maxlen, struct ast_eid *eid) |
void | ast_enable_packet_fragmentation (int sock) |
Disable PMTU discovery on a socket. More... | |
char * | ast_escape_quoted (const char *string, char *outbuf, int buflen) |
Escape characters found in a quoted string. More... | |
int | ast_get_tid (void) |
Get current thread ID. More... | |
struct hostent * | ast_gethostbyname (const char *host, struct ast_hostent *hp) |
Thread-safe gethostbyname function to use in Asterisk. More... | |
void | ast_md5_hash (char *output, const char *input) |
Produces MD5 hash based on input string. More... | |
int | ast_mkdir (const char *path, int mode) |
Recursively create directory path. More... | |
int | ast_parse_digest (const char *digest, struct ast_http_digest *d, int request, int pedantic) |
Parse digest authorization header. More... | |
char * | ast_process_quotes_and_slashes (char *start, char find, char replace_with) |
Process a string to find and replace characters. More... | |
int | ast_pthread_create_detached_stack (pthread_t *thread, pthread_attr_t *attr, void *(*start_routine)(void *), void *data, size_t stacksize, const char *file, const char *caller, int line, const char *start_fn) |
int | ast_pthread_create_stack (pthread_t *thread, pthread_attr_t *attr, void *(*start_routine)(void *), void *data, size_t stacksize, const char *file, const char *caller, int line, const char *start_fn) |
long int | ast_random (void) |
void | ast_register_thread (char *name) |
void | ast_set_default_eid (struct ast_eid *eid) |
Fill in an ast_eid with the default eid of this machine. More... | |
void | ast_sha1_hash (char *output, const char *input) |
Produces SHA1 hash based on input string. More... | |
static force_inline void | ast_slinear_saturated_add (short *input, short *value) |
static force_inline void | ast_slinear_saturated_divide (short *input, short *value) |
static force_inline void | ast_slinear_saturated_multiply (short *input, short *value) |
static force_inline void | ast_slinear_saturated_subtract (short *input, short *value) |
int | ast_str_to_eid (struct ast_eid *eid, const char *s) |
Convert a string into an EID. More... | |
void | ast_unescape_quoted (char *quote_str) |
Unescape quotes in a string. More... | |
void | ast_unregister_thread (void *id) |
void | ast_uri_decode (char *s) |
Decode URI, URN, URL (overwrite string) More... | |
char * | ast_uri_encode (const char *string, char *outbuf, int buflen, int do_special_char) |
Turn text string to URI-encoded XX version. More... | |
int | ast_utils_init (void) |
char * | ast_utils_which (const char *binary, char *fullpath, size_t fullpath_size) |
Resolve a binary to a full pathname. More... | |
int | ast_wait_for_input (int fd, int ms) |
int | ast_wait_for_output (int fd, int ms) |
int | ast_xml_escape (const char *string, char *outbuf, size_t buflen) |
Escape reserved characters for use in XML. More... | |
Variables | |
unsigned int | __unsigned_int_flags_dummy |
uint64_t | __unsigned_int_flags_dummy64 |
struct ast_eid | ast_eid_default |
Global EID. More... | |
Utility functions.
Definition in file utils.h.
#define ast_align_for | ( | offset, | |
type | |||
) | (((offset + __alignof__(type) - 1) / __alignof__(type)) * __alignof__(type)) |
Increase offset so it is a multiple of the required alignment of type.
offset | The value that should be increased. |
type | The data type that offset should be aligned to. |
Many systems prefer integers to be stored on aligned on memory locations. This macro will increase an offset so a value of the supplied type can be safely be stored on such a memory location.
Examples: ast_align_for(0x17, int64_t) ==> 0x18 ast_align_for(0x18, int64_t) ==> 0x18 ast_align_for(0x19, int64_t) ==> 0x20
Don't mind the ugliness, the compiler will optimize it.
Definition at line 780 of file utils.h.
Referenced by __ast_string_field_ptr_build_va().
Return the number of bytes used in the alignment of type.
type |
This is really just alignof(), but tucked away in this header so we don't have to look at the nasty underscores in the source.
Definition at line 760 of file utils.h.
Referenced by __ast_string_field_alloc_space(), and __ast_string_field_ptr_build_va().
#define ast_alloca | ( | size | ) | __builtin_alloca(size) |
call __builtin_alloca to ensure we get gcc builtin semantics
size | The size of the buffer we want allocated |
This macro will attempt to allocate memory from the stack. If it fails you won't get a NULL returned, but a SEGFAULT if you're lucky.
Definition at line 653 of file utils.h.
Referenced by __ast_verbose_ap(), _while_exec(), ael2_semantic_check(), aji_start_sasl(), alsa_card_init(), append_mailbox(), ast_control_streamfile(), ast_dsp_process(), ast_event_append_ie_str(), ast_event_check_subscriber(), ast_event_new(), ast_fileexists(), ast_lock_path_flock(), ast_lock_path_lockfile(), ast_mkdir(), ast_openstream_full(), ast_openvstream(), ast_pthread_create_detached_stack(), ast_pthread_create_stack(), ast_remotecontrol(), ast_say_counted_adjective(), ast_say_counted_noun(), ast_unlock_path_flock(), ast_unlock_path_lockfile(), ast_waitfor_nandfds(), ast_writefile(), astman_append_json(), builtin_automixmonitor(), builtin_automonitor(), callerid_feed(), callerid_feed_jp(), CB_ADD_LEN(), config_module(), cpeid_exec(), create_addr_from_peer(), cut_internal(), decode_frame(), dictate_exec(), dundi_decrypt(), dundi_encrypt(), dundi_precache_internal(), encrypt_frame(), feature_request_and_dial(), festival_exec(), find_table(), func_mchan_read(), function_fieldnum_helper(), function_fieldqty_helper(), handle_cli_config_reload(), handle_command_response(), handle_exec(), import_helper(), inprocess_count(), listfilter(), local_attended_transfer(), lua_get_variable(), lua_get_variable_value(), lua_read_extensions_file(), masquerade_colp_transfer(), mixmonitor_exec(), my_ast_get_channel_by_name_locked(), pbx_builtin_importvar(), pbx_load_module(), pbx_substitute_variables_helper_full(), queue_file(), realtime_exec(), replace(), shared_read(), shared_write(), shift_pop(), sip_addheader(), sms_generate(), socket_process(), sort_internal(), state_notify_build_xml(), static_callback(), try_firmware(), unshift_push(), vm_change_password(), vm_delete(), and vm_play_folder_name_gr().
#define ast_asprintf | ( | ret, | |
fmt, | |||
... | |||
) | _ast_asprintf((ret), __FILE__, __LINE__, __PRETTY_FUNCTION__, fmt, __VA_ARGS__) |
A wrapper for asprintf()
ast_asprintf() is a wrapper for asprintf() that will generate an Asterisk log message in the case that the allocation fails.
The arguments and return value are the same as asprintf()
#define ast_assert | ( | a | ) |
Definition at line 738 of file utils.h.
Referenced by __ast_string_field_alloc_space(), __ast_string_field_ptr_build_va(), _ast_odbc_request_obj2(), ack_ticks(), agent_call(), append_ie(), ast_cc_is_recall(), ast_channel_change_linkedid(), ast_channel_get_cc_config_params(), ast_db_get(), ast_hangup(), ast_register_thread(), ast_rtcp_read(), ast_rtp_read(), ast_sched_del(), ast_tcptls_stream_set_exclusive_input(), ast_tcptls_stream_set_timeout_disable(), ast_tcptls_stream_set_timeout_inactivity(), ast_tcptls_stream_set_timeout_sequence(), ast_udptl_read(), ast_xml_escape(), cc_generic_agent_start_monitoring(), cc_generic_agent_start_offer_timer(), cc_generic_monitor_cancel_available_timer(), check_callback_sanity(), create_jb(), create_new_sip_etag(), dahdi_pri_cc_agent_init(), db_sync_thread(), determine_sip_publish_type(), find_timer(), handle_response_publish(), INTERNAL_OBJ(), jb_get_and_deliver(), odbc_obj_connect(), parkinglot_destroy(), pthread_timer_ack(), publish_expire(), queue_exec(), ring_entry(), security_event_cb(), sig_pri_call(), sip_cc_agent_init(), sip_cc_monitor_unsuspend(), and tcptls_stream_dtor().
#define AST_BACKGROUND_STACKSIZE AST_STACKSIZE |
#define ast_calloc | ( | num, | |
len | |||
) | _ast_calloc((num), (len), __FILE__, __LINE__, __PRETTY_FUNCTION__) |
#define ast_calloc_cache | ( | num, | |
len | |||
) | _ast_calloc((num), (len), __FILE__, __LINE__, __PRETTY_FUNCTION__) |
A wrapper for calloc() for use in cache pools.
ast_calloc_cache() is a wrapper for calloc() that will generate an Asterisk log message in the case that the allocation fails. When memory debugging is in use, the memory allocated by this function will be marked as 'cache' so it can be distinguished from normal memory allocations.
The arguments and return value are the same as calloc()
#define ast_clear_flag | ( | p, | |
flag | |||
) |
Definition at line 77 of file utils.h.
Referenced by __analog_ss_thread(), __ast_pbx_run(), __ast_read(), __do_deliver(), __transmit_response(), action_redirect(), aji_create_client(), aji_filter_roster(), aji_load_config(), analog_ss_thread(), ast_audiohook_set_mute(), ast_autoservice_stop(), ast_bridge_call(), ast_cdr_reset(), ast_cdr_specialized_reset(), ast_channel_bridge(), ast_channel_undefer_dtmf(), ast_do_masquerade(), ast_generic_bridge(), ast_jb_destroy(), ast_jb_put(), ast_rtp_raw_write(), ast_sendtext(), ast_settimeout_full(), ast_speech_start(), ast_tls_read_conf(), ast_translate(), ast_waitfor_nandfds(), ast_waitfordigit_full(), ast_write(), bridge_channel_feature(), bridge_p2p_rtp_write(), builtin_atxfer(), change_hold_state(), change_spy_mode(), channel_spy(), chanspy_exec(), check_goto_on_transfer(), check_pendings(), common_exec(), config_function_read(), config_text_file_load(), dahdi_read(), dahdiscan_exec(), deactivate_generator_nolock(), dial_exec_full(), dictate_exec(), disa_exec(), dundi_lookup_local(), extenspy_exec(), forward_message(), handle_command_response(), handle_common_options(), handle_exec(), handle_request_bye(), handle_request_invite(), handle_request_refer(), handle_response(), handle_response_notify(), handle_speechrecognize(), handle_t38_options(), handle_verbose(), init_acf_query(), initialize_udptl(), linear_alloc(), load_config(), load_module(), load_moh_classes(), local_ast_moh_stop(), local_attended_transfer(), local_hangup(), main(), manage_parked_call(), manager_optimize_away(), odbc_load_module(), park_call_full(), parkandannounce_exec(), parse_options(), phone_read(), playtones_alloc(), process_sdp(), register_verify(), reload_config(), reset_transaction(), set_config(), set_config_flags(), setup_dahdi_int(), sip_call(), sip_dtmfmode(), sip_hangup(), sip_reload(), sip_set_rtp_peer(), socket_process(), speech_background(), try_calling(), update_call_counter(), update_connectedline(), and waitstream_core().
#define ast_clear_flag64 | ( | p, | |
flag | |||
) |
Definition at line 134 of file utils.h.
Referenced by authenticate_verify(), build_peer(), build_user(), create_addr(), do_forward(), find_conf(), find_conf_realtime(), iax2_destroy_helper(), iax2_setoption(), set_config(), set_config_destroy(), socket_process(), and wait_for_answer().
#define ast_clear_flag_nonstd | ( | p, | |
flag | |||
) |
Definition at line 180 of file utils.h.
Referenced by build_transactions(), cache_lookup_internal(), dundi_lookup_local(), dundi_prop_precache(), and handle_command_response().
#define ast_copy_flags | ( | dest, | |
src, | |||
flagz | |||
) |
Definition at line 84 of file utils.h.
Referenced by add_features_datastore(), agent_read(), aji_create_client(), aji_filter_roster(), ast_call_forward(), ast_cdr_reset(), ast_cdr_specialized_reset(), ast_frdup(), ast_frisolate(), build_peer(), builtin_atxfer(), cache_lookup_internal(), channel_spy(), check_peer_ok(), create_addr_from_peer(), dundi_lookup_local(), feature_interpret(), framein(), minivm_greet_exec(), minivm_record_exec(), parked_call_exec(), populate_defaults(), realtime_peer(), register_verify(), reload_config(), set_peer_defaults(), sip_alloc(), sip_poke_peer(), transmit_response_using_temp(), and vm_exec().
#define ast_copy_flags64 | ( | dest, | |
src, | |||
flagz | |||
) |
Definition at line 141 of file utils.h.
Referenced by __find_callno(), build_peer(), build_user(), check_access(), create_addr(), dial_exec_full(), find_conf_realtime(), iax2_request(), realtime_peer(), and wait_for_answer().
#define ast_copy_flags_nonstd | ( | dest, | |
src, | |||
flagz | |||
) |
#define AST_FLAGS_ALL UINT_MAX |
Definition at line 196 of file utils.h.
Referenced by add_features_datastore(), aji_create_client(), ast_cdr_reset(), ast_cdr_specialized_reset(), builtin_atxfer(), cache_lookup_internal(), channel_spy(), chanspy_exec(), check_goto_on_transfer(), dahdiscan_exec(), disa_exec(), dundi_lookup_local(), extenspy_exec(), feature_interpret(), handle_queue_reload(), load_module(), load_moh_classes(), manager_queue_reload(), parked_call_exec(), parse_options(), populate_defaults(), reload(), reload_config(), and set_config_flags().
#define ast_free free |
#define ast_make_room_for | ( | offset, | |
type | |||
) | (((offset + (2 * __alignof__(type) - 1)) / __alignof__(type)) * __alignof__(type)) |
Increase offset by the required alignment of type and make sure it is a multiple of said alignment.
offset | The value that should be increased. |
type | The data type that room should be reserved for. |
A use case for this is when prepending length fields of type int to a buffer. If you keep the offset a multiple of the alignment of the integer type, a next block of length+buffer will have the length field automatically aligned.
Examples: ast_make_room_for(0x17, int64_t) ==> 0x20 ast_make_room_for(0x18, int64_t) ==> 0x20 ast_make_room_for(0x19, int64_t) ==> 0x28
Don't mind the ugliness, the compiler will optimize it.
Definition at line 803 of file utils.h.
Referenced by __ast_string_field_alloc_space(), and __ast_string_field_ptr_build_va().
#define ast_malloc | ( | len | ) | _ast_malloc((len), __FILE__, __LINE__, __PRETTY_FUNCTION__) |
#define ast_pthread_create | ( | a, | |
b, | |||
c, | |||
d | |||
) |
Definition at line 418 of file utils.h.
Referenced by accept_thread(), ast_bridge_impart(), ast_dial_run(), ast_features_init(), ast_taskprocessor_get(), bridge_call_thread_launch(), bridge_channel_join(), build_calendar(), handle_callforward_button(), handle_enbloc_call_message(), handle_offhook_message(), handle_soft_key_event_message(), handle_stimulus_message(), handle_transfer_button(), HandleCallOutgoing(), init_logger(), load_module(), multiplexed_add_or_remove(), restart_monitor(), setup_dahdi_int(), sla_load_config(), and start_poll_thread().
#define ast_pthread_create_background | ( | a, | |
b, | |||
c, | |||
d | |||
) |
Definition at line 426 of file utils.h.
Referenced by add_notify(), aji_reload(), ast_autoservice_start(), ast_device_state_engine_init(), ast_enable_distributed_devstate(), ast_makesocket(), ast_safe_fork(), ast_sched_thread_create(), ast_tcptls_server_start(), astdb_init(), calendar_event_notify(), conf_run(), config_load(), do_monitor(), do_reload(), find_idle_thread(), init_app_class(), init_timing_thread(), load_module(), local_ast_moh_start(), pri_dchannel(), restart_monitor(), restart_pktc_thread(), sig_pri_start_pri(), smdi_load(), start_network_thread(), and start_stream().
#define ast_pthread_create_detached | ( | a, | |
b, | |||
c, | |||
d | |||
) |
Definition at line 422 of file utils.h.
Referenced by __analog_handle_event(), action_originate(), analog_handle_init_event(), analog_ss_thread_start(), ast_pbx_outgoing_app(), ast_pbx_outgoing_exten(), ast_pbx_start(), dahdi_handle_event(), do_monitor(), dundi_answer_entity(), dundi_answer_query(), dundi_prop_precache(), handle_hd_hf(), handle_init_event(), launch_service(), main(), mwi_thread(), pri_dchannel(), and spawn_dp_lookup().
#define ast_pthread_create_detached_background | ( | a, | |
b, | |||
c, | |||
d | |||
) |
Definition at line 431 of file utils.h.
Referenced by ast_cdr_submit_batch(), ast_tcptls_server_root(), cc_generic_agent_recall(), conf_run(), iax_park(), launch_monitor_thread(), listener(), load_module(), meetme_menu_admin_extended(), sip_park(), sip_pickup(), sip_prepare_socket(), sla_handle_dial_state_event(), and sla_station_exec().
#define ast_realloc | ( | p, | |
len | |||
) | _ast_realloc((p), (len), __FILE__, __LINE__, __PRETTY_FUNCTION__) |
#define ast_set2_flag | ( | p, | |
value, | |||
flag | |||
) |
Definition at line 94 of file utils.h.
Referenced by __ast_pbx_run(), _macro_exec(), actual_load_config(), aji_create_client(), aji_load_config(), apply_general_options(), apply_option(), apply_outgoing(), ast_bridge_call(), ast_jb_read_conf(), ast_plc_reload(), ast_readconfig(), ast_tls_read_conf(), ast_translate(), build_peer(), dial_exec_full(), do_reload(), find_account(), find_user(), forkcdr_exec(), gosub_run(), handle_common_options(), handle_gosub(), handle_t38_options(), load_config(), load_module(), load_moh_classes(), local_ast_moh_start(), reload_config(), and sip_setoption().
#define ast_set2_flag64 | ( | p, | |
value, | |||
flag | |||
) |
Definition at line 151 of file utils.h.
Referenced by build_peer(), build_user(), check_access(), dial_exec_full(), and set_config().
#define ast_set_flag | ( | p, | |
flag | |||
) |
Definition at line 70 of file utils.h.
Referenced by __analog_ss_thread(), __ast_pbx_run(), __ast_read(), __ast_request_and_dial(), __sip_subscribe_mwi_do(), _macro_exec(), action_redirect(), aji_create_client(), aji_load_config(), analog_ss_thread(), app_exec(), apply_peer(), ast_audiohook_set_mute(), ast_autoservice_start(), ast_bridge_call(), ast_bridge_features_set_flag(), ast_bridge_new(), ast_bridge_timelimit(), ast_call(), ast_cdr_detach(), ast_cdr_fork(), ast_cdr_merge(), ast_cdr_reset(), ast_cdr_specialized_reset(), ast_channel_bridge(), ast_channel_defer_dtmf(), ast_do_masquerade(), ast_do_pickup(), ast_generic_bridge(), ast_hangup(), ast_jb_do_usecheck(), ast_jb_put(), ast_rtp_change_source(), ast_rtp_local_bridge(), ast_rtp_raw_write(), ast_rtp_read(), ast_rtp_stop(), ast_rtp_update_source(), ast_settimeout_full(), ast_speech_change_state(), AST_TEST_DEFINE(), ast_tls_read_conf(), ast_waitfor_nandfds(), ast_waitfordigit_full(), asyncgoto_exec(), bridge_channel_feature(), bridge_exec(), bridge_p2p_rtp_write(), build_peer(), builtin_atxfer(), builtin_blindtransfer(), cb_extensionstate(), cc_generic_agent_init(), change_hold_state(), change_spy_mode(), channel_spy(), chanspy_exec(), check_bridge(), check_peer_ok(), check_user_full(), check_via(), common_exec(), create_addr_from_peer(), create_transaction(), dahdiscan_exec(), destroy_trans(), dial_exec_full(), dictate_exec(), directory_exec(), disa_exec(), do_register(), dundi_encrypt(), dundi_lookup_local(), dundi_send(), extenspy_exec(), find_peer(), find_user_realtime(), free_vm_users(), gosub_run(), handle_command_response(), handle_common_options(), handle_exec(), handle_gosub(), handle_invite_replaces(), handle_queue_reload(), handle_request_invite(), handle_request_refer(), handle_request_subscribe(), handle_response(), handle_response_invite(), handle_t38_options(), handle_verbose(), hangupcalls(), hanguptree(), init_acf_query(), init_app_class(), interpret_t38_parameters(), launch_monitor_thread(), leave_voicemail(), linear_alloc(), load_config(), load_moh_classes(), local_alloc(), local_ast_moh_start(), local_attended_transfer(), local_call(), local_hangup(), login_exec(), main(), manage_parked_call(), manager_queue_reload(), manager_sipnotify(), minivm_greet_exec(), new_outgoing(), nocdr_exec(), odbc_load_module(), park_call_full(), parked_call_exec(), parse_options(), playtones_alloc(), post_cdr(), process_applicationmap_line(), process_cn_rfc3389(), process_crypto(), process_sdp(), qualify_peer(), record_exec(), register_verify(), reload_config(), ring_entry(), set_bridge_features_on_config(), set_config_flags(), set_insecure_flags(), sip_answer(), sip_call(), sip_cc_agent_init(), sip_cc_agent_respond(), sip_cc_monitor_request_cc(), sip_cli_notify(), sip_dtmfmode(), sip_hangup(), sip_indicate(), sip_park_thread(), sip_poke_peer(), sip_reinvite_retry(), sip_send_mwi_to_peer(), sip_sendhtml(), sip_set_rtp_peer(), sip_set_udptl_peer(), sip_write(), socket_process(), start_spying(), tonepair_alloc(), transmit_publish(), transmit_register(), transmit_reinvite_with_sdp(), try_calling(), update_call_counter(), update_connectedline(), vm_execmain(), volume_write(), and waitstream_core().
#define ast_set_flag64 | ( | p, | |
flag | |||
) |
Definition at line 127 of file utils.h.
Referenced by authenticate_reply(), authenticate_request(), build_peer(), build_user(), check_access(), decrypt_frame(), dial_exec_full(), dial_trunk(), do_forward(), handle_cli_iax2_prune_realtime(), iax2_predestroy(), iax2_provision(), iax2_setoption(), iax2_start_transfer(), meetme_menu_admin_extended(), parse_options(), peer_delme_cb(), pvt_destructor(), realtime_peer(), realtime_user(), run_station(), set_config(), sla_station_exec(), sla_trunk_exec(), socket_process(), and user_delme_cb().
#define ast_set_flag_nonstd | ( | p, | |
flag | |||
) |
Definition at line 176 of file utils.h.
Referenced by dundi_lookup_internal(), dundi_query_eid_internal(), and handle_command_response().
#define ast_set_flags_to64 | ( | p, | |
flag, | |||
value | |||
) |
Definition at line 161 of file utils.h.
Referenced by build_peer(), build_user(), and set_config().
#define AST_STACKSIZE (((sizeof(void *) * 8 * 8) - 16) * 1024) |
Definition at line 399 of file utils.h.
Referenced by ast_pthread_create_stack().
#define ast_strdup | ( | str | ) | _ast_strdup((str), __FILE__, __LINE__, __PRETTY_FUNCTION__) |
A wrapper for strdup()
ast_strdup() is a wrapper for strdup() that will generate an Asterisk log message in the case that the allocation fails.
ast_strdup(), unlike strdup(), can safely accept a NULL argument. If a NULL argument is provided, ast_strdup will return NULL without generating any kind of error log message.
The argument and return value are the same as strdup()
#define ast_strdupa | ( | s | ) |
duplicate a string in memory from the stack
s | The string to duplicate |
This macro will duplicate the given string. It returns a pointer to stack allocated memory for the new string.
Definition at line 663 of file utils.h.
Referenced by __ast_channel_alloc_ap(), __ast_play_and_record(), __dahdi_exception(), _ast_device_state(), _build_port_config(), _macro_exec(), _parse(), _sip_show_peers_one(), _while_exec(), acf_jabberreceive_read(), acf_meetme_info(), acf_odbc_write(), action_agents(), action_status(), actual_load_config(), add_agent(), add_peer_mailboxes(), add_realm_authentication(), add_redirect(), add_var(), admin_exec(), advanced_options(), aelsub_exec(), agent_hangup(), agi_exec_full(), agi_handle_command(), aji_join_exec(), aji_leave_exec(), aji_send_exec(), aji_sendgroup_exec(), aji_status_exec(), analog_exception(), answer_exec_enable(), app_exec(), append_mailbox(), append_mailbox_mapping(), append_var_and_value_to_filter(), apply_directmedia_ha(), apply_options(), aqm_exec(), array(), ast_aji_get_client(), ast_app_getdata(), ast_append_ha(), ast_async_goto(), ast_bridge_call(), ast_bridge_timelimit(), ast_build_timing(), ast_callerid_split(), ast_cdr_fork(), ast_cdr_setaccount(), ast_cdr_setpeeraccount(), ast_cel_report_event(), ast_channel_connected_line_macro(), ast_channel_redirecting_macro(), ast_channel_set_linkgroup(), ast_data_iterator_init(), ast_do_pickup(), ast_eivr_senddtmf(), ast_eivr_setvariable(), ast_el_add_history(), ast_event_append_ie_str(), ast_event_sub_append_ie_str(), ast_filehelper(), ast_format_str_reduce(), ast_func_read(), ast_func_read2(), ast_func_write(), ast_get_group(), ast_masq_park_call(), ast_masq_park_call_exten(), ast_mkdir(), ast_monitor_change_fname(), ast_monitor_start(), ast_netsock_bind(), ast_ouraddrfor(), ast_park_call_exten(), ast_parse_allow_disallow(), ast_parse_arg(), ast_playtones_start(), ast_register_file_version(), ast_rtp_read(), ast_sockaddr_parse(), ast_sockaddr_resolve(), ast_str_retrieve_variable(), ast_utils_which(), ast_writefile(), asyncgoto_exec(), auth_exec(), authenticate_reply(), authenticate_verify(), background_detect_exec(), bridge_exec(), bridge_play_sounds(), build_channels(), build_gateway(), build_mapping(), build_peer(), build_route(), build_user(), builtin_atxfer(), builtin_automixmonitor(), builtin_automonitor(), cache_get_callno_locked(), callerid_read(), callerid_write(), celgenuserevent_exec(), chanavail_exec(), change_callid_pvt(), channel_admin_exec(), channel_spy(), chanspy_exec(), check_access(), check_blacklist(), check_day(), check_dow(), check_goto_on_transfer(), check_month(), check_peer_ok(), check_switch_expr(), check_timerange(), check_user_full(), cli_odbc_read(), cli_odbc_write(), complete_meetmecmd_list(), complete_meetmecmd_mute_kick(), conf_exec(), conf_run(), conf_start_moh(), confbridge_exec(), config_function_read(), config_line(), config_module(), connectedline_read(), connectedline_write(), controlplayback_exec(), count_exec(), create_addr(), create_addr_from_peer(), create_dynamic_parkinglot(), create_followme_number(), create_queue_member(), create_vmaccount(), cut_internal(), dahdi_accept_r2_call_exec(), dahdi_send_callrerouting_facility_exec(), dahdiras_exec(), dahdiscan_exec(), data_filter_add_nodes(), data_filter_alloc(), data_filter_generate(), data_provider_create(), data_provider_release(), data_result_generate(), data_result_get_node(), data_search_create(), data_search_generate(), data_search_get_node(), decrypt_frame(), del_exec(), deltree_exec(), determine_starting_point(), dial_exec_full(), dial_trunk(), dialgroup_refreshdb(), dialgroup_write(), dictate_exec(), directory_exec(), disa_exec(), dnsmgr_refresh(), do_bridge_masquerade(), do_immediate_setup(), do_notify(), do_say(), dundi_query_read(), dundi_result_read(), dundifunc_read(), enum_query_read(), enum_result_read(), ewscal_write_event(), exec_exec(), execif_exec(), expand_gosub_args(), extenspy_exec(), feature_check(), feature_interpret(), festival_exec(), fileexists_core(), find_conf_realtime(), find_generic_monitor_instance_list(), find_gtalk(), find_sdp(), find_table(), find_table_cb(), forkcdr_exec(), function_agent(), function_iaxpeer(), function_realtime_store(), get_cid_name(), get_destination(), get_refer_info(), gosub_exec(), gosub_run(), gosubif_exec(), gtalk_action(), gtalk_alloc(), gtalk_create_candidates(), gtalk_invite(), gtalk_request(), gtalk_update_externip(), handle_call_forward(), handle_cli_check_permissions(), handle_cli_dialplan_add_extension(), handle_cli_file_convert(), handle_common_options(), handle_debug_dialplan(), handle_gosub(), handle_mfcr2_set_debug(), handle_mgcp_audit_endpoint(), handle_options(), handle_request_invite(), handle_request_notify(), handle_request_refer(), handle_response(), handle_show_dialplan(), handle_t38_options(), handle_verbose(), has_voicemail(), iax2_call(), iax2_devicestate(), iax2_prov_app(), iax2_request(), iconv_read(), init_acf_query(), init_jack_data(), insert_penaltychange(), is_prefix(), is_valid_dtmf(), isAnsweringMachine(), isexten_function_read(), ivr_dispatch(), jingle_request(), launch_ha_netscript(), launch_monitor_thread(), launch_netscript(), leave_voicemail(), load_channelvars(), load_config(), load_dynamic_module(), local_call(), local_devicestate(), log_exec(), logger_print_normal(), login_exec(), lua_get_variable_value(), lua_pbx_exec(), lua_set_variable_value(), macroif_exec(), main(), make_components(), make_email_file(), man_do_variable_value(), manage_parked_call(), match_ie_val(), match_sub_ie_val_to_event(), meetmemute(), metermaidstate(), mgcp_devicestate(), minivm_accmess_exec(), minivm_account_func_read(), minivm_counter_func_read(), minivm_counter_func_write(), minivm_greet_exec(), minivm_mwi_exec(), minivm_notify_exec(), minivm_record_exec(), misdn_call(), misdn_check_l2l1(), misdn_facility_exec(), misdn_request(), misdn_set_opt_exec(), mixmonitor_exec(), mkintf(), moh_handle_digit(), monitor_dial(), multicast_rtp_request(), my_pri_make_cc_dialstring(), notify_message(), notify_new_message(), odbc_log(), on_dns_update_mwi(), on_dns_update_peer(), on_dns_update_registry(), orig_app(), orig_exten(), originate_exec(), ospauth_exec(), ospfinished_exec(), osplookup_exec(), ospnext_exec(), oss_call(), oss_request(), page_exec(), park_call_exec(), park_space_reserve(), parkandannounce_exec(), parked_call_exec(), parse_allowed_methods(), parse_apps(), parse_cookies(), parse_empty_options(), parse_events(), parse_register_contact(), parse_session_expires(), parse_sip_options(), parse_uri_full(), party_id_write(), party_name_write(), party_number_write(), pbx_builtin_answer(), pbx_builtin_background(), pbx_builtin_execiftime(), pbx_builtin_gotoif(), pbx_builtin_gotoiftime(), pbx_builtin_importvar(), pbx_builtin_pushvar_helper(), pbx_builtin_resetcdr(), pbx_builtin_saydate(), pbx_builtin_saytime(), pbx_builtin_setvar(), pbx_builtin_setvar_helper(), pbx_builtin_setvar_multiple(), pbx_builtin_waitexten(), pbx_extension_helper(), pbx_find_extension(), pbx_parseable_goto(), peer_set_srcaddr(), pickup_exec(), pickupchan_exec(), play_message(), play_moh_exec(), playback_exec(), pqm_exec(), prep_email_sub_vars(), privacy_exec(), process_applicationmap_line(), process_dahdi(), process_echocancel(), process_sdp(), process_sdp_a_image(), process_sdp_o(), proxy_from_config(), ql_exec(), queue_exec(), queue_mwi_event(), queue_set_param(), rcvfax_exec(), read_exec(), readexten_exec(), readfile_exec(), realtime_common(), realtime_exec(), realtime_multi_curl(), realtime_multi_ldap(), realtime_multi_odbc(), realtime_multi_pgsql(), receivefax_exec(), record_exec(), redirecting_read(), redirecting_write(), register_verify(), registry_authrequest(), reload_config(), reload_followme(), reload_single_member(), resource_name_match(), retrydial_exec(), rqm_exec(), rtcp_do_debug_ip(), rtp_do_debug_ip(), saycountedadj_exec(), saycountednoun_exec(), sayunixtime_exec(), sdp_crypto_process(), senddtmf_exec(), sendfax_exec(), sendmail(), sendurl_exec(), set_config_flags(), set_hangup_source_and_cause(), setup_privacy_args(), setup_stunaddr(), sig_pri_extract_called_num_subaddr(), sig_pri_msn_match(), sip_acf_channel_read(), sip_devicestate(), sip_get_cc_information(), sip_new(), sip_queue_hangup_cause(), sip_send_mwi_to_peer(), sip_show_settings(), sip_sipredirect(), sip_uri_cmp(), sip_uri_headers_cmp(), sip_uri_params_cmp(), skel_exec(), skinny_devicestate(), sla_add_trunk_to_station(), sla_check_device(), sla_queue_event_conf(), sla_ring_station(), sla_state(), sla_station_exec(), sla_trunk_exec(), smdi_msg_read(), smdi_msg_retrieve_read(), sms_exec(), sndfax_exec(), socket_process(), softhangup_exec(), sort_internal(), speech_background(), speech_load(), srv_result_read(), stackpeek_read(), start_moh_exec(), start_monitor_action(), start_monitor_exec(), state_notify_build_xml(), stun_monitor_request(), timezone_add(), transfer_exec(), transmit_invite(), try_calling(), tryexec_exec(), unistim_send_mwi_to_peer(), update_bridge_vars(), update_common_options(), update_registry(), upqm_exec(), userevent_exec(), verbose_exec(), vm_box_exists(), vm_check_password_shell(), vm_exec(), vm_execmain(), vmauthenticate(), vmsayname_exec(), wait_for_answer(), wait_for_winner(), waitstream_core(), xfer_park_call_helper(), xmldoc_get_syntax_fun(), and zapateller_exec().
#define ast_strndup | ( | str, | |
len | |||
) | _ast_strndup((str), (len), __FILE__, __LINE__, __PRETTY_FUNCTION__) |
A wrapper for strndup()
ast_strndup() is a wrapper for strndup() that will generate an Asterisk log message in the case that the allocation fails.
ast_strndup(), unlike strndup(), can safely accept a NULL argument for the string to duplicate. If a NULL argument is provided, ast_strdup will return NULL without generating any kind of error log message.
The arguments and return value are the same as strndup()
#define ast_test_flag | ( | p, | |
flag | |||
) |
Definition at line 63 of file utils.h.
Referenced by __ast_channel_masquerade(), __ast_pbx_run(), __ast_queue_frame(), __ast_read(), __sip_destroy(), __ssl_setup(), __transmit_response(), _ast_odbc_request_obj2(), _macro_exec(), _sip_show_peer(), _sip_show_peers_one(), acf_odbc_read(), action_login(), add_agent(), add_codec_to_sdp(), add_rpid(), add_sdp(), aji_build_publish_skeleton(), aji_cli_purge_pubsub_nodes(), aji_create_client(), aji_handle_pubsub_error(), aji_handle_subscribe(), aji_pruneregister(), aji_publish_device_state(), aji_pubsub_subscribe(), app_exec(), ast_audiohook_write_frame(), ast_autoservice_start(), ast_bridge_call(), ast_bridge_end_dtmf(), ast_bridge_merge(), ast_call(), ast_can_pickup(), ast_cdr_answer(), ast_cdr_appenduserfield(), ast_cdr_busy(), ast_cdr_end(), ast_cdr_failed(), ast_cdr_fork(), ast_cdr_init(), ast_cdr_merge(), ast_cdr_noanswer(), ast_cdr_reset(), ast_cdr_setaccount(), ast_cdr_setamaflags(), ast_cdr_setanswer(), ast_cdr_setapp(), ast_cdr_setcid(), ast_cdr_setdestchan(), ast_cdr_setdisposition(), ast_cdr_setpeeraccount(), ast_cdr_setuserfield(), ast_cdr_setvar(), ast_cdr_specialized_reset(), ast_cdr_start(), ast_cdr_update(), ast_channel_bridge(), ast_channel_defer_dtmf(), ast_config_internal_load(), ast_do_masquerade(), ast_explicit_goto(), ast_frisolate(), ast_generic_bridge(), ast_hangup(), ast_indicate_data(), ast_jb_destroy(), ast_jb_do_usecheck(), ast_jb_empty_and_reset(), ast_jb_get_and_deliver(), ast_jb_get_when_to_wakeup(), ast_jb_put(), ast_moh_files_next(), ast_pbx_run_args(), ast_pbx_start(), ast_quiet_chan(), ast_raw_answer(), ast_readstring_full(), ast_rtp_raw_write(), ast_sendtext(), ast_settimeout_full(), ast_softhangup_nolock(), ast_streamfile(), AST_TEST_DEFINE(), ast_transfer(), ast_translate(), ast_waitfordigit_full(), ast_write(), auth_exec(), authenticate_verify(), bridge_channel_join(), bridge_check_dissolve(), bridge_exec(), bridge_p2p_rtp_write(), build_peer(), build_radius_record(), build_via(), builtin_atxfer(), call_forward_inherit(), callback_dialoptions(), cb_extensionstate(), cdr_read(), cdr_write(), change_hold_state(), channel_data_add_flags(), channel_spy(), chanspy_exec(), check_bridge(), check_peer_ok(), check_pendings(), check_post(), check_rtp_timeout(), check_user_full(), close_mailbox(), common_exec(), complete_sip_peer(), complete_sip_registered_peer(), confbridge_exec(), config_text_file_load(), connectedline_write(), controlplayback_exec(), copy_via_headers(), create_addr_from_peer(), create_jb(), destroy_trans(), dial_exec_full(), dialog_initialize_rtp(), dictate_exec(), directory_exec(), disa_exec(), display_nat_warning(), do_directory(), do_setnat(), dtmf_audiohook_write_list(), dundi_encrypt(), dundi_exec(), dundi_helper(), dundi_lookup_local(), dundi_lookup_thread(), dundi_precache_thread(), dundi_query_read(), dundi_query_thread(), dundi_rexmit(), dundi_send(), dundifunc_read(), eivr_comm(), enable_dsp_detect(), execute_cb(), expire_register(), extenspy_exec(), feature_exec_app(), feature_interpret_helper(), find_cache(), find_or_create(), find_user(), find_user_realtime(), forkcdr_exec(), forward_message(), free_user(), function_sippeer(), get_destination(), get_insecure_variable_from_config(), get_insecure_variable_from_sipregs(), get_rpid(), get_sip_pvt_byid_locked(), gosub_exec(), gosub_run(), handle_cli_moh_show_classes(), handle_cli_wait_fullybooted(), handle_command_response(), handle_exec(), handle_frame(), handle_gosub(), handle_incoming(), handle_minivm_show_settings(), handle_options(), handle_request_bye(), handle_request_cancel(), handle_request_info(), handle_request_invite(), handle_request_refer(), handle_request_subscribe(), handle_response(), handle_response_invite(), handle_response_notify(), handle_show_settings(), handle_showchan(), handle_skinny_show_settings(), handle_speechrecognize(), handle_tcptls_connection(), hint_read(), iax2_write(), initialize_udptl(), initreqprep(), interpret_t38_parameters(), is_state_change_valid(), join_conference_bridge(), leave_conference_bridge(), leave_voicemail(), load_dynamic_module(), load_resource(), local_alloc(), local_ast_moh_start(), local_bridgedchannel(), local_call(), local_devicestate(), local_hangup(), local_indicate(), local_write(), main(), make_email_file(), manager_list_voicemail_users(), masq_park_call(), match_req_to_dialog(), menu_callback(), minivm_accmess_exec(), minivm_account_func_read(), minivm_greet_exec(), minivm_notify_exec(), minivm_record_exec(), mixmonitor_exec(), mixmonitor_thread(), mod_load_cmp(), moh_files_alloc(), moh_scan_files(), multicast_rtp_write(), notify_new_message(), odbc_load_module(), page_exec(), park_call_exec(), park_call_full(), park_space_reserve(), parse_moved_contact(), parse_register_contact(), pbx_builtin_background(), pbx_builtin_waitexten(), peer_ipcmp_cb(), pick_unlocked_cdr(), play_mailbox_owner(), play_message(), play_record_review(), post_cdr(), post_join_marked(), post_join_unmarked(), precache_transactions(), process_cn_rfc3389(), process_crypto(), process_sdp(), process_sdp_a_audio(), process_sdp_o(), process_text_line(), read_exec(), readexten_exec(), realtime_peer(), realtime_switch_common(), receivefax_exec(), record_exec(), redirecting_write(), reload_config(), reload_handler(), reload_queues(), reload_single_queue(), remote_bridge_loop(), remove_from_queue(), reqprep(), respprep(), retrans_pkt(), retrydial_exec(), return_exec(), search_directory_sub(), select_entry(), select_item_pause(), send_request(), sendfax_exec(), sendmail(), sendurl_exec(), serialize_showchan(), set_address_from_contact(), set_config_flags(), set_pvt_allowed_methods(), set_t38_capabilities(), should_skip_dtmf(), show_channels_cb(), sig_pri_call(), sip_alloc(), sip_answer(), sip_call(), sip_cc_agent_destructor(), sip_destroy_peer(), sip_dtmfmode(), sip_fixup(), sip_get_rtp_peer(), sip_get_trtp_peer(), sip_get_udptl_peer(), sip_get_vrtp_peer(), sip_hangup(), sip_indicate(), sip_nat_mode(), sip_new(), sip_prune_realtime(), sip_queryoption(), sip_read(), sip_real_dst(), sip_rtp_read(), sip_send_mwi_to_peer(), sip_senddigit_begin(), sip_senddigit_end(), sip_sendhtml(), sip_set_rtp_peer(), sip_set_udptl_peer(), sip_setoption(), sip_show_channel(), sip_show_settings(), sip_show_users(), sip_write(), sla_trunk_exec(), smdi_msg_find(), sms_exec(), socket_process(), socket_process_meta(), softhangup_exec(), spawn_mp3(), speech_background(), speech_read(), spy_generate(), start_spying(), startmon(), transmit_info_with_digit(), transmit_invite(), transmit_notify_with_mwi(), transmit_refer(), transmit_reinvite_with_sdp(), transmit_request_with_auth(), transmit_response_with_sdp(), transmit_state_notify(), try_calling(), update_call_counter(), update_connectedline(), update_peer(), update_redirecting(), update_registry(), vm_exec(), vm_execmain(), vm_instructions_en(), vm_intro(), vm_newuser(), volume_callback(), wait_for_winner(), waitstream_core(), and xfer_park_call_helper().
#define ast_test_flag64 | ( | p, | |
flag | |||
) |
Definition at line 120 of file utils.h.
Referenced by __do_deliver(), __expire_registry(), __get_from_jb(), __iax2_show_peers(), action_meetmelist(), admin_exec(), ast_app_options2str64(), ast_cli_netstats(), authenticate_reply(), authenticate_request(), authenticate_verify(), build_peer(), build_user(), can_write(), check_access(), complete_iax2_peers(), conf_exec(), conf_run(), decrypt_frame(), dial_exec_full(), do_forward(), find_conf(), find_conf_realtime(), function_iaxpeer(), handle_cli_iax2_prune_realtime(), handle_cli_iax2_show_channels(), handle_cli_iax2_show_peer(), handle_cli_iax2_show_users(), iax2_bridge(), iax2_call(), iax2_destroy_helper(), iax2_getpeertrunk(), iax2_hangup(), iax2_indicate(), iax2_predestroy(), iax2_queryoption(), iax2_request(), iax2_send(), iax2_trunk_queue(), iax2_write(), log_jitterstats(), manager_iax2_show_peer_list(), meetme_menu_admin(), meetme_menu_admin_extended(), meetme_menu_normal(), meetme_show_cmd(), peers_data_provider_get(), prune_peers(), prune_users(), realtime_peer(), realtime_update_peer(), realtime_user(), reg_source_db(), register_verify(), retrydial_exec(), schedule_delivery(), send_trunk(), set_config(), setup_privacy_args(), socket_process(), update_registry(), user_set_kickme_cb(), user_set_muted_cb(), user_set_unmuted_cb(), users_data_provider_get(), valid_priv_reply(), and wait_for_answer().
#define ast_test_flag_nonstd | ( | p, | |
flag | |||
) | ((p)->flags & (flag)) |
Definition at line 173 of file utils.h.
Referenced by cache_save_hint(), dundi_lookup_thread(), dundi_precache_thread(), and handle_command_response().
#define ast_vasprintf | ( | ret, | |
fmt, | |||
ap | |||
) | _ast_vasprintf((ret), __FILE__, __LINE__, __PRETTY_FUNCTION__, (fmt), (ap)) |
A wrapper for vasprintf()
ast_vasprintf() is a wrapper for vasprintf() that will generate an Asterisk log message in the case that the allocation fails.
The arguments and return value are the same as vasprintf()
#define localtime_r __dont_use_localtime_r_use_ast_localtime_instead__ |
#define MALLOC_FAILURE_MSG ast_log(LOG_ERROR, "Memory Allocation Failure in function %s at line %d of %s\n", func, lineno, file); |
Definition at line 464 of file utils.h.
Referenced by _ast_asprintf().
Definition at line 228 of file utils.h.
Referenced by __ast_answer(), ast_dsp_busydetect(), handle_mousedown(), handle_request_invite_st(), handle_request_subscribe(), handle_response_register(), and sdl_setup().
Definition at line 226 of file utils.h.
Referenced by autoanswer_complete(), calculate_local_max_datagram(), h263p_encap(), h264_encap(), interpret_t38_parameters(), mpeg4_encap(), process_db_keys(), start_session_timer(), and unshift_push().
#define RAII_VAR | ( | vartype, | |
varname, | |||
initval, | |||
dtor | |||
) |
Declare a variable that will call a destructor function when it goes out of scope.
Resource Allocation Is Initialization (RAII) variable declaration.
vartype | The type of the variable |
varname | The name of the variable |
initval | The initial value of the variable |
dtor | The destructor function of type' void func(vartype *)' |
Definition at line 915 of file utils.h.
Referenced by check_user_full(), config_pgsql(), destroy_pgsql(), dial_trunk(), find_table(), get_destination(), realtime_multi_pgsql(), realtime_pgsql(), replace(), run_station(), sla_add_trunk_to_station(), sla_build_station(), sla_build_trunk(), sla_check_station_delay(), sla_handle_dial_state_event(), sla_state(), sla_station_exec(), sla_trunk_exec(), store_pgsql(), update2_pgsql(), and update_pgsql().
int _ast_asprintf | ( | char ** | ret, |
const char * | file, | ||
int | lineno, | ||
const char * | func, | ||
const char * | fmt, | ||
... | |||
) |
Definition at line 2331 of file utils.c.
References MALLOC_FAILURE_MSG, and vasprintf().
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
int ast_base64decode | ( | unsigned char * | dst, |
const char * | src, | ||
int | max | ||
) |
Decode data from base64.
dst | the destination buffer |
src | the source buffer |
max | The maximum number of bytes to write into the destination buffer. Note that this function will not ensure that the destination buffer is NULL terminated. So, in general, this parameter should be sizeof(dst) - 1. |
Decode data from base64.
Definition at line 279 of file utils.c.
Referenced by aes_helper(), ast_check_signature(), base64_helper(), osp_validate_token(), sdp_crypto_process(), and sdp_crypto_setup().
int ast_base64encode | ( | char * | dst, |
const unsigned char * | src, | ||
int | srclen, | ||
int | max | ||
) |
Encode data in base64.
dst | the destination buffer |
src | the source data to be encoded |
srclen | the number of bytes present in the source buffer |
max | the maximum number of bytes to write into the destination buffer, including the terminating NULL character. |
Definition at line 357 of file utils.c.
References ast_base64encode_full().
Referenced by aes_helper(), aji_start_sasl(), ast_sign(), base64_helper(), build_secret(), osp_check_destination(), and sdp_crypto_setup().
int ast_base64encode_full | ( | char * | dst, |
const unsigned char * | src, | ||
int | srclen, | ||
int | max, | ||
int | linebreaks | ||
) |
encode text to BASE64 coding
Definition at line 306 of file utils.c.
Referenced by ast_base64encode().
int ast_careful_fwrite | ( | FILE * | f, |
int | fd, | ||
const char * | s, | ||
size_t | len, | ||
int | timeoutms | ||
) |
Write data to a file stream with a timeout.
f | the file stream to write to |
fd | the file description to poll on to know when the file stream can be written to without blocking. |
s | the buffer to write from |
len | the number of bytes to write |
timeoutms | The maximum amount of time to block in this function trying to write, specified in milliseconds. |
0 | success |
-1 | error |
Definition at line 1369 of file utils.c.
References ast_log(), ast_tvdiff_ms(), ast_tvnow(), errno, LOG_ERROR, and wait_for_output().
Referenced by send_string().
int ast_carefulwrite | ( | int | fd, |
char * | s, | ||
int | len, | ||
int | timeoutms | ||
) |
Try to write string, but wait no more than ms milliseconds before timing out.
Try to write string, but wait no more than ms milliseconds before timing out.
Definition at line 1328 of file utils.c.
References ast_log(), ast_tvdiff_ms(), ast_tvnow(), errno, LOG_ERROR, and wait_for_output().
Referenced by ast_agi_send(), and ast_cli().
void ast_do_crash | ( | void | ) |
Force a crash if DO_CRASH is defined.
Compare two EIDs.
Definition at line 320 of file netsock.c.
Referenced by aji_devstate_cb(), aji_handle_pubsub_event(), aji_mwi_cb(), ast_event_cb(), build_peer(), build_transactions(), destroy_trans(), dundi_answer_entity(), dundi_answer_query(), dundi_ie_append_eid_appropriately(), dundi_lookup_internal(), dundi_prop_precache(), dundi_query_thread(), evt_event_deliver_cb(), find_peer(), handle_command_response(), optimize_transactions(), and register_request().
char* ast_eid_to_str | ( | char * | s, |
int | maxlen, | ||
struct ast_eid * | eid | ||
) |
/brief Convert an EID to a string
Definition at line 222 of file netsock.c.
References ast_eid::eid.
Referenced by aji_publish_device_state(), aji_publish_mwi(), append_transaction(), ast_set_default_eid(), ast_str_retrieve_variable(), build_peer(), build_transactions(), cache_lookup(), cache_lookup_internal(), check_key(), complete_peer_helper(), destroy_trans(), do_autokill(), do_register(), do_register_expire(), dump_answer(), dump_eid(), dump_raw_ie(), dundi_answer_entity(), dundi_lookup_internal(), dundi_lookup_local(), dundi_lookup_thread(), dundi_precache_thread(), dundi_prop_precache(), dundi_query_thread(), dundi_send(), dundi_show_entityid(), dundi_show_peer(), dundi_show_peers(), dundi_show_requests(), handle_command_response(), handle_show_settings(), populate_addr(), register_request(), and update_key().
void ast_enable_packet_fragmentation | ( | int | sock | ) |
Disable PMTU discovery on a socket.
sock | The socket to manipulate |
On Linux, UDP sockets default to sending packets with the Dont Fragment (DF) bit set. This is supposedly done to allow the application to do PMTU discovery, but Asterisk does not do this.
Because of this, UDP packets sent by Asterisk that are larger than the MTU of any hop in the path will be lost. This function can be called on a socket to ensure that the DF bit will not be set.
Definition at line 2141 of file utils.c.
References ast_log(), and LOG_WARNING.
Referenced by ast_netsock_bindaddr(), and reload_config().
char* ast_escape_quoted | ( | const char * | string, |
char * | outbuf, | ||
int | buflen | ||
) |
Escape characters found in a quoted string.
string | string to be escaped |
outbuf | resulting escaped string |
buflen | size of output buffer |
Escape characters found in a quoted string.
Definition at line 431 of file utils.c.
References string.
Referenced by add_diversion_header(), add_rpid(), ast_callerid_merge(), and initreqprep().
int ast_get_tid | ( | void | ) |
Get current thread ID.
Definition at line 2346 of file utils.c.
Referenced by __ao2_alloc_debug(), __ao2_ref_debug(), and ast_log().
struct hostent* ast_gethostbyname | ( | const char * | host, |
struct ast_hostent * | hp | ||
) |
Thread-safe gethostbyname function to use in Asterisk.
Thread-safe gethostbyname function to use in Asterisk.
Definition at line 195 of file utils.c.
References ast_hostent::buf, and ast_hostent::hp.
Referenced by __ast_http_load(), app_exec(), ast_parse_arg(), build_peer(), config_load(), config_parse_variables(), create_addr(), festival_exec(), gtalk_load_config(), gtalk_update_stun(), iax_template_parse(), jingle_load_config(), jingle_update_stun(), launch_netscript(), process_sdp(), realtime_peer(), realtime_user(), reload_config(), and set_config().
void ast_md5_hash | ( | char * | output, |
const char * | input | ||
) |
Produces MD5 hash based on input string.
Produces MD5 hash based on input string.
Definition at line 245 of file utils.c.
References MD5Final(), MD5Init(), and MD5Update().
Referenced by __init_manager(), auth_exec(), auth_http_callback(), build_reply_digest(), check_auth(), and md5().
int ast_mkdir | ( | const char * | path, |
int | mode | ||
) |
Recursively create directory path.
path | The directory path to create |
mode | The permissions with which to try to create the directory |
Creates a directory path, creating parent directories as needed.
Definition at line 2151 of file utils.c.
References ast_alloca, ast_strdupa, errno, and len().
Referenced by ast_monitor_change_fname(), ast_monitor_start(), conf_run(), create_dirpath(), dictate_exec(), filename_parse(), init_logger(), load_module(), mixmonitor_exec(), record_exec(), reload_logger(), remove_from_queue(), setup_privacy_args(), sms_nextoutgoing(), sms_writefile(), testclient_exec(), testserver_exec(), and write_history().
int ast_parse_digest | ( | const char * | digest, |
struct ast_http_digest * | d, | ||
int | request, | ||
int | pedantic | ||
) |
Parse digest authorization header.
Definition at line 2216 of file utils.c.
References ast_free, ast_log(), ast_skip_blanks(), ast_str_buffer(), ast_str_create(), ast_str_set(), ast_string_field_ptr_set, ast_string_field_set, ast_strlen_zero(), ast_unescape_c(), ast_http_digest::cnonce, ast_http_digest::domain, LOG_WARNING, ast_http_digest::nc, ast_http_digest::nonce, ast_http_digest::opaque, ast_http_digest::qop, ast_http_digest::realm, ast_http_digest::response, strsep(), ast_http_digest::uri, and ast_http_digest::username.
Referenced by auth_http_callback().
char* ast_process_quotes_and_slashes | ( | char * | start, |
char | find, | ||
char | replace_with | ||
) |
int ast_pthread_create_detached_stack | ( | pthread_t * | thread, |
pthread_attr_t * | attr, | ||
void *(*)(void *) | start_routine, | ||
void * | data, | ||
size_t | stacksize, | ||
const char * | file, | ||
const char * | caller, | ||
int | line, | ||
const char * | start_fn | ||
) |
Definition at line 1230 of file utils.c.
References ast_alloca, ast_log(), ast_pthread_create_stack(), errno, LOG_WARNING, and thr_arg::start_routine.
int ast_pthread_create_stack | ( | pthread_t * | thread, |
pthread_attr_t * | attr, | ||
void *(*)(void *) | start_routine, | ||
void * | data, | ||
size_t | stacksize, | ||
const char * | file, | ||
const char * | caller, | ||
int | line, | ||
const char * | start_fn | ||
) |
Definition at line 1182 of file utils.c.
References ast_alloca, ast_asprintf, ast_log(), ast_malloc, AST_STACKSIZE, thr_arg::data, dummy_start(), errno, LOG_WARNING, thr_arg::name, pthread_create, and thr_arg::start_routine.
Referenced by ast_pthread_create_detached_stack().
long int ast_random | ( | void | ) |
Definition at line 1640 of file utils.c.
References ast_mutex_lock, ast_mutex_unlock, and randomlock.
Referenced by acf_rand_exec(), action_challenge(), add_sdp(), agent_new(), agi_handle_command(), ast_lock_path_lockfile(), ast_moh_files_next(), ast_rtp_change_source(), ast_rtp_new(), ast_udptl_new_with_bindaddr(), auth_http_callback(), authenticate_request(), build_gateway(), build_iv(), build_localtag_registry(), build_rand_pad(), build_reply_digest(), calc_metric(), calc_rxstamp(), caldav_write_event(), callno_hash(), create_channel_name(), generate_exchange_uuid(), generate_random_string(), generic_http_callback(), get_trans_id(), gtalk_alloc(), gtalk_create_candidates(), gtalk_new(), handle_incoming(), handle_response_invite(), iax2_key_rotate(), iax2_start_transfer(), jingle_alloc(), jingle_create_candidates(), jingle_new(), load_module(), make_email_file(), make_our_tag(), moh_files_alloc(), multicast_rtp_new(), ogg_vorbis_rewrite(), osp_create_uuid(), page_exec(), park_space_reserve(), process_weights(), reg_source_db(), registry_authrequest(), reqprep(), say_periodic_announcement(), sendmail(), set_nonce_randdata(), sip_alloc(), socket_read(), start_rtp(), stun_req_id(), transmit_invite(), transmit_register(), transmit_response_using_temp(), try_calling(), and try_firmware().
void ast_register_thread | ( | char * | name | ) |
Definition at line 401 of file asterisk.c.
References ast_assert, ast_calloc, AST_RWLIST_INSERT_HEAD, AST_RWLIST_UNLOCK, AST_RWLIST_WRLOCK, ast_atexit::list, multi_thread_safe, and name.
Referenced by dummy_start().
void ast_set_default_eid | ( | struct ast_eid * | eid | ) |
Fill in an ast_eid with the default eid of this machine.
Definition at line 239 of file netsock.c.
References ARRAY_LEN, ast_debug, ast_eid_to_str(), and ast_eid::eid.
Referenced by ast_readconfig().
void ast_sha1_hash | ( | char * | output, |
const char * | input | ||
) |
Produces SHA1 hash based on input string.
Produces SHA1 hash based on input string.
Definition at line 261 of file utils.c.
References SHA1Input(), SHA1Reset(), and SHA1Result().
Referenced by aji_act_hook(), handle_call_token(), jabber_make_auth(), and sha1().
|
static |
Definition at line 312 of file utils.h.
Referenced by ast_frame_slinear_sum(), audio_audiohook_write_list(), audiohook_read_frame_both(), and softmix_bridge_thread().
|
static |
Definition at line 351 of file utils.h.
References value.
Referenced by ast_frame_adjust_volume(), and audiohook_read_frame_both().
|
static |
Definition at line 338 of file utils.h.
Referenced by ast_frame_adjust_volume(), and audiohook_read_frame_both().
|
static |
int ast_str_to_eid | ( | struct ast_eid * | eid, |
const char * | s | ||
) |
Convert a string into an EID.
This function expects an EID in the format: 00:11:22:33:44:55
Definition at line 305 of file netsock.c.
References ast_eid::eid.
Referenced by aji_handle_pubsub_event(), ast_readconfig(), build_peer(), dundi_do_query(), and set_config().
void ast_unescape_quoted | ( | char * | quote_str | ) |
Unescape quotes in a string.
quote_str | The string with quotes to be unescaped |
Definition at line 461 of file utils.c.
Referenced by ast_callerid_parse().
void ast_unregister_thread | ( | void * | id | ) |
Definition at line 416 of file asterisk.c.
References ast_free, AST_RWLIST_REMOVE_CURRENT, AST_RWLIST_TRAVERSE_SAFE_BEGIN, AST_RWLIST_TRAVERSE_SAFE_END, AST_RWLIST_UNLOCK, AST_RWLIST_WRLOCK, and ast_atexit::list.
Referenced by dummy_start().
void ast_uri_decode | ( | char * | s | ) |
Decode URI, URN, URL (overwrite string)
s | String to be decoded |
Decode URI, URN, URL (overwrite string)
Definition at line 484 of file utils.c.
Referenced by acf_curl_helper(), config_curl(), get_destination(), get_name_and_number(), get_refer_info(), handle_request_invite(), http_decode(), parse_moved_contact(), realtime_curl(), realtime_multi_curl(), sip_new(), sip_uri_cmp(), and uridecode().
char* ast_uri_encode | ( | const char * | string, |
char * | outbuf, | ||
int | buflen, | ||
int | do_special_char | ||
) |
Turn text string to URI-encoded XX version.
string | String to be converted |
outbuf | Resulting encoded string |
buflen | Size of output buffer |
do_special_char | Convert all non alphanum characters execept those in the mark set as defined by rfc 3261 section 25.1 |
Definition at line 398 of file utils.c.
References string.
Referenced by add_rpid(), build_contact(), config_curl(), destroy_curl(), initreqprep(), launch_asyncagi(), realtime_curl(), realtime_multi_curl(), require_curl(), store_curl(), update2_curl(), update_curl(), and uriencode().
int ast_utils_init | ( | void | ) |
Definition at line 2193 of file utils.c.
References ARRAY_LEN, ast_cli_register_multiple(), ast_register_atexit(), and base64_init().
Referenced by main().
char* ast_utils_which | ( | const char * | binary, |
char * | fullpath, | ||
size_t | fullpath_size | ||
) |
Resolve a binary to a full pathname.
binary | Name of the executable to resolve |
fullpath | Buffer to hold the complete pathname |
fullpath_size | Size of fullpath |
NULL | binary was not found or the environment variable PATH is not set |
Definition at line 2364 of file utils.c.
References ast_strdupa, and strsep().
Referenced by ast_bt_get_symbols().
int ast_wait_for_input | ( | int | fd, |
int | ms | ||
) |
Definition at line 1255 of file utils.c.
References ast_poll.
Referenced by action_waitevent(), ast_tcptls_server_root(), dahdi_test_timer(), get_input(), moh_class_destructor(), sip_tcptls_read(), tcptls_stream_read(), and tcptls_stream_write().
int ast_wait_for_output | ( | int | fd, |
int | ms | ||
) |
Definition at line 1265 of file utils.c.
References ast_poll.
Referenced by tcptls_stream_read(), and tcptls_stream_write().
int ast_xml_escape | ( | const char * | string, |
char * | outbuf, | ||
size_t | buflen | ||
) |
Escape reserved characters for use in XML.
ast_xml_escape If outbuf is too short, the output string will be truncated. Regardless, the output will always be null terminated.
string | String to be converted |
outbuf | Resulting encoded string |
buflen | Size of output buffer |
Definition at line 500 of file utils.c.
References ast_assert, entity, len(), and string.
Referenced by state_notify_build_xml().
unsigned int __unsigned_int_flags_dummy |
Note: It is very important to use only unsigned variables to hold bit flags, as otherwise you can fall prey to the compiler's sign-extension antics if you try to use the top two bits in your variable. The flag macros below use a set of compiler tricks to verify that the caller is using an "unsigned int" variable to hold the flags, and nothing else. If the caller uses any other type of variable, a warning message similar to this: warning: comparison of distinct pointer types lacks cast will be generated. The "dummy" variable below is used to make these comparisons. Also note that at -O2 or above, this type-safety checking does _not_ produce any additional object code at all.
uint64_t __unsigned_int_flags_dummy64 |
struct ast_eid ast_eid_default |
Global EID.
This is set in asterisk.conf, or determined automatically by taking the mac address of an Ethernet interface on the system.
Definition at line 192 of file asterisk.c.
Referenced by aji_devstate_cb(), aji_handle_pubsub_event(), aji_mwi_cb(), aji_publish_device_state(), aji_publish_mwi(), ast_event_append_eid(), ast_event_cb(), ast_readconfig(), ast_str_retrieve_variable(), evt_event_deliver_cb(), handle_show_settings(), and set_config().