remove experimental module version tags

add per-file revision tags and 'show version files' CLI command


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@5864 65c4cc65-6c06-0410-ace0-fbb531ad65f3
1.2-netsec
Kevin P. Fleming 20 years ago
parent 6cbf69981d
commit 0e6762dd5f

@ -36,6 +36,10 @@
#include <sys/sockio.h> #include <sys/sockio.h>
#endif #endif
#include "asterisk.h"
ASTERISK_FILE_VERSION("$Revision$")
#include "asterisk/acl.h" #include "asterisk/acl.h"
#include "asterisk/logger.h" #include "asterisk/logger.h"
#include "asterisk/channel.h" #include "asterisk/channel.h"

@ -11,6 +11,10 @@
* the GNU General Public License * the GNU General Public License
*/ */
#include "asterisk.h"
ASTERISK_FILE_VERSION("$Revision$")
#include "asterisk/alaw.h" #include "asterisk/alaw.h"
#define AMI_MASK 0x55 #define AMI_MASK 0x55

@ -23,6 +23,10 @@
#include <sys/stat.h> #include <sys/stat.h>
#include <regex.h> #include <regex.h>
#include "asterisk.h"
ASTERISK_FILE_VERSION("$Revision$")
#include "asterisk/channel.h" #include "asterisk/channel.h"
#include "asterisk/pbx.h" #include "asterisk/pbx.h"
#include "asterisk/file.h" #include "asterisk/file.h"
@ -33,7 +37,6 @@
#include "asterisk/utils.h" #include "asterisk/utils.h"
#include "asterisk/lock.h" #include "asterisk/lock.h"
#include "asterisk/indications.h" #include "asterisk/indications.h"
#include "asterisk.h"
#define MAX_OTHER_FORMATS 10 #define MAX_OTHER_FORMATS 10

@ -28,12 +28,16 @@
#include <grp.h> #include <grp.h>
#include <pwd.h> #include <pwd.h>
#include <sys/stat.h> #include <sys/stat.h>
#include <regex.h>
#if defined(__FreeBSD__) || defined( __NetBSD__ ) || defined(SOLARIS) #if defined(__FreeBSD__) || defined( __NetBSD__ ) || defined(SOLARIS)
#include <netdb.h> #include <netdb.h>
#endif #endif
#include "asterisk.h" #include "asterisk.h"
ASTERISK_FILE_VERSION("$Revision$")
#include "asterisk/logger.h" #include "asterisk/logger.h"
#include "asterisk/options.h" #include "asterisk/options.h"
#include "asterisk/cli.h" #include "asterisk/cli.h"
@ -60,6 +64,7 @@
#include "asterisk/config.h" #include "asterisk/config.h"
#include "asterisk/version.h" #include "asterisk/version.h"
#include "asterisk/build.h" #include "asterisk/build.h"
#include "asterisk/linkedlists.h"
#include "defaults.h" #include "defaults.h"
@ -147,6 +152,85 @@ static int shuttingdown = 0;
static int restartnow = 0; static int restartnow = 0;
static pthread_t consolethread = AST_PTHREADT_NULL; static pthread_t consolethread = AST_PTHREADT_NULL;
struct file_version {
const char *file;
const char *version;
AST_LIST_ENTRY(file_version) list;
};
static AST_LIST_HEAD_STATIC(file_versions, file_version);
void ast_register_file_version(const char *file, const char *version)
{
struct file_version *new;
new = calloc(1, sizeof(*new));
if (!new)
return;
new->file = file;
new->version = version;
AST_LIST_LOCK(&file_versions);
AST_LIST_INSERT_HEAD(&file_versions, new, list);
AST_LIST_UNLOCK(&file_versions);
}
void ast_unregister_file_version(const char *file)
{
struct file_version *find;
AST_LIST_LOCK(&file_versions);
AST_LIST_TRAVERSE_SAFE_BEGIN(&file_versions, find, list) {
if (!strcasecmp(find->file, file)) {
AST_LIST_REMOVE_CURRENT(&file_versions, list);
break;
}
}
AST_LIST_TRAVERSE_SAFE_END;
AST_LIST_UNLOCK(&file_versions);
}
static char show_version_files_help[] =
"Usage: show version files [like <pattern>]\n"
" Shows the revision numbers of the files used to build this copy of Asterisk.\n"
" Optional regular expression pattern is used to filter the file list.\n";
static int handle_show_version_files(int fd, int argc, char *argv[])
{
struct file_version *iterator;
AST_LIST_LOCK(&file_versions);
AST_LIST_TRAVERSE(&file_versions, iterator, list) {
ast_cli(fd, "%-25.25s %-20.20s\n", iterator->file, iterator->version);
}
AST_LIST_UNLOCK(&file_versions);
return RESULT_SUCCESS;
}
static char *complete_show_version_files(char *line, char *word, int pos, int state)
{
struct file_version *find;
int which = 0;
char *ret = NULL;
int matchlen = strlen(word);
if (pos != 3)
return NULL;
AST_LIST_LOCK(&file_versions);
AST_LIST_TRAVERSE(&file_versions, find, list) {
if (!strncasecmp(word, find->file, matchlen)) {
if (++which > state) {
ret = strdup(find->file);
break;
}
}
}
AST_LIST_UNLOCK(&file_versions);
return ret;
}
int ast_register_atexit(void (*func)(void)) int ast_register_atexit(void (*func)(void))
{ {
int res = -1; int res = -1;
@ -936,6 +1020,8 @@ static struct ast_cli_entry core_cli[] = {
"Restart Asterisk at empty call volume", restart_when_convenient_help }, "Restart Asterisk at empty call volume", restart_when_convenient_help },
{ { "!", NULL }, handle_bang, { { "!", NULL }, handle_bang,
"Execute a shell command", bang_help }, "Execute a shell command", bang_help },
{ { "show", "version", "files", NULL }, handle_show_version_files,
"Show versions of files used to build Asterisk", show_version_files_help, complete_show_version_files },
}; };
static int ast_el_read_char(EditLine *el, char *cp) static int ast_el_read_char(EditLine *el, char *cp)

