Add sample experimental patch to show "make apply", "make unapply", "make patchlist", and "make update" targets
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@5166 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
parent
1220a0e2fb
commit
f0c7729f81
67
Makefile
67
Makefile
|
@ -387,6 +387,16 @@ datafiles: all
|
|||
|
||||
update:
|
||||
@if [ -d CVS ]; then \
|
||||
if [ -f patches/.applied ]; then \
|
||||
patches=`cat patches/.applied`; \
|
||||
fi; \
|
||||
if ! [ -z "$$patches" ]; then \
|
||||
for x in $$patches; do \
|
||||
echo "Unapplying $$x..."; \
|
||||
patch -R -p0 < patches/$$x; \
|
||||
done; \
|
||||
rm -f patches/.applied; \
|
||||
fi ; \
|
||||
echo "Updating from CVS..." ; \
|
||||
cvs -q -z3 update -Pd | tee update.out; \
|
||||
rm -f .version; \
|
||||
|
@ -395,6 +405,17 @@ update:
|
|||
grep ^C update.out | cut -d' ' -f2- ; \
|
||||
fi ; \
|
||||
rm -f update.out; \
|
||||
if ! [ -z "$$patches" ]; then \
|
||||
for x in $$patches; do \
|
||||
if [ -f patches/$$x ]; then \
|
||||
echo "Applying patch $$x..."; \
|
||||
patch -p0 < patches/$$x; \
|
||||
echo $$x >> patches/.applied; \
|
||||
else \
|
||||
echo "Patch $$x no longer relevant"; \
|
||||
fi; \
|
||||
done; \
|
||||
fi; \
|
||||
else \
|
||||
echo "Not CVS"; \
|
||||
fi
|
||||
|
@ -607,3 +628,49 @@ cleantest:
|
|||
if ! cmp -s .cleancount .lastclean ; then \
|
||||
$(MAKE) clean; cp -f .cleancount .lastclean;\
|
||||
fi
|
||||
|
||||
patchlist:
|
||||
@echo "Experimental Patches:"
|
||||
@for x in patches/*; do \
|
||||
patch=`basename $$x`; \
|
||||
if [ "$$patch" = "CVS" ]; then \
|
||||
continue; \
|
||||
fi; \
|
||||
if grep -q ^$$patch$$ patches/.applied; then \
|
||||
echo "$$patch (applied)"; \
|
||||
else \
|
||||
echo "$$patch (available)"; \
|
||||
fi; \
|
||||
done
|
||||
|
||||
|
||||
apply:
|
||||
@if [ -z "$(PATCH)" ]; then \
|
||||
echo "Usage: make PATCH=<patchname> applypatch"; \
|
||||
elif grep -q ^$(PATCH)$$ patches/.applied 2>/dev/null; then \
|
||||
echo "Patch $(PATCH) is already applied"; \
|
||||
elif [ -f "patches/$(PATCH)" ]; then \
|
||||
echo "Applying patch $(PATCH)"; \
|
||||
patch -p0 < patches/$(PATCH); \
|
||||
echo "$(PATCH)" >> patches/.applied; \
|
||||
else \
|
||||
echo "No such patch $(PATCH) in patches directory"; \
|
||||
fi
|
||||
|
||||
unapply:
|
||||
@if [ -z "$(PATCH)" ]; then \
|
||||
echo "Usage: make PATCH=<patchname> unapplypatch"; \
|
||||
elif !grep -q ^$(PATCH)$$ patches/.applied 2>/dev/null; then \
|
||||
echo "Patch $(PATCH) is not applied"; \
|
||||
elif [ -f "patches/$(PATCH)" ]; then \
|
||||
echo "Un-applying patch $(PATCH)"; \
|
||||
patch -p0 -R < patches/$(PATCH); \
|
||||
rm -f patches/.tmpapplied || :; \
|
||||
mv patches/.applied patches/.tmpapplied; \
|
||||
cat patches/.tmpapplied | grep -v ^$(PATCH)$$ > patches/.applied; \
|
||||
rm -f patches/.tmpapplied; \
|
||||
else \
|
||||
echo "No such patch $(PATCH) in patches directory"; \
|
||||
fi
|
||||
|
||||
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
.applied
|
||||
.tmpapplied
|
|
@ -0,0 +1,176 @@
|
|||
Index: logger.c
|
||||
===================================================================
|
||||
RCS file: /usr/cvsroot/asterisk/logger.c,v
|
||||
retrieving revision 1.55
|
||||
diff -u -r1.55 logger.c
|
||||
--- logger.c 25 Jan 2005 06:10:19 -0000 1.55
|
||||
+++ logger.c 9 Mar 2005 21:25:25 -0000
|
||||
@@ -61,6 +61,11 @@
|
||||
static int pending_logger_reload = 0;
|
||||
static int global_logmask = -1;
|
||||
|
||||
+static struct {
|
||||
+ unsigned int queue_log:1;
|
||||
+ unsigned int event_log:1;
|
||||
+} logfiles = { 1, 1 };
|
||||
+
|
||||
static struct msglist {
|
||||
char *msg;
|
||||
struct msglist *next;
|
||||
@@ -288,6 +293,13 @@
|
||||
strncpy(dateformat, s, sizeof(dateformat) - 1);
|
||||
} else
|
||||
strncpy(dateformat, "%b %e %T", sizeof(dateformat) - 1);
|
||||
+ if ((s = ast_variable_retrieve(cfg, "general", "queue_log"))) {
|
||||
+ logfiles.queue_log = ast_true(s);
|
||||
+ }
|
||||
+ if ((s = ast_variable_retrieve(cfg, "general", "event_log"))) {
|
||||
+ logfiles.event_log = ast_true(s);
|
||||
+ }
|
||||
+
|
||||
var = ast_variable_browse(cfg, "logfiles");
|
||||
while(var) {
|
||||
chan = make_logchannel(var->name, var->value, var->lineno);
|
||||
@@ -332,7 +344,9 @@
|
||||
qlog = NULL;
|
||||
}
|
||||
snprintf(filename, sizeof(filename), "%s/%s", (char *)ast_config_AST_LOG_DIR, "queue_log");
|
||||
- qlog = fopen(filename, "a");
|
||||
+ if (logfiles.queue_log) {
|
||||
+ qlog = fopen(filename, "a");
|
||||
+ }
|
||||
ast_mutex_unlock(&qloglock);
|
||||
if (reloaded)
|
||||
ast_queue_log("NONE", "NONE", "NONE", "CONFIGRELOAD", "%s", "");
|
||||
@@ -360,22 +374,24 @@
|
||||
mkdir((char *)ast_config_AST_LOG_DIR, 0755);
|
||||
snprintf(old, sizeof(old), "%s/%s", (char *)ast_config_AST_LOG_DIR, EVENTLOG);
|
||||
|
||||
- if(rotate) {
|
||||
- for(x=0;;x++) {
|
||||
- snprintf(new, sizeof(new), "%s/%s.%d", (char *)ast_config_AST_LOG_DIR, EVENTLOG,x);
|
||||
- myf = fopen((char *)new, "r");
|
||||
- if(myf)
|
||||
- fclose(myf);
|
||||
- else
|
||||
- break;
|
||||
- }
|
||||
+ if (logfiles.event_log) {
|
||||
+ if (rotate) {
|
||||
+ for (x=0;;x++) {
|
||||
+ snprintf(new, sizeof(new), "%s/%s.%d", (char *)ast_config_AST_LOG_DIR, EVENTLOG,x);
|
||||
+ myf = fopen((char *)new, "r");
|
||||
+ if (myf)
|
||||
+ fclose(myf);
|
||||
+ else
|
||||
+ break;
|
||||
+ }
|
||||
|
||||
- /* do it */
|
||||
- if (rename(old,new))
|
||||
- fprintf(stderr, "Unable to rename file '%s' to '%s'\n", old, new);
|
||||
- }
|
||||
+ /* do it */
|
||||
+ if (rename(old,new))
|
||||
+ fprintf(stderr, "Unable to rename file '%s' to '%s'\n", old, new);
|
||||
+ }
|
||||
|
||||
- eventlog = fopen(old, "a");
|
||||
+ eventlog = fopen(old, "a");
|
||||
+ }
|
||||
|
||||
f = logchannels;
|
||||
while(f) {
|
||||
@@ -406,16 +422,17 @@
|
||||
ast_mutex_unlock(&loglock);
|
||||
|
||||
queue_log_init();
|
||||
-
|
||||
- if (eventlog) {
|
||||
- init_logger_chain();
|
||||
- ast_log(LOG_EVENT, "Restarted Asterisk Event Logger\n");
|
||||
- if (option_verbose)
|
||||
- ast_verbose("Asterisk Event Logger restarted\n");
|
||||
- return 0;
|
||||
- } else
|
||||
- ast_log(LOG_ERROR, "Unable to create event log: %s\n", strerror(errno));
|
||||
init_logger_chain();
|
||||
+
|
||||
+ if (logfiles.event_log) {
|
||||
+ if (eventlog) {
|
||||
+ ast_log(LOG_EVENT, "Restarted Asterisk Event Logger\n");
|
||||
+ if (option_verbose)
|
||||
+ ast_verbose("Asterisk Event Logger restarted\n");
|
||||
+ return 0;
|
||||
+ } else
|
||||
+ ast_log(LOG_ERROR, "Unable to create event log: %s\n", strerror(errno));
|
||||
+ }
|
||||
pending_logger_reload = 0;
|
||||
return -1;
|
||||
}
|
||||
@@ -487,21 +504,23 @@
|
||||
/* initialize queue logger */
|
||||
queue_log_init();
|
||||
|
||||
- /* create the eventlog */
|
||||
- mkdir((char *)ast_config_AST_LOG_DIR, 0755);
|
||||
- snprintf(tmp, sizeof(tmp), "%s/%s", (char *)ast_config_AST_LOG_DIR, EVENTLOG);
|
||||
- eventlog = fopen((char *)tmp, "a");
|
||||
- if (eventlog) {
|
||||
- init_logger_chain();
|
||||
- ast_log(LOG_EVENT, "Started Asterisk Event Logger\n");
|
||||
- if (option_verbose)
|
||||
- ast_verbose("Asterisk Event Logger Started %s\n",(char *)tmp);
|
||||
- return 0;
|
||||
- } else
|
||||
- ast_log(LOG_ERROR, "Unable to create event log: %s\n", strerror(errno));
|
||||
-
|
||||
/* create log channels */
|
||||
init_logger_chain();
|
||||
+
|
||||
+ /* create the eventlog */
|
||||
+ if (logfiles.event_log) {
|
||||
+ mkdir((char *)ast_config_AST_LOG_DIR, 0755);
|
||||
+ snprintf(tmp, sizeof(tmp), "%s/%s", (char *)ast_config_AST_LOG_DIR, EVENTLOG);
|
||||
+ eventlog = fopen((char *)tmp, "a");
|
||||
+ if (eventlog) {
|
||||
+ ast_log(LOG_EVENT, "Started Asterisk Event Logger\n");
|
||||
+ if (option_verbose)
|
||||
+ ast_verbose("Asterisk Event Logger Started %s\n",(char *)tmp);
|
||||
+ return 0;
|
||||
+ } else
|
||||
+ ast_log(LOG_ERROR, "Unable to create event log: %s\n", strerror(errno));
|
||||
+ }
|
||||
+
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -572,7 +591,7 @@
|
||||
localtime_r(&t, &tm);
|
||||
strftime(date, sizeof(date), dateformat, &tm);
|
||||
|
||||
- if (level == __LOG_EVENT) {
|
||||
+ if (logfiles.event_log && level == __LOG_EVENT) {
|
||||
va_start(ap, fmt);
|
||||
|
||||
fprintf(eventlog, "%s asterisk[%d]: ", date, getpid());
|
||||
Index: configs/logger.conf.sample
|
||||
===================================================================
|
||||
RCS file: /usr/cvsroot/asterisk/configs/logger.conf.sample,v
|
||||
retrieving revision 1.9
|
||||
diff -u -r1.9 logger.conf.sample
|
||||
--- configs/logger.conf.sample 5 Sep 2004 03:48:05 -0000 1.9
|
||||
+++ configs/logger.conf.sample 9 Mar 2005 21:25:25 -0000
|
||||
@@ -13,6 +13,12 @@
|
||||
; This appends the hostname to the name of the log files.
|
||||
;appendhostname = yes
|
||||
;
|
||||
+; This determines whether or not we log queue events to a file (defaults to yes).
|
||||
+;queue_log = no
|
||||
+;
|
||||
+; This determines whether or not we log generic events to a file (defaults to yes).
|
||||
+;event_log = no
|
||||
+;
|
||||
;
|
||||
; For each file, specify what to log.
|
||||
;
|
Loading…
Reference in New Issue