Merge "show applications" from corydon76 (bug #2291)
[asterisk/asterisk.git] / include / asterisk / utils.h
1 /*
2  * Asterisk -- A telephony toolkit for Linux.
3  *
4  * Utility functions
5  *
6  * Copyright (C) 2004, Digium
7  *
8  * This program is free software, distributed under the terms of
9  * the GNU General Public License
10  */
11
12 #ifndef _ASTERISK_UTIL_H
13 #define _ASTERISK_UTIL_H
14
15 #include <netinet/in.h>
16 #include <netdb.h>
17 #include <pthread.h>
18
19 static inline int ast_strlen_zero(const char *s)
20 {
21         return (*s == '\0');
22 }
23
24 struct ast_hostent {
25         struct hostent hp;
26         char buf[1024];
27 };
28
29 extern struct hostent *ast_gethostbyname(const char *host, struct ast_hostent *hp);
30 extern int ast_base64encode(char *dst, unsigned char *src, int srclen, int max);
31 extern int ast_base64decode(unsigned char *dst, char *src, int max);
32
33 extern int test_for_thread_safety(void);
34 extern const char *ast_inet_ntoa(char *buf, int bufsiz, struct in_addr ia);
35 extern int ast_utils_init(void);
36
37 #ifdef inet_ntoa
38 #undef inet_ntoa
39 #endif
40 #define inet_ntoa __dont__use__inet_ntoa__use__ast_inet_ntoa__instead__
41
42 #ifdef LINUX
43 #define ast_pthread_create pthread_create
44 #define ast_strcasestr strcasestr
45 #else
46 /* Linux threads have a default 2MB stack size. */
47 #ifndef PTHREAD_ATTR_STACKSIZE
48 #define PTHREAD_ATTR_STACKSIZE          2097152
49 #endif /* PTHREAD_ATTR_STACKSIZE */
50 extern int ast_pthread_create(pthread_t *thread, pthread_attr_t *attr, void *(*start_routine)(void *), void *data);
51 #endif /* LINUX */
52
53 extern char *ast_strcasestr(const char *, const char *);
54
55 #endif