@ -20,6 +20,10 @@
#include <string.h> #include <string.h>
#include <time.h> #include <time.h>
#include "asterisk.h"
ASTERISK_FILE_VERSION("$Revision$")
#include "asterisk/cli.h" #include "asterisk/cli.h"
#include "asterisk/logger.h" #include "asterisk/logger.h"
#include "asterisk/options.h" #include "asterisk/options.h"

@ -20,6 +20,10 @@
#include <unistd.h> #include <unistd.h>
#include <math.h> /* For PI */ #include <math.h> /* For PI */
#include "asterisk.h"
ASTERISK_FILE_VERSION("$Revision$")
#include "asterisk/pbx.h" #include "asterisk/pbx.h"
#include "asterisk/frame.h" #include "asterisk/frame.h"
#include "asterisk/sched.h" #include "asterisk/sched.h"

@ -22,6 +22,10 @@
#include <math.h> #include <math.h>
#include <ctype.h> #include <ctype.h>
#include "asterisk.h"
ASTERISK_FILE_VERSION("$Revision$")
#include "asterisk/ulaw.h" #include "asterisk/ulaw.h"
#include "asterisk/alaw.h" #include "asterisk/alaw.h"
#include "asterisk/frame.h" #include "asterisk/frame.h"

@ -20,6 +20,10 @@
#include <stdio.h> #include <stdio.h>
#include <signal.h> #include <signal.h>
#include "asterisk.h"
ASTERISK_FILE_VERSION("$Revision$")
#include "asterisk/lock.h" #include "asterisk/lock.h"
#include "asterisk/channel.h" #include "asterisk/channel.h"
#include "asterisk/cdr.h" #include "asterisk/cdr.h"

@ -32,6 +32,10 @@
#endif #endif
#endif #endif
#include "asterisk.h"
ASTERISK_FILE_VERSION("$Revision$")
#include "asterisk/pbx.h" #include "asterisk/pbx.h"
#include "asterisk/frame.h" #include "asterisk/frame.h"
#include "asterisk/sched.h" #include "asterisk/sched.h"
@ -53,7 +57,6 @@
#include "asterisk/lock.h" #include "asterisk/lock.h"
#include "asterisk/app.h" #include "asterisk/app.h"
#include "asterisk/transcap.h" #include "asterisk/transcap.h"
#include "asterisk.h"
/* uncomment if you have problems with 'monitoring' synchronized files */ /* uncomment if you have problems with 'monitoring' synchronized files */
#if 0 #if 0

@ -14,6 +14,10 @@
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
#include "asterisk.h"
ASTERISK_FILE_VERSION("$Revision$")
#include "asterisk/chanvars.h" #include "asterisk/chanvars.h"
#include "asterisk/logger.h" #include "asterisk/logger.h"

46
cli.c

