#include <ctype.h>
#include "asterisk/inline_api.h"
#include "asterisk/utils.h"
#include "asterisk/threadstorage.h"
Go to the source code of this file.
Data Structures | |
struct | ast_str |
The descriptor of a dynamic string XXX storage will be optimized later if needed We use the ts field to indicate the type of storage. Three special constants indicate malloc, alloca() or static variables, all other values indicate a struct ast_threadstorage pointer. More... | |
Defines | |
#define | _DB1(x) |
#define | ast_str_alloca(init_len) |
#define | ast_str_buffer(a) ((a)->str) |
#define | ast_str_size(a) ((a)->len) |
#define | ast_str_strlen(a) ((a)->used) |
#define | ast_str_update(a) (a)->used = strlen((a)->str) |
#define | DS_ALLOCA ((struct ast_threadstorage *)2) |
#define | DS_MALLOC ((struct ast_threadstorage *)1) |
#define | DS_STATIC ((struct ast_threadstorage *)3) |
#define | S_COR(a, b, c) ((a && !ast_strlen_zero(b)) ? (b) : (c)) |
returns the equivalent of logic or for strings, with an additional boolean check: second one if not empty and first one is true, otherwise third one. example: S_COR(usewidget, widget, "<no widget>") | |
#define | S_OR(a, b) (!ast_strlen_zero(a) ? (a) : (b)) |
returns the equivalent of logic or for strings: first one if not empty, otherwise second one. | |
Enumerations | |
enum | { AST_DYNSTR_BUILD_FAILED = -1, AST_DYNSTR_BUILD_RETRY = -2 } |
Error codes from __ast_str_helper() The undelying processing to manipulate dynamic string is done by __ast_str_helper(), which can return a success or a permanent failure (e.g. no memory). More... | |
Functions | |
int | __ast_str_helper (struct ast_str **buf, size_t max_len, int append, const char *fmt, va_list ap) |
Core functionality of ast_str_(set|append)_va. | |
int | ast_build_string (char **buffer, size_t *space, const char *fmt,...) |
Build a string in a buffer, designed to be called repeatedly. | |
int | ast_build_string_va (char **buffer, size_t *space, const char *fmt, va_list ap) |
Build a string in a buffer, designed to be called repeatedly. | |
void | ast_copy_string (char *dst, const char *src, size_t size) |
Size-limited null-terminating string copy. | |
int | ast_false (const char *val) |
Make sure something is false. Determine if a string containing a boolean value is "false". This function checks to see whether a string passed to it is an indication of an "false" value. It checks to see if the string is "no", "false", "n", "f", "off" or "0". | |
int | ast_get_time_t (const char *src, time_t *dst, time_t _default, int *consumed) |
get values from config variables. | |
int | ast_get_timeval (const char *src, struct timeval *tv, struct timeval _default, int *consumed) |
get values from config variables. | |
void | ast_join (char *s, size_t len, char *const w[]) |
char * | ast_skip_blanks (const char *str) |
Gets a pointer to the first non-whitespace character in a string. | |
char * | ast_skip_nonblanks (char *str) |
Gets a pointer to first whitespace character in a string. | |
int | ast_str_append (struct ast_str **buf, size_t max_len, const char *fmt,...) |
Append to a thread local dynamic string. | |
int | ast_str_append_va (struct ast_str **buf, size_t max_len, const char *fmt, va_list ap) |
Append to a dynamic string using a va_list. | |
static force_inline int | ast_str_case_hash (const char *str) |
Compute a hash value on a case-insensitive string. | |
ast_str *attribute_malloc | ast_str_create (size_t init_len) |
Create a malloc'ed dynamic length string. | |
static force_inline int | ast_str_hash (const char *str) |
Compute a hash value on a string. | |
static force_inline int | ast_str_hash_add (const char *str, int hash) |
Compute a hash value on a string. | |
int | ast_str_make_space (struct ast_str **buf, size_t new_len) |
void | ast_str_reset (struct ast_str *buf) |
Reset the content of a dynamic string. Useful before a series of ast_str_append. | |
int | ast_str_set (struct ast_str **buf, size_t max_len, const char *fmt,...) |
Set a dynamic string using variable arguments. | |
int | ast_str_set_va (struct ast_str **buf, size_t max_len, const char *fmt, va_list ap) |
Set a dynamic string from a va_list. | |
ast_str * | ast_str_thread_get (struct ast_threadstorage *ts, size_t init_len) |
Retrieve a thread locally stored dynamic string. | |
char * | ast_strip (char *s) |
Strip leading/trailing whitespace from a string. | |
char * | ast_strip_quoted (char *s, const char *beg_quotes, const char *end_quotes) |
Strip leading/trailing whitespace and quotes from a string. | |
static force_inline int | ast_strlen_zero (const char *s) |
char * | ast_trim_blanks (char *str) |
Trims trailing whitespace characters from a string. | |
int | ast_true (const char *val) |
Make sure something is true. Determine if a string containing a boolean value is "true". This function checks to see whether a string passed to it is an indication of an "true" value. It checks to see if the string is "yes", "true", "y", "t", "on" or "1". | |
char * | ast_unescape_c (char *s) |
Convert some C escape sequences. | |
char * | ast_unescape_semicolon (char *s) |
Strip backslash for "escaped" semicolons, the string to be stripped (will be modified). |
Definition in file strings.h.
#define ast_str_alloca | ( | init_len | ) |
Definition at line 465 of file strings.h.
Referenced by __manager_event(), __queues_show(), _sip_show_peer(), action_createconfig(), action_listcommands(), add_sdp(), ast_eivr_getvariable(), build_peer(), chanavail_exec(), cli_match_char_tree(), dahdi_new(), dumpchan_exec(), function_realtime_read(), function_realtime_readdestroy(), function_sippeer(), handle_cli_core_show_translation(), handle_show_chanvar(), handle_showchan(), handle_showmanager(), handle_showmancmd(), handle_showmancmds(), initreqprep(), log_jack_status(), log_match_char_tree(), print_uptimestr(), show_channels_cb(), sip_send_mwi_to_peer(), sip_show_sched(), transmit_notify_with_mwi(), transmit_state_notify(), vars2manager(), and wait_for_answer().
#define ast_str_buffer | ( | a | ) | ((a)->str) |
Definition at line 352 of file strings.h.
Referenced by ast_str_get_encoded_str(), detect_disconnect(), handle_cli_core_show_translation(), and system_exec_helper().
#define ast_str_size | ( | a | ) | ((a)->len) |
#define ast_str_update | ( | a | ) | (a)->used = strlen((a)->str) |
#define DS_ALLOCA ((struct ast_threadstorage *)2) |
#define DS_MALLOC ((struct ast_threadstorage *)1) |
#define DS_STATIC ((struct ast_threadstorage *)3) |
#define S_COR | ( | a, | |||
b, | |||||
c | ) | ((a && !ast_strlen_zero(b)) ? (b) : (c)) |
returns the equivalent of logic or for strings, with an additional boolean check: second one if not empty and first one is true, otherwise third one. example: S_COR(usewidget, widget, "<no widget>")
Definition at line 63 of file strings.h.
Referenced by handle_skinny_show_line().
#define S_OR | ( | a, | |||
b | ) | (!ast_strlen_zero(a) ? (a) : (b)) |
returns the equivalent of logic or for strings: first one if not empty, otherwise second one.
Definition at line 57 of file strings.h.
Referenced by __ast_cli_register(), __ssl_setup(), _sip_show_peer(), acf_if(), action_agents(), action_command(), action_coreshowchannels(), action_meetmelist(), action_reload(), action_setvar(), action_status(), add_peer_mwi_subs(), agent_hangup(), aji_initialize(), aji_test(), app_exec(), ast_async_goto(), ast_cdr_end(), ast_cdr_init(), ast_cdr_setapp(), ast_cdr_start(), ast_cdr_update(), ast_channel_alloc(), ast_cli_command(), ast_feature_interpret(), ast_hangup(), ast_park_call_full(), ast_play_and_record_full(), ast_set_callerid(), ast_setstate(), authenticate(), build_callid_pvt(), build_callid_registry(), build_device(), build_peer(), build_route(), build_rpid(), builtin_automixmonitor(), builtin_automonitor(), callerid_read(), cdr_handler(), check_auth(), check_post(), common_exec(), conf_run(), config_curl(), config_handler(), copy_message(), dahdi_handle_dtmfup(), dahdi_handle_event(), dahdi_hangup(), dahdi_read(), dahdi_show_channel(), dial_exec_full(), do_forward(), do_timelimit(), dundi_exec(), enable_jack_hook(), execif_exec(), fast_originate(), find_conf(), forward_message(), ftype2mtype(), get_also_info(), get_cached_mwi(), get_cid_name(), get_destination(), get_refer_info(), handle_chanlist(), handle_cli_config_list(), handle_cli_iax2_show_channels(), handle_cli_moh_show_classes(), handle_request_do(), handle_request_invite(), handle_response_register(), handle_show_settings(), handle_showchan(), handle_showmancmd(), handle_skinny_show_device(), handle_skinny_show_line(), handle_skinny_show_settings(), help1(), iftime(), init_pvt(), initreqprep(), join_queue(), leave_voicemail(), load_module(), local_read(), login_exec(), manage_parkinglot(), manager_bridge_event(), manager_dbput(), manager_parking_status(), manager_queue_log_custom(), manager_queues_status(), misdn_call(), misdn_cfg_get(), park_exec_full(), pbx_builtin_execiftime(), pbx_exec(), pbx_load_config(), peer_mailboxes_to_str(), pgsql_reconnect(), phase_e_handler(), play_mailbox_owner(), play_moh_exec(), post_cdr(), post_manager_event(), process_sdp(), process_text_line(), queue_exec(), realtime_common(), realtime_curl(), realtime_destroy_handler(), realtime_directory(), realtime_handler(), realtime_multi_curl(), realtime_multi_handler(), realtime_store_handler(), realtime_update_handler(), register_exten(), register_group_feature(), register_peer_exten(), return_exec(), senddialevent(), serialize_showchan(), set_config(), set_member_paused(), set_one_cid(), setup_env(), shared_write(), show_channels_cb(), sip_show_domains(), sip_show_settings(), sip_uri_cmp(), skinny_hold(), sla_show_stations(), sla_show_trunks(), sms_exec(), sms_log(), socket_process(), start_moh_exec(), transmit_notify_with_mwi(), unregister_exten(), and update_realtime_members().
anonymous enum |
Error codes from __ast_str_helper() The undelying processing to manipulate dynamic string is done by __ast_str_helper(), which can return a success or a permanent failure (e.g. no memory).
AST_DYNSTR_BUILD_FAILED | An error has occurred and the contents of the dynamic string are undefined |
AST_DYNSTR_BUILD_RETRY | The buffer size for the dynamic string had to be increased, and __ast_str_helper() needs to be called again after a va_end() and va_start(). This return value is legacy and will no longer be used. |
Definition at line 557 of file strings.h.
00557 { 00558 /*! An error has occurred and the contents of the dynamic string 00559 * are undefined */ 00560 AST_DYNSTR_BUILD_FAILED = -1, 00561 /*! The buffer size for the dynamic string had to be increased, and 00562 * __ast_str_helper() needs to be called again after 00563 * a va_end() and va_start(). This return value is legacy and will 00564 * no longer be used. 00565 */ 00566 AST_DYNSTR_BUILD_RETRY = -2 00567 };
int __ast_str_helper | ( | struct ast_str ** | buf, | |
size_t | max_len, | |||
int | append, | |||
const char * | fmt, | |||
va_list | ap | |||
) |
Core functionality of ast_str_(set|append)_va.
core handler for dynamic strings. This is not meant to be called directly, but rather through the various wrapper macros ast_str_set(...) ast_str_append(...) ast_str_set_va(...) ast_str_append_va(...)
Definition at line 1730 of file utils.c.
References AST_DYNSTR_BUILD_FAILED, ast_str_make_space(), ast_verbose, and buf.
Referenced by ast_str_set_va().
01732 { 01733 int res, need; 01734 int offset = (append && (*buf)->len) ? (*buf)->used : 0; 01735 va_list aq; 01736 01737 do { 01738 if (max_len < 0) { 01739 max_len = (*buf)->len; /* don't exceed the allocated space */ 01740 } 01741 /* 01742 * Ask vsnprintf how much space we need. Remember that vsnprintf 01743 * does not count the final '\0' so we must add 1. 01744 */ 01745 va_copy(aq, ap); 01746 res = vsnprintf((*buf)->str + offset, (*buf)->len - offset, fmt, aq); 01747 01748 need = res + offset + 1; 01749 /* 01750 * If there is not enough space and we are below the max length, 01751 * reallocate the buffer and return a message telling to retry. 01752 */ 01753 if (need > (*buf)->len && (max_len == 0 || (*buf)->len < max_len) ) { 01754 if (max_len && max_len < need) { /* truncate as needed */ 01755 need = max_len; 01756 } else if (max_len == 0) { /* if unbounded, give more room for next time */ 01757 need += 16 + need / 4; 01758 } 01759 if (0) { /* debugging */ 01760 ast_verbose("extend from %d to %d\n", (int)(*buf)->len, need); 01761 } 01762 if (ast_str_make_space(buf, need)) { 01763 ast_verbose("failed to extend from %d to %d\n", (int)(*buf)->len, need); 01764 return AST_DYNSTR_BUILD_FAILED; 01765 } 01766 (*buf)->str[offset] = '\0'; /* Truncate the partial write. */ 01767 01768 /* Restart va_copy before calling vsnprintf() again. */ 01769 va_end(aq); 01770 continue; 01771 } 01772 break; 01773 } while (1); 01774 /* update space used, keep in mind the truncation */ 01775 (*buf)->used = (res + offset > (*buf)->len) ? (*buf)->len : res + offset; 01776 01777 return res; 01778 }
int ast_build_string | ( | char ** | buffer, | |
size_t * | space, | |||
const char * | fmt, | |||
... | ||||
) |
Build a string in a buffer, designed to be called repeatedly.
buffer | current position in buffer to place string into (will be updated on return) | |
space | remaining space in buffer (will be updated on return) | |
fmt | printf-style format string |
0 | on success | |
non-zero | on failure. |
Definition at line 1297 of file utils.c.
References ast_build_string_va().
Referenced by config_odbc(), config_pgsql(), handle_speechrecognize(), lua_func_read(), lua_pbx_exec(), pp_each_extension_exec(), and pp_each_user_exec().
01298 { 01299 va_list ap; 01300 int result; 01301 01302 va_start(ap, fmt); 01303 result = ast_build_string_va(buffer, space, fmt, ap); 01304 va_end(ap); 01305 01306 return result; 01307 }
int ast_build_string_va | ( | char ** | buffer, | |
size_t * | space, | |||
const char * | fmt, | |||
va_list | ap | |||
) |
Build a string in a buffer, designed to be called repeatedly.
This is a wrapper for snprintf, that properly handles the buffer pointer and buffer space available.
buffer | current position in buffer to place string into (will be updated on return) | |
space | remaining space in buffer (will be updated on return) | |
fmt | printf-style format string | |
ap | varargs list of arguments for format |
Definition at line 1278 of file utils.c.
Referenced by ast_build_string().
01279 { 01280 int result; 01281 01282 if (!buffer || !*buffer || !space || !*space) 01283 return -1; 01284 01285 result = vsnprintf(*buffer, *space, fmt, ap); 01286 01287 if (result < 0) 01288 return -1; 01289 else if (result > *space) 01290 result = *space; 01291 01292 *buffer += result; 01293 *space -= result; 01294 return 0; 01295 }
void ast_copy_string | ( | char * | dst, | |
const char * | src, | |||
size_t | size | |||
) | [inline] |
Size-limited null-terminating string copy.
dst | The destination buffer. | |
src | The source string | |
size | The size of the destination buffer |
Definition at line 203 of file strings.h.
Referenced by __ast_http_post_load(), __ast_pbx_run(), __ast_play_and_record(), __ast_request_and_dial(), __iax2_show_peers(), __oh323_new(), __schedule_action(), __set_address_from_contact(), _macro_exec(), _sip_show_peers(), acf_channel_read(), acf_curl_exec(), acf_exception_read(), acf_fetch(), acf_iaxvar_read(), acf_if(), acf_isexten_exec(), acf_mailbox_exists(), acf_version_exec(), action_originate(), add_agent(), add_exten_to_pattern_tree(), add_line(), add_realm_authentication(), add_route(), add_sdp(), add_sip_domain(), add_to_interfaces(), adsi_load(), adsi_message(), adsi_process(), agent_new(), agentmonitoroutgoing_exec(), agi_exec_full(), aji_create_buddy(), aji_create_client(), aji_find_version(), aji_handle_message(), aji_handle_presence(), alarmreceiver_exec(), alloc_profile(), alsa_new(), announce_thread(), answer_call(), answer_exec_enable(), app_exec(), append_mailbox(), apply_general_options(), apply_option(), apply_options_full(), apply_outgoing(), ast_add_extension2_lockopt(), ast_app_group_split_group(), ast_apply_ha(), ast_bridge_call(), ast_build_timing(), ast_callerid_merge(), ast_callerid_parse(), ast_callerid_split(), ast_category_new(), ast_category_rename(), ast_cdr_appenduserfield(), ast_cdr_getvar(), ast_cdr_init(), ast_cdr_merge(), ast_cdr_register(), ast_cdr_setaccount(), ast_cdr_setapp(), ast_cdr_setdestchan(), ast_cdr_setuserfield(), ast_cdr_update(), ast_channel_alloc(), ast_channel_free(), ast_cli_completion_matches(), ast_context_find(), ast_context_find_or_create(), ast_context_lockmacro(), ast_context_remove_extension_callerid2(), ast_context_unlockmacro(), ast_db_get(), ast_devstate_prov_add(), ast_do_masquerade(), ast_eivr_getvariable(), ast_eivr_setvariable(), ast_explicit_goto(), ast_expr(), ast_extension_state2(), ast_frame_dump(), ast_get_enum(), ast_get_hint(), ast_get_srv(), ast_get_txt(), ast_getformatname_multiple(), ast_http_prefix(), ast_iax2_new(), ast_linear_stream(), ast_log(), ast_makesocket(), ast_monitor_change_fname(), ast_monitor_start(), ast_monitor_stop(), ast_odbc_request_obj(), ast_park_call_full(), ast_parse_device_state(), ast_pbx_outgoing_app(), ast_pbx_outgoing_exten(), ast_privacy_check(), ast_privacy_set(), ast_read_image(), ast_readconfig(), ast_rtp_lookup_mime_multiple(), ast_say_date_th(), ast_say_date_with_format_da(), ast_say_date_with_format_de(), ast_say_date_with_format_en(), ast_say_date_with_format_es(), ast_say_date_with_format_fr(), ast_say_date_with_format_gr(), ast_say_date_with_format_it(), ast_say_date_with_format_nl(), ast_say_date_with_format_pl(), ast_say_date_with_format_th(), ast_say_date_with_format_tw(), ast_say_datetime_from_now_pt(), ast_say_datetime_th(), ast_say_enumeration_full_da(), ast_say_enumeration_full_de(), ast_say_enumeration_full_en(), ast_say_number_full_cz(), ast_say_number_full_da(), ast_say_number_full_de(), ast_say_number_full_en(), ast_say_number_full_en_GB(), ast_say_number_full_es(), ast_say_number_full_fr(), ast_say_number_full_gr(), ast_say_number_full_hu(), ast_say_number_full_it(), ast_say_number_full_nl(), ast_say_number_full_no(), ast_say_number_full_pt(), ast_say_number_full_ru(), ast_say_number_full_se(), ast_say_number_full_th(), ast_say_number_full_tw(), ast_setstate(), ast_tryconnect(), ast_tzset(), ast_uri_encode(), ast_var_assign(), async_wait(), authenticate(), authenticate_verify(), begin_dial_channel(), blr_ebl(), build_alias(), build_conf(), build_context(), build_device(), build_gateway(), build_mapping(), build_parkinglot(), build_peer(), build_reply_digest(), build_route(), build_user(), cache_lookup(), cache_lookup_internal(), callerid_feed(), callerid_feed_jp(), callerid_read(), callerpres_read(), CB_ADD_LEN(), cb_events(), change_password_realtime(), check_auth(), check_availability(), check_match(), check_password(), check_sip_domain(), check_user_full(), check_via(), check_via_response(), cleanup_stale_contexts(), cli_tps_report(), common_exec(), compile_script(), complete_dpreply(), complete_fn(), conf_exec(), conf_run(), config_function_read(), config_text_file_load(), console_dial(), copy_message(), copy_via_headers(), create_addr(), create_followme_number(), create_parkinglot(), create_queue_member(), create_vmaccount(), cut_internal(), dahdi_call(), dahdi_func_read(), dahdi_handle_event(), dahdi_hangup(), dahdi_new(), dahdi_show_channels(), devstate_read(), dial_exec_full(), dialgroup_read(), dialgroup_write(), dialout(), dictate_exec(), disa_exec(), dnsmgr_refresh(), do_forward(), do_idle_thread(), dump_addr(), dump_byte(), dump_datetime(), dump_int(), dump_ipaddr(), dump_prov_flags(), dump_prov_ies(), dump_samprate(), dump_short(), dundi_answer_entity(), dundi_answer_query(), dundi_do_lookup(), dundi_do_precache(), dundi_do_query(), dundi_lookup_internal(), dundi_lookup_local(), dundi_precache_internal(), dundi_prop_precache(), dundi_query_eid_internal(), dundi_query_thread(), ebl_callback(), enum_query_read(), enum_result_read(), env_read(), external_rtp_create(), extract_uri(), exts_compare(), extstate_read(), file_read(), find_account(), find_cache(), find_conf_realtime(), find_context(), find_context_locked(), find_engine(), find_line_by_name(), find_or_create(), find_parkinglot(), find_peer(), find_subchannel_and_lock(), find_subchannel_by_name(), find_user_realtime(), findmeexec(), forward_message(), func_channel_read(), func_check_sipdomain(), func_header_read(), function_agent(), function_enum(), function_iaxpeer(), function_realtime_read(), function_realtime_readdestroy(), function_sipchaninfo_read(), function_sippeer(), gen_header(), get_also_info(), get_calleridname(), get_date(), get_destination(), get_mohbyname(), get_rdnis(), get_refer_info(), get_rpid_num(), gettag(), global_read(), gosub_exec(), group_count_function_read(), group_function_read(), group_function_write(), group_list_function_read(), gtalk_add_candidate(), gtalk_alloc(), gtalk_call(), gtalk_create_candidates(), gtalk_create_member(), gtalk_load_config(), gtalk_new(), gtalk_newcall(), gtalk_show_channels(), handle_cli_iax2_show_cache(), handle_cli_iax2_show_registry(), handle_cli_iax2_show_users(), handle_cli_indication_add(), handle_cli_indication_show(), handle_cli_keys_init(), handle_cli_misdn_send_display(), handle_cli_misdn_send_facility(), handle_cli_ulimit(), handle_command_response(), handle_common_options(), handle_dial_page(), handle_enbloc_call_message(), handle_gosub(), handle_pri_set_debug_file(), handle_request_info(), handle_response(), handle_setcallerid(), handle_setcontext(), handle_setextension(), handle_soft_key_event_message(), handle_speed_dial_stat_req_message(), handle_statechange(), handle_stimulus_message(), handle_version_req_message(), has_voicemail(), hash_read(), iax2_ack_registry(), iax2_append_register(), iax2_call(), iax2_exec(), iax2_getpeername(), iax2_register(), iax2_transfer(), iax_park(), iax_parse_ies(), iax_show_provisioning(), iax_template_copy(), ices_exec(), ifmodule_read(), iftime(), import_ch(), inboxcount2(), ind_load_module(), init_acf_query(), init_logger_chain(), init_profile(), init_state(), interface_exists_global(), jingle_add_candidate(), jingle_alloc(), jingle_call(), jingle_create_candidates(), jingle_create_member(), jingle_load_config(), jingle_new(), jingle_newcall(), jingle_show_channels(), jingle_transmit_invite(), join_queue(), key_dial_page(), key_history(), key_main_page(), key_select_extension(), Keyfavorite(), leave_voicemail(), load_config(), load_module(), load_moh_classes(), load_password(), load_values_config(), local_alloc(), local_ast_moh_start(), local_new(), local_read(), lock_read(), log_events(), login_exec(), lookup_iface(), main(), make_email_file(), make_logchannel(), manage_parkinglot(), manager_iax2_show_peer_list(), manager_modulecheck(), math(), message_template_build(), message_template_create(), message_template_parse_filebody(), mgcp_call(), mgcp_new(), mgcp_request(), mgcp_ss(), minivm_accmess_exec(), minivm_account_func_read(), minivm_delete_exec(), minivm_greet_exec(), minivm_notify_exec(), misdn_answer(), misdn_call(), misdn_cfg_get(), misdn_cfg_get_desc(), misdn_cfg_get_name(), misdn_check_l2l1(), misdn_digit_end(), misdn_facility_exec(), misdn_new(), misdn_request(), misdn_send_text(), misdn_set_opt_exec(), mkif(), mkintf(), nbs_alloc(), nbs_new(), netconsole(), notify_new_message(), oh323_alloc(), oh323_call(), oh323_request(), open_mailbox(), osp_check_destination(), osp_create_provider(), osp_create_transaction(), page_exec(), park_call_exec(), parse_config(), parse_moved_contact(), parse_naptr(), parse_ok_contact(), parse_register_contact(), ParseBookmark(), pbx_builtin_background(), pbx_builtin_saynumber(), pbx_extension_helper(), pbx_find_extension(), pbx_load_config(), pbx_load_users(), pbx_retrieve_variable(), pbx_substitute_variables(), pbx_substitute_variables_helper_full(), peer_status(), pgsql_reconnect(), phone_call(), phone_new(), play_record_review(), populate_defaults(), pri_dchannel(), private_enum_init(), process_dahdi(), process_message(), process_precache(), profile_set_param(), proxy_allocate(), queue_set_param(), rcv_mac_addr(), read_agent_config(), read_config(), read_config_maps(), realtime_odbc(), realtime_switch_common(), realtime_update_peer(), receive_ademco_contact_id(), record_exec(), reg_source_db(), register_exten(), register_peer_exten(), register_verify(), registry_rerequest(), reload_agents(), reload_config(), reload_followme(), reload_queue_rules(), reload_queues(), remap_feature(), remove_from_queue(), reply_digest(), reqprep(), reset_user_pw(), respprep(), ring_entry(), rpt_call(), rt_handle_member_record(), run_externnotify(), search_directory(), select_entry(), sendmail(), sendpage(), set(), set_c_e_p(), set_callforwards(), set_config(), set_destination(), set_ext_pri(), set_fn(), set_insecure_flags(), set_one_cid(), setup_incoming_call(), setup_privacy_args(), shared_read(), show_entry_history(), sip_new(), sip_park(), sip_poke_peer(), sip_prepare_socket(), sip_prune_realtime(), sip_register(), sip_request_call(), sip_show_inuse(), sip_sipredirect(), skinny_new(), skinny_newcall(), skinny_register(), skinny_request(), skinny_ss(), smdi_msg_read(), smdi_read(), sms_exec(), sms_handleincoming(), sms_handleincoming_proto2(), sms_writefile(), socket_read(), softhangup_exec(), spawn_dp_lookup(), spawn_mp3(), speech_grammar(), speech_read(), speech_score(), speech_text(), ss_thread(), stat_read(), store_config(), store_odbc(), substring(), temp_peer(), term_color(), term_prompt(), timeout_read(), timezone_add(), transmit_callinfo(), transmit_cfwdstate(), transmit_connect_with_sdp(), transmit_dialednumber(), transmit_displaymessage(), transmit_displaynotify(), transmit_displaypromptstatus(), transmit_invite(), transmit_modify_with_sdp(), transmit_notify_custom(), transmit_notify_request(), transmit_notify_request_with_callerid(), transmit_refer(), transmit_state_notify(), try_calling(), try_load_key(), trylock_read(), txt_callback(), unistim_request(), unistim_sp(), unistim_ss(), unlock_read(), unregister_exten(), update_call_counter(), update_common_options(), uridecode(), vars2manager(), vm_authenticate(), vm_change_password(), vm_change_password_shell(), vm_execmain(), vmauthenticate(), wait_for_answer(), and write_metadata().
int ast_false | ( | const char * | val | ) |
Make sure something is false. Determine if a string containing a boolean value is "false". This function checks to see whether a string passed to it is an indication of an "false" value. It checks to see if the string is "no", "false", "n", "f", "off" or "0".
0 | if val is a NULL pointer. | |
-1 | if "true". | |
0 | otherwise. |
Definition at line 1326 of file utils.c.
References ast_strlen_zero().
Referenced by __ast_rtp_reload(), __ast_udptl_reload(), aji_create_client(), aji_load_config(), dahdi_set_dnd(), func_channel_write(), handle_common_options(), init_acf_query(), load_config(), load_odbc_config(), run_agi(), set_insecure_flags(), and strings_to_mask().
01327 { 01328 if (ast_strlen_zero(s)) 01329 return 0; 01330 01331 /* Determine if this is a false value */ 01332 if (!strcasecmp(s, "no") || 01333 !strcasecmp(s, "false") || 01334 !strcasecmp(s, "n") || 01335 !strcasecmp(s, "f") || 01336 !strcasecmp(s, "0") || 01337 !strcasecmp(s, "off")) 01338 return -1; 01339 01340 return 0; 01341 }
int ast_get_time_t | ( | const char * | src, | |
time_t * | dst, | |||
time_t | _default, | |||
int * | consumed | |||
) |
get values from config variables.
Definition at line 1697 of file utils.c.
References ast_strlen_zero().
Referenced by build_peer(), cache_lookup_internal(), handle_saydatetime(), load_password(), play_message_datetime(), process_clearcache(), and sayunixtime_exec().
01698 { 01699 long t; 01700 int scanned; 01701 01702 if (dst == NULL) 01703 return -1; 01704 01705 *dst = _default; 01706 01707 if (ast_strlen_zero(src)) 01708 return -1; 01709 01710 /* only integer at the moment, but one day we could accept more formats */ 01711 if (sscanf(src, "%ld%n", &t, &scanned) == 1) { 01712 *dst = t; 01713 if (consumed) 01714 *consumed = scanned; 01715 return 0; 01716 } else 01717 return -1; 01718 }
int ast_get_timeval | ( | const char * | src, | |
struct timeval * | tv, | |||
struct timeval | _default, | |||
int * | consumed | |||
) |
get values from config variables.
Definition at line 1670 of file utils.c.
References ast_strlen_zero().
Referenced by acf_strftime().
01671 { 01672 long double dtv = 0.0; 01673 int scanned; 01674 01675 if (dst == NULL) 01676 return -1; 01677 01678 *dst = _default; 01679 01680 if (ast_strlen_zero(src)) 01681 return -1; 01682 01683 /* only integer at the moment, but one day we could accept more formats */ 01684 if (sscanf(src, "%Lf%n", &dtv, &scanned) > 0) { 01685 dst->tv_sec = dtv; 01686 dst->tv_usec = (dtv - dst->tv_sec) * 1000000.0; 01687 if (consumed) 01688 *consumed = scanned; 01689 return 0; 01690 } else 01691 return -1; 01692 }
void ast_join | ( | char * | s, | |
size_t | len, | |||
char *const | w[] | |||
) |
Definition at line 1449 of file utils.c.
Referenced by __ast_cli_generator(), ast_agi_register(), ast_agi_unregister(), cli_console_sendtext(), console_sendtext(), find_best(), handle_cli_agi_show(), handle_help(), help1(), help_workhorse(), set_full_cmd(), and write_htmldump().
01450 { 01451 int x, ofs = 0; 01452 const char *src; 01453 01454 /* Join words into a string */ 01455 if (!s) 01456 return; 01457 for (x = 0; ofs < len && w[x]; x++) { 01458 if (x > 0) 01459 s[ofs++] = ' '; 01460 for (src = w[x]; *src && ofs < len; src++) 01461 s[ofs++] = *src; 01462 } 01463 if (ofs == len) 01464 ofs--; 01465 s[ofs] = '\0'; 01466 }
char * ast_skip_blanks | ( | const char * | str | ) | [inline] |
Gets a pointer to the first non-whitespace character in a string.
str | the input string |
Definition at line 77 of file strings.h.
Referenced by __ast_cli_register(), __get_header(), add_redirect(), ast_callerid_parse(), ast_skip_nonblanks(), build_peer(), callerid_write(), check_auth(), check_via(), determine_firstline_parts(), find_table_cb(), get_body_by_line(), get_calleridname(), handle_incoming(), handle_request_invite(), handle_request_notify(), handle_response(), httpd_helper_thread(), keypad_pick_up(), keypad_setup(), make_components(), parse_minse(), parse_session_expires(), parse_sip_options(), pbx_load_config(), process_sdp(), process_text_line(), reply_digest(), transmit_fake_auth_response(), transmit_invite(), and xml_translate().
char * ast_skip_nonblanks | ( | char * | str | ) | [inline] |
Gets a pointer to first whitespace character in a string.
str | the input string |
Definition at line 116 of file strings.h.
References ast_skip_blanks(), and ast_trim_blanks().
Referenced by __ast_cli_register(), determine_firstline_parts(), handle_response(), and httpd_helper_thread().
int ast_str_append | ( | struct ast_str ** | buf, | |
size_t | max_len, | |||
const char * | fmt, | |||
... | ||||
) | [inline] |
Append to a thread local dynamic string.
The arguments, return values, and usage of this function are the same as ast_str_set(), but the new data is appended to the current value.
Definition at line 699 of file strings.h.
Referenced by __manager_event(), __queues_show(), _sip_tcp_helper_thread(), action_createconfig(), action_status(), action_userevent(), add_blank(), add_codec_to_sdp(), add_header(), add_line(), add_noncodec_to_sdp(), add_sdp(), add_tcodec_to_sdp(), add_vcodec_to_sdp(), app_exec(), append_var_and_value_to_filter(), ast_cdr_serialize_variables(), ast_eivr_getvariable(), authority_to_str(), build_peer(), CB_ADD(), CB_ADD_LEN(), cdr_handler(), chanavail_exec(), cli_prompt(), destroy_curl(), destroy_pgsql(), detect_disconnect(), function_realtime_read(), function_realtime_readdestroy(), handle_cli_core_show_translation(), httpstatus_callback(), initreqprep(), load_column_config(), load_config(), log_jack_status(), odbc_log(), pbx_builtin_serialize_variables(), peer_mailboxes_to_str(), pgsql_reconnect(), phoneprov_callback(), print_uptimestr(), process_text_line(), realtime_curl(), realtime_ldap_base_ap(), realtime_multi_curl(), require_curl(), run_station(), send_eivr_event(), sqlite3_log(), store_curl(), store_pgsql(), substitute_escapes(), transmit_notify_with_mwi(), transmit_state_notify(), update_curl(), update_ldap(), update_pgsql(), userevent_exec(), xml_copy_escape(), and xml_translate().
int ast_str_append_va | ( | struct ast_str ** | buf, | |
size_t | max_len, | |||
const char * | fmt, | |||
va_list | ap | |||
) | [inline] |
Append to a dynamic string using a va_list.
Same as ast_str_set_va(), but append to the current content.
Definition at line 646 of file strings.h.
References ast_str_set_va(), and buf.
Referenced by __manager_event(), and ast_str_set().
static force_inline int ast_str_case_hash | ( | const char * | str | ) | [static] |
Compute a hash value on a case-insensitive string.
Uses the same hash algorithm as ast_str_hash, but converts all characters to lowercase prior to computing a hash. This allows for easy case-insensitive lookups in a hash table.
Definition at line 749 of file strings.h.
Referenced by dialog_hash_cb(), moh_class_hash(), parkinglot_hash_cb(), peer_hash_cb(), pvt_hash_cb(), queue_hash_cb(), and tps_hash_cb().
00750 { 00751 int hash = 5381; 00752 00753 while (*str) { 00754 hash = hash * 33 ^ tolower(*str++); 00755 } 00756 00757 return abs(hash); 00758 }
struct ast_str *attribute_malloc ast_str_create | ( | size_t | init_len | ) | [inline] |
Create a malloc'ed dynamic length string.
init_len | This is the initial length of the string buffer |
Definition at line 381 of file strings.h.
Referenced by __ast_http_post_load(), __sip_reliable_xmit(), _sip_tcp_helper_thread(), acf_curl_exec(), acf_odbc_read(), acf_odbc_write(), action_status(), app_exec(), ast_http_error(), cdr_handler(), cli_prompt(), config_curl(), config_text_file_load(), copy_request(), destroy_curl(), destroy_pgsql(), find_table(), handle_dbget(), handle_updates(), httpstatus_callback(), iax_parse_ies(), init_appendbuf(), init_queue(), init_req(), init_resp(), load_column_config(), load_config(), meetme_cmd(), odbc_log(), pgsql_reconnect(), phoneprov_callback(), queue_set_param(), realtime_curl(), realtime_ldap_base_ap(), realtime_multi_curl(), require_curl(), require_pgsql(), run_station(), send_eivr_event(), sipsock_read(), sqlite3_log(), store_curl(), store_pgsql(), substitute_escapes(), update_curl(), update_ldap(), update_pgsql(), and userevent_exec().
static force_inline int ast_str_hash | ( | const char * | str | ) | [static] |
Compute a hash value on a string.
This famous hash algorithm was written by Dan Bernstein and is commonly used.
http://www.cse.yorku.ca/~oz/hash.html
Definition at line 709 of file strings.h.
Referenced by ast_event_append_ie_str(), ast_event_hash_devstate(), ast_event_hash_devstate_change(), ast_event_hash_mwi(), ast_event_sub_append_ie_str(), entry_hash_fn(), group_hash_fn(), peer_hash_cb(), profile_hash_fn(), routes_hash_fn(), user_hash_cb(), and users_hash_fn().
00710 { 00711 int hash = 5381; 00712 00713 while (*str) 00714 hash = hash * 33 ^ *str++; 00715 00716 return abs(hash); 00717 }
static force_inline int ast_str_hash_add | ( | const char * | str, | |
int | hash | |||
) | [static] |
Compute a hash value on a string.
[in] | str | The string to add to the hash |
[in] | hash | The hash value to add to |
This famous hash algorithm was written by Dan Bernstein and is commonly used.
Definition at line 734 of file strings.h.
Referenced by ast_event_hash_mwi().
00735 { 00736 while (*str) 00737 hash = hash * 33 ^ *str++; 00738 00739 return abs(hash); 00740 }
int ast_str_make_space | ( | struct ast_str ** | buf, | |
size_t | new_len | |||
) | [inline] |
Make space in a new string (e.g. to read in data from a file)
Definition at line 462 of file strings.h.
Referenced by __ast_str_helper(), acf_odbc_read(), acf_odbc_write(), ast_str_get_encoded_str(), cli_prompt(), copy_request(), handle_dbget(), and WriteMemoryCallback().
void ast_str_reset | ( | struct ast_str * | buf | ) | [inline] |
Reset the content of a dynamic string. Useful before a series of ast_str_append.
Definition at line 395 of file strings.h.
Referenced by _sip_tcp_helper_thread(), acf_odbc_read(), action_status(), action_userevent(), app_exec(), cli_prompt(), detect_disconnect(), and handle_request_do().
int ast_str_set | ( | struct ast_str ** | buf, | |
size_t | max_len, | |||
const char * | fmt, | |||
... | ||||
) | [inline] |
Set a dynamic string using variable arguments.
buf | This is the address of a pointer to a struct ast_str which should have been retrieved using ast_str_thread_get. It will need to be updated in the case that the buffer has to be reallocated to accomodate a longer string than what it currently has space for. | |
max_len | This is the maximum length to allow the string buffer to grow to. If this is set to 0, then there is no maximum length. If set to -1, we are bound to the current maximum length. | |
fmt | This is the format string (printf style) |
Definition at line 678 of file strings.h.
References ast_str_append_va(), and buf.
Referenced by __ast_http_post_load(), __manager_event(), __queues_show(), __sip_reliable_xmit(), action_createconfig(), ast_http_error(), ast_sched_report(), ast_str_get_encoded_str(), build_peer(), cdr_handler(), check_auth(), cli_match_char_tree(), cli_prompt(), config_curl(), dahdi_new(), destroy_curl(), destroy_pgsql(), find_table(), handle_cli_core_show_translation(), iax_parse_ies(), init_queue(), init_req(), init_resp(), load_column_config(), log_jack_status(), log_match_char_tree(), meetme_cmd(), odbc_log(), pgsql_reconnect(), process_text_line(), queue_set_param(), realtime_curl(), realtime_multi_curl(), require_curl(), require_pgsql(), run_station(), sipsock_read(), store_curl(), store_pgsql(), transmit_fake_auth_response(), update_curl(), and update_pgsql().
int ast_str_set_va | ( | struct ast_str ** | buf, | |
size_t | max_len, | |||
const char * | fmt, | |||
va_list | ap | |||
) | [inline] |
Set a dynamic string from a va_list.
buf | This is the address of a pointer to a struct ast_str. If it is retrieved using ast_str_thread_get, the struct ast_threadstorage pointer will need to be updated in the case that the buffer has to be reallocated to accommodate a longer string than what it currently has space for. | |
max_len | This is the maximum length to allow the string buffer to grow to. If this is set to 0, then there is no maximum length. | |
fmt | This is the format string (printf style) | |
ap | This is the va_list |
AST_THREADSTORAGE(my_str, my_str_init); #define MY_STR_INIT_SIZE 128 ... void my_func(const char *fmt, ...) { struct ast_str *buf; va_list ap; if (!(buf = ast_str_thread_get(&my_str, MY_STR_INIT_SIZE))) return; ... va_start(fmt, ap); ast_str_set_va(&buf, 0, fmt, ap); va_end(ap); printf("This is the string we just built: %s\n", buf->str); ... }
Definition at line 635 of file strings.h.
References __ast_str_helper(), and buf.
Referenced by __ast_verbose_ap(), ast_agi_send(), ast_cli(), ast_log(), ast_str_append_va(), and astman_append().
struct ast_str * ast_str_thread_get | ( | struct ast_threadstorage * | ts, | |
size_t | init_len | |||
) | [inline] |
Retrieve a thread locally stored dynamic string.
ts | This is a pointer to the thread storage structure declared by using the AST_THREADSTORAGE macro. If declared with AST_THREADSTORAGE(my_buf, my_buf_init), then this argument would be (&my_buf). | |
init_len | This is the initial length of the thread's dynamic string. The current length may be bigger if previous operations in this thread have caused it to increase. |
AST_THREADSTORAGE(my_str, my_str_init); #define MY_STR_INIT_SIZE 128 ... void my_func(const char *fmt, ...) { struct ast_str *buf; if (!(buf = ast_str_thread_get(&my_str, MY_STR_INIT_SIZE))) return; ... }
Definition at line 526 of file strings.h.
Referenced by __ast_verbose_ap(), __manager_event(), acf_odbc_read(), action_userevent(), ast_agi_send(), ast_cli(), ast_log(), astman_append(), check_auth(), pbx_find_extension(), system_exec_helper(), and transmit_fake_auth_response().
char * ast_strip | ( | char * | s | ) | [inline] |
Strip leading/trailing whitespace from a string.
s | The string to be stripped (will be modified). |
Definition at line 135 of file strings.h.
Referenced by acf_if(), ast_register_file_version(), ast_strip_quoted(), build_profile(), check_blacklist(), config_text_file_load(), eivr_comm(), load_column_config(), load_config(), parse_cookies(), process_text_line(), realtime_multi_odbc(), realtime_multi_pgsql(), realtime_odbc(), realtime_pgsql(), and set().
char* ast_strip_quoted | ( | char * | s, | |
const char * | beg_quotes, | |||
const char * | end_quotes | |||
) |
Strip leading/trailing whitespace and quotes from a string.
s | The string to be stripped (will be modified). | |
beg_quotes | The list of possible beginning quote characters. | |
end_quotes | The list of matching ending quote characters. |
It can also remove beginning and ending quote (or quote-like) characters, in matching pairs. If the first character of the string matches any character in beg_quotes, and the last character of the string is the matching character in end_quotes, then they are removed from the string.
Examples:
ast_strip_quoted(buf, "\"", "\""); ast_strip_quoted(buf, "'", "'"); ast_strip_quoted(buf, "[{(", "]})");
Definition at line 1207 of file utils.c.
References ast_strip().
Referenced by ast_register_file_version(), get_rdnis(), iftime(), load_values_config(), parse_cookies(), and parse_dial_string().
01208 { 01209 char *e; 01210 char *q; 01211 01212 s = ast_strip(s); 01213 if ((q = strchr(beg_quotes, *s)) && *q != '\0') { 01214 e = s + strlen(s) - 1; 01215 if (*e == *(end_quotes + (q - beg_quotes))) { 01216 s++; 01217 *e = '\0'; 01218 } 01219 } 01220 01221 return s; 01222 }
static force_inline int ast_strlen_zero | ( | const char * | s | ) | [static] |
Definition at line 48 of file strings.h.
Referenced by __ast_callerid_generate(), __ast_cli_generator(), __ast_cli_register(), __ast_request_and_dial(), __astman_get_header(), __has_voicemail(), __iax2_show_peers(), __oh323_new(), __queues_show(), __set_address_from_contact(), __ssl_setup(), _macro_exec(), _sip_show_peer(), _sip_show_peers(), acf_channel_read(), acf_curl_exec(), acf_if(), acf_import(), acf_isexten_exec(), acf_mailbox_exists(), acf_meetme_info(), acf_odbc_read(), acf_odbc_write(), acf_rand_exec(), acf_strptime(), acf_version_exec(), acf_vmcount_exec(), action_add_agi_cmd(), action_agent_logoff(), action_agents(), action_atxfer(), action_bridge(), action_challenge(), action_command(), action_coresettings(), action_coreshowchannels(), action_corestatus(), action_dahdidialoffhook(), action_dahdidndoff(), action_dahdidndon(), action_dahdishowchannels(), action_extensionstate(), action_getconfig(), action_getconfigjson(), action_getvar(), action_hangup(), action_listcategories(), action_mailboxcount(), action_mailboxstatus(), action_meetmelist(), action_originate(), action_redirect(), action_sendtext(), action_setvar(), action_status(), action_timeout(), action_transfer(), action_transferhangup(), action_updateconfig(), action_waitevent(), add_agent(), add_peer_mailboxes(), add_realm_authentication(), add_sdp(), add_sip_domain(), admin_exec(), adsi_exec(), adsi_message(), advanced_options(), agent_call(), agent_devicestate(), agent_hangup(), agent_logoff_maintenance(), agent_new(), agent_read(), agent_request(), agents_show(), agents_show_online(), agi_exec_full(), aji_log_hook(), aji_send_exec(), alarmreceiver_exec(), alsa_new(), answer_exec_enable(), app_exec(), append_mailbox_mapping(), append_transaction(), apply_general_options(), apply_options_full(), apply_outgoing(), apply_peer(), apply_plan_to_number(), aqm_exec(), ast_add_extension2_lockopt(), ast_app_getdata(), ast_app_getdata_full(), ast_app_group_get_count(), ast_app_group_match_get_count(), ast_app_group_set_channel(), ast_app_group_split_group(), ast_bridge_call(), ast_build_timing(), ast_cdr_copy_vars(), ast_cdr_fork(), ast_cdr_getvar(), ast_cdr_getvar_internal(), ast_cdr_merge(), ast_cdr_noanswer(), ast_cdr_serialize_variables(), ast_cdr_setaccount(), ast_channel_alloc(), ast_cli_complete(), ast_context_remove_extension_callerid2(), ast_db_gettree(), ast_dnsmgr_get(), ast_dnsmgr_lookup(), ast_explicit_goto(), ast_false(), ast_frame_dump(), ast_get_encoded_char(), ast_get_enum(), ast_get_group(), ast_get_indication_zone(), ast_get_time_t(), ast_get_timeval(), ast_iax2_new(), ast_include_new(), ast_is_valid_string(), ast_jb_read_conf(), ast_linear_stream(), ast_load_realtime(), ast_makesocket(), ast_module_check(), ast_monitor_change_fname(), ast_monitor_start(), ast_monitor_stop(), ast_odbc_sanity_check(), ast_park_call_full(), ast_pbx_outgoing_app(), ast_pbx_outgoing_exten(), ast_privacy_set(), ast_remotecontrol(), ast_speech_unregister(), ast_stream_and_wait(), ast_taskprocessor_get(), ast_true(), ast_tzset(), ast_variable_delete(), ast_variable_update(), astman_get_variables(), astman_send_response_full(), async_wait(), asyncgoto_exec(), attempt_thread(), auth_exec(), authenticate(), authenticate_reply(), authenticate_verify(), autoanswer_complete(), background_detect_exec(), base64_decode(), base64_encode(), begin_dial_channel(), bridge_exec(), build_contact(), build_device(), build_gateway(), build_mapping(), build_parkinglot(), build_peer(), build_profile(), build_reply_digest(), build_route(), build_rpid(), build_user(), builtin_atxfer(), builtin_automixmonitor(), builtin_automonitor(), cache_get_callno_locked(), callerid_feed(), callerid_genmsg(), cb_events(), cdr_read(), cdr_write(), chan_misdn_log(), chanavail_exec(), change_monitor_action(), change_password_realtime(), channel_admin_exec(), channel_spy(), chanspy_exec(), check_access(), check_auth(), check_blacklist(), check_goto_on_transfer(), check_password(), check_peer_ok(), check_sip_domain(), check_user_full(), cleaned_basedn(), cli_console_dial(), cli_console_sendtext(), close_client(), common_exec(), compare(), compile_script(), conf_exec(), conf_run(), config_curl(), config_function_read(), config_ldap(), config_module(), config_text_file_load(), console_dial(), console_new(), console_sendtext(), controlplayback_exec(), copy_all_header(), copy_header(), copy_message(), copy_rules(), copy_via_headers(), count_exec(), create_addr(), create_addr_from_peer(), create_queue_member(), create_vmaccount(), csv_log(), custom_log(), custom_prepare(), dahdi_call(), dahdi_handle_event(), dahdi_hangup(), dahdi_new(), dahdi_send_keypad_facility_exec(), dahdi_show_channel(), database_increment(), deltree_exec(), destroy_endpoint(), destroy_pgsql(), destroy_station(), destroy_trans(), destroy_trunk(), device_state_cb(), devstate_change_collector_cb(), devstate_write(), dial_exec_full(), dial_trunk(), dialgroup_read(), dialgroup_refreshdb(), dialgroup_write(), dialout(), dictate_exec(), directory_exec(), disa_exec(), do_directory(), do_immediate_setup(), do_message(), do_monitor(), do_pause_or_unpause(), do_timelimit(), dump_agents(), dump_cause(), dump_hint(), dumpchan_exec(), dundi_exec(), dundi_flags2str(), dundi_helper(), dundi_hint2str(), dundi_lookup_local(), dundi_query_read(), dundi_query_thread(), dundi_result_read(), dundi_show_mappings(), dundi_show_peer(), dundifunc_read(), enable_jack_hook(), enum_callback(), enum_query_read(), enum_result_read(), env_write(), exec_exec(), execif_exec(), export_ch(), extenspy_exec(), extract_uri(), extstate_read(), fast_originate(), feature_exec_app(), feature_interpret_helper(), festival_exec(), fileexists_core(), find_account(), find_call(), find_call_cb(), find_cli(), find_engine(), find_line_by_name(), find_parkinglot(), find_sdp(), find_sip_method(), find_table(), findparkinglotname(), forward_message(), frame_set_var(), ftype2mtype(), func_channels_read(), func_check_sipdomain(), func_header_read(), func_inheritance_write(), function_agent(), function_db_delete(), function_db_exists(), function_db_read(), function_db_write(), function_enum(), function_eval(), function_fieldqty(), function_realtime_read(), function_realtime_readdestroy(), function_realtime_store(), function_realtime_write(), function_txtcidname(), get_also_info(), get_destination(), get_range(), get_rdnis(), get_refer_info(), get_sip_pvt_byid_locked(), get_timerange(), gosub_exec(), gosubif_exec(), goto_exten(), group_count_function_read(), group_function_read(), group_function_write(), group_list_function_read(), group_match_count_function_read(), group_show_channels(), gtalk_create_candidates(), gtalk_new(), gui_init(), handle_chanlist(), handle_cli_config_reload(), handle_cli_devstate_change(), handle_cli_dialplan_save(), handle_cli_file_convert(), handle_cli_iax2_show_cache(), handle_cli_iax2_show_peer(), handle_cli_iax2_show_users(), handle_cli_realtime_pgsql_status(), handle_command_response(), handle_controlstreamfile(), handle_debug_dialplan(), handle_exec(), handle_getvariable(), handle_incoming(), handle_options(), handle_orig(), handle_pri_set_debug_file(), handle_queue_pause_member(), handle_queue_rule_show(), handle_request_bye(), handle_request_info(), handle_request_invite(), handle_request_options(), handle_request_refer(), handle_request_subscribe(), handle_response(), handle_response_invite(), handle_response_notify(), handle_response_refer(), handle_response_register(), handle_saydatetime(), handle_show_dialplan(), handle_soft_key_event_message(), handle_speechrecognize(), handle_stimulus_message(), handle_subscribe(), handle_updates(), handle_voicemail_show_users(), has_voicemail(), hint_read(), httpd_helper_thread(), iax2_call(), iax2_datetime(), iax2_devicestate(), iax2_prov_app(), iax2_request(), iax_check_version(), iax_firmware_append(), iax_provflags2str(), ices_exec(), iconv_read(), iftime(), inboxcount2(), ind_load_module(), init_acf_query(), init_jack_data(), initreqprep(), insert_penaltychange(), inspect_module(), is_argument(), is_prefix(), isAnsweringMachine(), isexten_function_read(), jack_exec(), jb_choose_impl(), jingle_create_candidates(), jingle_new(), key_dial_page(), key_main_page(), launch_asyncagi(), launch_monitor_thread(), launch_netscript(), ldap_reconnect(), ldap_table_config_add_attribute(), leave_voicemail(), load_column_config(), load_config(), load_module(), load_values_config(), local_ast_moh_start(), log_events(), log_exec(), logger_print_normal(), login_exec(), loopback_parse(), lua_get_variable(), lua_get_variable_value(), main(), make_dir(), make_email_file(), make_filename(), make_logchannel(), manage_parkinglot(), manager_add_queue_member(), manager_dbdel(), manager_dbdeltree(), manager_dbget(), manager_dbput(), manager_iax2_show_peer_list(), manager_iax2_show_peers(), manager_jabber_send(), manager_list_voicemail_users(), manager_modulecheck(), manager_park(), manager_parking_status(), manager_pause_queue_member(), manager_play_dtmf(), manager_queue_log_custom(), manager_queue_member_penalty(), manager_queue_rule_show(), manager_queues_status(), manager_queues_summary(), manager_remove_queue_member(), manager_rpt_status(), manager_show_dialplan(), manager_show_dialplan_helper(), manager_show_registry(), manager_sip_qualify_peer(), manager_sip_show_peer(), manager_sip_show_peers(), manager_sipnotify(), matchcid(), math(), md5(), meetmemute(), message_template_find(), message_template_parse_filebody(), mgcp_call(), mgcp_hangup(), mgcp_new(), mgcp_request(), mgcp_ss(), mgcpsock_read(), milliwatt_exec(), minivm_accmess_exec(), minivm_account_func_read(), minivm_counter_func_read(), minivm_counter_func_write(), minivm_delete_exec(), minivm_greet_exec(), minivm_notify_exec(), minivm_record_exec(), misdn_answer(), misdn_call(), misdn_cfg_update_ptp(), misdn_check_l2l1(), misdn_facility_exec(), misdn_overlap_dial_task(), misdn_request(), misdn_set_opt_exec(), mixmonitor_exec(), mkintf(), monitor_dial(), morsecode_exec(), mp3_exec(), nbs_alloc(), next_channel(), notify_message(), notify_new_message(), odbc_log(), oh323_call(), oh323_request(), onedigit_goto(), orig_app(), orig_exten(), osp_auth(), ospauth_exec(), ospfinished_exec(), osplookup_exec(), ospnext_exec(), oss_call(), oss_new(), page_exec(), park_call_exec(), park_exec_full(), park_space_reserve(), parkandannounce_exec(), parse(), parse_config(), parse_cookies(), parse_dial_string(), parse_minse(), parse_register_contact(), parse_request(), parse_session_expires(), parse_sip_options(), ParseBookmark(), pbx_builtin_answer(), pbx_builtin_background(), pbx_builtin_execiftime(), pbx_builtin_gotoif(), pbx_builtin_gotoiftime(), pbx_builtin_hangup(), pbx_builtin_importvar(), pbx_builtin_incomplete(), pbx_builtin_resetcdr(), pbx_builtin_saynumber(), pbx_builtin_setvar(), pbx_builtin_setvar_multiple(), pbx_builtin_waitexten(), pbx_checkcondition(), pbx_exec(), pbx_find_extension(), pbx_load_config(), pbx_load_users(), pbx_parseable_goto(), pbx_set_overrideswitch(), pbx_substitute_variables_helper_full(), peer_mailboxes_to_str(), pgsql_reconnect(), phone_call(), phone_new(), phoneprov_callback(), pickup_exec(), pickupchan_exec(), play_file(), play_mailbox_owner(), play_message(), play_message_callerid(), play_message_category(), play_message_datetime(), play_moh_exec(), play_record_review(), playback_exec(), poll_subscribed_mailboxes(), post_cdr(), pp_each_extension_exec(), pp_each_user_exec(), pqm_exec(), prep_email_sub_vars(), pri_dchannel(), print_ext(), print_message(), privacy_exec(), proc_422_rsp(), process_ast_dsp(), process_echocancel(), process_message(), process_message_callback(), process_sdp(), process_text_line(), process_token(), proxy_allocate(), ql_exec(), queue_exec(), queue_function_memberpenalty_read(), queue_function_memberpenalty_write(), queue_function_qac(), queue_function_qac_dep(), queue_function_queuememberlist(), queue_function_queuewaitingcount(), queue_function_var(), queue_mwi_event(), quit_handler(), rcv_mac_addr(), rcvfax_exec(), read_agent_config(), read_config(), read_exec(), readexten_exec(), readfile_exec(), real_ctx(), realtime_curl(), realtime_ldap_entry_to_var(), realtime_ldap_result_to_vars(), realtime_ldap_status(), realtime_multi_curl(), realtime_multi_odbc(), realtime_multi_pgsql(), realtime_odbc(), realtime_pgsql(), realtime_update_peer(), receive_ademco_contact_id(), record_exec(), register_exten(), register_peer_exten(), register_verify(), registry_rerequest(), reload_config(), reload_followme(), reload_queue_members(), reload_queues(), replace_cid(), reply_digest(), reqprep(), respprep(), retrydial_exec(), ring_entry(), rotate_file(), rpt_exec(), rpt_manager_do_stats(), rpt_manager_success(), rqm_exec(), run_agi(), run_externnotify(), say_periodic_announcement(), sdl_setup(), SendDialTone(), senddtmf_exec(), sendimage_exec(), sendmail(), sendpage(), sendurl_exec(), set(), set_agentbycallerid(), set_bridge_features_on_config(), set_callforwards(), set_config(), set_insecure_flags(), set_local_info(), set_member_paused(), set_member_penalty(), set_moh_exec(), set_one_cid(), setup_dahdi(), setup_incoming_call(), setup_privacy_args(), sha1(), shared_read(), shared_write(), shell_helper(), show_main_page(), sip_addheader(), sip_hangup(), sip_new(), sip_poke_peer(), sip_prepare_socket(), sip_register(), sip_request_call(), sip_show_channel(), sip_show_settings(), sip_show_user(), sip_sipredirect(), sip_uri_headers_cmp(), sip_uri_params_cmp(), skel_exec(), skinny_hold(), skinny_new(), skinny_register(), skinny_request(), skinny_ss(), sla_check_device(), sla_queue_event_conf(), sla_ring_station(), sla_station_exec(), sla_trunk_exec(), smdi_msg_read(), smdi_msg_retrieve_read(), sms_exec(), sndfax_exec(), socket_process(), softhangup_exec(), spawn_mp3(), speech_background(), split_ext(), ss_thread(), start_monitor_action(), start_monitor_exec(), static_callback(), stop_monitor_action(), store_config(), strings_to_mask(), substituted(), sysinfo_helper(), system_exec_helper(), testclient_exec(), testserver_exec(), transfer_exec(), transmit_cfwdstate(), transmit_fake_auth_response(), transmit_invite(), transmit_modify_request(), transmit_modify_with_sdp(), transmit_notify_request(), transmit_notify_request_with_callerid(), transmit_refer(), transmit_register(), transmit_request_with_auth(), try_calling(), try_firmware(), tryexec_exec(), unalloc_sub(), unistim_new(), unistim_request(), unistim_send_mwi_to_peer(), unregister_exten(), update_bridge_vars(), update_call_counter(), update_realtime_member_field(), update_registry(), upqm_exec(), uridecode(), uriencode(), usbradio_new(), userevent_exec(), valid_exit(), verbose_exec(), vm_authenticate(), vm_box_exists(), vm_exec(), vm_execmain(), vm_newuser(), vm_options(), vmauthenticate(), vmu_tm(), wait_for_answer(), wait_for_hangup(), wait_for_winner(), waituntil_exec(), word_match(), xml_translate(), and zapateller_exec().
char * ast_trim_blanks | ( | char * | str | ) | [inline] |
Trims trailing whitespace characters from a string.
str | the input string |
Definition at line 102 of file strings.h.
Referenced by ast_callerid_parse(), ast_skip_nonblanks(), callerid_write(), determine_firstline_parts(), httpd_helper_thread(), keypad_setup(), pbx_load_config(), and xml_translate().
int ast_true | ( | const char * | val | ) |
Make sure something is true. Determine if a string containing a boolean value is "true". This function checks to see whether a string passed to it is an indication of an "true" value. It checks to see if the string is "yes", "true", "y", "t", "on" or "1".
0 | if val is a NULL pointer. | |
-1 | if "true". | |
0 | otherwise. |
Definition at line 1309 of file utils.c.
References ast_strlen_zero().
Referenced by __ast_http_load(), __ast_rtp_reload(), __init_manager(), _parse(), action_agent_logoff(), action_bridge(), action_originate(), action_updateconfig(), aji_create_client(), aji_load_config(), apply_general_options(), apply_option(), apply_outgoing(), ast_jb_read_conf(), build_device(), build_gateway(), build_peer(), build_user(), connect_link(), dahdi_set_dnd(), do_reload(), do_timelimit(), festival_exec(), func_channel_write(), func_inheritance_write(), get_encrypt_methods(), gtalk_load_config(), handle_common_options(), init_logger_chain(), jingle_load_config(), load_config(), load_config_meetme(), load_module(), load_moh_classes(), load_odbc_config(), load_rpt_vars(), local_ast_moh_start(), login_exec(), manager_add_queue_member(), manager_pause_queue_member(), message_template_build(), misdn_answer(), odbc_load_module(), osp_load(), parse_config(), pbx_load_config(), pbx_load_users(), process_echocancel(), queue_set_param(), read_agent_config(), realtime_directory(), reload_config(), reload_queues(), run_startup_commands(), search_directory(), set_active(), set_config(), sla_load_config(), speex_write(), start_monitor_action(), strings_to_mask(), and update_common_options().
01310 { 01311 if (ast_strlen_zero(s)) 01312 return 0; 01313 01314 /* Determine if this is a true value */ 01315 if (!strcasecmp(s, "yes") || 01316 !strcasecmp(s, "true") || 01317 !strcasecmp(s, "y") || 01318 !strcasecmp(s, "t") || 01319 !strcasecmp(s, "1") || 01320 !strcasecmp(s, "on")) 01321 return -1; 01322 01323 return 0; 01324 }
char* ast_unescape_c | ( | char * | s | ) |
Convert some C escape sequences.
(\b\f\n\r\t)
Definition at line 1243 of file utils.c.
01244 { 01245 char c, *ret, *dst; 01246 01247 if (src == NULL) 01248 return NULL; 01249 for (ret = dst = src; (c = *src++); *dst++ = c ) { 01250 if (c != '\\') 01251 continue; /* copy char at the end of the loop */ 01252 switch ((c = *src++)) { 01253 case '\0': /* special, trailing '\' */ 01254 c = '\\'; 01255 break; 01256 case 'b': /* backspace */ 01257 c = '\b'; 01258 break; 01259 case 'f': /* form feed */ 01260 c = '\f'; 01261 break; 01262 case 'n': 01263 c = '\n'; 01264 break; 01265 case 'r': 01266 c = '\r'; 01267 break; 01268 case 't': 01269 c = '\t'; 01270 break; 01271 } 01272 /* default, use the char literally */ 01273 } 01274 *dst = '\0'; 01275 return ret; 01276 }
char* ast_unescape_semicolon | ( | char * | s | ) |
Strip backslash for "escaped" semicolons, the string to be stripped (will be modified).
Definition at line 1224 of file utils.c.
Referenced by transmit_invite(), and transmit_notify_custom().
01225 { 01226 char *e; 01227 char *work = s; 01228 01229 while ((e = strchr(work, ';'))) { 01230 if ((e > work) && (*(e-1) == '\\')) { 01231 memmove(e - 1, e, strlen(e) + 1); 01232 work = e; 01233 } else { 01234 work = e + 1; 01235 } 01236 } 01237 01238 return s; 01239 }