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