aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2003-04-27 21:34:27 +0000
committermarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2003-04-27 21:34:27 +0000
commit246797b309ef964e7bd9ac2082d0ef42944c0e9d (patch)
tree4f1a556ee7a811109d8fb9674e218052955e0083
parentdccdbdeeb39de2990741e60c9d85013c807f3e93 (diff)
More contributed BSD enhancements
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@919 f38db490-d61c-443f-a65b-d21fe96a405b
-rwxr-xr-xapps/app_agi.c6
-rwxr-xr-xapps/app_disa.c4
-rwxr-xr-xapps/app_qcall.c2
-rwxr-xr-xapps/app_voicemail.c10
-rwxr-xr-xchannels/alaw.h4
-rwxr-xr-xchannels/chan_iax.c12
-rwxr-xr-xchannels/chan_iax2.c10
-rwxr-xr-xchannels/chan_mgcp.c6
-rwxr-xr-xchannels/chan_modem.c2
-rwxr-xr-xchannels/chan_modem_aopen.c4
-rwxr-xr-xchannels/chan_modem_bestdata.c4
-rwxr-xr-xchannels/chan_modem_i4l.c4
-rwxr-xr-xchannels/chan_oss.c4
-rwxr-xr-xchannels/chan_sip.c12
-rwxr-xr-xinclude/asterisk/channel.h11
-rwxr-xr-xinclude/asterisk/lock.h15
-rwxr-xr-xindications.c2
-rwxr-xr-xres/res_indications.c4
-rwxr-xr-xres/res_parking.c2
19 files changed, 70 insertions, 48 deletions
diff --git a/apps/app_agi.c b/apps/app_agi.c
index 7c28daa44..aa526d559 100755
--- a/apps/app_agi.c
+++ b/apps/app_agi.c
@@ -914,7 +914,7 @@ static char usage_noop[] =
" Usage: NOOP\n"
" Does nothing.\n";
-agi_command commands[] = {
+static agi_command commands[] = {
{ { "answer", NULL }, handle_answer, "Asserts answer", usage_answer },
{ { "wait", "for", "digit", NULL }, handle_waitfordigit, "Waits for a digit to be pressed", usage_waitfordigit },
{ { "send", "text", NULL }, handle_sendtext, "Sends text to channels supporting it", usage_sendtext },
@@ -1343,10 +1343,10 @@ static char dumpagihtml_help[] =
"Usage: dump agihtml <filename>\n"
" Dumps the agi command list in html format to given filename\n";
-struct ast_cli_entry showagi =
+static struct ast_cli_entry showagi =
{ { "show", "agi", NULL }, handle_showagi, "Show AGI commands or specific help", showagi_help };
-struct ast_cli_entry dumpagihtml =
+static struct ast_cli_entry dumpagihtml =
{ { "dump", "agihtml", NULL }, handle_dumpagihtml, "Dumps a list of agi command in html format", dumpagihtml_help };
int unload_module(void)
diff --git a/apps/app_disa.c b/apps/app_disa.c
index 978336936..1377adc73 100755
--- a/apps/app_disa.c
+++ b/apps/app_disa.c
@@ -83,8 +83,8 @@ LOCAL_USER_DECL;
static float loudness=4096.0;
-int firstdigittimeout = 20000; /* 20 seconds first digit timeout */
-int digittimeout = 10000; /* 10 seconds subsequent digit timeout */
+static int firstdigittimeout = 20000; /* 20 seconds first digit timeout */
+static int digittimeout = 10000; /* 10 seconds subsequent digit timeout */
static void make_tone_block(unsigned char *data, float f1, float f2, int len, int *x)
{
diff --git a/apps/app_qcall.c b/apps/app_qcall.c
index a68239abc..6d89f0d2b 100755
--- a/apps/app_qcall.c
+++ b/apps/app_qcall.c
@@ -73,7 +73,7 @@
#include <sys/file.h>
#include "../astconf.h"
-char qdir[255];
+static char qdir[255];
static char *tdesc = "Call from Queue";
static pthread_t qcall_thread;
static int debug = 0;
diff --git a/apps/app_voicemail.c b/apps/app_voicemail.c
index 52a570cb9..b70ce0ffd 100755
--- a/apps/app_voicemail.c
+++ b/apps/app_voicemail.c
@@ -64,11 +64,11 @@
#define BASELINELEN 72
#define eol "\r\n"
-int iocp;
-int iolen;
-int linelength;
-int ateof;
-unsigned char iobuf[BASEMAXINLINE];
+static int iocp;
+static int iolen;
+static int linelength;
+static int ateof;
+static unsigned char iobuf[BASEMAXINLINE];
static char *tdesc = "Comedian Mail (Voicemail System)";
diff --git a/channels/alaw.h b/channels/alaw.h
index 3148a9d67..1423e495c 100755
--- a/channels/alaw.h
+++ b/channels/alaw.h
@@ -23,7 +23,7 @@
// table to convert unsigned a-law bytes to signed linear integers
-const int alaw2int[256] = {
+static const int alaw2int[256] = {
-5504,5504,-344,344,-22016,22016,-1376,1376,-2752,2752,-88,88,-11008,11008,
-688,688,-7552,7552,-472,472,-30208,30208,-1888,1888,-3776,3776,-216,216,
-15104,15104,-944,944,-4480,4480,-280,280,-17920,17920,-1120,1120,-2240,2240,
@@ -50,7 +50,7 @@ const int alaw2int[256] = {
// shift the integer to be 12+1 bit first, then add 4096 to get
// the right index
-const unsigned char int2alaw[8192] = {
+static const unsigned char int2alaw[8192] = {
84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,
84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,
84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,
diff --git a/channels/chan_iax.c b/channels/chan_iax.c
index fda869879..fe580353d 100755
--- a/channels/chan_iax.c
+++ b/channels/chan_iax.c
@@ -93,7 +93,7 @@ static int expirey = AST_DEFAULT_REG_EXPIRE;
static int usecnt;
static pthread_mutex_t usecnt_lock = AST_MUTEX_INITIALIZER;
-int (*regfunk)(char *username, int onoff) = NULL;
+int (*iax_regfunk)(char *username, int onoff) = NULL;
/* Ethernet, etc */
#define IAX_CAPABILITY_FULLBANDWIDTH 0xFFFF
@@ -218,7 +218,7 @@ struct iax_registry {
struct iax_registry *next;
};
-struct iax_registry *registrations;
+static struct iax_registry *registrations;
/* Don't retry more frequently than every 10 ms, or less frequently than every 5 seconds */
#define MIN_RETRY_TIME 10
@@ -426,10 +426,10 @@ static struct iax_dpcache {
struct iax_dpcache *peer; /* For linking in peers */
} *dpcache;
-pthread_mutex_t dpcache_lock;
+static pthread_mutex_t dpcache_lock;
#ifdef DEBUG_SUPPORT
-void showframe(struct ast_iax_frame *f, struct ast_iax_full_hdr *fhi, int rx, struct sockaddr_in *sin)
+static void showframe(struct ast_iax_frame *f, struct ast_iax_full_hdr *fhi, int rx, struct sockaddr_in *sin)
{
char *frames[] = {
"(0?)",
@@ -4501,7 +4501,7 @@ static struct iax_user *build_user(char *name, struct ast_variable *v)
}
-void delete_users(void){
+static void delete_users(void){
struct iax_user *user, *userlast;
struct iax_peer *peer;
struct iax_registry *reg, *regl;
@@ -4535,7 +4535,7 @@ void delete_users(void){
ast_pthread_mutex_unlock(&peerl.lock);
}
-void prune_peers(void){
+static void prune_peers(void){
/* Prune peers who still are supposed to be deleted */
struct iax_peer *peer, *peerlast, *peernext;
int x;
diff --git a/channels/chan_iax2.c b/channels/chan_iax2.c
index 2a547926f..2446c9ab6 100755
--- a/channels/chan_iax2.c
+++ b/channels/chan_iax2.c
@@ -109,7 +109,7 @@ static int timingfd = -1; /* Timing file descriptor */
static int usecnt;
static pthread_mutex_t usecnt_lock = AST_MUTEX_INITIALIZER;
-int (*regfunk)(char *username, int onoff) = NULL;
+int (*iax2_regfunk)(char *username, int onoff) = NULL;
/* Ethernet, etc */
#define IAX_CAPABILITY_FULLBANDWIDTH 0xFFFF
@@ -244,7 +244,7 @@ struct iax2_registry {
struct iax2_registry *next;
};
-struct iax2_registry *registrations;
+static struct iax2_registry *registrations;
/* Don't retry more frequently than every 10 ms, or less frequently than every 5 seconds */
#define MIN_RETRY_TIME 10
@@ -429,7 +429,7 @@ static struct iax2_dpcache {
struct iax2_dpcache *peer; /* For linking in peers */
} *dpcache;
-pthread_mutex_t dpcache_lock;
+static pthread_mutex_t dpcache_lock;
static void iax_debug_output(const char *data)
{
@@ -4808,7 +4808,7 @@ static struct iax2_user *build_user(char *name, struct ast_variable *v)
}
-void delete_users(void){
+static void delete_users(void){
struct iax2_user *user, *userlast;
struct iax2_peer *peer;
struct iax2_registry *reg, *regl;
@@ -4842,7 +4842,7 @@ void delete_users(void){
ast_pthread_mutex_unlock(&peerl.lock);
}
-void prune_peers(void){
+static void prune_peers(void){
/* Prune peers who still are supposed to be deleted */
struct iax2_peer *peer, *peerlast, *peernext;
int x;
diff --git a/channels/chan_mgcp.c b/channels/chan_mgcp.c
index 0975072b5..43afb5240 100755
--- a/channels/chan_mgcp.c
+++ b/channels/chan_mgcp.c
@@ -155,7 +155,7 @@ struct mgcp_endpoint {
struct mgcp_gateway *parent;
};
-struct mgcp_gateway {
+static struct mgcp_gateway {
/* A gateway containing one or more endpoints */
char name[80];
struct sockaddr_in addr;
@@ -293,7 +293,7 @@ struct my_ifreq {
} ifr_ifru;
};
-struct in_addr *lookup_iface(char *iface) {
+static struct in_addr *lookup_iface(char *iface) {
int mysock;
int res;
static struct my_ifreq ifreq;
@@ -1694,7 +1694,7 @@ static struct ast_channel *mgcp_request(char *type, int format, void *data)
return tmpc;
}
-struct mgcp_gateway *build_gateway(char *cat, struct ast_variable *v)
+static struct mgcp_gateway *build_gateway(char *cat, struct ast_variable *v)
{
struct mgcp_gateway *gw;
struct mgcp_endpoint *e;
diff --git a/channels/chan_modem.c b/channels/chan_modem.c
index 90ac7c3ae..900eb0ad5 100755
--- a/channels/chan_modem.c
+++ b/channels/chan_modem.c
@@ -808,7 +808,7 @@ static unsigned int get_group(char *s)
char *piece;
int start, finish,x;
unsigned int group = 0;
- char *copy = strdupa(s);
+ char *copy = ast_strdupa(s);
char *stringp=NULL;
if (!copy) {
ast_log(LOG_ERROR, "Out of memory\n");
diff --git a/channels/chan_modem_aopen.c b/channels/chan_modem_aopen.c
index a8f6adb06..3aa1978af 100755
--- a/channels/chan_modem_aopen.c
+++ b/channels/chan_modem_aopen.c
@@ -33,8 +33,8 @@ static char *breakcmd = "\0x10\0x03";
static char *desc = "A/Open (Rockwell Chipset) ITU-2 VoiceModem Driver";
-int usecnt;
-pthread_mutex_t usecnt_lock = AST_MUTEX_INITIALIZER;
+static int usecnt;
+static pthread_mutex_t usecnt_lock = AST_MUTEX_INITIALIZER;
static char *aopen_idents[] = {
/* Identify A/Open Modem */
diff --git a/channels/chan_modem_bestdata.c b/channels/chan_modem_bestdata.c
index 3faad53e8..90cc87828 100755
--- a/channels/chan_modem_bestdata.c
+++ b/channels/chan_modem_bestdata.c
@@ -38,8 +38,8 @@ static char *breakcmd = "\020!";
static char *desc = "BestData (Conexant V.90 Chipset) VoiceModem Driver";
-int usecnt;
-pthread_mutex_t usecnt_lock = AST_MUTEX_INITIALIZER;
+static int usecnt;
+static pthread_mutex_t usecnt_lock = AST_MUTEX_INITIALIZER;
static char *bestdata_idents[] = {
/* Identify BestData Modem */
diff --git a/channels/chan_modem_i4l.c b/channels/chan_modem_i4l.c
index 277c16b86..857188277 100755
--- a/channels/chan_modem_i4l.c
+++ b/channels/chan_modem_i4l.c
@@ -33,8 +33,8 @@ static char *breakcmd = "\0x10\0x14\0x10\0x3";
static char *desc = "ISDN4Linux Emulated Modem Driver";
-int usecnt;
-pthread_mutex_t usecnt_lock = AST_MUTEX_INITIALIZER;
+static int usecnt;
+static pthread_mutex_t usecnt_lock = AST_MUTEX_INITIALIZER;
static char *i4l_idents[] = {
/* Identify ISDN4Linux Driver */
diff --git a/channels/chan_oss.c b/channels/chan_oss.c
index 7199d33b9..376f5e059 100755
--- a/channels/chan_oss.c
+++ b/channels/chan_oss.c
@@ -75,7 +75,7 @@ static char context[AST_MAX_EXTENSION] = "default";
static char language[MAX_LANGUAGE] = "";
static char exten[AST_MAX_EXTENSION] = "s";
-int hookstate=0;
+static int hookstate=0;
static short silence[FRAME_SIZE] = {0, };
@@ -123,7 +123,7 @@ static int time_has_passed(void)
with 160 sample frames, and a buffer size of 3, we have a 60ms buffer,
usually plenty. */
-pthread_t sthread;
+static pthread_t sthread;
#define MAX_BUFFER_SIZE 100
static int buffersize = 3;
diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index 8458f3a81..2488bd543 100755
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -343,7 +343,7 @@ struct sip_registry {
#define REINVITE_UPDATE 2
static int sip_do_register(struct sip_registry *r);
-struct sip_registry *registrations;
+static struct sip_registry *registrations;
static int sipsock = -1;
static int globalnat = 0;
@@ -361,7 +361,7 @@ static int transmit_reinvite_with_sdp(struct sip_pvt *p, struct ast_rtp *rtp);
static int transmit_info_with_digit(struct sip_pvt *p, char digit);
static int transmit_message_with_text(struct sip_pvt *p, char *text);
static int do_proxy_auth(struct sip_pvt *p, struct sip_request *req);
-char *getsipuri(char *header);
+static char *getsipuri(char *header);
static void free_old_route(struct sip_route *route);
static int build_reply_digest(struct sip_pvt *p, char *orig_header, char *digest, int digest_len);
@@ -848,7 +848,7 @@ struct my_ifreq {
struct sockaddr_in ifru_addr;
};
-struct in_addr *lookup_iface(char *iface) {
+static struct in_addr *lookup_iface(char *iface) {
int mysock;
int res;
static struct my_ifreq ifreq;
@@ -5350,7 +5350,7 @@ int load_module()
return res;
}
-void delete_users(void)
+static void delete_users(void)
{
struct sip_user *user, *userlast;
struct sip_peer *peer;
@@ -5384,7 +5384,7 @@ void delete_users(void)
ast_pthread_mutex_unlock(&peerl.lock);
}
-void prune_peers(void)
+static void prune_peers(void)
{
/* Prune peers who still are supposed to be deleted */
struct sip_peer *peer, *peerlast, *peernext;
@@ -5502,7 +5502,7 @@ char *description()
return desc;
}
-char *getsipuri(char *header)
+static char *getsipuri(char *header)
{
char *c, *d, *retval;
int n;
diff --git a/include/asterisk/channel.h b/include/asterisk/channel.h
index befc13bc5..c67dd58c4 100755
--- a/include/asterisk/channel.h
+++ b/include/asterisk/channel.h
@@ -708,6 +708,17 @@ static inline int ast_select(int nfds, fd_set *rfds, fd_set *wfds, fd_set *efds,
#endif
}
+#if !defined(ast_strdupa) && defined(__GNUC__)
+# define ast_strdupa(s) \
+ (__extension__ \
+ ({ \
+ __const char *__old = (s); \
+ size_t __len = strlen (__old) + 1; \
+ char *__new = (char *) __builtin_alloca (__len); \
+ (char *) memcpy (__new, __old, __len); \
+ }))
+#endif
+
#ifdef DO_CRASH
#define CRASH do { fprintf(stderr, "!! Forcing immediate crash a-la abort !!\n"); *((int *)0) = 0; } while(0)
#else
diff --git a/include/asterisk/lock.h b/include/asterisk/lock.h
index bde1e6ada..d27e295b4 100755
--- a/include/asterisk/lock.h
+++ b/include/asterisk/lock.h
@@ -29,10 +29,17 @@
// #define AST_MUTEX_KIND PTHREAD_MUTEX_RECURSIVE_NP
#ifdef PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP
#define AST_MUTEX_INITIALIZER PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP
+#else
+#ifdef PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP
+#define AST_MUTEX_INITIALIZER PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP
+#else
+#define AST_MUTEX_INITIALIZER PTHREAD_MUTEX_INITIALIZER
+#endif
+#endif
+#ifdef PTHREAD_MUTEX_ERRORCHECK_NP
#define AST_MUTEX_KIND PTHREAD_MUTEX_ERRORCHECK_NP
#else
-#define AST_MUTEX_INITIALIZER PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP
-#define AST_MUTEX_KIND PTHREAD_MUTEX_RECURSIVE_NP
+#define AST_MUTEX_KIND PTHREAD_MUTEX_ERRORCHECK
#endif
struct mutex_info {
@@ -96,7 +103,11 @@ static inline int __ast_pthread_mutex_unlock(char *filename, int lineno, char *f
#else
#define AST_MUTEX_INITIALIZER PTHREAD_MUTEX_INITIALIZER
+#ifdef PTHREAD_MUTEX_FAST_NP
#define AST_MUTEX_KIND PTHREAD_MUTEX_FAST_NP
+#else
+#define AST_MUTEX_KIND PTHREAD_NORMAL
+#endif
#define ast_pthread_mutex_init(mutex) pthread_mutex_init(mutex, NULL)
#define ast_pthread_mutex_lock pthread_mutex_lock
diff --git a/indications.c b/indications.c
index 1ef2357ad..ccfd04e82 100755
--- a/indications.c
+++ b/indications.c
@@ -140,7 +140,7 @@ static struct ast_generator playtones = {
int ast_playtones_start(struct ast_channel *chan, int vol, const char *playlst, int interruptible)
{
- char *s, *data = strdupa(playlst); /* cute */
+ char *s, *data = ast_strdupa(playlst); /* cute */
struct playtones_def d = { vol, -1, 0, 1, NULL};
char *stringp=NULL;
if (!data)
diff --git a/res/res_indications.c b/res/res_indications.c
index 3ed4c088d..5f039f6c7 100755
--- a/res/res_indications.c
+++ b/res/res_indications.c
@@ -248,7 +248,7 @@ static int ind_load_module(void)
if (!strcasecmp(v->name, "description")) {
strncpy(tones->description, v->value, sizeof(tones->description)-1);
} else if (!strcasecmp(v->name,"ringcadance")) {
- char *ring,*rings = strdupa(v->value);
+ char *ring,*rings = ast_strdupa(v->value);
c = rings;
ring = strsep(&c,",");
while (ring) {
@@ -270,7 +270,7 @@ static int ind_load_module(void)
ring = strsep(&c,",");
}
} else if (!strcasecmp(v->name,"alias")) {
- char *countries = strdupa(v->value);
+ char *countries = ast_strdupa(v->value);
c = countries;
country = strsep(&c,",");
while (country) {
diff --git a/res/res_parking.c b/res/res_parking.c
index 4ffbc5166..63dc19230 100755
--- a/res/res_parking.c
+++ b/res/res_parking.c
@@ -611,7 +611,7 @@ unsigned int ast_get_group(char *s)
char *c=NULL;
int start=0, finish=0,x;
unsigned int group = 0;
- copy = strdupa(s);
+ copy = ast_strdupa(s);
if (!copy) {
ast_log(LOG_ERROR, "Out of memory\n");
return 0;