diff options
author | Lucas De Marchi <lucas.demarchi@profusion.mobi> | 2011-01-28 00:39:56 -0200 |
---|---|---|
committer | Denis Kenzior <denkenz@gmail.com> | 2011-01-28 16:14:41 -0600 |
commit | f55447a39ecb221fb19ca1fcb57538f4655105cf (patch) | |
tree | 0940f283007fc86781b7e8876a95502548ce737d /src/smsutil.c | |
parent | 8305ddf32146abb9ecbfb41c1420762c397706bb (diff) | |
download | ofono-f55447a39ecb221fb19ca1fcb57538f4655105cf.tar.bz2 |
sms: delete sent sms messages from backup
Based on patch from Kristen Carlson Accardi <kristen@linux.intel.com>
Diffstat (limited to 'src/smsutil.c')
-rw-r--r-- | src/smsutil.c | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/src/smsutil.c b/src/smsutil.c index 3e5b7cd0..db6881ea 100644 --- a/src/smsutil.c +++ b/src/smsutil.c @@ -3172,6 +3172,53 @@ gboolean sms_tx_backup_store(const char *imsi, unsigned long id, return TRUE; } +void sms_tx_backup_free(const char *imsi, unsigned long id, + unsigned long flags, const char *uuid) +{ + char *path; + struct dirent **entries; + int len; + + path = g_strdup_printf(SMS_TX_BACKUP_PATH_DIR, + imsi, id, flags, uuid); + + len = scandir(path, &entries, NULL, versionsort); + + if (len < 0) + return; + + /* skip '..' and '.' entries */ + while (len-- > 2) { + struct dirent *dir = entries[len]; + char *file = g_strdup_printf("%s/%s", path, dir->d_name); + + unlink(file); + g_free(file); + + g_free(entries[len]); + } + + g_free(entries[1]); + g_free(entries[0]); + g_free(entries); + + rmdir(path); + g_free(path); +} + +void sms_tx_backup_remove(const char *imsi, unsigned long id, + unsigned long flags, const char *uuid, + guint8 seq) +{ + char *path; + + path = g_strdup_printf(SMS_TX_BACKUP_PATH_FILE, + imsi, id, flags, uuid, seq); + unlink(path); + + g_free(path); +} + static inline GSList *sms_list_append(GSList *l, const struct sms *in) { struct sms *sms; |