summaryrefslogtreecommitdiff
path: root/noncore/net/mail/libmailwrapper
Side-by-side diff
Diffstat (limited to 'noncore/net/mail/libmailwrapper') (more/less context) (show whitespace changes)
-rw-r--r--noncore/net/mail/libmailwrapper/nntpwrapper.cpp21
-rw-r--r--noncore/net/mail/libmailwrapper/nntpwrapper.h2
2 files changed, 16 insertions, 7 deletions
diff --git a/noncore/net/mail/libmailwrapper/nntpwrapper.cpp b/noncore/net/mail/libmailwrapper/nntpwrapper.cpp
index 798879d..a766a59 100644
--- a/noncore/net/mail/libmailwrapper/nntpwrapper.cpp
+++ b/noncore/net/mail/libmailwrapper/nntpwrapper.cpp
@@ -203,18 +203,27 @@ QList<Folder>* NNTPwrapper::listFolders() {
}
- clist * NNTPwrapper::listAllNewsgroups() {
+QStringList NNTPwrapper::listAllNewsgroups() {
login();
+ QStringList res;
clist *result = 0;
- clistcell *current;
- newsnntp_group_description *list;
+ clistcell *current = 0;
+ newsnntp_group_description *group;
+
if ( m_nntp ) {
mailsession * session = m_nntp->sto_session;
newsnntp * news = ( ( nntp_session_state_data * )session->sess_data )->nntp_session;
int err = newsnntp_list_newsgroups(news, NULL, &result);
-
- if ( err == NEWSNNTP_NO_ERROR ) {
- return result;
+ if ( err == NEWSNNTP_NO_ERROR && result) {
+ for ( current=clist_begin(result);current!=NULL;current=clist_next(current) ) {
+ group = ( newsnntp_group_description* ) current->data;
+ if (!group||!group->grp_name||strlen(group->grp_name)==0) continue;
+ res.append(group->grp_name);
+ }
}
}
+ if (result) {
+ clist_free(result);
+ }
+ return res;
}
diff --git a/noncore/net/mail/libmailwrapper/nntpwrapper.h b/noncore/net/mail/libmailwrapper/nntpwrapper.h
index e8e2cf4..4d03754 100644
--- a/noncore/net/mail/libmailwrapper/nntpwrapper.h
+++ b/noncore/net/mail/libmailwrapper/nntpwrapper.h
@@ -26,5 +26,5 @@ public:
/* mailbox will be ignored */
virtual void statusFolder(folderStat&target_stat,const QString & mailbox="INBOX");
- clist * listAllNewsgroups();
+ QStringList listAllNewsgroups();
virtual void deleteMail(const RecMail&mail);
virtual void answeredMail(const RecMail&mail);