author | alwin <alwin> | 2004-03-07 01:42:07 (UTC) |
---|---|---|
committer | alwin <alwin> | 2004-03-07 01:42:07 (UTC) |
commit | 9b3af0c792777462126317a0335d2c355b4d8b13 (patch) (side-by-side diff) | |
tree | 5d6a7c478fff7d3931cbe5d28cf2d0e87d44b8ce | |
parent | 5bc69a9731634c55b9a01b9de6909201f422893b (diff) | |
download | opie-9b3af0c792777462126317a0335d2c355b4d8b13.zip opie-9b3af0c792777462126317a0335d2c355b4d8b13.tar.gz opie-9b3af0c792777462126317a0335d2c355b4d8b13.tar.bz2 |
-resolved that not all newsgroups where listed
-resolved a memory leak
-newsgroups list enhanced for usage with wildcards
-rw-r--r-- | noncore/net/mail/libmailwrapper/nntpwrapper.cpp | 19 | ||||
-rw-r--r-- | noncore/net/mail/libmailwrapper/nntpwrapper.h | 2 |
2 files changed, 17 insertions, 4 deletions
diff --git a/noncore/net/mail/libmailwrapper/nntpwrapper.cpp b/noncore/net/mail/libmailwrapper/nntpwrapper.cpp index a766a59..5a8c224 100644 --- a/noncore/net/mail/libmailwrapper/nntpwrapper.cpp +++ b/noncore/net/mail/libmailwrapper/nntpwrapper.cpp @@ -204,3 +204,9 @@ QList<Folder>* NNTPwrapper::listFolders() { -QStringList NNTPwrapper::listAllNewsgroups() { +/* we made this method in raw nntp access of etpan and not via generic interface + * 'cause in that case there will be doubled copy operations. eg. the etpan would + * copy that stuff into its own structures and we must copy it into useable c++ + * structures for our frontend. this would not make sense, so it is better to reimplement + * the stuff from generic interface of etpan but copy it direct to qt classes. + */ +QStringList NNTPwrapper::listAllNewsgroups(const QString&mask) { login(); @@ -214,3 +220,10 @@ QStringList NNTPwrapper::listAllNewsgroups() { newsnntp * news = ( ( nntp_session_state_data * )session->sess_data )->nntp_session; - int err = newsnntp_list_newsgroups(news, NULL, &result); + int err = NEWSNNTP_NO_ERROR; + if (mask.isEmpty()) { + err = newsnntp_list(news, &result); + } else { + /* taken from generic wrapper of etpan */ + QString nmask = mask+".*"; + err = newsnntp_list_active(news, nmask.latin1(), &result); + } if ( err == NEWSNNTP_NO_ERROR && result) { @@ -224,3 +237,3 @@ QStringList NNTPwrapper::listAllNewsgroups() { if (result) { - clist_free(result); + newsnntp_list_free(result); } diff --git a/noncore/net/mail/libmailwrapper/nntpwrapper.h b/noncore/net/mail/libmailwrapper/nntpwrapper.h index 4d03754..d51c955 100644 --- a/noncore/net/mail/libmailwrapper/nntpwrapper.h +++ b/noncore/net/mail/libmailwrapper/nntpwrapper.h @@ -27,3 +27,3 @@ public: virtual void statusFolder(folderStat&target_stat,const QString & mailbox="INBOX"); - QStringList listAllNewsgroups(); + QStringList listAllNewsgroups(const QString&mask = QString::null); virtual void deleteMail(const RecMail&mail); |