remove experimental module version tags
authorKevin P. Fleming <kpfleming@digium.com>
Mon, 6 Jun 2005 20:27:51 +0000 (20:27 +0000)
committerKevin P. Fleming <kpfleming@digium.com>
Mon, 6 Jun 2005 20:27:51 +0000 (20:27 +0000)
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

45 files changed:
acl.c
alaw.c
app.c
asterisk.c
astmm.c
autoservice.c
callerid.c
cdr.c
channel.c
chanvars.c
cli.c
config.c
config_old.c
db.c
dns.c
dnsmgr.c
dsp.c
enum.c
file.c
frame.c
fskmodem.c
funcs/pbx_functions.c
image.c
include/asterisk.h
include/asterisk/linkedlists.h
include/asterisk/module.h
indications.c
io.c
jitterbuf.c
loader.c
logger.c
manager.c
md5.c
pbx.c
plc.c
privacy.c
rtp.c
say.c
sched.c
srv.c
tdd.c
term.c
translate.c
ulaw.c
utils.c

diff --git a/acl.c b/acl.c
index bb735df..b66eeab 100755 (executable)
--- a/acl.c
+++ b/acl.c
 #include <sys/sockio.h>
 #endif
 
+#include "asterisk.h"
+
+ASTERISK_FILE_VERSION("$Revision$")
+
 #include "asterisk/acl.h"
 #include "asterisk/logger.h"
 #include "asterisk/channel.h"
diff --git a/alaw.c b/alaw.c
index 548230e..6fd9971 100755 (executable)
--- a/alaw.c
+++ b/alaw.c
  * the GNU General Public License
  */
 
+#include "asterisk.h"
+
+ASTERISK_FILE_VERSION("$Revision$")
+
 #include "asterisk/alaw.h"
 
 #define AMI_MASK 0x55
diff --git a/app.c b/app.c
index a21e3b2..4b99456 100755 (executable)
--- a/app.c
+++ b/app.c
 #include <sys/stat.h>
 #include <regex.h>
 
+#include "asterisk.h"
+
+ASTERISK_FILE_VERSION("$Revision$")
+
 #include "asterisk/channel.h"
 #include "asterisk/pbx.h"
 #include "asterisk/file.h"
@@ -33,7 +37,6 @@
 #include "asterisk/utils.h"
 #include "asterisk/lock.h"
 #include "asterisk/indications.h"
-#include "asterisk.h"
 
 #define MAX_OTHER_FORMATS 10
 
index 1c0ba53..91db7d9 100755 (executable)
 #include <grp.h>
 #include <pwd.h>
 #include <sys/stat.h>
+#include <regex.h>
 
 #if  defined(__FreeBSD__) || defined( __NetBSD__ ) || defined(SOLARIS)
 #include <netdb.h>
 #endif
 
 #include "asterisk.h"
+
+ASTERISK_FILE_VERSION("$Revision$")
+
 #include "asterisk/logger.h"
 #include "asterisk/options.h"
 #include "asterisk/cli.h"
@@ -60,6 +64,7 @@
 #include "asterisk/config.h"
 #include "asterisk/version.h"
 #include "asterisk/build.h"
+#include "asterisk/linkedlists.h"
 
 #include "defaults.h"
 
@@ -147,6 +152,85 @@ static int shuttingdown = 0;
 static int restartnow = 0;
 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 res = -1;
@@ -936,6 +1020,8 @@ static struct ast_cli_entry core_cli[] = {
          "Restart Asterisk at empty call volume", restart_when_convenient_help },
        { { "!", NULL }, handle_bang,
          "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)
diff --git a/astmm.c b/astmm.c
index be165eb..fe8f7fd 100755 (executable)
--- a/astmm.c
+++ b/astmm.c
 #include <string.h>
 #include <time.h>
 
+#include "asterisk.h"
+
+ASTERISK_FILE_VERSION("$Revision$")
+
 #include "asterisk/cli.h"
 #include "asterisk/logger.h"
 #include "asterisk/options.h"
index 25c9ae8..1a655a7 100755 (executable)
 #include <unistd.h>
 #include <math.h>                      /* For PI */
 
+#include "asterisk.h"
+
+ASTERISK_FILE_VERSION("$Revision$")
+
 #include "asterisk/pbx.h"
 #include "asterisk/frame.h"
 #include "asterisk/sched.h"
index 430f3ce..d51721d 100755 (executable)
 #include <math.h>
 #include <ctype.h>
 
+#include "asterisk.h"
+
+ASTERISK_FILE_VERSION("$Revision$")
+
 #include "asterisk/ulaw.h"
 #include "asterisk/alaw.h"
 #include "asterisk/frame.h"
diff --git a/cdr.c b/cdr.c
index 6ceb4aa..919b6e4 100755 (executable)
--- a/cdr.c
+++ b/cdr.c
 #include <stdio.h>
 #include <signal.h>
 
+#include "asterisk.h"
+
+ASTERISK_FILE_VERSION("$Revision$")
+
 #include "asterisk/lock.h"
 #include "asterisk/channel.h"
 #include "asterisk/cdr.h"
index 9797f0a..b8e042d 100755 (executable)
--- a/channel.c
+++ b/channel.c
 #endif
 #endif
 
+#include "asterisk.h"
+
+ASTERISK_FILE_VERSION("$Revision$")
+
 #include "asterisk/pbx.h"
 #include "asterisk/frame.h"
 #include "asterisk/sched.h"
@@ -53,7 +57,6 @@
 #include "asterisk/lock.h"
 #include "asterisk/app.h"
 #include "asterisk/transcap.h"
-#include "asterisk.h"
 
 /* uncomment if you have problems with 'monitoring' synchronized files */
 #if 0
index 3d768b2..fe4cc15 100755 (executable)
 #include <stdlib.h>
 #include <string.h>
 
+#include "asterisk.h"
+
+ASTERISK_FILE_VERSION("$Revision$")
+
 #include "asterisk/chanvars.h"
 #include "asterisk/logger.h"
 
diff --git a/cli.c b/cli.c
index 4f1ce10..c844da8 100755 (executable)
--- a/cli.c
+++ b/cli.c
 #include <string.h>
 #include <ctype.h>
 
+#include "asterisk.h"
+
+ASTERISK_FILE_VERSION("$Revision$")
+
 #include "asterisk/logger.h"
 #include "asterisk/options.h"
 #include "asterisk/cli.h"
@@ -31,7 +35,6 @@
 /* For rl_filename_completion */
 #include "editline/readline/readline.h"
 /* For module directory */
-#include "asterisk.h"
 #include "asterisk/version.h"
 #include "asterisk/build.h"
 
@@ -227,17 +230,17 @@ static int handle_unload(int fd, int argc, char *argv[])
        return RESULT_SUCCESS;
 }
 
-#define MODLIST_FORMAT  "%-30s %-40.40s %-20.20s %-10d\n"
-#define MODLIST_FORMAT2 "%-30s %-40.40s %-20.20s %-10s\n"
+#define MODLIST_FORMAT  "%-30s %-40.40s %-10d\n"
+#define MODLIST_FORMAT2 "%-30s %-40.40s %-10s\n"
 
 AST_MUTEX_DEFINE_STATIC(climodentrylock);
 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 */
        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 0;
@@ -384,7 +387,7 @@ static int handle_modlist(int fd, int argc, char *argv[])
                
        ast_mutex_lock(&climodentrylock);
        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));
        climodentryfd = -1;
        ast_mutex_unlock(&climodentrylock);
@@ -822,6 +825,22 @@ static struct ast_cli_entry *find_cli(char *cmds[], int exact)
        int y;
        int match;
        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++) {
                /* start optimistic */
                match = 1;
@@ -843,20 +862,7 @@ static struct ast_cli_entry *find_cli(char *cmds[], int exact)
                if (match)
                        return &builtins[x];
        }
-       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;
-       }
-       return e;
+       return NULL;
 }
 
 static void join(char *dest, size_t destsize, char *w[])
index 916dc0c..f99577f 100755 (executable)
--- a/config.c
+++ b/config.c
 # include <glob.h>
 #endif
 
+#include "asterisk.h"
+
+ASTERISK_FILE_VERSION("$Revision$")
+
 #include "asterisk/config.h"
 #include "asterisk/cli.h"
 #include "asterisk/lock.h"
@@ -33,7 +37,6 @@
 #include "asterisk/utils.h"
 #include "asterisk/channel.h"
 #include "asterisk/app.h"
