]> code.delx.au - offlineimap/commitdiff
Merging imaplibutil into code
authorJohn Goerzen <jgoerzen@complete.org>
Wed, 4 Jul 2007 17:51:10 +0000 (18:51 +0100)
committerJohn Goerzen <jgoerzen@complete.org>
Wed, 4 Jul 2007 17:51:10 +0000 (18:51 +0100)
offlineimap/imaplibutil.py
offlineimap/imapserver.py

index 2dd39982580aea8dabf95f9e60322e75948fec50..b486a341a5646f6119bc320e3b6d98aa05982f03 100644 (file)
@@ -18,8 +18,9 @@
 
 import re, string, types, binascii, socket, time, random, subprocess, sys, os
 from offlineimap.ui import UIBase
+from imaplib import *
 
-class IMAP4_Tunnel(imaplib.IMAP4):
+class IMAP4_Tunnel(IMAP4):
     """IMAP4 client class over a tunnel
 
     Instantiate with: IMAP4_Tunnel(tunnelcmd)
@@ -28,7 +29,7 @@ class IMAP4_Tunnel(imaplib.IMAP4):
     The result will be in PREAUTH stage."""
 
     def __init__(self, tunnelcmd):
-        imaplib.IMAP4.__init__(self, tunnelcmd)
+        IMAP4.__init__(self, tunnelcmd)
 
     def open(self, host, port):
         """The tunnelcmd comes in on host!"""
@@ -53,7 +54,6 @@ class IMAP4_Tunnel(imaplib.IMAP4):
         self.outfd.close()
         self.process.wait()
         
-# FIXME: need to use this in SSL instances
 class sslwrapper:
     def __init__(self, sslsock):
         self.sslsock = sslsock
@@ -93,16 +93,13 @@ class sslwrapper:
             else:
                 retval += linebuf
 
-# FIXME: need to override this in IMAP instances
-
 def new_mesg(self, s, secs=None):
             if secs is None:
                 secs = time.time()
             tm = time.strftime('%M:%S', time.localtime(secs))
             UIBase.getglobalui().debug('imap', '  %s.%02d %s' % (tm, (secs*100)%100, s))
 
-# FIXME: use this
-def new_open(self, host = '', port = imaplib.IMAP4_PORT):
+def new_open(self, host = '', port = IMAP4_PORT):
         """Setup connection to remote server on "host:port"
             (default: localhost:standard IMAP4 port).
         This connection will be used by the routines:
index 9ebdb2e17eaa815c049ec76f496f1a4c3c0bcb95..e0dfd285198788411a1f89ceb9fbe2392b7fb992 100644 (file)
@@ -1,5 +1,5 @@
 # IMAP server support
-# Copyright (C) 2002, 2003 John Goerzen
+# Copyright (C) 2002 - 2007 John Goerzen
 # <jgoerzen@complete.org>
 #
 #    This program is free software; you can redistribute it and/or modify
@@ -16,7 +16,8 @@
 #    along with this program; if not, write to the Free Software
 #    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
 
-from offlineimap import imaplib, imaputil, threadutil
+import imaplib
+from offlineimap import imaplibutil, imaputil, threadutil
 from offlineimap.ui import UIBase
 from threading import *
 import thread, hmac, os
@@ -43,8 +44,17 @@ class UsefulIMAPMixIn:
         else:
             self.selectedfolder = None
 
-class UsefulIMAP4(UsefulIMAPMixIn, imaplib.IMAP4): pass
-class UsefulIMAP4_SSL(UsefulIMAPMixIn, imaplib.IMAP4_SSL): pass
+    def _mesg(self, s, secs=None):
+        imaplibutil.new_mseg(self, s, secs)
+
+class UsefulIMAP4(UsefulIMAPMixIn, imaplib.IMAP4):
+    def open(self, host = '', port = imaplib.IMAP4_PORT):
+        imaplibutil.new_open(self, host, port)
+
+class UsefulIMAP4_SSL(UsefulIMAPMixIn, imaplib.IMAP4_SSL):
+    def open(self, host = '', port = imaplib.IMAP4_SSL_PORT):
+        imaplibutil.new_open_ssl(self, host, port)
+
 class UsefulIMAP4_Tunnel(UsefulIMAPMixIn, imaplib.IMAP4_Tunnel): pass
 
 class IMAPServer:
@@ -167,6 +177,8 @@ class IMAPServer:
                 UIBase.getglobalui().connecting(self.hostname, self.port)
                 imapobj = UsefulIMAP4(self.hostname, self.port)
 
+            imapobj.mustquote = imaplibutil.mustquote
+
             if not self.tunnel:
                 try:
                     if 'AUTH=CRAM-MD5' in imapobj.capabilities: