]> code.delx.au - offlineimap/commitdiff
Added netrc support
authorJohn Goerzen <jgoerzen@complete.org>
Tue, 27 Mar 2007 07:21:17 +0000 (08:21 +0100)
committerJohn Goerzen <jgoerzen@complete.org>
Tue, 27 Mar 2007 07:21:17 +0000 (08:21 +0100)
thanks to bboissin plus offlineimap at gmail dot com
refs #14

offlineimap/repository/IMAP.py

index 33987e29cd4a5aecefd80acc78ec5adbb0ce6cc4..f0e23e7a6b47574e9047b4528a9707e8a3d06335 100644 (file)
@@ -20,7 +20,7 @@ from Base import BaseRepository
 from offlineimap import folder, imaputil, imapserver
 from offlineimap.folder.UIDMaps import MappedIMAPFolder
 from offlineimap.threadutil import ExitNotifyThread
-import re, types, os
+import re, types, os, netrc
 from threading import *
 
 class IMAPRepository(BaseRepository):
@@ -109,6 +109,9 @@ class IMAPRepository(BaseRepository):
        user = self.getconf('remoteuser')
        if user != None:
            return user
+        netrcentry = netrc.netrc().authentificator(self.gethost())
+        if netrcentry:
+            return netrcentry[0]
 
     def getport(self):
         return self.getconfint('remoteport', None)
@@ -146,6 +149,11 @@ class IMAPRepository(BaseRepository):
             password = fd.readline().strip()
             fd.close()
            return password
+        netrcentry = netrc.netrc().authenticators(self.gethost())
+        if netrcentry:
+           user = self.getconf('remoteuser')
+            if user == None or user == netrcentry[0]:
+                return netrcentry[2]
         return None
 
     def getfolder(self, foldername):