-#include "asterisk.h"
 
 #define MAX_NESTED_COMMENTS 128
 #define COMMENT_START ";--"
index 1c8a912..770d8e5 100755 (executable)
 #include <string.h>
 #include <errno.h>
 
+#include "asterisk.h"
+
+ASTERISK_FILE_VERSION("$Revision$")
+
 #include "asterisk/config.h"
 #include "asterisk/logger.h"
 
diff --git a/db.c b/db.c
index 29603d1..7baabdb 100755 (executable)
--- a/db.c
+++ b/db.c
 #include <unistd.h>
 #include <dirent.h>
 
+#include "asterisk.h"
+
+ASTERISK_FILE_VERSION("$Revision$")
+
 #include "asterisk/channel.h"
 #include "asterisk/file.h"
 #include "asterisk/app.h"
@@ -36,7 +40,6 @@
 #include "asterisk/lock.h"
 #include "asterisk/manager.h"
 #include "db1-ast/include/db.h"
-#include "asterisk.h"
 
 static DB *astdb;
 AST_MUTEX_DEFINE_STATIC(dblock);
diff --git a/dns.c b/dns.c
index 7fe8a25..5f44bbb 100755 (executable)
--- a/dns.c
+++ b/dns.c
 #include <resolv.h>
 #include <unistd.h>
 
+#include "asterisk.h"
+
+ASTERISK_FILE_VERSION("$Revision$")
+
 #include "asterisk/logger.h"
 #include "asterisk/channel.h"
 #include "asterisk/dns.h"
index c954b41..2b05ad5 100755 (executable)
--- a/dnsmgr.c
+++ b/dnsmgr.c
 #include <regex.h>
 #include <signal.h>
 
+#include "asterisk.h"
+
+ASTERISK_FILE_VERSION("$Revision$")
+
 #include "asterisk/dnsmgr.h"
 #include "asterisk/linkedlists.h"
 #include "asterisk/utils.h"
@@ -31,7 +35,6 @@
 #include "asterisk/sched.h"
 #include "asterisk/options.h"
 #include "asterisk/cli.h"
-#include "asterisk.h"
 
 static struct sched_context *sched;
 static int refresh_sched = -1;
diff --git a/dsp.c b/dsp.c
index 7712b07..fb945a6 100755 (executable)
--- a/dsp.c
+++ b/dsp.c
 #include <errno.h>
 #include <stdio.h>
 
+#include "asterisk.h"
+
+ASTERISK_FILE_VERSION("$Revision$")
+
 #include "asterisk/frame.h"
 #include "asterisk/channel.h"
 #include "asterisk/logger.h"
diff --git a/enum.c b/enum.c
index a17281c..44a8dfa 100755 (executable)
--- a/enum.c
+++ b/enum.c
 #include <unistd.h>
 #include <errno.h>
 
+#include "asterisk.h"
+
+ASTERISK_FILE_VERSION("$Revision$")
+
 #include "asterisk/logger.h"
 #include "asterisk/options.h"
 #include "asterisk/enum.h"
diff --git a/file.c b/file.c
index 52e8171..4eaff46 100755 (executable)
--- a/file.c
+++ b/file.c
 #include <sys/types.h>
 #include <sys/stat.h>
 
+#include "asterisk.h"
+
+ASTERISK_FILE_VERSION("$Revision$")
+
 #include "asterisk/frame.h"
 #include "asterisk/file.h"
 #include "asterisk/cli.h"
@@ -33,7 +37,6 @@
 #include "asterisk/utils.h"
 #include "asterisk/lock.h"
 #include "asterisk/app.h"
