[svn-commits] russell: branch 1.2 r1315 - /branches/1.2/fxotune.c

svn-commits at lists.digium.com svn-commits at lists.digium.com
Tue Aug 15 15:06:13 MST 2006


Author: russell
Date: Tue Aug 15 17:06:13 2006
New Revision: 1315

URL: http://svn.digium.com/view/zaptel?rev=1315&view=rev
Log:
Ensure that fopen() is only called once for the debug output file to prevent
excessive file descriptor leakage when this function is called many times in
a loop.  (issue #7203)

Modified:
    branches/1.2/fxotune.c

Modified: branches/1.2/fxotune.c
URL: http://svn.digium.com/view/zaptel/branches/1.2/fxotune.c?rev=1315&r1=1314&r2=1315&view=diff
==============================================================================
--- branches/1.2/fxotune.c (original)
+++ branches/1.2/fxotune.c Tue Aug 15 17:06:13 2006
@@ -49,6 +49,7 @@
 static short outbuf[TEST_DURATION];
 static int debug = 0;
 
+static FILE *outfile = NULL;
 
 /* Generates a tone of hz frequency.  Index is the current sample
  * to begenerated.  For a normal waveform you need to increment
@@ -128,13 +129,10 @@
 	struct wctdm_echo_coefs coefs;
 	short inbuf[BUFFER_LENGTH]; 
 	int lowest = 0;
-	FILE *outfile = NULL;
 	float acim_results[16];
 
-
-	if (debug) {
-		outfile = fopen("fxotune.vals", "w");
-		if (!outfile) {
+	if (debug && !outfile) {
+		if (!(outfile = fopen("fxotune.vals", "w"))) {
 			fprintf(stdout, "Cannot create fxotune.vals\n");
 			return -1;
 		}
@@ -243,7 +241,8 @@
 			/* calculate power of response */
 			
 			freq_results[(freq/200)-1] = power_of(inbuf+SKIP_BYTES, BUFFER_LENGTH-SKIP_BYTES, 1);
-			if (debug) fprintf(outfile, "%d,%d,%f\n", acim, freq, freq_results[(freq/200)-1]);
+			if (debug) 
+				fprintf(outfile, "%d,%d,%f\n", acim, freq, freq_results[(freq/200)-1]);
 		}
 		acim_results[acim] = power_of(freq_results, 15, 0);
 	}



More information about the svn-commits mailing list