Re: [binc] NOOP fails (from time to time)

Jerry Lundström <[email protected]>
Newsgroups gmane.mail.imap.binc.general
Message-ID <[email protected]>
Jerry Lundström wrote:
> Well no, more like operator-close.cc should set the depot selected 
> mailbox to 0 so that any futhur depot.getSelected() returns 0.

Something like this:

-- 
Jerry Lundström
Sektionen för IT och media, Stockholms universitet
+46 (0)8 16 19 99 / http://www.it.su.se
bincimap-1.2.12final-no_mailbox.patch (text/plain, 2.1 KB)
diff -urN -x '*~' bincimap-1.2.12final.orig/src/depot.cc bincimap-1.2.12final.no_mailbox/src/depot.cc
--- bincimap-1.2.12final.orig/src/depot.cc	2005-01-08 11:20:48.000000000 +0100
+++ bincimap-1.2.12final.no_mailbox/src/depot.cc	2005-05-23 15:41:15.000000000 +0200
@@ -192,6 +192,12 @@
 }
 
 //--------------------------------------------------------------------
+void Depot::resetSelected(void) const
+{
+  selectedmailbox = 0;
+}
+
+//--------------------------------------------------------------------
 Mailbox *Depot::getDefault(void) const
 {
   return defaultmailbox;
diff -urN -x '*~' bincimap-1.2.12final.orig/src/depot.h bincimap-1.2.12final.no_mailbox/src/depot.h
--- bincimap-1.2.12final.orig/src/depot.h	2005-01-08 11:20:48.000000000 +0100
+++ bincimap-1.2.12final.no_mailbox/src/depot.h	2005-05-23 15:40:16.000000000 +0200
@@ -114,6 +114,7 @@
 
     bool setSelected(Mailbox *);
     Mailbox *getSelected(void) const;
+    void resetSelected(void) const;
 
     bool getStatus(const std::string &s_in, Status &dest) const;
 
diff -urN -x '*~' bincimap-1.2.12final.orig/src/operator-close.cc bincimap-1.2.12final.no_mailbox/src/operator-close.cc
--- bincimap-1.2.12final.orig/src/operator-close.cc	2005-01-08 11:20:48.000000000 +0100
+++ bincimap-1.2.12final.no_mailbox/src/operator-close.cc	2005-05-23 15:39:56.000000000 +0200
@@ -74,6 +74,7 @@
   Mailbox *mailbox = depot.getSelected();
   mailbox->expungeMailbox();
   mailbox->closeMailbox();
+  depot.resetSelected();
 
   Session &session = Session::getInstance();
   session.setState(Session::AUTHENTICATED);
diff -urN -x '*~' bincimap-1.2.12final.orig/src/operator-noop-pending.cc bincimap-1.2.12final.no_mailbox/src/operator-noop-pending.cc
--- bincimap-1.2.12final.orig/src/operator-noop-pending.cc	2005-01-08 11:20:48.000000000 +0100
+++ bincimap-1.2.12final.no_mailbox/src/operator-noop-pending.cc	2005-05-23 14:28:49.000000000 +0200
@@ -65,7 +65,8 @@
 						     Request &command)
 {
   Mailbox *mailbox = depot.getSelected();
-  if (!pendingUpdates(mailbox, 
+  if (mailbox &&
+      !pendingUpdates(mailbox, 
 		      PendingUpdates::EXPUNGE
 		      | PendingUpdates::EXISTS 
 		      | PendingUpdates::RECENT
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.