]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
freetdm: ftmod_r2 - check for io dump file errors on open
authorMoises Silva <moy@sangoma.com>
Thu, 27 Jan 2011 22:02:04 +0000 (17:02 -0500)
committerMoises Silva <moy@sangoma.com>
Thu, 27 Jan 2011 22:02:04 +0000 (17:02 -0500)
libs/freetdm/src/ftmod/ftmod_r2/ftmod_r2.c

index 0217a5172ae85076a39dce852cedbb29b6334d52..d86fb43195288ce07fac79c8727347604aa6d2c3 100644 (file)
@@ -729,16 +729,24 @@ static void dump_mf(openr2_chan_t *r2chan)
                snprintf(dfile, sizeof(dfile), logname ? "%s.s%dc%d.input.alaw" : "%s/s%dc%d.input.alaw", 
                                logname ? logname : r2data->logdir, ftdmchan->span_id, ftdmchan->chan_id);
                f = fopen(dfile, "wb");
-               ftdm_log_chan(ftdmchan, FTDM_LOG_ERROR, "Dumping IO input in file %s\n", dfile);
-               ftdm_channel_command(ftdmchan, FTDM_COMMAND_DUMP_INPUT, f);
-               fclose(f);
+               if (f) {
+                       ftdm_log_chan(ftdmchan, FTDM_LOG_ERROR, "Dumping IO input in file %s\n", dfile);
+                       ftdm_channel_command(ftdmchan, FTDM_COMMAND_DUMP_INPUT, f);
+                       fclose(f);
+               } else {
+                       ftdm_log_chan(ftdmchan, FTDM_LOG_ERROR, "Could not dump IO input in file %s, error: %s", dfile, strerror(errno));
+               }
 
                snprintf(dfile, sizeof(dfile), logname ? "%s.s%dc%d.output.alaw" : "%s/s%dc%d.output.alaw", 
                                logname ? logname : r2data->logdir, ftdmchan->span_id, ftdmchan->chan_id);
                f = fopen(dfile, "wb");
-               ftdm_log_chan(ftdmchan, FTDM_LOG_ERROR, "Dumping IO output in file %s\n", dfile);
-               ftdm_channel_command(ftdmchan, FTDM_COMMAND_DUMP_OUTPUT, f);
-               fclose(f);
+               if (f) {
+                       ftdm_log_chan(ftdmchan, FTDM_LOG_ERROR, "Dumping IO output in file %s\n", dfile);
+                       ftdm_channel_command(ftdmchan, FTDM_COMMAND_DUMP_OUTPUT, f);
+                       fclose(f);
+               } else {
+                       ftdm_log_chan(ftdmchan, FTDM_LOG_ERROR, "Could not dump IO output in file %s, error: %s", dfile, strerror(errno));
+               }
        }
 }