projects
/
asterisk/asterisk.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Version 0.1.8 from FTP
[asterisk/asterisk.git]
/
apps
/
app_skel.c
diff --git
a/apps/app_skel.c
b/apps/app_skel.c
index
e766d11
..
8ca4113
100755
(executable)
--- a/
apps/app_skel.c
+++ b/
apps/app_skel.c
@@
-15,6
+15,7
@@
#include <asterisk/logger.h>
#include <asterisk/channel.h>
#include <asterisk/pbx.h>
#include <asterisk/logger.h>
#include <asterisk/channel.h>
#include <asterisk/pbx.h>
+#include <asterisk/module.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
@@
-22,63
+23,32
@@
#include <pthread.h>
#include <pthread.h>
-static pthread_mutex_t skellock = PTHREAD_MUTEX_INITIALIZER;
-
-static int usecnt=0;
static char *tdesc = "Trivial skeleton Application";
static char *app = "skel";
static char *tdesc = "Trivial skeleton Application";
static char *app = "skel";
-struct skeluser {
- struct ast_channel *chan;
- struct skeluser *next;
-} *users = NULL;
+STANDARD_LOCAL_USER;
+
+LOCAL_USER_DECL;
static int skel_exec(struct ast_channel *chan, void *data)
{
int res=0;
static int skel_exec(struct ast_channel *chan, void *data)
{
int res=0;
- struct skeluser *u, *ul=NULL;
+ struct localuser *u;
if (!data) {
ast_log(LOG_WARNING, "skel requires an argument (filename)\n");
return -1;
}
if (!data) {
ast_log(LOG_WARNING, "skel requires an argument (filename)\n");
return -1;
}
- if (!(u=malloc(sizeof(struct skeluser)))) {
- ast_log(LOG_WARNING, "Out of memory\n");
- return -1;
- }
- pthread_mutex_lock(&skellock);
- u->chan = chan;
- u->next = users;
- users = u;
- usecnt++;
- pthread_mutex_unlock(&skellock);
+ LOCAL_USER_ADD(u);
/* Do our thing here */
/* Do our thing here */
- pthread_mutex_lock(&skellock);
- u = users;
- while(u) {
- if (ul)
- ul->next = u->next;
- else
- users = u->next;
- u = u->next;
- }
- usecnt--;
- pthread_mutex_unlock(&skellock);
+ LOCAL_USER_REMOVE(u);
return res;
}
int unload_module(void)
{
return res;
}
int unload_module(void)
{
- struct skeluser *u;
- pthread_mutex_lock(&skellock);
- u = users;
- while(u) {
- /* Hang up anybody who is using us */
- ast_softhangup(u->chan);
- u = u->next;
- }
- pthread_mutex_unlock(&skellock);
+ STANDARD_HANGUP_LOCALUSERS;
return ast_unregister_application(app);
}
return ast_unregister_application(app);
}
@@
-95,8
+65,11
@@
char *description(void)
int usecount(void)
{
int res;
int usecount(void)
{
int res;
- pthread_mutex_lock(&skellock);
- res = usecnt;
- pthread_mutex_unlock(&skellock);
+ STANDARD_USECOUNT(res);
return res;
}
return res;
}
+
+char *key()
+{
+ return ASTERISK_GPL_KEY;
+}