-#include "asterisk.h"
 
 struct ast_format {
        /* Name of format */
diff --git a/frame.c b/frame.c
index 23a6e59..502b3f1 100755 (executable)
--- a/frame.c
+++ b/frame.c
 #include <errno.h>
 #include <stdio.h>
 
+#include "asterisk.h"
+
+ASTERISK_FILE_VERSION("$Revision$")
+
 #include "asterisk/lock.h"
 #include "asterisk/frame.h"
 #include "asterisk/logger.h"
@@ -25,7 +29,6 @@
 #include "asterisk/cli.h"
 #include "asterisk/term.h"
 #include "asterisk/utils.h"
-#include "asterisk.h"
 
 #ifdef TRACE_FRAMES
 static int headers = 0;
index df30581..2071671 100755 (executable)
 
 #include <stdio.h>
 
+#include "asterisk.h"
+
+ASTERISK_FILE_VERSION("$Revision$")
+
 #include "asterisk/fskmodem.h"
 
 #define NBW    2
index 5171c62..c998b61 100755 (executable)
 #include <sys/types.h>
 #include <stdlib.h>
 
+#include "asterisk.h"
+
+ASTERISK_FILE_VERSION("$Revision$")
+
 #include "asterisk/module.h"
 #include "asterisk/pbx.h"
 #include "pbx_functions.h"
@@ -56,8 +60,3 @@ char *key()
 {
        return ASTERISK_GPL_KEY;
 }
-
-const char *version()
-{
-       return "$Revision$";
-}
diff --git a/image.c b/image.c
index 804c2d8..0673763 100755 (executable)
--- a/image.c
+++ b/image.c
 #include <errno.h>
 #include <unistd.h>
 
+#include "asterisk.h"
+
+ASTERISK_FILE_VERSION("$Revision$")
+
 #include "asterisk/sched.h"
 #include "asterisk/options.h"
 #include "asterisk/channel.h"
@@ -29,7 +33,6 @@
 #include "asterisk/translate.h"
 #include "asterisk/cli.h"
 #include "asterisk/lock.h"
-#include "asterisk.h"
 
 static struct ast_imager *list;
 AST_MUTEX_DEFINE_STATIC(listlock);
index b4b26a7..0e9d2e3 100755 (executable)
@@ -3,9 +3,9 @@
  *
  * 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
  * the GNU General Public License
@@ -54,4 +54,21 @@ extern void ast_channels_init(void);
 extern int dnsmgr_init(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 */
index d903659..9f5f216 100755 (executable)
@@ -66,14 +66,14 @@ struct name {                                                               \
 
   Example usage:
   \code
-  static AST_LIST_HEAD_STATIC(entry_list, entry) entries;
+  static AST_LIST_HEAD_STATIC(entry_list, entry);
   \endcode
 
-  This would define \c struct \c entry_list, and declare an instance of it named
-  \a entries, all intended to hold a list of type \c struct \c entry.
+  This would define \c struct \c entry_list, intended to hold a list of
+  type \c struct \c entry.
 */
 #define AST_LIST_HEAD_STATIC(name, type)                               \
-struct name {                                                  \
+struct name {                                                          \
        struct type *first;                                             \
        ast_mutex_t lock;                                               \
 } name = {                                                             \
index c674d16..4889550 100755 (executable)
@@ -66,8 +66,6 @@ char *key(void);              /*! Return the below mentioned key, unmodified */
  */
 int reload(void);              /*! reload configs */
 
-const char *version(void);
-
 #define ASTERISK_GPL_KEY \
        "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 \
@@ -116,7 +114,7 @@ void ast_update_use_count(void);
  * For each of the modules loaded, modentry will be executed with the resource, description,
  * 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);
 
 /*! Ask this procedure to be run with modules have been updated */
index 4867fd4..59641e0 100755 (executable)
 #include <string.h>
 #include <math.h>                      /* For PI */
 
+#include "asterisk.h"
+
+ASTERISK_FILE_VERSION("$Revision$")
+
 #include "asterisk/indications.h"
 #include "asterisk/frame.h"
 #include "asterisk/options.h"
diff --git a/io.c b/io.c
index f04277c..09d99d5 100755 (executable)
--- a/io.c
+++ b/io.c
 #include <string.h> /* for memset */
 #include <sys/ioctl.h>
 
+#include "asterisk.h"
+
+ASTERISK_FILE_VERSION("$Revision$")
+
 #include "asterisk/io.h"
 #include "asterisk/logger.h"
 
index 2ffa143..3b69e51 100755 (executable)
 #include <stdlib.h>
 #include <string.h>
 
+#include "asterisk.h"
+
+ASTERISK_FILE_VERSION("$Revision$")
+
 #include "jitterbuf.h"
 
 /* define these here, just for ancient compiler systems */
index b404fa0..bc7e2bd 100755 (executable)
--- a/loader.c
+++ b/loader.c
 #include <stdlib.h>
 #include <string.h>
 
+#include "asterisk.h"
+
+ASTERISK_FILE_VERSION("$Revision$")
+
 #include "asterisk/module.h"
 #include "asterisk/options.h"
 #include "asterisk/config.h"
@@ -34,7 +38,6 @@
 #include <dlfcn.h>
 #endif
 #include "asterisk/md5.h"
-#include "asterisk.h"
 
 #ifndef RTLD_NOW
 #define RTLD_NOW 0
@@ -51,7 +54,6 @@ struct module {
        char *(*description)(void);
        char *(*key)(void);
        int (*reload)(void);
-       const char *(*version)(void);
        void *lib;
        char resource[256];
        struct module *next;
@@ -253,11 +255,6 @@ int ast_module_reload(const char *name)
        return reloaded;
 }
 
-static const char *unknown_version(void)
-{
-       return "--unknown--";
-}
-
 static int __load_resource(const char *resource_name, const struct ast_config *cfg)
 {
        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)
                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())) {
                ast_log(LOG_WARNING, "Key routine returned NULL in module %s\n", fn);
                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)
 {
        struct module *m;
@@ -574,10 +565,7 @@ int ast_update_module_list(int (*modentry)(const char *module, const char *descr
                unlock = 0;
        m = module_list;
        while (m) {
-               char ver_string[80];
-
-               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);
+               total_mod_loaded += modentry(m->resource, m->description(), m->usecount(), like);
                m = m->next;
        }
        if (unlock)
index 9e31cd5..6e938ac 100755 (executable)
--- a/logger.c
+++ b/logger.c
                        from <syslog.h> which is included by logger.h */
 #include <syslog.h>
 
+#include "asterisk.h"
+
+ASTERISK_FILE_VERSION("$Revision$")
+
 #include "asterisk/lock.h"
 #include "asterisk/options.h"
 #include "asterisk/channel.h"
@@ -33,7 +37,6 @@
 #include "asterisk/cli.h"
 #include "asterisk/utils.h"
 #include "asterisk/manager.h"
-#include "asterisk.h"
 
 static int syslog_level_map[] = {
        LOG_DEBUG,
index 5a6af77..df6b93f 100755 (executable)
--- a/manager.c
+++ b/manager.c
 #include <errno.h>
 #include <unistd.h>
 
+#include "asterisk.h"
+
+ASTERISK_FILE_VERSION("$Revision$")
+
 #include "asterisk/channel.h"
 #include "asterisk/file.h"
 #include "asterisk/manager.h"
diff --git a/md5.c b/md5.c
index b0b5d39..ea162c3 100755 (executable)
--- a/md5.c
+++ b/md5.c
  */
 #include <string.h>            /* for memcpy() */
 
+#include "asterisk.h"
+
+ASTERISK_FILE_VERSION("$Revision$")
+
 #include "asterisk/endian.h"
 #include "asterisk/md5.h"
 
diff --git a/pbx.c b/pbx.c
index 1307f67..717ba9d 100755 (executable)
--- a/pbx.c
+++ b/pbx.c
 #include <time.h>
 #include <sys/time.h>
 
+#include "asterisk.h"
+
+ASTERISK_FILE_VERSION("$Revision$")
+
 #include "asterisk/lock.h"
 #include "asterisk/cli.h"
 #include "asterisk/pbx.h"
@@ -41,7 +45,6 @@
 #include "asterisk/causes.h"
 #include "asterisk/musiconhold.h"
 #include "asterisk/app.h"
-#include "asterisk.h"
 
 /*
  * I M P O R T A N T :
diff --git a/plc.c b/plc.c
index 08f67c2..261fca8 100755 (executable)
--- a/plc.c
+++ b/plc.c
 #include <math.h>
 #include <limits.h>
 
+#include "asterisk.h"
+
+ASTERISK_FILE_VERSION("$Revision$")
+
 #include "asterisk/plc.h"
 
 #if !defined(FALSE)
index 0fbcc73..2f9feab 100755 (executable)
--- a/privacy.c
+++ b/privacy.c
 #include <unistd.h>
 #include <dirent.h>
 
+#include "asterisk.h"
+
+ASTERISK_FILE_VERSION("$Revision$")
+
 #include "asterisk/channel.h"
 #include "asterisk/file.h"
 #include "asterisk/app.h"
@@ -31,7 +35,6 @@
 #include "asterisk/privacy.h"
 #include "asterisk/utils.h"
 #include "asterisk/lock.h"
-#include "asterisk.h"
 
 int ast_privacy_check(char *dest, char *cid)
 {
diff --git a/rtp.c b/rtp.c
index 12cb496..016cb89 100755 (executable)
--- a/rtp.c
+++ b/rtp.c
 #include <arpa/inet.h>
 #include <fcntl.h>
 
+#include "asterisk.h"
+
+ASTERISK_FILE_VERSION("$Revision$")
+
 #include "asterisk/rtp.h"
 #include "asterisk/frame.h"
 #include "asterisk/logger.h"
diff --git a/say.c b/say.c
index 65f8fe7..908c440 100755 (executable)
--- a/say.c
+++ b/say.c
 #include <time.h>
 #include <ctype.h>
 #include <math.h>
+#include <stdio.h>
 
 #ifdef SOLARIS
 #include <iso/limits_iso.h>
 #endif
 
+#include "asterisk.h"
+
+ASTERISK_FILE_VERSION("$Revision$")
+
 #include "asterisk/file.h"
 #include "asterisk/channel.h"
 #include "asterisk/logger.h"
@@ -33,8 +38,6 @@
 #include "asterisk/lock.h"
 #include "asterisk/localtime.h"
 #include "asterisk/utils.h"
-#include "asterisk.h"
-#include <stdio.h>
 
 /* Forward declaration */
 static int wait_file(struct ast_channel *chan, const char *ints, const char *file, const char *lang);
diff --git a/sched.c b/sched.c
index 723c44a..98529ea 100755 (executable)
--- a/sched.c
+++ b/sched.c
 #include <unistd.h>
 #include <string.h>
 
+#include "asterisk.h"
+
+ASTERISK_FILE_VERSION("$Revision$")
+
 #include "asterisk/sched.h"
 #include "asterisk/logger.h"
 #include "asterisk/channel.h"
diff --git a/srv.c b/srv.c
index b7b097d..b74d761 100755 (executable)
--- a/srv.c
+++ b/srv.c
 #include <string.h>
 #include <unistd.h>
 
+#include "asterisk.h"
+
+ASTERISK_FILE_VERSION("$Revision$")
+
 #include "asterisk/channel.h"
 #include "asterisk/logger.h"
 #include "asterisk/srv.h"
diff --git a/tdd.c b/tdd.c
index fb2da9e..9d36e35 100755 (executable)
--- a/tdd.c
+++ b/tdd.c
 #include <math.h>
 #include <ctype.h>
 
+#include "asterisk.h"
+
+ASTERISK_FILE_VERSION("$Revision$")
+
 #include "asterisk/ulaw.h"
 #include "asterisk/tdd.h"
 #include "asterisk/logger.h"
diff --git a/term.c b/term.c
index 5bdfe28..f210e2a 100755 (executable)
--- a/term.c
+++ b/term.c
 #include <fcntl.h>
 #include <unistd.h>
 
+#include "asterisk.h"
+
+ASTERISK_FILE_VERSION("$Revision$")
+
 #include "asterisk/term.h"
 #include "asterisk/options.h"
 #include "asterisk/lock.h"
index 890e042..4c79fbc 100755 (executable)
 #include <string.h>
 #include <stdio.h>
 
+#include "asterisk.h"
+
+ASTERISK_FILE_VERSION("$Revision$")
+
 #include "asterisk/lock.h"
 #include "asterisk/channel.h"
 #include "asterisk/logger.h"
diff --git a/ulaw.c b/ulaw.c
index 37ab254..3a867e1 100755 (executable)
--- a/ulaw.c
+++ b/ulaw.c
  * the GNU General Public License
  */
 
+#include "asterisk.h"
+
+ASTERISK_FILE_VERSION("$Revision$")
+
 #include "asterisk/ulaw.h"
 
 #define ZEROTRAP    /* turn on the trap as per the MIL-STD */
diff --git a/utils.c b/utils.c
index e2ce549..6841cb7 100755 (executable)
--- a/utils.c
+++ b/utils.c
 #include <netinet/in.h>
 #include <arpa/inet.h>
 
+#include "asterisk.h"
+
+ASTERISK_FILE_VERSION("$Revision$")
+
 #include "asterisk/lock.h"
 #include "asterisk/utils.h"
 #include "asterisk/io.h"