Skip to content

Commit

Permalink
Sometimes temporary directories were not being deleted
Browse files Browse the repository at this point in the history
  • Loading branch information
monich committed Feb 19, 2014
1 parent 0c20bc8 commit 4f18d52
Show file tree
Hide file tree
Showing 5 changed files with 29 additions and 4 deletions.
1 change: 1 addition & 0 deletions mms-lib/include/mms_message.h
Expand Up @@ -35,6 +35,7 @@ struct _mms_message {
MMS_PRIORITY priority; /* Message priority */
char* cls; /* Message class */
gboolean read_report_req; /* Request for read report */
char* msg_dir; /* Delete when done if empty */
char* parts_dir; /* Where parts are stored */
GSList* parts; /* Message parts */
int flags; /* Message flags: */
Expand Down
6 changes: 4 additions & 2 deletions mms-lib/src/mms_file_util.c
Expand Up @@ -28,8 +28,10 @@ mms_remove_file_and_dir(
const char* file)
{
char* dir = g_path_get_dirname(file);
remove(file);
remove(dir);
unlink(file);
if (rmdir(dir) == 0) {
MMS_VERBOSE("Deleted %s", dir);
}
g_free(dir);
}

Expand Down
14 changes: 13 additions & 1 deletion mms-lib/src/mms_message.c
Expand Up @@ -52,9 +52,21 @@ mms_message_finalize(
g_slist_foreach(msg->parts, mms_message_part_free, msg);
g_slist_free(msg->parts);
if (msg->parts_dir) {
if (!(msg->flags & MMS_MESSAGE_FLAG_KEEP_FILES)) remove(msg->parts_dir);
if (!(msg->flags & MMS_MESSAGE_FLAG_KEEP_FILES)) {
if (rmdir(msg->parts_dir) == 0) {
MMS_VERBOSE("Deleted %s", msg->parts_dir);
}
}
g_free(msg->parts_dir);
}
if (msg->msg_dir) {
if (!(msg->flags & MMS_MESSAGE_FLAG_KEEP_FILES)) {
if (rmdir(msg->msg_dir) == 0) {
MMS_VERBOSE("Deleted %s", msg->msg_dir);
}
}
g_free(msg->msg_dir);
}
}

MMSMessage*
Expand Down
11 changes: 10 additions & 1 deletion mms-lib/src/mms_task.c
Expand Up @@ -118,8 +118,17 @@ mms_task_finalize(
MMS_VERBOSE_("%p", task);
MMS_ASSERT(!task->delegate);
MMS_ASSERT(!task->wakeup_id);
if (task->id) {
if (!task->config->keep_temp_files) {
char* dir = mms_task_dir(task);
if (rmdir(dir) == 0) {
MMS_VERBOSE("Deleted %s", dir);
}
g_free(dir);
}
g_free(task->id);
}
g_free(task->name);
g_free(task->id);
g_free(task->imsi);
mms_handler_unref(task->handler);
G_OBJECT_CLASS(mms_task_parent_class)->finalize(object);
Expand Down
1 change: 1 addition & 0 deletions mms-lib/src/mms_task_decode.c
Expand Up @@ -124,6 +124,7 @@ mms_task_decode_process_retrieve_conf(
}

msg->id = g_strdup(task->id);
msg->msg_dir = g_strdup(dir);
msg->message_id = g_strdup(rc->msgid);
msg->from = mms_strip_address_type(g_strdup(rc->from));
msg->to = mms_split_address_list(rc->to);
Expand Down

0 comments on commit 4f18d52

Please sign in to comment.