Fri Nov 12 12:09:59 2010

Asterisk developer's documentation


strings.h File Reference

String manipulation functions. More...

#include <ctype.h>
#include "asterisk/utils.h"
#include "asterisk/threadstorage.h"
Include dependency graph for strings.h:
This graph shows which files directly or indirectly include this file:

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 __AST_STR_LEN   len
#define __AST_STR_STR   str
#define __AST_STR_TS   ts
#define __AST_STR_USED   used
#define _DB1(x)
#define AS_OR(a, b)   (a && ast_str_strlen(a)) ? ast_str_buffer(a) : (b)
#define ast_str_alloca(init_len)
#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)   ({typeof(&((b)[0])) __x = (b); (a) && !ast_strlen_zero(__x) ? (__x) : (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)   ({typeof(&((a)[0])) __x = (a); ast_strlen_zero(__x) ? (b) : __x;})
 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, ssize_t max_len, int append, const char *fmt, va_list ap)
 Core functionality of ast_str_(set|append)_va.
char * __ast_str_helper2 (struct ast_str **buf, ssize_t max_len, const char *src, size_t maxsrc, int append, int escapecommas)
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 attribute_pure 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 (const char *str)
 Gets a pointer to first whitespace character in a string.
int ast_str_append (struct ast_str **buf, ssize_t max_len, const char *fmt,...)
 Append to a thread local dynamic string.
char * ast_str_append_escapecommas (struct ast_str **buf, ssize_t maxlen, const char *src, size_t maxsrc)
 Append a non-NULL terminated substring to the end of a dynamic string, with escaping of commas.
char * ast_str_append_substr (struct ast_str **buf, ssize_t maxlen, const char *src, size_t maxsrc)
 Append a non-NULL terminated substring to the end of a dynamic string.
int ast_str_append_va (struct ast_str **buf, ssize_t max_len, const char *fmt, va_list ap)
 Append to a dynamic string using a va_list.
char * ast_str_buffer (struct ast_str *buf)
 Returns the string buffer within the ast_str buf.
static force_inline int
attribute_pure 
ast_str_case_hash (const char *str)
 Compute a hash value on a case-insensitive string.
struct ast_strast_str_create (size_t init_len)
 Create a malloc'ed dynamic length string.
static force_inline int
attribute_pure 
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, ssize_t max_len, const char *fmt,...)
 Set a dynamic string using variable arguments.
char * ast_str_set_escapecommas (struct ast_str **buf, ssize_t maxlen, const char *src, size_t maxsrc)
 Set a dynamic string to a non-NULL terminated substring, with escaping of commas.
char * ast_str_set_substr (struct ast_str **buf, ssize_t maxlen, const char *src, size_t maxsrc)
 Set a dynamic string to a non-NULL terminated substring.
int ast_str_set_va (struct ast_str **buf, ssize_t max_len, const char *fmt, va_list ap)
 Set a dynamic string from a va_list.
size_t ast_str_size (struct ast_str *buf)
 Returns the current maximum length (without reallocation) of the current buffer.
size_t ast_str_strlen (struct ast_str *buf)
 Returns the current length of the string stored within buf.
struct ast_strast_str_thread_get (struct ast_threadstorage *ts, size_t init_len)
 Retrieve a thread locally stored dynamic string.
void ast_str_trim_blanks (struct ast_str *buf)
 Trims trailing whitespace characters from an ast_str string.
char * ast_str_truncate (struct ast_str *buf, ssize_t len)
 Truncates the enclosed string to the given length.
void ast_str_update (struct ast_str *buf)
 Update the length of the buffer, after using ast_str merely as a buffer.
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
attribute_pure 
ast_strlen_zero (const char *s)
char * ast_trim_blanks (char *str)
 Trims trailing whitespace characters from a string.
int attribute_pure 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).

Detailed Description

String manipulation functions.

Definition in file strings.h.


Define Documentation

#define __AST_STR_LEN   len

Definition at line 40 of file strings.h.

#define __AST_STR_STR   str

Definition at line 41 of file strings.h.

#define __AST_STR_TS   ts

Definition at line 42 of file strings.h.

#define __AST_STR_USED   used

Definition at line 39 of file strings.h.

#define _DB1 (  ) 

Definition at line 519 of file strings.h.

#define AS_OR ( a,
 )     (a && ast_str_strlen(a)) ? ast_str_buffer(a) : (b)

Definition at line 47 of file strings.h.

#define ast_str_alloca ( init_len   ) 
#define DS_ALLOCA   ((struct ast_threadstorage *)2)

Definition at line 364 of file strings.h.

#define DS_MALLOC   ((struct ast_threadstorage *)1)

Definition at line 363 of file strings.h.

#define DS_STATIC   ((struct ast_threadstorage *)3)

Definition at line 365 of file strings.h.

