aboutsummaryrefslogtreecommitdiffstats
path: root/utils/ael_main.c
diff options
context:
space:
mode:
authorrizzo <rizzo@f38db490-d61c-443f-a65b-d21fe96a405b>2006-05-01 20:44:26 +0000
committerrizzo <rizzo@f38db490-d61c-443f-a65b-d21fe96a405b>2006-05-01 20:44:26 +0000
commit8eb09360b12dee2551da13c354c247c75714d174 (patch)
tree5edaf702788dd072723d19de89a0dbb46ec08281 /utils/ael_main.c
parent81e68e05cd6b49e917611a76cae37131f93849aa (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/ael_main.c')
-rw-r--r--utils/ael_main.c39
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) */
+