Browse Source

Better closing/restart for email_fetcher

Guénaël Muller 7 years ago
parent
commit
bc08d518ff
1 changed files with 17 additions and 17 deletions
  1. 17 17
      tracim/tracim/lib/email_fetcher.py

+ 17 - 17
tracim/tracim/lib/email_fetcher.py View File

109
     def run(self):
109
     def run(self):
110
         while self._is_active:
110
         while self._is_active:
111
             time.sleep(self.delay)
111
             time.sleep(self.delay)
112
-            if self._connect():
113
-                self._fetch()
114
-                self._notify_tracim()
115
-                self._disconnect()
112
+            self._connect()
113
+            self._fetch()
114
+            self._notify_tracim()
115
+            self._disconnect()
116
 
116
 
117
     def stop(self):
117
     def stop(self):
118
         self._is_active = False
118
         self._is_active = False
119
 
119
 
120
     def _connect(self):
120
     def _connect(self):
121
         ## verify if connected ?
121
         ## verify if connected ?
122
-        if not self._connection:
123
-            # TODO: Support unencrypted connection ?
124
-            # TODO: Support keyfile,certfile ?
125
-            self._connection = imaplib.IMAP4_SSL(self.host,self.port)
126
-            try:
127
-                rv, data = self._connection.login(self.user,self.password)
128
-                return True
129
-            except Exception as e:
130
-                log = 'IMAP login error: {}'
131
-                logger.debug(self, log.format(e.__str__()))
132
-                self._connection = None
133
-                return False
134
-        return False
122
+        if self._connection:
123
+            self._disconnect()
124
+        # TODO: Support unencrypted connection ?
125
+        # TODO: Support keyfile,certfile ?
126
+        self._connection = imaplib.IMAP4_SSL(self.host,self.port)
127
+        try:
128
+            rv, data = self._connection.login(self.user,self.password)
129
+        except Exception as e:
130
+            log = 'IMAP login error: {}'
131
+            logger.debug(self, log.format(e.__str__()))
132
+
135
     def _disconnect(self):
133
     def _disconnect(self):
136
         if self._connection:
134
         if self._connection:
135
+            self._connection.close()
137
             self._connection.logout()
136
             self._connection.logout()
137
+            self._connection = None
138
 
138
 
139
     def _fetch(self):
139
     def _fetch(self):
140
         """
140
         """