#define S_COR ( a,
b,
 )     ({typeof(&((b)[0])) __x = (b); (a) && !ast_strlen_zero(__x) ? (__x) : (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 78 of file strings.h.

Referenced by _skinny_show_line().

#define S_OR ( a,
 )     ({typeof(&((a)[0])) __x = (a); ast_strlen_zero(__x) ? (b) : __x;})

returns the equivalent of logic or for strings: first one if not empty, otherwise second one.

Definition at line 72 of file strings.h.

Referenced by __ast_channel_alloc_ap(), __ast_cli_register(), __ssl_setup(), _sip_show_peer(), _skinny_show_device(), _skinny_show_line(), acf_if(), acf_transaction_write(), 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_bridge_call(), ast_call_forward(), ast_cdr_end(), ast_cdr_init(), ast_cdr_setapp(), ast_cdr_start(), ast_cdr_update(), ast_cli_command_full(), ast_hangup(), ast_play_and_record_full(), ast_setstate(), authenticate(), build_callid_pvt(), build_callid_registry(), build_peer(), build_profile(), build_route(), build_rpid(), builtin_automixmonitor(), builtin_automonitor(), callerid_read(), calltoken_required(), cdr_handler(), check_auth(), check_post(), cli_odbc_write(), common_exec(), conf_run(), config_curl(), config_handler(), config_parse_variables(), copy_message(), dahdi_handle_dtmfup(), dahdi_handle_event(), dahdi_hangup(), dahdi_read(), dahdi_show_channel(), dial_exec_full(), do_directory(), do_forward(), do_timelimit(), dundi_exec(), enable_jack_hook(), execif_exec(), fast_originate(), feature_interpret(), find_conf(), find_queue_by_name_rt(), forward_message(), ftype2mtype(), get_also_info(), get_cached_mwi(), get_cid_name(), get_destination(), get_refer_info(), handle_call_token(), handle_chanlist(), handle_cli_agi_show(), handle_cli_check_permissions(), 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_function(), handle_show_functions(), handle_show_settings(), handle_showchan(), handle_showmancmd(), handle_skinny_show_settings(), handle_verbose(), hashtab_compare_exten_labels(), hashtab_hash_labels(), help1(), help_workhorse(), 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_queue_reload(), manager_queues_status(), meetme_show_cmd(), misdn_call(), misdn_cfg_get(), originate_exec(), park_call_full(), park_exec_full(), park_space_reserve(), pbx_builtin_execiftime(), pbx_builtin_waitexten(), pbx_exec(), pbx_extension_helper(), pbx_load_config(), peer_mailboxes_to_str(), pgsql_reconnect(), phase_e_handler(), play_mailbox_owner(), play_moh_exec(), post_cdr(), post_manager_event(), pri_dchannel(), print_app_docs(), process_sdp(), process_text_line(), queue_exec(), realtime_common(), realtime_curl(), realtime_destroy_handler(), realtime_directory(), realtime_exec(), realtime_handler(), realtime_multi_curl(), realtime_multi_handler(), realtime_store_handler(), realtime_update2_handler(), realtime_update_handler(), register_exten(), register_group_feature(), register_peer_exten(), reload_config(), report_new_callerid(), return_exec(), rt_handle_member_record(), select_entry(), send_provisional_keepalive_full(), senddialevent(), serialize_showchan(), set_config(), set_member_paused(), set_one_cid(), setup_env(), shared_write(), show_channels_cb(), sip_read(), sip_register(), 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(), update_realtime_members(), and wait_for_answer().


Enumeration Type Documentation

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

Enumerator:
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 668 of file strings.h.

00668      {
00669    /*! An error has occurred and the contents of the dynamic string
00670     *  are undefined */
00671    AST_DYNSTR_BUILD_FAILED = -1,
00672    /*! The buffer size for the dynamic string had to be increased, and
00673     *  __ast_str_helper() needs to be called again after
00674     *  a va_end() and va_start().  This return value is legacy and will
00675     *  no longer be used.
00676     */
00677    AST_DYNSTR_BUILD_RETRY = -2
00678 };


Function Documentation

int __ast_str_helper ( struct ast_str **  buf,
ssize_t  max_len,
int  append,
const char *  fmt,
va_list  ap 
)

Core functionality of ast_str_(set|append)_va.

The arguments to this function are the same as those described for ast_str_set_va except for an addition argument, append. If append is non-zero, this will append to the current string instead of writing over it.

AST_DYNSTR_BUILD_RETRY is a legacy define. It should probably never again be used.

A return of AST_DYNSTR_BUILD_FAILED indicates a memory allocation error.

A return value greater than or equal to zero indicates the number of characters that have been written, not including the terminating ''. In the append case, this only includes the number of characters appended.

Note:
This function should never need to be called directly. It should through calling one of the other functions or macros defined in this file.

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 55 of file strings.c.

References AST_DYNSTR_BUILD_FAILED, ast_str_make_space(), and ast_verbose.

Referenced by ast_str_set_va().

00058 {
00059    int res, need;
00060    int offset = (append && (*buf)->__AST_STR_LEN) ? (*buf)->__AST_STR_USED : 0;
00061    va_list aq;
00062 
00063    do {
00064       if (max_len < 0) {
00065          max_len = (*buf)->__AST_STR_LEN; /* don't exceed the allocated space */
00066       }
00067       /*
00068        * Ask vsnprintf how much space we need. Remember that vsnprintf
00069        * does not count the final <code>'\0'</code> so we must add 1.
00070        */
00071       va_copy(aq, ap);
00072       res = vsnprintf((*buf)->__AST_STR_STR + offset, (*buf)->__AST_STR_LEN - offset, fmt, aq);
00073 
00074       need = res + offset + 1;
00075       /*
00076        * If there is not enough space and we are below the max length,
00077        * reallocate the buffer and return a message telling to retry.
00078        */
00079       if (need > (*buf)->__AST_STR_LEN && (max_len == 0 || (*buf)->__AST_STR_LEN < max_len) ) {
00080          if (max_len && max_len < need) { /* truncate as needed */
00081             need = max_len;
00082          } else if (max_len == 0) { /* if unbounded, give more room for next time */
00083             need += 16 + need / 4;
00084          }
00085          if (0) { /* debugging */
00086             ast_verbose("extend from %d to %d\n", (int)(*buf)->__AST_STR_LEN, need);
00087          }
00088          if (
00089 #if (defined(MALLOC_DEBUG) && !defined(STANDALONE))
00090                _ast_str_make_space(buf, need, file, lineno, function)
00091 #else
00092                ast_str_make_space(buf, need)
00093 #endif
00094             ) {
00095             ast_verbose("failed to extend from %d to %d\n", (int)(*buf)->__AST_STR_LEN, need);
00096             va_end(aq);
00097             return AST_DYNSTR_BUILD_FAILED;
00098          }
00099          (*buf)->__AST_STR_STR[offset] = '\0';  /* Truncate the partial write. */
00100 
00101          /* Restart va_copy before calling vsnprintf() again. */
00102          va_end(aq);
00103          continue;
00104       }
00105       va_end(aq);
00106       break;
00107    } while (1);
00108    /* update space used, keep in mind the truncation */
00109    (*buf)->__AST_STR_USED = (res + offset > (*buf)->__AST_STR_LEN) ? (*buf)->__AST_STR_LEN - 1 : res + offset;
00110 
00111    return res;
00112 }

char* __ast_str_helper2 ( struct ast_str **  buf,
ssize_t  max_len,
const char *  src,
size_t  maxsrc,
int  append,
int  escapecommas 
)

Definition at line 125 of file strings.c.

References ast_str::__AST_STR_LEN, and ast_str_make_space().

Referenced by ast_str_append_substr(), ast_str_append_va(), ast_str_set_escapecommas(), and ast_str_set_substr().

00126 {
00127    int dynamic = 0;
00128    char *ptr = append ? &((*buf)->__AST_STR_STR[(*buf)->__AST_STR_USED]) : (*buf)->__AST_STR_STR;
00129 
00130    if (maxlen < 1) {
00131       if (maxlen == 0) {
00132          dynamic = 1;
00133       }
00134       maxlen = (*buf)->__AST_STR_LEN;
00135    }
00136 
00137    while (*src && maxsrc && maxlen && (!escapecommas || (maxlen - 1))) {
00138       if (escapecommas && (*src == '\\' || *src == ',')) {
00139          *ptr++ = '\\';
00140          maxlen--;
00141          (*buf)->__AST_STR_USED++;
00142       }
00143       *ptr++ = *src++;
00144       maxsrc--;
00145       maxlen--;
00146       (*buf)->__AST_STR_USED++;
00147 
00148       if ((ptr >= (*buf)->__AST_STR_STR + (*buf)->__AST_STR_LEN - 3) ||
00149          (dynamic && (!maxlen || (escapecommas && !(maxlen - 1))))) {
00150          char *oldbase = (*buf)->__AST_STR_STR;
00151          size_t old = (*buf)->__AST_STR_LEN;
00152          if (ast_str_make_space(buf, (*buf)->__AST_STR_LEN * 2)) {
00153             /* If the buffer can't be extended, end it. */
00154             break;
00155          }
00156          /* What we extended the buffer by */
00157          maxlen = old;
00158 
00159          ptr += (*buf)->__AST_STR_STR - oldbase;
00160       }
00161    }
00162    if (__builtin_expect(!maxlen, 0)) {
00163       ptr--;
00164    }
00165    *ptr = '\0';
00166    return (*buf)->__AST_STR_STR;
00167 }

int ast_build_string ( char **  buffer,
size_t *  space,
const char *  fmt,
  ... 
)

Build a string in a buffer, designed to be called repeatedly.

Note:
This method is not recommended. New code should use ast_str_*() instead.

This is a wrapper for snprintf, that properly handles the buffer pointer and buffer space available.

Parameters:
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
Return values:
0 on success
non-zero on failure.

Definition at line 1299 of file utils.c.

References ast_build_string_va().

Referenced by config_odbc(), handle_speechrecognize(), lua_func_read(), lua_pbx_exec(), pp_each_extension_exec(), and pp_each_user_exec().

01300 {
01301    va_list ap;
01302    int result;
01303 
01304    va_start(ap, fmt);
01305    result = ast_build_string_va(buffer, space, fmt, ap);
01306    va_end(ap);
01307 
01308    return result;
01309 }

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.

Returns:
0 on success, non-zero on failure.
Parameters:
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 1280 of file utils.c.

Referenced by ast_build_string().

01281 {
01282    int result;
01283 
01284    if (!buffer || !*buffer || !space || !*space)
01285       return -1;
01286 
01287    result = vsnprintf(*buffer, *space, fmt, ap);
01288 
01289    if (result < 0)
01290       return -1;
01291    else if (result > *space)
01292       result = *space;
01293 
01294    *buffer += result;
01295    *space -= result;
01296    return 0;
01297 }

__inline__ void ast_copy_string ( char *  dst,
const char *  src,
size_t  size 
)

Size-limited null-terminating string copy.

Parameters:
dst The destination buffer.
src The source string
size The size of the destination buffer
Returns:
Nothing.

This is similar to strncpy, with two important differences:

  • the destination buffer will always be null-terminated
  • the destination buffer is not filled with zeros past the copied string length These differences make it slightly more efficient, and safer to use since it will not leave the destination buffer unterminated. There is no need to pass an artificially reduced buffer size to this function (unlike strncpy), and the buffer does not need to be initialized to zeroes prior to calling this function.

Definition at line 218 of file strings.h.

Referenced by __ast_alloc_region(), __ast_channel_alloc_ap(), __ast_http_load(), __ast_http_post_load(), __ast_pbx_run(), __ast_play_and_record(), __ast_request_and_dial(), __iax2_show_peers(), __init_manager(), __oh323_new(), __schedule_action(), __set_address_from_contact(), _get_mohbyname(), _macro_exec(), _sip_show_peers(), acf_channel_read(), acf_curl_exec(), acf_curlopt_read(), acf_exception_read(), acf_fetch(), acf_iaxvar_read(), acf_if(), acf_isexten_exec(), acf_mailbox_exists(), acf_odbc_read(), acf_sprintf(), acf_transaction_read(), acf_version_exec(), action_originate(), add_agent(), add_exten_to_pattern_tree(), add_line(), add_realm_authentication(), add_route(), add_sdp(), add_sip_domain(), adsi_load(), adsi_message(), adsi_process(), aes_helper(), 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(), ast_add_extension2_lockopt(), ast_app_group_split_group(), ast_apply_ha(), ast_bridge_call(), ast_bridge_dtmf_stream(), ast_bridge_features_hook(), ast_bridge_features_register(), ast_call_forward(), 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_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_explicit_goto(), ast_expr(), ast_frame_dump(), ast_get_enum(), ast_get_hint(), ast_get_indication_zone(), 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_stop(), ast_odbc_request_obj2(), 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_zh(), 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_cs(), 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_zh(), ast_setstate(), ast_tryconnect(), ast_tzset(), ast_unregister_indication_country(), ast_uri_encode(), ast_var_assign(), ast_var_indications(), ast_var_indications_table(), ast_xmldoc_printable(), async_wait(), authenticate(), authenticate_verify(), begin_dial_channel(), blr_ebl(), bridge_channel_dtmf_stream(), build_alias(), build_conf(), build_context(), build_device(), build_event_channel(), 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(), complete_indications(), conf_exec(), conf_run(), config_device(), config_function_read(), config_line(), config_parse_variables(), config_text_file_load(), console_dial(), copy_message(), copy_via_headers(), create_addr(), create_followme_number(), create_parkinglot(), create_queue_member(), create_vmaccount(), csv_quote(), 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(), find_conf_realtime(), find_context(), find_context_locked(), find_engine(), find_line_by_name(), find_or_create(), find_parkinglot(), find_peer(), find_queue_by_name_rt(), 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_rdnis(), get_refer_info(), get_rpid_num(), getdisplaybyname(), getflagbyname(), getkeybyname(), getstatebyname(), getsubbyname(), 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_memory_show_summary(), handle_pri_set_debug_file(), handle_request_info(), handle_request_invite(), 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_frame_subclass2str(), iax_park(), iax_parse_ies(), iax_show_provisioning(), iax_template_copy(), ices_exec(), ifmodule_read(), iftime(), import_ch(), inboxcount2(), init_acf_query(), init_logger_chain(), init_profile(), init_state(), 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_conference_bridge(), join_queue(), key_dial_page(), key_history(), key_main_page(), key_select_extension(), Keyfavorite(), leave_voicemail(), listfilter(), load_config(), load_module(), load_moh_classes(), load_odbc_config(), 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(), manage_parkinglot(), manager_iax2_show_peer_list(), manager_iax2_show_registry(), manager_modulecheck(), masq_park_call(), 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_mwi_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_hangup(), misdn_new(), misdn_overlap_dial_task(), misdn_request(), misdn_send_text(), misdn_set_opt_exec(), mkif(), mkintf(), moh_files_alloc(), moh_scan_files(), 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(), park_call_full(), parse_config(), parse_moved_contact(), parse_naptr(), parse_ok_contact(), parse_register_contact(), parse_tone_zone(), 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(), peek_read(), peer_status(), pgsql_reconnect(), phone_call(), phone_new(), play_record_review(), populate_defaults(), pri_dchannel(), private_enum_init(), process_dahdi(), process_message(), process_precache(), process_sdp(), profile_set_param(), proxy_allocate(), queue_set_param(), quote(), rcv_mac_addr(), read_agent_config(), read_config(), read_config_maps(), realtime_odbc(), realtime_peer(), realtime_switch_common(), realtime_update_peer(), realtimefield_read(), receive_ademco_contact_id(), record_exec(), register_exten(), register_peer_exten(), register_verify(), registry_rerequest(), reload_agents(), reload_config(), reload_followme(), reload_queue_rules(), reload_single_member(), remap_feature(), remove_from_queue(), reply_digest(), reqprep(), reset_user_pw(), respprep(), ring_entry(), rpt_call(), rt_extend_conf(), rt_handle_member_record(), run_externnotify(), search_directory_sub(), 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(), sip_subscribe_mwi(), skinny_new(), skinny_newcall(), skinny_register(), skinny_request(), skinny_ss(), smdi_load(), 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(), ss7_linkset(), ss_thread(), stat_read(), store_config(), store_odbc(), store_tone_zone_ring_cadence(), 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().

00319 :
 *

int attribute_pure 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".

Return values:
0 if val is a NULL pointer.
-1 if "true".
0 otherwise.

Definition at line 1328 of file utils.c.

References ast_strlen_zero().

Referenced by __ast_rtp_reload(), __ast_udptl_reload(), acf_transaction_write(), aji_create_client(), aji_load_config(), build_peer(), build_user(), dahdi_set_dnd(), find_realtime(), func_channel_write(), handle_common_options(), init_acf_query(), load_config(), load_odbc_config(), parse_empty_options(), reload_config(), run_agi(), set_config(), set_insecure_flags(), sla_build_trunk(), and strings_to_mask().

01329 {
01330    if (ast_strlen_zero(s))
01331       return 0;
01332 
01333    /* Determine if this is a false value */
01334    if (!strcasecmp(s, "no") ||
01335        !strcasecmp(s, "false") ||
01336        !strcasecmp(s, "n") ||
01337        !strcasecmp(s, "f") ||
01338        !strcasecmp(s, "0") ||
01339        !strcasecmp(s, "off"))
01340       return -1;
01341 
01342    return 0;
01343 }

int ast_get_time_t ( const char *  src,
time_t *  dst,
time_t  _default,
int *  consumed 
)

get values from config variables.

Definition at line 1732 of file utils.c.

References ast_strlen_zero().

Referenced by build_peer(), cache_lookup_internal(), handle_saydatetime(), load_password(), play_message_datetime(), process_clearcache(), realtime_peer(), and sayunixtime_exec().

01733 {
01734    long t;
01735    int scanned;
01736 
01737    if (dst == NULL)
01738       return -1;
01739 
01740    *dst = _default;
01741 
01742    if (ast_strlen_zero(src))
01743       return -1;
01744 
01745    /* only integer at the moment, but one day we could accept more formats */
01746    if (sscanf(src, "%30ld%n", &t, &scanned) == 1) {
01747       *dst = t;
01748       if (consumed)
01749          *consumed = scanned;
01750       return 0;
01751    } else
01752       return -1;
01753 }

int ast_get_timeval ( const char *  src,
struct timeval *  tv,
struct timeval  _default,
int *  consumed 
)

get values from config variables.

Definition at line 1705 of file utils.c.

References ast_strlen_zero().

Referenced by acf_strftime().

01706 {
01707    long double dtv = 0.0;
01708    int scanned;
01709 
01710    if (dst == NULL)
01711       return -1;
01712 
01713    *dst = _default;
01714 
01715    if (ast_strlen_zero(src))
01716       return -1;
01717 
01718    /* only integer at the moment, but one day we could accept more formats */
01719    if (sscanf(src, "%30Lf%n", &dtv, &scanned) > 0) {
01720       dst->tv_sec = dtv;
01721       dst->tv_usec = (dtv - dst->tv_sec) * 1000000.0;
01722       if (consumed)
01723          *consumed = scanned;
01724       return 0;
01725    } else
01726       return -1;
01727 }

void ast_join ( char *  s,
size_t  len,
char *const   w[] 
)

Definition at line 1451 of file utils.c.

Referenced by __ast_cli_generator(), ast_agi_register(), ast_agi_unregister(), ast_cli_command_full(), cli_console_sendtext(), console_sendtext(), find_best(), handle_cli_agi_show(), handle_cli_check_permissions(), handle_help(), help1(), help_workhorse(), set_full_cmd(), and write_htmldump().

01452 {
01453    int x, ofs = 0;
01454    const char *src;
01455 
01456    /* Join words into a string */
01457    if (!s)
01458       return;
01459    for (x = 0; ofs < len && w[x]; x++) {
01460       if (x > 0)
01461          s[ofs++] = ' ';
01462       for (src = w[x]; *src && ofs < len; src++)
01463          s[ofs++] = *src;
01464    }
01465    if (ofs == len)
01466       ofs--;
01467    s[ofs] = '\0';
01468 }

__inline__ char * ast_skip_blanks ( const char *  str  ) 
__inline__ char * ast_skip_nonblanks ( const char *  str  ) 

Gets a pointer to first whitespace character in a string.

Parameters:
str the input string
Returns:
a pointer to the first whitespace character

Definition at line 131 of file strings.h.

References ast_skip_blanks(), ast_trim_blanks(), and s.

Referenced by __ast_cli_register(), determine_firstline_parts(), handle_response(), and httpd_helper_thread().

00144 {

__inline__ int ast_str_append ( struct ast_str **  buf,
ssize_t  max_len,
const char *  fmt,
  ... 
)

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 846 of file strings.h.

Referenced by __manager_event(), __queues_show(), _sip_tcp_helper_thread(), acf_curl_exec(), acf_odbc_read(), 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(), ast_sched_report(), ast_term_color_code(), ast_xmldoc_build_seealso(), ast_xmldoc_printable(), authority_to_str(), build_peer(), CB_ADD(), CB_ADD_LEN(), cdr_handler(), chanavail_exec(), cli_alias_passthrough(), cli_prompt(), commit_exec(), destroy_curl(), destroy_pgsql(), encmethods_to_str(), function_realtime_read(), function_realtime_readdestroy(), generic_http_callback(), handle_cli_core_show_translation(), handle_cli_indication_show(), httpstatus_callback(), initreqprep(), listfilter(), load_column_config(), load_config(), log_jack_status(), meetme_cmd(), odbc_log(), pbx_builtin_serialize_variables(), peer_mailboxes_to_str(), pgsql_log(), pgsql_reconnect(), phoneprov_callback(), print_uptimestr(), process_text_line(), realtime_curl(), realtime_ldap_base_ap(), realtime_multi_curl(), realtime_multi_pgsql(), realtime_pgsql(), realtime_update2_handler(), realtimefield_read(), require_curl(), rollback_exec(), run_station(), send_eivr_event(), sqlite3_log(), store_curl(), store_pgsql(), substitute_escapes(), transmit_notify_with_mwi(), transmit_state_notify(), update2_curl(), update2_ldap(), update2_pgsql(), update2_prepare(), update_curl(), update_ldap(), update_pgsql(), userevent_exec(), xml_copy_escape(), xml_translate(), xmldoc_get_syntax_cmd(), xmldoc_parse_argument(), xmldoc_parse_cmd_enumlist(), xmldoc_parse_enumlist(), xmldoc_parse_option(), xmldoc_parse_optionlist(), xmldoc_parse_para(), xmldoc_parse_parameter(), xmldoc_parse_specialtags(), xmldoc_parse_variable(), xmldoc_parse_variablelist(), xmldoc_string_cleanup(), and xmldoc_string_wrap().

00854 ://www.cse.yorku.ca/~oz/hash.html

__inline__ char * ast_str_append_escapecommas ( struct ast_str **  buf,
ssize_t  maxlen,
const char *  src,
size_t  maxsrc 
)

Append a non-NULL terminated substring to the end of a dynamic string, with escaping of commas.

Definition at line 793 of file strings.h.

References ast_str_set_va().

Referenced by acf_odbc_read().

00815 {

__inline__ char * ast_str_append_substr ( struct ast_str **  buf,
ssize_t  maxlen,
const char *  src,
size_t  maxsrc 
)

Append a non-NULL terminated substring to the end of a dynamic string.

Definition at line 779 of file strings.h.

References __ast_str_helper2().

Referenced by listfilter(), and WriteMemoryCallback().

00783 {

__inline__ int ast_str_append_va ( struct ast_str **  buf,
ssize_t  max_len,
const char *  fmt,
va_list  ap 
)

Append to a dynamic string using a va_list.

Same as ast_str_set_va(), but append to the current content.

Definition at line 765 of file strings.h.

References __ast_str_helper2().

Referenced by __manager_event(), and ast_str_set().

00769 {

__inline__ char * ast_str_buffer ( struct ast_str buf  ) 

Returns the string buffer within the ast_str buf.

Parameters:
buf A pointer to the ast_str structure.
Return values:
A pointer to the enclosed string.

Definition at line 488 of file strings.h.

References ast_str::__AST_STR_STR, ast_str::__AST_STR_USED, and len().

Referenced by __ast_verbose_ap(), __iax2_show_peers(), __manager_event(), __queues_show(), __sip_reliable_xmit(), _sip_tcp_helper_thread(), acf_curl_exec(), acf_odbc_read(), acf_odbc_write(), action_createconfig(), action_status(), action_userevent(), ALLOC_COMMENT(), ast_agi_send(), ast_cli(), ast_eivr_getvariable(), ast_extension_state2(), ast_log(), ast_odbc_ast_str_SQLGetData(), ast_str_get_encoded_str(), ast_var_channels_table(), ast_xmldoc_build_arguments(), ast_xmldoc_build_seealso(), ast_xmldoc_printable(), astman_append(), authority_to_str(), build_peer(), cdr_handler(), chanavail_exec(), cli_alias_passthrough(), cli_match_char_tree(), cli_odbc_read(), cli_odbc_write(), cli_prompt(), commit_exec(), config_curl(), config_pgsql(), config_text_file_load(), dahdi_new(), destroy_curl(), destroy_pgsql(), dumpchan_exec(), eivr_comm(), find_realtime(), find_table(), function_realtime_read(), function_realtime_readdestroy(), handle_call_token(), handle_cli_core_show_translation(), handle_cli_iax2_show_peer(), handle_dbget(), handle_show_chanvar(), handle_showchan(), http_post_callback(), httpd_helper_thread(), iax_parse_ies(), leave_voicemail(), listfilter(), load_column_config(), log_jack_status(), log_match_char_tree(), manager_iax2_show_peer_list(), manager_log(), meetme_cmd(), meetme_show_cmd(), odbc_log(), pbx_find_extension(), pgsql_log(), pgsql_reconnect(), print_uptimestr(), process_text_line(), realtime_curl(), realtime_ldap_base_ap(), realtime_multi_curl(), realtime_multi_pgsql(), realtime_pgsql(), realtime_update2_handler(), realtimefield_read(), require_curl(), require_pgsql(), rollback_exec(), run_station(), say_periodic_announcement(), send_eivr_event(), sqlite3_log(), store_curl(), store_pgsql(), substitute_escapes(), system_exec_helper(), update2_curl(), update2_ldap(), update2_odbc(), update2_pgsql(), update2_prepare(), update_curl(), update_ldap(), update_pgsql(), userevent_exec(), vars2manager(), xmldoc_build_field(), xmldoc_get_formatted(), xmldoc_get_syntax_cmd(), xmldoc_parse_cmd_enumlist(), xmldoc_parse_para(), xmldoc_parse_variable(), and xmldoc_string_wrap().

00497 {

static force_inline int attribute_pure 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 896 of file strings.h.

Referenced by ast_tone_zone_hash(), conference_bridge_hash_cb(), dialog_hash_cb(), moh_class_hash(), parkinglot_hash_cb(), peer_hash_cb(), profile_hash_fn(), pvt_hash_cb(), queue_hash_cb(), routes_hash_fn(), tps_hash_cb(), and users_hash_fn().

00897 {
00898    int hash = 5381;
00899 
00900    while (*str) {
00901       hash = hash * 33 ^ tolower(*str++);
00902    }
00903 
00904    return abs(hash);
00905 }

__inline__ struct ast_str * ast_str_create ( size_t  init_len  )  [read]

Create a malloc'ed dynamic length string.

Parameters:
init_len This is the initial length of the string buffer
Returns:
This function returns a pointer to the dynamic string length. The result will be NULL in the case of a memory allocation error.
Note:
The result of this function is dynamically allocated memory, and must be free()'d after it is no longer needed.

Definition at line 415 of file strings.h.

References ast_str::__AST_STR_LEN, ast_str::__AST_STR_STR, and ast_str::__AST_STR_USED.

Referenced by __ast_http_post_load(), __sip_reliable_xmit(), _sip_tcp_helper_thread(), acf_curl_exec(), action_status(), app_exec(), ast_http_error(), ast_xmldoc_build_arguments(), ast_xmldoc_build_seealso(), ast_xmldoc_printable(), cdr_handler(), cli_prompt(), config_curl(), config_text_file_load(), copy_request(), destroy_curl(), find_realtime(), generic_http_callback(), handle_dbget(), handle_updates(), httpstatus_callback(), iax_parse_ies(), init_appendbuf(), init_queue(), init_req(), init_resp(), leave_voicemail(), load_column_config(), load_config(), meetme_cmd(), meetme_show_cmd(), odbc_log(), pgsql_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(), sip_tcptls_write(), sipsock_read(), sqlite3_log(), store_curl(), update2_curl(), update2_ldap(), update_curl(), update_ldap(), userevent_exec(), xmldoc_get_formatted(), xmldoc_get_syntax_cmd(), xmldoc_parse_cmd_enumlist(), xmldoc_string_cleanup(), and xmldoc_string_wrap().

00423 {

static force_inline int attribute_pure 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 856 of file strings.h.

Referenced by alias_hash_cb(), 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(), and user_hash_cb().

00857 {
00858    int hash = 5381;
00859 
00860    while (*str)
00861       hash = hash * 33 ^ *str++;
00862 
00863    return abs(hash);
00864 }

static force_inline int ast_str_hash_add ( const char *  str,
int  hash 
) [static]

Compute a hash value on a string.

Parameters:
[in] str The string to add to the hash
[in] hash The hash value to add to

This version of the function is for when you need to compute a string hash of more than one string.

This famous hash algorithm was written by Dan Bernstein and is commonly used.

See also:
http://www.cse.yorku.ca/~oz/hash.html

Definition at line 881 of file strings.h.

Referenced by ast_event_hash_mwi().

00882 {
00883    while (*str)
00884       hash = hash * 33 ^ *str++;
00885 
00886    return abs(hash);
00887 }

__inline__ int ast_str_make_space ( struct ast_str **  buf,
size_t  new_len 
)
__inline__ void ast_str_reset ( struct ast_str buf  ) 
__inline__ int ast_str_set ( struct ast_str **  buf,
ssize_t  max_len,
const char *  fmt,
  ... 
)

Set a dynamic string using variable arguments.

Parameters:
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)
Returns:
The return value of this function is the same as that of the printf family of functions.

All the rest is the same as ast_str_set_va()

Definition at line 825 of file strings.h.

References ast_str_append_va().

Referenced by __ast_http_post_load(), __manager_event(), __queues_show(), __sip_reliable_xmit(), action_createconfig(), ast_extension_state2(), ast_http_error(), ast_sched_report(), ast_str_get_encoded_str(), build_peer(), cdr_handler(), check_auth(), cli_match_char_tree(), cli_odbc_read(), cli_prompt(), config_curl(), config_pgsql(), dahdi_new(), destroy_curl(), destroy_pgsql(), do_magic_pickup(), encmethods_to_str(), find_realtime(), find_table(), handle_call_token(), handle_cli_core_show_translation(), handle_cli_indication_show(), iax_parse_ies(), init_queue(), init_req(), init_resp(), leave_voicemail(), log_jack_status(), log_match_char_tree(), meetme_cmd(), meetme_show_cmd(), odbc_log(), pgsql_log(), pgsql_reconnect(), process_text_line(), queue_set_param(), realtime_curl(), realtime_multi_curl(), realtime_multi_pgsql(), realtime_pgsql(), realtime_update2_handler(), require_curl(), require_pgsql(), run_station(), sip_tcptls_write(), sipsock_read(), store_curl(), store_pgsql(), transmit_fake_auth_response(), update2_curl(), update2_pgsql(), update2_prepare(), update_curl(), and update_pgsql().

00836 {

__inline__ char * ast_str_set_escapecommas ( struct ast_str **  buf,
ssize_t  maxlen,
const char *  src,
size_t  maxsrc 
)

Set a dynamic string to a non-NULL terminated substring, with escaping of commas.

Definition at line 786 of file strings.h.

References __ast_str_helper2().

Referenced by realtimefield_read().

00790 {

__inline__ char * ast_str_set_substr ( struct ast_str **  buf,
ssize_t  maxlen,
const char *  src,
size_t  maxsrc 
)

Set a dynamic string to a non-NULL terminated substring.

Definition at line 772 of file strings.h.

References __ast_str_helper2().

00776 {

__inline__ int ast_str_set_va ( struct ast_str **  buf,
ssize_t  max_len,
const char *  fmt,
va_list  ap 
)

Set a dynamic string from a va_list.

Parameters:
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
Returns:
The return value of this function is the same as that of the printf family of functions.

Example usage (the first part is only for thread-local storage)

 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 754 of file strings.h.

References __ast_str_helper().

Referenced by __ast_verbose_ap(), ast_agi_send(), ast_cli(), ast_log(), ast_str_append_escapecommas(), and astman_append().

00762 {

__inline__ size_t ast_str_size ( struct ast_str buf  ) 

Returns the current maximum length (without reallocation) of the current buffer.

Parameters:
buf A pointer to the ast_str structure.
Return values:
Current maximum length of the buffer.

Definition at line 477 of file strings.h.

References ast_str::__AST_STR_STR.

Referenced by ast_odbc_ast_str_SQLGetData(), ast_str_get_encoded_str(), handle_dbget(), load_config(), pbx_find_extension(), pgsql_reconnect(), and WriteMemoryCallback().

00485 {

__inline__ size_t ast_str_strlen ( struct ast_str buf  ) 
__inline__ struct ast_str * ast_str_thread_get ( struct ast_threadstorage ts,
size_t  init_len 
) [read]

Retrieve a thread locally stored dynamic string.

Parameters:
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.
Returns:
This function will return the thread locally stored dynamic string associated with the thread storage management variable passed as the first argument. The result will be NULL in the case of a memory allocation error.

Example usage:

 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 637 of file strings.h.

References ast_str::__AST_STR_LEN, ast_str::__AST_STR_TS, and ast_str::__AST_STR_USED.

Referenced by __ast_verbose_ap(), __manager_event(), acf_odbc_read(), acf_odbc_write(), action_userevent(), ast_agi_send(), ast_cli(), ast_extension_state2(), ast_log(), astman_append(), check_auth(), cli_odbc_read(), cli_odbc_write(), commit_exec(), config_pgsql(), destroy_pgsql(), dumpchan_exec(), find_table(), handle_showchan(), listfilter(), pbx_find_extension(), realtime_multi_pgsql(), realtime_pgsql(), realtime_update2_handler(), realtimefield_read(), rollback_exec(), store_pgsql(), substitute_escapes(), system_exec_helper(), transmit_fake_auth_response(), update2_odbc(), update2_pgsql(), update2_prepare(), update_pgsql(), and vars2manager().

00642 {

__inline__ void ast_str_trim_blanks ( struct ast_str buf  ) 

Trims trailing whitespace characters from an ast_str string.

Parameters:
buf A pointer to the ast_str string.

Definition at line 456 of file strings.h.

References ast_str::__AST_STR_USED.

Referenced by acf_curl_exec(), process_text_line(), and xmldoc_string_cleanup().

00463 {

__inline__ char * ast_str_truncate ( struct ast_str buf,
ssize_t  len 
)

Truncates the enclosed string to the given length.

Parameters:
buf A pointer to the ast_str structure.
len Maximum length of the string.
Return values:
A pointer to the resulting string.

Definition at line 506 of file strings.h.

Referenced by ast_xmldoc_build_arguments(), xmldoc_get_formatted(), and xmldoc_string_wrap().

00528 {

__inline__ void ast_str_update ( struct ast_str buf  ) 

Update the length of the buffer, after using ast_str merely as a buffer.

Parameters:
buf A pointer to the ast_str string.

Definition at line 441 of file strings.h.

References ast_str::__AST_STR_STR, and ast_str::__AST_STR_USED.

Referenced by ast_odbc_ast_str_SQLGetData(), ast_str_get_encoded_str(), and handle_dbget().

00448 {

__inline__ char * ast_strip ( char *  s  ) 

Strip leading/trailing whitespace from a string.

Parameters:
s The string to be stripped (will be modified).
Returns:
The stripped string.

This functions strips all leading and trailing whitespace characters from the input string, and returns a pointer to the resulting string. The string is modified in place.

Definition at line 150 of file strings.h.

Referenced by acf_if(), ast_el_add_history(), ast_playtones_start(), 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(), reload_config(), reload_single_member(), set(), and store_tone_zone_ring_cadence().

00170 :
  \code

char* ast_strip_quoted ( char *  s,
const char *  beg_quotes,
const char *  end_quotes 
)

Strip leading/trailing whitespace and quotes from a string.

Parameters:
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.
Returns:
The stripped string.

This functions strips all leading and trailing whitespace characters from the input string, and returns a pointer to the resulting string. The string is modified in place.

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 1209 of file utils.c.

References ast_strip().

Referenced by ast_register_file_version(), get_rdnis(), iftime(), load_values_config(), parse_cookies(), parse_dial_string(), and sip_register().

01210 {
01211    char *e;
01212    char *q;
01213 
01214    s = ast_strip(s);
01215    if ((q = strchr(beg_quotes, *s)) && *q != '\0') {
01216       e = s + strlen(s) - 1;
01217       if (*e == *(end_quotes + (q - beg_quotes))) {
01218          s++;
01219          *e = '\0';
01220       }
01221    }
01222 
01223    return s;
01224 }

static force_inline int attribute_pure ast_strlen_zero ( const char *  s  )  [static]

Definition at line 63 of file strings.h.

Referenced by __ast_bridge_technology_register(), __ast_callerid_generate(), __ast_channel_alloc_ap(), __ast_cli_generator(), __ast_cli_register(), __ast_http_load(), __ast_pbx_run(), __ast_request_and_dial(), __astman_get_header(), __has_voicemail(), __iax2_show_peers(), __init_manager(), __oh323_new(), __queues_show(), __sip_subscribe_mwi_do(), __ssl_setup(), _macro_exec(), _sip_show_peer(), _sip_show_peers(), _skinny_show_devices(), _skinny_show_lines(), 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_retrieve_docs(), acf_strptime(), acf_transaction_read(), acf_transaction_write(), 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_ping(), action_redirect(), action_sendtext(), action_setvar(), action_status(), action_timeout(), action_transfer(), action_transferhangup(), action_updateconfig(), action_waitevent(), add_agent(), add_calltoken_ignore(), add_peer_mailboxes(), add_realm_authentication(), add_sdp(), add_sip_domain(), admin_exec(), adsi_exec(), adsi_message(), advanced_options(), aes_helper(), agent_call(), agent_devicestate(), agent_hangup(), agent_logoff_maintenance(), agent_new(), agent_read(), agent_request(), agents_show(), agents_show_online(), agi_exec_full(), agi_handle_command(), 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_agi_register(), 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_bridge_features_enable(), ast_bridge_features_register(), ast_build_timing(), ast_call_forward(), 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_cli_complete(), ast_cli_perms_init(), 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_pbx_outgoing_app(), ast_pbx_outgoing_exten(), ast_pickup_call(), ast_playtones_start(), ast_privacy_set(), ast_readconfig(), ast_register_application2(), ast_register_indication(), ast_remotecontrol(), ast_set_indication_country(), ast_speech_unregister(), ast_stream_and_wait(), ast_taskprocessor_get(), ast_true(), ast_tzset(), ast_var_channels_table(), ast_variable_delete(), ast_variable_update(), ast_xmldoc_build_arguments(), ast_xmldoc_build_seealso(), ast_xmldoc_load_documentation(), 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_extension(), 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(), channel_admin_exec(), channel_spy(), chanspy_exec(), check_access(), check_auth(), check_blacklist(), check_day(), check_dow(), check_goto_on_transfer(), check_match(), check_month(), check_password(), check_peer_ok(), check_sip_domain(), check_timerange(), check_user_full(), cleaned_basedn(), clear_stats(), cli_alias_passthrough(), cli_console_dial(), cli_console_sendtext(), cli_odbc_read(), cli_odbc_write(), close_client(), commit_exec(), common_exec(), compare(), compile_script(), complete_number(), conf_exec(), conf_run(), confbridge_exec(), config_curl(), config_function_read(), config_ldap(), config_line(), config_module(), config_parse_variables(), 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(), csv_quote(), custom_log(), custom_prepare(), dahdi_call(), dahdi_handle_event(), dahdi_hangup(), dahdi_new(), dahdi_read(), dahdi_send_keypad_facility_exec(), 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_forward(), 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_attended_transfer(), feature_blind_transfer(), feature_exec_app(), feature_interpret(), feature_request_and_dial(), festival_exec(), fileexists_core(), find_account(), find_call(), find_call_cb(), find_cli(), find_conf_realtime(), find_engine(), find_line_by_name(), find_parkinglot(), find_queue_by_name_rt(), find_sdp(), find_sip_method(), find_table(), findparkinglotname(), forkcdr_exec(), forward_message(), 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_ip_and_port_from_sdp(), get_range(), get_rdnis(), get_refer_info(), get_sip_pvt_byid_locked(), get_timerange(), get_transport_str2enum(), 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(), handle_chanlist(), handle_cli_check_permissions(), 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_playtones(), handle_pri_set_debug_file(), handle_queue_pause_member(), handle_queue_rule_show(), handle_request_bye(), handle_request_info(), handle_request_invite(), handle_request_notify(), 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_verbose(), 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(), init_acf_query(), init_jack_data(), initreqprep(), insert_penaltychange(), inspect_module(), is_argument(), is_prefix(), is_valid_tone_zone(), isAnsweringMachine(), isexten_function_read(), jack_exec(), jb_choose_impl(), jingle_create_candidates(), jingle_new(), key_dial_page(), key_main_page(), kill_dead_queues(), launch_asyncagi(), launch_monitor_thread(), launch_netscript(), ldap_reconnect(), ldap_table_config_add_attribute(), leave_voicemail(), load_column_config(), load_config(), load_indications(), load_module(), load_moh_classes(), load_odbc_config(), load_values_config(), local_ast_moh_start(), local_attended_transfer(), 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_iax2_show_registry(), 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(), manager_skinny_show_device(), manager_skinny_show_devices(), manager_skinny_show_line(), manager_skinny_show_lines(), mark_dead_and_unfound(), 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_mwi_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(), originate_exec(), osp_auth(), ospauth_exec(), ospfinished_exec(), osplookup_exec(), ospnext_exec(), oss_call(), oss_new(), page_exec(), park_call_exec(), park_call_full(), 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(), parse_uri(), 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(), port_str2int(), post_cdr(), pp_each_extension_exec(), pp_each_user_exec(), pqm_exec(), prep_email_sub_vars(), pri_dchannel(), print_ext(), privacy_exec(), proc_422_rsp(), process_ast_dsp(), process_dahdi(), process_echocancel(), process_message(), process_message_callback(), process_sdp(), process_sdp_o(), 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(), queue_reload_request(), quit_handler(), quote(), rcv_mac_addr(), rcvfax_exec(), read_agent_config(), read_config(), read_exec(), readexten_exec(), readfile_exec(), real_ctx(), realtime_common(), realtime_curl(), realtime_directory(), realtime_exec(), 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(), realtimefield_read(), receive_ademco_contact_id(), record_exec(), register_exten(), register_peer_exten(), register_verify(), registry_rerequest(), reload_config(), reload_followme(), reload_queue_members(), reload_queues(), reload_single_member(), replace_cid(), reply_digest(), reqprep(), requirecalltoken_mark_auto(), respprep(), retrydial_exec(), ring_entry(), rollback_exec(), rotate_file(), rpt_exec(), rpt_manager_do_stats(), rpt_manager_success(), rqm_exec(), rt_handle_member_record(), run_agi(), run_externnotify(), search_directory(), search_directory_sub(), 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_nonce_randdata(), 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_park(), sip_poke_peer(), sip_prepare_socket(), sip_register(), sip_removeheader(), sip_request_call(), sip_show_channel(), sip_show_settings(), sip_show_user(), sip_sipredirect(), sip_subscribe_mwi(), sip_uri_headers_cmp(), sip_uri_params_cmp(), skel_exec(), skinny_hold(), skinny_new(), skinny_register(), skinny_request(), skinny_ss(), sla_build_station(), sla_build_trunk(), sla_check_device(), sla_queue_event_conf(), sla_ring_station(), sla_station_exec(), sla_trunk_exec(), smdi_msg_find(), smdi_msg_read(), smdi_msg_retrieve_read(), sms_exec(), sndfax_exec(), socket_process(), softhangup_exec(), spawn_mp3(), speech_background(), split_ext(), ss7_apply_plan_to_number(), ss7_linkset(), ss7_start_call(), 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_notify_with_mwi(), 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(), xmldoc_build_field(), xmldoc_get_syntax_fun(), xmldoc_parse_specialtags(), and zapateller_exec().

00064 {
00065    return (!s || (*s == '\0'));
00066 }

__inline__ char * ast_trim_blanks ( char *  str  ) 

Trims trailing whitespace characters from a string.

Parameters:
str the input string
Returns:
a pointer to the modified string

Definition at line 117 of file strings.h.

Referenced by ast_callerid_parse(), ast_skip_nonblanks(), callerid_write(), determine_firstline_parts(), do_say(), httpd_helper_thread(), pbx_load_config(), and xml_translate().

00126 {

int attribute_pure 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".

Return values:
0 if val is a NULL pointer.
-1 if "true".
0 otherwise.

Definition at line 1311 of file utils.c.

References ast_strlen_zero().

Referenced by __ast_http_load(), __ast_rtp_reload(), __ast_udptl_reload(), __init_manager(), _parse(), acf_curlopt_write(), acf_transaction_write(), 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(), ast_readconfig(), build_device(), build_gateway(), build_peer(), build_user(), config_parse_variables(), 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(), handle_logger_set_level(), handle_t38_options(), init_logger_chain(), jingle_load_config(), load_config(), load_config_meetme(), load_module(), load_modules(), 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(), parse_empty_options(), pbx_load_config(), pbx_load_users(), process_dahdi(), process_echocancel(), queue_set_global_params(), queue_set_param(), read_agent_config(), realtime_directory(), reload_config(), run_startup_commands(), search_directory(), search_directory_sub(), set_active(), set_config(), sla_load_config(), smdi_load(), speex_write(), start_monitor_action(), strings_to_mask(), update_common_options(), xmldoc_get_syntax_cmd(), and xmldoc_get_syntax_fun().

01312 {
01313    if (ast_strlen_zero(s))
01314       return 0;
01315 
01316    /* Determine if this is a true value */
01317    if (!strcasecmp(s, "yes") ||
01318        !strcasecmp(s, "true") ||
01319        !strcasecmp(s, "y") ||
01320        !strcasecmp(s, "t") ||
01321        !strcasecmp(s, "1") ||
01322        !strcasecmp(s, "on"))
01323       return -1;
01324 
01325    return 0;
01326 }

char* ast_unescape_c ( char *  s  ) 

Convert some C escape sequences.

(\b\f\n\r\t) 

into the equivalent characters. The string to be converted (will be modified).

Returns:
The converted string.

Definition at line 1245 of file utils.c.

01246 {
01247    char c, *ret, *dst;
01248 
01249    if (src == NULL)
01250       return NULL;
01251    for (ret = dst = src; (c = *src++); *dst++ = c ) {
01252       if (c != '\\')
01253          continue;   /* copy char at the end of the loop */
01254       switch ((c = *src++)) {
01255       case '\0':  /* special, trailing '\' */
01256          c = '\\';
01257          break;
01258       case 'b':   /* backspace */
01259          c = '\b';
01260          break;
01261       case 'f':   /* form feed */
01262          c = '\f';
01263          break;
01264       case 'n':
01265          c = '\n';
01266          break;
01267       case 'r':
01268          c = '\r';
01269          break;
01270       case 't':
01271          c = '\t';
01272          break;
01273       }
01274       /* default, use the char literally */
01275    }
01276    *dst = '\0';
01277    return ret;
01278 }

char* ast_unescape_semicolon ( char *  s  ) 

Strip backslash for "escaped" semicolons, the string to be stripped (will be modified).

Returns:
The stripped string.

Definition at line 1226 of file utils.c.

Referenced by transmit_invite(), and transmit_notify_custom().

01227 {
01228    char *e;
01229    char *work = s;
01230 
01231    while ((e = strchr(work, ';'))) {
01232       if ((e > work) && (*(e-1) == '\\')) {
01233          memmove(e - 1, e, strlen(e) + 1);
01234          work = e;
01235       } else {
01236          work = e + 1;
01237       }
01238    }
01239 
01240    return s;
01241 }


Generated by  doxygen 1.6.2