@ -19,6 +19,10 @@
#include <string.h> #include <string.h>
#include <ctype.h> #include <ctype.h>
#include "asterisk.h"
ASTERISK_FILE_VERSION("$Revision$")
#include "asterisk/logger.h" #include "asterisk/logger.h"
#include "asterisk/options.h" #include "asterisk/options.h"
#include "asterisk/cli.h" #include "asterisk/cli.h"
@ -31,7 +35,6 @@
/* For rl_filename_completion */ /* For rl_filename_completion */
#include "editline/readline/readline.h" #include "editline/readline/readline.h"
/* For module directory */ /* For module directory */
#include "asterisk.h"
#include "asterisk/version.h" #include "asterisk/version.h"
#include "asterisk/build.h" #include "asterisk/build.h"
@ -227,17 +230,17 @@ static int handle_unload(int fd, int argc, char *argv[])
return RESULT_SUCCESS; return RESULT_SUCCESS;
} }
#define MODLIST_FORMAT "%-30s %-40.40s %-20.20s %-10d\n" #define MODLIST_FORMAT "%-30s %-40.40s %-10d\n"
#define MODLIST_FORMAT2 "%-30s %-40.40s %-20.20s %-10s\n" #define MODLIST_FORMAT2 "%-30s %-40.40s %-10s\n"
AST_MUTEX_DEFINE_STATIC(climodentrylock); AST_MUTEX_DEFINE_STATIC(climodentrylock);
static int climodentryfd = -1; static int climodentryfd = -1;
static int modlist_modentry(const char *module, const char *description, int usecnt, const char *version, const char *like) static int modlist_modentry(const char *module, const char *description, int usecnt, const char *like)
{ {
/* Comparing the like with the module */ /* Comparing the like with the module */
if (strstr(module, like) != NULL) { if (strstr(module, like) != NULL) {
ast_cli(climodentryfd, MODLIST_FORMAT, module, description, version, usecnt); ast_cli(climodentryfd, MODLIST_FORMAT, module, description, usecnt);
return 1; return 1;
} }
return 0; return 0;
@ -384,7 +387,7 @@ static int handle_modlist(int fd, int argc, char *argv[])
ast_mutex_lock(&climodentrylock); ast_mutex_lock(&climodentrylock);
climodentryfd = fd; climodentryfd = fd;
ast_cli(fd, MODLIST_FORMAT2, "Module", "Description", "Version", "Use Count"); ast_cli(fd, MODLIST_FORMAT2, "Module", "Description", "Use Count");
ast_cli(fd,"%d modules loaded\n", ast_update_module_list(modlist_modentry, like)); ast_cli(fd,"%d modules loaded\n", ast_update_module_list(modlist_modentry, like));
climodentryfd = -1; climodentryfd = -1;
ast_mutex_unlock(&climodentrylock); ast_mutex_unlock(&climodentrylock);
@ -822,6 +825,22 @@ static struct ast_cli_entry *find_cli(char *cmds[], int exact)
int y; int y;
int match; int match;
struct ast_cli_entry *e=NULL; struct ast_cli_entry *e=NULL;
for (e=helpers;e;e=e->next) {
match = 1;
for (y=0;match && cmds[y]; y++) {
if (!e->cmda[y] && !exact)
break;
if (!e->cmda[y] || strcasecmp(e->cmda[y], cmds[y]))
match = 0;
}
if ((exact > -1) && e->cmda[y])
match = 0;
if (match)
break;
}
if (e)
return e;
for (x=0;builtins[x].cmda[0];x++) { for (x=0;builtins[x].cmda[0];x++) {
/* start optimistic */ /* start optimistic */
match = 1; match = 1;
@ -843,20 +862,7 @@ static struct ast_cli_entry *find_cli(char *cmds[], int exact)
if (match) if (match)
return &builtins[x]; return &builtins[x];
} }
for (e=helpers;e;e=e->next) { return NULL;
match = 1;
for (y=0;match && cmds[y]; y++) {
if (!e->cmda[y] && !exact)
break;
if (!e->cmda[y] || strcasecmp(e->cmda[y], cmds[y]))
match = 0;
}
if ((exact > -1) && e->cmda[y])
match = 0;
if (match)
break;
}
return e;
} }
static void join(char *dest, size_t destsize, char *w[]) static void join(char *dest, size_t destsize, char *w[])

@ -25,6 +25,10 @@
# include <glob.h> # include <glob.h>
#endif #endif
#include "asterisk.h"
ASTERISK_FILE_VERSION("$Revision$")
#include "asterisk/config.h" #include "asterisk/config.h"
#include "asterisk/cli.h" #include "asterisk/cli.h"
#include "asterisk/lock.h" #include "asterisk/lock.h"
@ -33,7 +37,6 @@
#include "asterisk/utils.h" #include "asterisk/utils.h"
#include "asterisk/channel.h" #include "asterisk/channel.h"
#include "asterisk/app.h" #include "asterisk/app.h"
#include "asterisk.h"
#define MAX_NESTED_COMMENTS 128 #define MAX_NESTED_COMMENTS 128
#define COMMENT_START ";--" #define COMMENT_START ";--"

@ -17,6 +17,10 @@
#include <string.h> #include <string.h>
#include <errno.h> #include <errno.h>
#include "asterisk.h"
ASTERISK_FILE_VERSION("$Revision$")
#include "asterisk/config.h" #include "asterisk/config.h"
#include "asterisk/logger.h" #include "asterisk/logger.h"

@ -24,6 +24,10 @@
#include <unistd.h> #include <unistd.h>
#include <dirent.h> #include <dirent.h>
#include "asterisk.h"
ASTERISK_FILE_VERSION("$Revision$")
#include "asterisk/channel.h" #include "asterisk/channel.h"
#include "asterisk/file.h" #include "asterisk/file.h"
#include "asterisk/app.h" #include "asterisk/app.h"
@ -36,7 +40,6 @@
#include "asterisk/lock.h" #include "asterisk/lock.h"
#include "asterisk/manager.h" #include "asterisk/manager.h"
#include "db1-ast/include/db.h" #include "db1-ast/include/db.h"
#include "asterisk.h"
static DB *astdb; static DB *astdb;
AST_MUTEX_DEFINE_STATIC(dblock); AST_MUTEX_DEFINE_STATIC(dblock);

@ -16,6 +16,10 @@
#include <resolv.h> #include <resolv.h>
#include <unistd.h> #include <unistd.h>
#include "asterisk.h"
ASTERISK_FILE_VERSION("$Revision$")
#include "asterisk/logger.h" #include "asterisk/logger.h"
#include "asterisk/channel.h" #include "asterisk/channel.h"
#include "asterisk/dns.h" #include "asterisk/dns.h"

@ -23,6 +23,10 @@
#include <regex.h> #include <regex.h>
#include <signal.h> #include <signal.h>
#include "asterisk.h"
ASTERISK_FILE_VERSION("$Revision$")
#include "asterisk/dnsmgr.h" #include "asterisk/dnsmgr.h"
#include "asterisk/linkedlists.h" #include "asterisk/linkedlists.h"
#include "asterisk/utils.h" #include "asterisk/utils.h"
@ -31,7 +35,6 @@
#include "asterisk/sched.h" #include "asterisk/sched.h"
#include "asterisk/options.h" #include "asterisk/options.h"
#include "asterisk/cli.h" #include "asterisk/cli.h"
#include "asterisk.h"
static struct sched_context *sched; static struct sched_context *sched;
static int refresh_sched = -1; static int refresh_sched = -1;

@ -36,6 +36,10 @@
#include <errno.h> #include <errno.h>
#include <stdio.h> #include <stdio.h>
#include "asterisk.h"
ASTERISK_FILE_VERSION("$Revision$")
#include "asterisk/frame.h" #include "asterisk/frame.h"
#include "asterisk/channel.h" #include "asterisk/channel.h"
#include "asterisk/logger.h" #include "asterisk/logger.h"

@ -26,6 +26,10 @@
#include <unistd.h> #include <unistd.h>
#include <errno.h> #include <errno.h>
#include "asterisk.h"
ASTERISK_FILE_VERSION("$Revision$")
#include "asterisk/logger.h" #include "asterisk/logger.h"
#include "asterisk/options.h" #include "asterisk/options.h"
#include "asterisk/enum.h" #include "asterisk/enum.h"

