author | alwin <alwin> | 2004-03-07 01:42:07 (UTC) |
---|---|---|
committer | alwin <alwin> | 2004-03-07 01:42:07 (UTC) |
commit | 9b3af0c792777462126317a0335d2c355b4d8b13 (patch) (unidiff) | |
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 | |||
@@ -201,9 +201,15 @@ QList<Folder>* NNTPwrapper::listFolders() { | |||
201 | } | 201 | } |
202 | return folders; | 202 | return folders; |
203 | } | 203 | } |
204 | 204 | ||
205 | QStringList NNTPwrapper::listAllNewsgroups() { | 205 | /* we made this method in raw nntp access of etpan and not via generic interface |
206 | * 'cause in that case there will be doubled copy operations. eg. the etpan would | ||
207 | * copy that stuff into its own structures and we must copy it into useable c++ | ||
208 | * structures for our frontend. this would not make sense, so it is better to reimplement | ||
209 | * the stuff from generic interface of etpan but copy it direct to qt classes. | ||
210 | */ | ||
211 | QStringList NNTPwrapper::listAllNewsgroups(const QString&mask) { | ||
206 | login(); | 212 | login(); |
207 | QStringList res; | 213 | QStringList res; |
208 | clist *result = 0; | 214 | clist *result = 0; |
209 | clistcell *current = 0; | 215 | clistcell *current = 0; |
@@ -211,9 +217,16 @@ QStringList NNTPwrapper::listAllNewsgroups() { | |||
211 | 217 | ||
212 | if ( m_nntp ) { | 218 | if ( m_nntp ) { |
213 | mailsession * session = m_nntp->sto_session; | 219 | mailsession * session = m_nntp->sto_session; |
214 | newsnntp * news = ( ( nntp_session_state_data * )session->sess_data )->nntp_session; | 220 | newsnntp * news = ( ( nntp_session_state_data * )session->sess_data )->nntp_session; |
215 | int err = newsnntp_list_newsgroups(news, NULL, &result); | 221 | int err = NEWSNNTP_NO_ERROR; |
222 | if (mask.isEmpty()) { | ||
223 | err = newsnntp_list(news, &result); | ||
224 | } else { | ||
225 | /* taken from generic wrapper of etpan */ | ||
226 | QString nmask = mask+".*"; | ||
227 | err = newsnntp_list_active(news, nmask.latin1(), &result); | ||
228 | } | ||
216 | if ( err == NEWSNNTP_NO_ERROR && result) { | 229 | if ( err == NEWSNNTP_NO_ERROR && result) { |
217 | for ( current=clist_begin(result);current!=NULL;current=clist_next(current) ) { | 230 | for ( current=clist_begin(result);current!=NULL;current=clist_next(current) ) { |
218 | group = ( newsnntp_group_description* ) current->data; | 231 | group = ( newsnntp_group_description* ) current->data; |
219 | if (!group||!group->grp_name||strlen(group->grp_name)==0) continue; | 232 | if (!group||!group->grp_name||strlen(group->grp_name)==0) continue; |
@@ -221,9 +234,9 @@ QStringList NNTPwrapper::listAllNewsgroups() { | |||
221 | } | 234 | } |
222 | } | 235 | } |
223 | } | 236 | } |
224 | if (result) { | 237 | if (result) { |
225 | clist_free(result); | 238 | newsnntp_list_free(result); |
226 | } | 239 | } |
227 | return res; | 240 | return res; |
228 | } | 241 | } |
229 | 242 | ||
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 | |||
@@ -24,9 +24,9 @@ public: | |||
24 | /* should only get the subscribed one */ | 24 | /* should only get the subscribed one */ |
25 | virtual QList<Folder>* listFolders(); | 25 | virtual QList<Folder>* listFolders(); |
26 | /* mailbox will be ignored */ | 26 | /* mailbox will be ignored */ |
27 | virtual void statusFolder(folderStat&target_stat,const QString & mailbox="INBOX"); | 27 | virtual void statusFolder(folderStat&target_stat,const QString & mailbox="INBOX"); |
28 | QStringList listAllNewsgroups(); | 28 | QStringList listAllNewsgroups(const QString&mask = QString::null); |
29 | virtual void deleteMail(const RecMail&mail); | 29 | virtual void deleteMail(const RecMail&mail); |
30 | virtual void answeredMail(const RecMail&mail); | 30 | virtual void answeredMail(const RecMail&mail); |
31 | virtual int deleteAllMail(const Folder*); | 31 | virtual int deleteAllMail(const Folder*); |
32 | 32 | ||