summaryrefslogtreecommitdiff
path: root/noncore/net/mail/libmailwrapper/mboxwrapper.cpp
Side-by-side diff
Diffstat (limited to 'noncore/net/mail/libmailwrapper/mboxwrapper.cpp') (more/less context) (show whitespace changes)
-rw-r--r--noncore/net/mail/libmailwrapper/mboxwrapper.cpp12
1 files changed, 10 insertions, 2 deletions
diff --git a/noncore/net/mail/libmailwrapper/mboxwrapper.cpp b/noncore/net/mail/libmailwrapper/mboxwrapper.cpp
index 293ae1b..6d69263 100644
--- a/noncore/net/mail/libmailwrapper/mboxwrapper.cpp
+++ b/noncore/net/mail/libmailwrapper/mboxwrapper.cpp
@@ -1,12 +1,13 @@
#include "mboxwrapper.h"
#include "mailtypes.h"
#include "mailwrapper.h"
#include <libetpan/libetpan.h>
#include <libetpan/mailstorage.h>
#include <qdir.h>
+#include <stdlib.h>
MBOXwrapper::MBOXwrapper(const QString & mbox_dir)
: Genericwrapper(),MBOXPath(mbox_dir)
{
QDir dir(MBOXPath);
if (!dir.exists()) {
@@ -20,39 +21,45 @@ MBOXwrapper::~MBOXwrapper()
void MBOXwrapper::listMessages(const QString & mailbox, QList<RecMail> &target )
{
mailstorage*storage = mailstorage_new(NULL);
QString p = MBOXPath+"/";
p+=mailbox;
+ char*fname = 0;
- int r = mbox_mailstorage_init(storage,strdup(p.latin1()),0,0,0);
+ fname = strdup(p.latin1());
+
+ int r = mbox_mailstorage_init(storage,fname,0,0,0);
mailfolder*folder;
- folder = mailfolder_new( storage,strdup(p.latin1()),NULL);
+ folder = mailfolder_new( storage,fname,NULL);
r = mailfolder_connect(folder);
if (r != MAIL_NO_ERROR) {
qDebug("Error initializing mbox");
mailfolder_free(folder);
mailstorage_free(storage);
+ free(fname);
return;
}
mailmessage_list * env_list = 0;
r = mailsession_get_messages_list(folder->fld_session,&env_list);
if (r != MAIL_NO_ERROR) {
qDebug("Error message list");
mailfolder_free(folder);
mailstorage_free(storage);
+ free(fname);
return;
}
r = mailsession_get_envelopes_list(folder->fld_session, env_list);
if (r != MAIL_NO_ERROR) {
qDebug("Error filling message list");
if (env_list) {
mailmessage_list_free(env_list);
}
mailfolder_free(folder);
mailstorage_free(storage);
+ free(fname);
return;
}
mailimf_references * refs;
for(int i = 0 ; i < carray_count(env_list->msg_tab) ; ++i) {
mailmessage * msg;
@@ -100,12 +107,13 @@ void MBOXwrapper::listMessages(const QString & mailbox, QList<RecMail> &target )
if (env_list) {
mailmessage_list_free(env_list);
}
mailfolder_disconnect(folder);
mailfolder_free(folder);
mailstorage_free(storage);
+ free(fname);
}
QList<Folder>* MBOXwrapper::listFolders()
{
QList<Folder> * folders = new QList<Folder>();
folders->setAutoDelete( false );