@ -22,6 +22,10 @@
#include <sys/types.h> #include <sys/types.h>
#include <sys/stat.h> #include <sys/stat.h>
#include "asterisk.h"
ASTERISK_FILE_VERSION("$Revision$")
#include "asterisk/frame.h" #include "asterisk/frame.h"
#include "asterisk/file.h" #include "asterisk/file.h"
#include "asterisk/cli.h" #include "asterisk/cli.h"
@ -33,7 +37,6 @@
#include "asterisk/utils.h" #include "asterisk/utils.h"
#include "asterisk/lock.h" #include "asterisk/lock.h"
#include "asterisk/app.h" #include "asterisk/app.h"
#include "asterisk.h"
struct ast_format { struct ast_format {
/* Name of format */ /* Name of format */

@ -17,6 +17,10 @@
#include <errno.h> #include <errno.h>
#include <stdio.h> #include <stdio.h>
#include "asterisk.h"
ASTERISK_FILE_VERSION("$Revision$")
#include "asterisk/lock.h" #include "asterisk/lock.h"
#include "asterisk/frame.h" #include "asterisk/frame.h"
#include "asterisk/logger.h" #include "asterisk/logger.h"
@ -25,7 +29,6 @@
#include "asterisk/cli.h" #include "asterisk/cli.h"
#include "asterisk/term.h" #include "asterisk/term.h"
#include "asterisk/utils.h" #include "asterisk/utils.h"
#include "asterisk.h"
#ifdef TRACE_FRAMES #ifdef TRACE_FRAMES
static int headers = 0; static int headers = 0;

@ -16,6 +16,10 @@
#include <stdio.h> #include <stdio.h>
#include "asterisk.h"
ASTERISK_FILE_VERSION("$Revision$")
#include "asterisk/fskmodem.h" #include "asterisk/fskmodem.h"
#define NBW 2 #define NBW 2

@ -14,6 +14,10 @@
#include <sys/types.h> #include <sys/types.h>
#include <stdlib.h> #include <stdlib.h>
#include "asterisk.h"
ASTERISK_FILE_VERSION("$Revision$")
#include "asterisk/module.h" #include "asterisk/module.h"
#include "asterisk/pbx.h" #include "asterisk/pbx.h"
#include "pbx_functions.h" #include "pbx_functions.h"
@ -56,8 +60,3 @@ char *key()
{ {
return ASTERISK_GPL_KEY; return ASTERISK_GPL_KEY;
} }
const char *version()
{
return "$Revision$";
}

@ -20,6 +20,10 @@
#include <errno.h> #include <errno.h>
#include <unistd.h> #include <unistd.h>
#include "asterisk.h"
ASTERISK_FILE_VERSION("$Revision$")
#include "asterisk/sched.h" #include "asterisk/sched.h"
#include "asterisk/options.h" #include "asterisk/options.h"
#include "asterisk/channel.h" #include "asterisk/channel.h"
@ -29,7 +33,6 @@
#include "asterisk/translate.h" #include "asterisk/translate.h"
#include "asterisk/cli.h" #include "asterisk/cli.h"
#include "asterisk/lock.h" #include "asterisk/lock.h"
#include "asterisk.h"
static struct ast_imager *list; static struct ast_imager *list;
AST_MUTEX_DEFINE_STATIC(listlock); AST_MUTEX_DEFINE_STATIC(listlock);

@ -3,9 +3,9 @@
* *
* General Definitions for Asterisk top level program * General Definitions for Asterisk top level program
* *
* Copyright (C) 1999, Mark Spencer * Copyright (C) 1999-2005, Mark Spencer
* *
* Mark Spencer <markster@linux-support.net> * Mark Spencer <markster@digium.com>
* *
* This program is free software, distributed under the terms of * This program is free software, distributed under the terms of
* the GNU General Public License * the GNU General Public License
@ -54,4 +54,21 @@ extern void ast_channels_init(void);
extern int dnsmgr_init(void); extern int dnsmgr_init(void);
extern void dnsmgr_reload(void); extern void dnsmgr_reload(void);
#endif void ast_register_file_version(const char *file, const char *version);
void ast_unregister_file_version(const char *file);
#ifdef __GNUC__
#define ASTERISK_FILE_VERSION(x) \
static void __attribute__((constructor)) __register_file_version(void) \
{ \
ast_register_file_version(__FILE__, x); \
} \
static void __attribute__((destructor)) __unregister_file_version(void) \
{ \
ast_unregister_file_version(__FILE__); \
}
#else /* ! __GNUC__ */
#define ASTERISK_FILE_VERSION(x) static const char __file_version[] = x;
#endif /* __GNUC__ */
#endif /* _ASTERISK_H */

@ -66,14 +66,14 @@ struct name { \
Example usage: Example usage:
\code \code
static AST_LIST_HEAD_STATIC(entry_list, entry) entries; static AST_LIST_HEAD_STATIC(entry_list, entry);
\endcode \endcode
This would define \c struct \c entry_list, and declare an instance of it named This would define \c struct \c entry_list, intended to hold a list of
\a entries, all intended to hold a list of type \c struct \c entry. type \c struct \c entry.
*/ */
#define AST_LIST_HEAD_STATIC(name, type) \ #define AST_LIST_HEAD_STATIC(name, type) \
struct name { \ struct name { \
struct type *first; \ struct type *first; \
ast_mutex_t lock; \ ast_mutex_t lock; \
} name = { \ } name = { \

@ -66,8 +66,6 @@ char *key(void); /*! Return the below mentioned key, unmodified */
*/ */
int reload(void); /*! reload configs */ int reload(void); /*! reload configs */
const char *version(void);
#define ASTERISK_GPL_KEY \ #define ASTERISK_GPL_KEY \
"This paragraph is Copyright (C) 2000, Linux Support Services, Inc. \ "This paragraph is Copyright (C) 2000, Linux Support Services, Inc. \
In order for your module to load, it must return this key via a function \ In order for your module to load, it must return this key via a function \
@ -116,7 +114,7 @@ void ast_update_use_count(void);
* For each of the modules loaded, modentry will be executed with the resource, description, * For each of the modules loaded, modentry will be executed with the resource, description,
* version, and usecount values of each particular module. * version, and usecount values of each particular module.
*/ */
int ast_update_module_list(int (*modentry)(const char *module, const char *description, int usecnt, const char *version, const char *like), int ast_update_module_list(int (*modentry)(const char *module, const char *description, int usecnt, const char *like),
const char *like); const char *like);
/*! Ask this procedure to be run with modules have been updated */ /*! Ask this procedure to be run with modules have been updated */

@ -21,6 +21,10 @@
#include <string.h> #include <string.h>
#include <math.h> /* For PI */ #include <math.h> /* For PI */
#include "asterisk.h"
ASTERISK_FILE_VERSION("$Revision$")
#include "asterisk/indications.h" #include "asterisk/indications.h"
#include "asterisk/frame.h" #include "asterisk/frame.h"
#include "asterisk/options.h" #include "asterisk/options.h"

@ -18,6 +18,10 @@
#include <string.h> /* for memset */ #include <string.h> /* for memset */
#include <sys/ioctl.h> #include <sys/ioctl.h>
#include "asterisk.h"
ASTERISK_FILE_VERSION("$Revision$")
#include "asterisk/io.h" #include "asterisk/io.h"
#include "asterisk/logger.h" #include "asterisk/logger.h"

@ -17,6 +17,10 @@
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
#include "asterisk.h"
ASTERISK_FILE_VERSION("$Revision$")
#include "jitterbuf.h" #include "jitterbuf.h"
/* define these here, just for ancient compiler systems */ /* define these here, just for ancient compiler systems */

@ -17,6 +17,10 @@
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
#include "asterisk.h"
ASTERISK_FILE_VERSION("$Revision$")
#include "asterisk/module.h" #include "asterisk/module.h"
#include "asterisk/options.h" #include "asterisk/options.h"
#include "asterisk/config.h" #include "asterisk/config.h"
@ -34,7 +38,6 @@
#include <dlfcn.h> #include <dlfcn.h>
#endif #endif
#include "asterisk/md5.h" #include "asterisk/md5.h"
#include "asterisk.h"
#ifndef RTLD_NOW #ifndef RTLD_NOW
#define RTLD_NOW 0 #define RTLD_NOW 0
@ -51,7 +54,6 @@ struct module {
char *(*description)(void); char *(*description)(void);
char *(*key)(void); char *(*key)(void);
int (*reload)(void); int (*reload)(void);
const char *(*version)(void);
void *lib; void *lib;
char resource[256]; char resource[256];
struct module *next; struct module *next;
@ -253,11 +255,6 @@ int ast_module_reload(const char *name)
return reloaded; return reloaded;
} }
static const char *unknown_version(void)
{
return "--unknown--";
}
static int __load_resource(const char *resource_name, const struct ast_config *cfg) static int __load_resource(const char *resource_name, const struct ast_config *cfg)
{ {
static char fn[256]; static char fn[256];
@ -358,12 +355,6 @@ static int __load_resource(const char *resource_name, const struct ast_config *c
if (m->reload == NULL) if (m->reload == NULL)
m->reload = dlsym(m->lib, "_reload"); m->reload = dlsym(m->lib, "_reload");
m->version = dlsym(m->lib, "version");
if (m->version == NULL)
m->version = dlsym(m->lib, "_version");
if (m->version == NULL)
m->version = unknown_version;
if (!m->key || !(key = m->key())) { if (!m->key || !(key = m->key())) {
ast_log(LOG_WARNING, "Key routine returned NULL in module %s\n", fn); ast_log(LOG_WARNING, "Key routine returned NULL in module %s\n", fn);
key = NULL; key = NULL;
@ -563,7 +554,7 @@ void ast_update_use_count(void)
} }
int ast_update_module_list(int (*modentry)(const char *module, const char *description, int usecnt, const char *version, const char *like), int ast_update_module_list(int (*modentry)(const char *module, const char *description, int usecnt, const char *like),
const char *like) const char *like)
{ {
struct module *m; struct module *m;
@ -574,10 +565,7 @@ int ast_update_module_list(int (*modentry)(const char *module, const char *descr
unlock = 0; unlock = 0;
m = module_list; m = module_list;
while (m) { while (m) {
char ver_string[80]; total_mod_loaded += modentry(m->resource, m->description(), m->usecount(), like);
ast_copy_string(ver_string, m->version(), sizeof(ver_string));
total_mod_loaded += modentry(m->resource, m->description(), m->usecount(), ast_strip(ast_strip_quoted(ver_string, "$", "$")), like);
m = m->next; m = m->next;
} }
if (unlock) if (unlock)

@ -25,6 +25,10 @@
from <syslog.h> which is included by logger.h */ from <syslog.h> which is included by logger.h */
#include <syslog.h> #include <syslog.h>
#include "asterisk.h"
ASTERISK_FILE_VERSION("$Revision$")
#include "asterisk/lock.h" #include "asterisk/lock.h"
#include "asterisk/options.h" #include "asterisk/options.h"
#include "asterisk/channel.h" #include "asterisk/channel.h"
@ -33,7 +37,6 @@
#include "asterisk/cli.h" #include "asterisk/cli.h"
#include "asterisk/utils.h" #include "asterisk/utils.h"
#include "asterisk/manager.h" #include "asterisk/manager.h"
#include "asterisk.h"
static int syslog_level_map[] = { static int syslog_level_map[] = {
LOG_DEBUG, LOG_DEBUG,

@ -27,6 +27,10 @@
#include <errno.h> #include <errno.h>
#include <unistd.h> #include <unistd.h>
#include "asterisk.h"
ASTERISK_FILE_VERSION("$Revision$")
#include "asterisk/channel.h" #include "asterisk/channel.h"
#include "asterisk/file.h" #include "asterisk/file.h"
#include "asterisk/manager.h" #include "asterisk/manager.h"

@ -19,6 +19,10 @@
*/ */
#include <string.h> /* for memcpy() */ #include <string.h> /* for memcpy() */
#include "asterisk.h"
ASTERISK_FILE_VERSION("$Revision$")
#include "asterisk/endian.h" #include "asterisk/endian.h"
#include "asterisk/md5.h" #include "asterisk/md5.h"

@ -22,6 +22,10 @@
#include <time.h> #include <time.h>
#include <sys/time.h> #include <sys/time.h>
#include "asterisk.h"
ASTERISK_FILE_VERSION("$Revision$")
#include "asterisk/lock.h" #include "asterisk/lock.h"
#include "asterisk/cli.h" #include "asterisk/cli.h"
#include "asterisk/pbx.h" #include "asterisk/pbx.h"
@ -41,7 +45,6 @@
#include "asterisk/causes.h" #include "asterisk/causes.h"
#include "asterisk/musiconhold.h" #include "asterisk/musiconhold.h"
#include "asterisk/app.h" #include "asterisk/app.h"
#include "asterisk.h"
/* /*
* I M P O R T A N T : * I M P O R T A N T :

@ -35,6 +35,10 @@
#include <math.h> #include <math.h>
#include <limits.h> #include <limits.h>
#include "asterisk.h"
ASTERISK_FILE_VERSION("$Revision$")
#include "asterisk/plc.h" #include "asterisk/plc.h"
#if !defined(FALSE) #if !defined(FALSE)

@ -20,6 +20,10 @@
#include <unistd.h> #include <unistd.h>
#include <dirent.h> #include <dirent.h>
#include "asterisk.h"
ASTERISK_FILE_VERSION("$Revision$")
#include "asterisk/channel.h" #include "asterisk/channel.h"
#include "asterisk/file.h" #include "asterisk/file.h"
#include "asterisk/app.h" #include "asterisk/app.h"
@ -31,7 +35,6 @@
#include "asterisk/privacy.h" #include "asterisk/privacy.h"
#include "asterisk/utils.h" #include "asterisk/utils.h"
#include "asterisk/lock.h" #include "asterisk/lock.h"
#include "asterisk.h"
int ast_privacy_check(char *dest, char *cid) int ast_privacy_check(char *dest, char *cid)
{ {

@ -26,6 +26,10 @@
#include <arpa/inet.h> #include <arpa/inet.h>
#include <fcntl.h> #include <fcntl.h>
#include "asterisk.h"
ASTERISK_FILE_VERSION("$Revision$")
#include "asterisk/rtp.h" #include "asterisk/rtp.h"
#include "asterisk/frame.h" #include "asterisk/frame.h"
#include "asterisk/logger.h" #include "asterisk/logger.h"

@ -21,11 +21,16 @@
#include <time.h> #include <time.h>
#include <ctype.h> #include <ctype.h>
#include <math.h> #include <math.h>
#include <stdio.h>
#ifdef SOLARIS #ifdef SOLARIS
#include <iso/limits_iso.h> #include <iso/limits_iso.h>
#endif #endif
#include "asterisk.h"
ASTERISK_FILE_VERSION("$Revision$")
#include "asterisk/file.h" #include "asterisk/file.h"
#include "asterisk/channel.h" #include "asterisk/channel.h"
#include "asterisk/logger.h" #include "asterisk/logger.h"
@ -33,8 +38,6 @@
#include "asterisk/lock.h" #include "asterisk/lock.h"
#include "asterisk/localtime.h" #include "asterisk/localtime.h"
#include "asterisk/utils.h" #include "asterisk/utils.h"
#include "asterisk.h"
#include <stdio.h>
/* Forward declaration */ /* Forward declaration */
static int wait_file(struct ast_channel *chan, const char *ints, const char *file, const char *lang); static int wait_file(struct ast_channel *chan, const char *ints, const char *file, const char *lang);

@ -23,6 +23,10 @@
#include <unistd.h> #include <unistd.h>
#include <string.h> #include <string.h>
#include "asterisk.h"
ASTERISK_FILE_VERSION("$Revision$")
#include "asterisk/sched.h" #include "asterisk/sched.h"
#include "asterisk/logger.h" #include "asterisk/logger.h"
#include "asterisk/channel.h" #include "asterisk/channel.h"

@ -22,6 +22,10 @@
#include <string.h> #include <string.h>
#include <unistd.h> #include <unistd.h>
#include "asterisk.h"
ASTERISK_FILE_VERSION("$Revision$")
#include "asterisk/channel.h" #include "asterisk/channel.h"
#include "asterisk/logger.h" #include "asterisk/logger.h"
#include "asterisk/srv.h" #include "asterisk/srv.h"

@ -22,6 +22,10 @@
#include <math.h> #include <math.h>
#include <ctype.h> #include <ctype.h>
#include "asterisk.h"
ASTERISK_FILE_VERSION("$Revision$")
#include "asterisk/ulaw.h" #include "asterisk/ulaw.h"
#include "asterisk/tdd.h" #include "asterisk/tdd.h"
#include "asterisk/logger.h" #include "asterisk/logger.h"

@ -22,6 +22,10 @@
#include <fcntl.h> #include <fcntl.h>
#include <unistd.h> #include <unistd.h>
#include "asterisk.h"
ASTERISK_FILE_VERSION("$Revision$")
#include "asterisk/term.h" #include "asterisk/term.h"
#include "asterisk/options.h" #include "asterisk/options.h"
#include "asterisk/lock.h" #include "asterisk/lock.h"

@ -19,6 +19,10 @@
#include <string.h> #include <string.h>
#include <stdio.h> #include <stdio.h>
#include "asterisk.h"
ASTERISK_FILE_VERSION("$Revision$")
#include "asterisk/lock.h" #include "asterisk/lock.h"
#include "asterisk/channel.h" #include "asterisk/channel.h"
#include "asterisk/logger.h" #include "asterisk/logger.h"

@ -11,6 +11,10 @@
* the GNU General Public License * the GNU General Public License
*/ */
#include "asterisk.h"
ASTERISK_FILE_VERSION("$Revision$")
#include "asterisk/ulaw.h" #include "asterisk/ulaw.h"
#define ZEROTRAP /* turn on the trap as per the MIL-STD */ #define ZEROTRAP /* turn on the trap as per the MIL-STD */

@ -24,6 +24,10 @@
#include <netinet/in.h> #include <netinet/in.h>
#include <arpa/inet.h> #include <arpa/inet.h>
#include "asterisk.h"
ASTERISK_FILE_VERSION("$Revision$")
#include "asterisk/lock.h" #include "asterisk/lock.h"
#include "asterisk/utils.h" #include "asterisk/utils.h"
#include "asterisk/io.h" #include "asterisk/io.h"

Loading…
Cancel
Save