[asterisk-commits] mmichelson: branch 1.6.0 r115330 - in /branches/1.6.0: ./ main/config.c

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Mon May 5 17:14:43 CDT 2008


Author: mmichelson
Date: Mon May  5 17:14:42 2008
New Revision: 115330

URL: http://svn.digium.com/view/asterisk?view=rev&rev=115330
Log:
Merged revisions 115329 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/trunk

........
r115329 | mmichelson | 2008-05-05 17:14:06 -0500 (Mon, 05 May 2008) | 15 lines

#execing the same file multiple times led to warning messages saying that the same file was
being #included twice. This was due to the fact that #exec created a temporary file which
was then #included. The name of the temporary file was the name of the #exec'd file, with
the Unix timestamp and thread ID concatenated. The issue was that if multiple #exec statements
of the same file were reached in the same second, then the result was that the temporary files
would have duplicate names. To resolve this, the temporary file now has microsecond resolution
for the timestamp portion.

(closes issue #12574)
Reported by: jmls
Patches:
      12574.patch uploaded by putnopvut (license 60)
Tested by: jmls, putnopvut


........

Modified:
    branches/1.6.0/   (props changed)
    branches/1.6.0/main/config.c

Propchange: branches/1.6.0/
------------------------------------------------------------------------------
Binary property 'trunk-merged' - no diff available.

Modified: branches/1.6.0/main/config.c
URL: http://svn.digium.com/view/asterisk/branches/1.6.0/main/config.c?view=diff&rev=115330&r1=115329&r2=115330
==============================================================================
--- branches/1.6.0/main/config.c (original)
+++ branches/1.6.0/main/config.c Mon May  5 17:14:42 2008
@@ -1056,9 +1056,10 @@
 				/* #exec </path/to/executable>
 				   We create a tmp file, then we #include it, then we delete it. */
 				if (!do_include) {
+					struct timeval tv = ast_tvnow();
 					if (!ast_test_flag(&flags, CONFIG_FLAG_NOCACHE))
 						config_cache_attribute(configfile, ATTRIBUTE_EXEC, NULL, who_asked);
-					snprintf(exec_file, sizeof(exec_file), "/var/tmp/exec.%d.%ld", (int)time(NULL), (long)pthread_self());
+					snprintf(exec_file, sizeof(exec_file), "/var/tmp/exec.%d%d.%ld", (int)tv.tv_sec, (int)tv.tv_usec, (long)pthread_self());
 					snprintf(cmd, sizeof(cmd), "%s > %s 2>&1", cur, exec_file);
 					ast_safe_system(cmd);
 					cur = exec_file;




More information about the asterisk-commits mailing list