only delete call files if the timestamp on the file is not in the future, so
authorRussell Bryant <russell@russellbryant.com>
Fri, 19 May 2006 17:25:52 +0000 (17:25 +0000)
committerRussell Bryant <russell@russellbryant.com>
Fri, 19 May 2006 17:25:52 +0000 (17:25 +0000)
that a call file can be reused (issue #6750, patch by moy, committed patch is
slightly simplified)

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@28705 65c4cc65-6c06-0410-ace0-fbb531ad65f3

pbx/pbx_spool.c

index 132508a..855001c 100644 (file)
@@ -254,6 +254,7 @@ static void *attempt_thread(void *data)
 {
        struct outgoing *o = data;
        int res, reason;
+       struct stat current_file_status;
        if (!ast_strlen_zero(o->app)) {
                if (option_verbose > 2)
                        ast_verbose(VERBOSE_PREFIX_3 "Attempting call on %s/%s for application %s(%s) (Retry %d)\n", o->tech, o->dest, o->app, o->data, o->retries);
@@ -276,7 +277,10 @@ static void *attempt_thread(void *data)
        } else {
                ast_log(LOG_NOTICE, "Call completed to %s/%s\n", o->tech, o->dest);
                ast_log(LOG_EVENT, "Queued call to %s/%s completed\n", o->tech, o->dest);
-               unlink(o->fn);
+               if (!stat(o->fn, &current_file_status)) {
+                       if (time(NULL) >= current_file_status.st_atime)
+                               unlink(o->fn);
+               }
        }
        free_outgoing(o);
        return NULL;