diff options
author | rizzo <rizzo@f38db490-d61c-443f-a65b-d21fe96a405b> | 2006-05-01 20:44:26 +0000 |
---|---|---|
committer | rizzo <rizzo@f38db490-d61c-443f-a65b-d21fe96a405b> | 2006-05-01 20:44:26 +0000 |
commit | 8eb09360b12dee2551da13c354c247c75714d174 (patch) | |
tree | 5edaf702788dd072723d19de89a0dbb46ec08281 /utils | |
parent | 81e68e05cd6b49e917611a76cae37131f93849aa (diff) |
add missing functions - see the comment in the file explaining
in detail why this is needed and that hopefully this is a
temporary workaround.
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@24020 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'utils')
-rw-r--r-- | utils/ael_main.c | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/utils/ael_main.c b/utils/ael_main.c index c495fd479..a511f6180 100644 --- a/utils/ael_main.c +++ b/utils/ael_main.c @@ -258,3 +258,42 @@ int main(int argc, char **argv) return 0; } + +/* + * XXX the code below is replicated here from utils.c, because + * the #define AST_API_MODULE references functions that are + * not available on all platforms. + * We hit the problem with strndup (which in turn uses strnlen), + * but it is possible that there are more of these issues. + * + * When utils.c is properly split and functions become available + * through a library, this file will just link to the library and + * the problem will go away together with the code below. + */ +#ifndef HAVE_STRNLEN +size_t strnlen(const char *s, size_t n) +{ + size_t len; + + for (len=0; len < n; len++) + if (s[len] == '\0') + break; + + return len; +} +#endif /* !HAVE_STRNLEN */ + +#if !defined(HAVE_STRNDUP) && !defined(__AST_DEBUG_MALLOC) +char *strndup(const char *s, size_t n) +{ + size_t len = strnlen(s, n); + char *new = malloc(len + 1); + + if (!new) + return NULL; + + new[len] = '\0'; + return memcpy(new, s, len); +} +#endif /* !defined(HAVE_STRNDUP) && !defined(__AST_DEBUG_MALLOC) */ + |