Skip to content
Snippets Groups Projects
Commit f0c7729f authored by Mark Spencer's avatar Mark Spencer
Browse files

Add sample experimental patch to show "make apply", "make unapply", "make...

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
parent 1220a0e2
No related branches found
No related tags found
No related merge requests found
......@@ -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
.applied
.tmpapplied
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.
;
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment