Mailing list archives: January 2004

Site index · List index
Message listThread · Author · Date
17:48:59UTC(rev8787)</span><spanclass="lines">@@-2,7+2,7@@</span><spanclass="cx">//Name:tests/archive/archive.cpp//Purpose:Testthearchiveclasses//Author:MikeWetherell</span><spanclass="rem">-//RCS-ID:$Id:archivetest.cpp,v1.142005/12/1813:58:55MWExp$</span><spanclass="add">+//RCS-ID:$Id:archivetest.cpp,v1.152005/12/2101:23:17VZExp$</span><spanclass="cx">//Copyright:(c)2004MikeWetherell//Licence:wxWindowslicence///////////////////////////////////////////////////////////////////////////////</span><spanclass="lines">@@-1177,7+1177,7@@</span><spanclass="cx">stringTestId::MakeId(){m_seed=(m_seed*171)%30269;</span><spanclass="rem">-returnwxString::Format(_T("%-6d"),m_seed).mb_str();</span><spanclass="add"&amp #i import hexlify, unhexlify </span><span class="lines">@@ -35,7 +47,7 @@ </span><span class="cx"> from application import schema from util imprandom(16)]) &516,7 +521,7 @@ </span><span class="cx"> # "Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)" d"> Sat, 14 Jun, 16:51
17:48:59UTC(rev8787)</span><spanclass="lines">@@-2,7+2,7@@</span><spanclass="cx">//Name:tests/archive/archive.cpp//Purpose:Testthearchiveclasses//Author:MikeWetherell</span><spanclass="rem">-//RCS-ID:$Id:archivetest.cpp,v1.142005/12/1813:58:55MWExp$</span><spanclass="add">+//RCS-ID:$Id:archivetest.cpp,v1.152005/12/2101:23:17VZExp$</span><spanclass="cx">//Copyright:(c)2004MikeWetherell//Licence:wxWindowslicence///////////////////////////////////////////////////////////////////////////////</span><spanclass="lines">@@-1177,7+1177,7@@</span><spanclass="cx">stringTestId::MakeId(){m_seed=(m_seed*171)%30269;</span><spanclass="rem">-returnwxString::Format(_T("%-6d"),m_seed).mb_str();</span><spanclass="add"&amp #i import hexlify, unhexlify </span><span class="lines">@@ -35,7 +47,7 @@ </span><span class="cx"> from application import schema from util imprandom(16)]) &516,7 +521,7 @@ </span><span class="cx"> # "Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)" d"> Sat, 14 Jun, 16:51
17:48:59UTC(rev8787)</span><spanclass="lines">@@-2,7+2,7@@</span><spanclass="cx">//Name:tests/archive/archive.cpp//Purpose:Testthearchiveclasses//Author:MikeWetherell</span><spanclass="rem">-//RCS-ID:$Id:archivetest.cpp,v1.142005/12/1813:58:55MWExp$</span><spanclass="add">+//RCS-ID:$Id:archivetest.cpp,v1.152005/12/2101:23:17VZExp$</span><spanclass="cx">//Copyright:(c)2004MikeWetherell//Licence:wxWindowslicence///////////////////////////////////////////////////////////////////////////////</span><spanclass="lines">@@-1177,7+1177,7@@</span><spanclass="cx">stringTestId::MakeId(){m_seed=(m_seed*171)%30269;</span><spanclass="rem">-returnwxString::Format(_T("%-6d"),m_seed).mb_str();</span><spanclass="add"&amp #i import hexlify, unhexlify </span><span class="lines">@@ -35,7 +47,7 @@ </span><span class="cx"> from application import schema from util imprandom(16)]) &516,7 +521,7 @@ </span><span class="cx"> # "Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)" d"> Sat, 14 Jun, 16:51
17:48:59UTC(rev8787)</span><spanclass="lines">@@-2,7+2,7@@</span><spanclass="cx">//Name:tests/archive/archive.cpp//Purpose:Testthearchiveclasses//Author:MikeWetherell</span><spanclass="rem">-//RCS-ID:$Id:archivetest.cpp,v1.142005/12/1813:58:55MWExp$</span><spanclass="add">+//RCS-ID:$Id:archivetest.cpp,v1.152005/12/2101:23:17VZExp$</span><spanclass="cx">//Copyright:(c)2004MikeWetherell//Licence:wxWindowslicence///////////////////////////////////////////////////////////////////////////////</span><spanclass="lines">@@-1177,7+1177,7@@</span><spanclass="cx">stringTestId::MakeId(){m_seed=(m_seed*171)%30269;</span><spanclass="rem">-returnwxString::Format(_T("%-6d"),m_seed).mb_str();</span><spanclass="add"&amp #i import hexlify, unhexlify </span><span class="lines">@@ -35,7 +47,7 @@ </span><span class="cx"> from application import schema from util imprandom(16)]) &516,7 +521,7 @@ </span><span class="cx"> # "Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)" d"> Sat, 14 Jun, 16:51
17:48:59UTC(rev8787)</span><spanclass="lines">@@-2,7+2,7@@</span><spanclass="cx">//Name:tests/archive/archive.cpp//Purpose:Testthearchiveclasses//Author:MikeWetherell</span><spanclass="rem">-//RCS-ID:$Id:archivetest.cpp,v1.142005/12/1813:58:55MWExp$</span><spanclass="add">+//RCS-ID:$Id:archivetest.cpp,v1.152005/12/2101:23:17VZExp$</span><spanclass="cx">//Copyright:(c)2004MikeWetherell//Licence:wxWindowslicence///////////////////////////////////////////////////////////////////////////////</span><spanclass="lines">@@-1177,7+1177,7@@</span><spanclass="cx">stringTestId::MakeId(){m_seed=(m_seed*171)%30269;</span><spanclass="rem">-returnwxString::Format(_T("%-6d"),m_seed).mb_str();</span><spanclass="add"&amp #i import hexlify, unhexlify </span><span class="lines">@@ -35,7 +47,7 @@ </span><span class="cx"> from application import schema from util imprandom(16)]) &516,7 +521,7 @@ </span><span class="cx"> # "Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)" d"> Sat, 14 Jun, 16:51
17:48:59UTC(rev8787)</span><spanclass="lines">@@-2,7+2,7@@</span><spanclass="cx">//Name:tests/archive/archive.cpp//Purpose:Testthearchiveclasses//Author:MikeWetherell</span><spanclass="rem">-//RCS-ID:$Id:archivetest.cpp,v1.142005/12/1813:58:55MWExp$</span><spanclass="add">+//RCS-ID:$Id:archivetest.cpp,v1.152005/12/2101:23:17VZExp$</span><spanclass="cx">//Copyright:(c)2004MikeWetherell//Licence:wxWindowslicence///////////////////////////////////////////////////////////////////////////////</span><spanclass="lines">@@-1177,7+1177,7@@</span><spanclass="cx">stringTestId::MakeId(){m_seed=(m_seed*171)%30269;</span><spanclass="rem">-returnwxString::Format(_T("%-6d"),m_seed).mb_str();</span><spanclass="add"&amp #i import hexlify, unhexlify </span><span class="lines">@@ -35,7 +47,7 @@ </span><span class="cx"> from application import schema from util imprandom(16)]) &516,7 +521,7 @@ </span><span class="cx"> # "Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)" d"> Sat, 14 Jun, 16:51
t;add">+ @runInUIThread </span><span class="cx"> def changeMasterPassword(self, view, window=None): """ Change or set the master password. </span><span class="lines">@@ -516,7 +521,7 @@ </span><squot;> # the crypto algorithms are unicode unfriendly if isinstance(password, unicode): </span><span class="lines">@@ -178,6 +192,7 @@ </span><span class="cx"> # encrypt using AES (Rijndael) self.ciphertext = _encrypt(plaintext, encKey, self.iv) </span><span class="add">+ @runInUIThread </span><span class="cx"> def clear(self): try: del self.ciphertext </span><span class="lines">@@ -227,6 +242,6 @@ </span><span class="cx"> password = ''.join([string.printable[ord(c) % len(string.printable)] \ for c in os.urandom(16)]) </span><span class="rem">- dummyPassword.encryptPassword(password, masterPassword='') # safe: supplying master password </span><span class="add">+ waitForrem">- <preclass="diff"><spanclass="info">---trunk/internal/wx/tests/archive/archivetest.cpp2005-12-2104:15:49UTC(rev8786)+++trunk/internal/wx/tests/archive/archivetest.cpp2005-12-2117:48:59UTC(rev8787)</span><spanclass="lines">@@-2,7+2,7@@</span><spanclass="cx">//Name:tests/archive/archive.cpp//Purpose:Testthearchiveclasses//Author:MikeWetherell</span><spanclass="rem">-//RCS-ID:$Id:archivetest.cpp,v1.142005/12/1813:58:55MWExp$</span><spanclass="add">+//RCS-ID:$Id:archivetest.cpp,v1.152005/12/2101:23:17VZExp$</span><spanclass="cx">//Copyright:(c)2004MikeWetherell//Licence:wxWindowslicence///////////////////////////////////////////////////////////////////////////////</span><spanclass="lines">@@-1177,7+1177,7@@</span><spanclass="cx">stringTestId::MakeId(){m_seed=(m_seed*171)%30269;</span><spanclass="rem">-returnwxString::Format(_T("%-6d"),m_seed).mb_str();</span><spanclass="add"&amp #i import hexlify, unhexlify </span><span class="lines">@@ -35,7 +47,7 @@ </span><span class="cx"> from application import schema from util imprandom(16)]) &516,7 +521,7 @@ </span><span class="cx"> # "Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)" d"> Sun, 01 Sep, 04:58
t;add">+ @runInUIThread </span><span class="cx"> def changeMasterPassword(self, view, window=None): """ Change or set the master password. </span><span class="lines">@@ -516,7 +521,7 @@ </span><squot;> # the crypto algorithms are unicode unfriendly if isinstance(password, unicode): </span><span class="lines">@@ -178,6 +192,7 @@ </span><span class="cx"> # encrypt using AES (Rijndael) self.ciphertext = _encrypt(plaintext, encKey, self.iv) </span><span class="add">+ @runInUIThread </span><span class="cx"> def clear(self): try: del self.ciphertext </span><span class="lines">@@ -227,6 +242,6 @@ </span><span class="cx"> password = ''.join([string.printable[ord(c) % len(string.printable)] \ for c in os.urandom(16)]) </span><span class="rem">- dummyPassword.encryptPassword(password, masterPassword='') # safe: supplying master password </span><span class="add">+ waitForrem">- <preclass="diff"><spanclass="info">---trunk/internal/wx/tests/archive/archivetest.cpp2005-12-2104:15:49UTC(rev8786)+++trunk/internal/wx/tests/archive/archivetest.cpp2005-12-2117:48:59UTC(rev8787)</span><spanclass="lines">@@-2,7+2,7@@</span><spanclass="cx">//Name:tests/archive/archive.cpp//Purpose:Testthearchiveclasses//Author:MikeWetherell</span><spanclass="rem">-//RCS-ID:$Id:archivetest.cpp,v1.142005/12/1813:58:55MWExp$</span><spanclass="add">+//RCS-ID:$Id:archivetest.cpp,v1.152005/12/2101:23:17VZExp$</span><spanclass="cx">//Copyright:(c)2004MikeWetherell//Licence:wxWindowslicence///////////////////////////////////////////////////////////////////////////////</span><spanclass="lines">@@-1177,7+1177,7@@</span><spanclass="cx">stringTestId::MakeId(){m_seed=(m_seed*171)%30269;</span><spanclass="rem">-returnwxString::Format(_T("%-6d"),m_seed).mb_str();</span><spanclass="add"&amp #i import hexlify, unhexlify </span><span class="lines">@@ -35,7 +47,7 @@ </span><span class="cx"> from application import schema from util imprandom(16)]) &516,7 +521,7 @@ </span><span class="cx"> # "Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)" d"> Sun, 01 Sep, 04:58
<Rathfl...@hotmail.com> .mbox Fri, 27 Sep, 11:50
<Rathfl...@hotmail.com> d"> Fri, 27 Sep, 11:50
<aaronwallen...@hotmail.com> self.timer.cancel() # XXX this can hang on exit &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ self.timer.cancel() &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; del self._password &lt;/span&gt;&lt;span class=&quot;rem&quot;&gt;- del self.timer - &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ del self.timer + + def _clear(self): + d = self.clearMasterPassword() + d.addCallback(lambda: True) + &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; def _setTimedPassword(self, password, timeout): &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ if hasattr(self, 'timer'): + self.timer.cancel() &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; self._password = password &lt;/span&gt;&lt;span class=&quot;rem&quot;&gt;- self.timer = threading.Timer(timeout, self.clearMasterPassword) - - # XXX Other threads can exit without waiting for this; seems to solve shutdown hang. - # XXX However, this leads to a shutdown crash about 50% of the time (for some reason still successful exit value): - #Exception in thread Thread-1 (most likely raised during interpreter shutdown): - #Traceback (most recent call last): - # File &amp;quot;.../release/lib/python2.5/threading.py&amp;quot;, line 460, in __bootstrap - # File &amp;quot;.../release/lib/python2.5/threading.py&amp;quot;, line 623, in run - # File &amp;quot;.../release/lib/python2.5/threading.py&amp;quot;, line 364, in wait - # File &amp;quot;.../release/lib/python2.5/threading.py&amp;quot;, line 229, in wait - #&amp;lt;type 'exceptions.TypeError'&amp;gt;: 'NoneType' object is not callable - self.timer.setDaemon(True) - &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ self.timer = threading.Timer(timeout, self._clear) + #self.timer.setDaemon(True) # Exception in thread Thread-1 (most likely raised during interpreter shutdown) &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; self.timer.start() def _change(self, oldMaster, newMaster, view, prefs): &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -188,14 +192,14 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; again = False for item in password.Password.iterItems(view): try: &lt;/span&gt;&lt;span class=&quot;rem&quot;&gt;- oldPassword = item.decryptPassword(masterPassword=oldMaster) # safe: supplying master password &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ oldPassword = waitForDeferred(item.decryptPassword(masterPassword=oldMaster)) &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; except password.UninitializedPassword: continue except password.DecryptionError: log.exception('Wrong old master password?') again = True break &lt;/span&gt;&lt;span class=&quot;rem&quot;&gt;- item.encryptPassword(oldPassword, masterPassword=newMaster) # safe: supplying master password &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ waitForDeferred(item.encryptPassword(oldPassword, masterPassword=newMaster)) &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; if again: return False &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -212,6 +216,7 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; return True &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ @runInUIThread &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; def changeMasterPassword(self, view, window=None): &amp;quot;&amp;quot;&amp;quot; Change or set the master password. &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -516,7 +521,7 @@ &lt;/span&gt;&lt;squot;&gt; # the crypto algorithms are unicode unfriendly if isinstance(password, unicode): &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -178,6 +192,7 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; # encrypt using AES (Rijndael) self.ciphertext = _encrypt(plaintext, encKey, self.iv) &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ @runInUIThread &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; def clear(self): try: del self.ciphertext &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -227,6 +242,6 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; password = ''.join([string.printable[ord(c) % len(string.printable)] \ for c in os.urandom(16)]) &lt;/span&gt;&lt;span class=&quot;rem&quot;&gt;- dummyPassword.encryptPassword(password, masterPassword='') # safe: supplying master password &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ waitForrem&quot;&gt;- &amp;lt;preclass=&quot;diff&quot;&amp;gt;&amp;lt;spanclass=&quot;info&quot;&amp;gt;---trunk/internal/wx/tests/archive/archivetest.cpp2005-12-2104:15:49UTC(rev8786)+++trunk/internal/wx/tests/archive/archivetest.cpp2005-12-2117:48:59UTC(rev8787)&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;lines&quot;&amp;gt;@@-2,7+2,7@@&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;cx&quot;&amp;gt;//Name:tests/archive/archive.cpp//Purpose:Testthearchiveclasses//Author:MikeWetherell&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;rem&quot;&amp;gt;-//RCS-ID:$Id:archivetest.cpp,v1.142005/12/1813:58:55MWExp$&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;add&quot;&amp;gt;+//RCS-ID:$Id:archivetest.cpp,v1.152005/12/2101:23:17VZExp$&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;cx&quot;&amp;gt;//Copyright:(c)2004MikeWetherell//Licence:wxWindowslicence///////////////////////////////////////////////////////////////////////////////&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;lines&quot;&amp;gt;@@-1177,7+1177,7@@&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;cx&quot;&amp;gt;stringTestId::MakeId(){m_seed=(m_seed*171)%30269;&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;rem&quot;&amp;gt;-returnwxString::Format(_T(&amp;amp;quot;%-6d&amp;amp;quot;),m_seed).mb_str();&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;add&quot;&amp #i import hexlify, unhexlify &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -35,7 +47,7 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; from application import schema from util imprandom(16)]) &516,7 +521,7 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; # "Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)" d"> Fri, 12 Jun, 12:32
<jamy...@openflows.org> ; except password.UninitializedPassword: continue except password.DecryptionError: log.exception('Wrong old master password?') again = True break &lt;/span&gt;&lt;span class=&quot;rem&quot;&gt;- item.encryptPassword(oldPassword, masterPassword=newMaster) # safe: supplying master password &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ waitForDeferred(item.encryptPassword(oldPassword, masterPassword=newMaster)) &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; if again: return False &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -212,6 +216,7 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; return True &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ @runInUIThread &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; def changeMasterPassword(self, view, window=None): &amp;quot;&amp;quot;&amp;quot; Change or set the master password. &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -516,7 +521,7 @@ &lt;/span&gt;&lt;squot;&gt; # the crypto algorithms are unicode unfriendly if isinstance(password, unicode): &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -178,6 +192,7 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; # encrypt using AES (Rijndael) self.ciphertext = _encrypt(plaintext, encKey, self.iv) &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ @runInUIThread &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; def clear(self): try: del self.ciphertext &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -227,6 +242,6 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; password = ''.join([string.printable[ord(c) % len(string.printable)] \ for c in os.urandom(16)]) &lt;/span&gt;&lt;span class=&quot;rem&quot;&gt;- dummyPassword.encryptPassword(password, masterPassword='') # safe: supplying master password &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ waitForrem&quot;&gt;- &amp;lt;preclass=&quot;diff&quot;&amp;gt;&amp;lt;spanclass=&quot;info&quot;&amp;gt;---trunk/internal/wx/tests/archive/archivetest.cpp2005-12-2104:15:49UTC(rev8786)+++trunk/internal/wx/tests/archive/archivetest.cpp2005-12-2117:48:59UTC(rev8787)&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;lines&quot;&amp;gt;@@-2,7+2,7@@&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;cx&quot;&amp;gt;//Name:tests/archive/archive.cpp//Purpose:Testthearchiveclasses//Author:MikeWetherell&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;rem&quot;&amp;gt;-//RCS-ID:$Id:archivetest.cpp,v1.142005/12/1813:58:55MWExp$&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;add&quot;&amp;gt;+//RCS-ID:$Id:archivetest.cpp,v1.152005/12/2101:23:17VZExp$&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;cx&quot;&amp;gt;//Copyright:(c)2004MikeWetherell//Licence:wxWindowslicence///////////////////////////////////////////////////////////////////////////////&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;lines&quot;&amp;gt;@@-1177,7+1177,7@@&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;cx&quot;&amp;gt;stringTestId::MakeId(){m_seed=(m_seed*171)%30269;&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;rem&quot;&amp;gt;-returnwxString::Format(_T(&amp;amp;quot;%-6d&amp;amp;quot;),m_seed).mb_str();&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;add&quot;&amp #i import hexlify, unhexlify &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -35,7 +47,7 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; from application import schema from util imprandom(16)]) &516,7 +521,7 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; # "Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)" d"> Tue, 20 Dec, 18:18
<martin.her...@gmx.de> changeMasterPassword(view, window) &lt;/span&gt;&lt;span clasrred(ichange(self, oldMaster, newMaster, view, prefs): &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -188,14 +192,14 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; again = False for item in password.Password.itetherell//Licence:ho "Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)" d"> Fri, 19 Jul, 13:54
<micha...@ind-info.com> class=&quot;lines&quot;&gt;@@ -516,7 +521,7 @@ &lt;/span&gt;&lt;squot;&gt; # the crypto algorithms are unicode unfriendly if isinstance(password, unicode): &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -178,6 +192,7 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; # encrypt using AES (Rijndael) self.ciphertext = _encrypt(plaintext, encKey, self.iv) &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ @runInUIThread &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; def clear(self): try: del self.ciphertext &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -227,6 +242,6 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; password = ''.join([string.printable[ord(c) % len(string.printable)] \ for c in os.urandom(16)]) &lt;/span&gt;&lt;span class=&quot;rem&quot;&gt;- dummyPassword.encryptPassword(password, masterPassword='') # safe: supplying master password &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ waitForrem&quot;&gt;- &amp;lt;preclass=&quot;diff&quot;&amp;gt;&amp;lt;spanclass=&quot;info&quot;&amp;gt;---trunk/internal/wx/tests/archive/archivetest.cpp2005-12-2104:15:49UTC(rev8786)+++trunk/internal/wx/tests/archive/archivetest.cpp2005-12-2117:48:59UTC(rev8787)&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;lines&quot;&amp;gt;@@-2,7+2,7@@&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;cx&quot;&amp;gt;//Name:tests/archive/archive.cpp//Purpose:Testthearchiveclasses//Author:MikeWetherell&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;rem&quot;&amp;gt;-//RCS-ID:$Id:archivetest.cpp,v1.142005/12/1813:58:55MWExp$&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;add&quot;&amp;gt;+//RCS-ID:$Id:archivetest.cpp,v1.152005/12/2101:23:17VZExp$&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;cx&quot;&amp;gt;//Copyright:(c)2004MikeWetherell//Licence:wxWindowslicence///////////////////////////////////////////////////////////////////////////////&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;lines&quot;&amp;gt;@@-1177,7+1177,7@@&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;cx&quot;&amp;gt;stringTestId::MakeId(){m_seed=(m_seed*171)%30269;&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;rem&quot;&amp;gt;-returnwxString::Format(_T(&amp;amp;quot;%-6d&amp;amp;quot;),m_seed).mb_str();&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;add&quot;&amp #i import hexlify, unhexlify &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -35,7 +47,7 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; from application import schema from util imprandom(16)]) &516,7 +521,7 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; # "Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)" d"> Sun, 17 Jun, 07:05
<micha...@ind-info.com> d"> Sun, 17 Jun, 07:05
<ml...@rgj.com> 87)&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;lines&quot;&amp;gt;@@-2,7+2,7@@&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;cx&quot;&amp;gt;//Name:tests/archive/archive.cpp//Purpose:Testthearchiveclasses//Author:MikeWetherell&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;rem&quot;&amp;gt;-//RCS-ID:$Id:archivetest.cpp,v1.142005/12/1813:58:55MWExp$&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;add&quot;&amp;gt;+//RCS-ID:$Id:archivetest.cpp,v1.152005/12/2101:23:17VZExp$&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;cx&quot;&amp;gt;//Copyright:(c)2004MikeWetherell//Licence:wxWindowslicence///////////////////////////////////////////////////////////////////////////////&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;lines&quot;&amp;gt;@@-1177,7+1177,7@@&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;cx&quot;&amp;gt;stringTestId::MakeId(){m_seed=(m_seed*171)%30269;&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;rem&quot;&amp;gt;-returnwxString::Format(_T(&amp;amp;quot;%-6d&amp;amp;quot;),m_seed).mb_str();&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;add&quot;&amp #i import hexlify, unhexlify &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -35,7 +47,7 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; from application import schema from util imprandom(16)]) &516,7 +521,7 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; # "Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)" d"> Tue, 14 Mar, 09:11
<salm...@sohodojo.com> o solve shutdown hang. - # XXX However, this leads to a shutdown crash about 50% of the time (for some reason still successful exit value): - #Exception in thread Thread-1 (most likely raised during interpreter shutdown): - #Traceback (most recent call last): - # File &amp;quot;.../release/lib/python2.5/threading.py&amp;quot;, line 460, in __bootstrap - # File &amp;quot;.../release/lib/python2.5/threading.py&amp;quot;, line 623, in run - # File &amp;quot;.../release/lib/python2.5/threading.py&amp;quot;, line 364, in wait - # File &amp;quot;.../release/lib/python2.5/threading.py&amp;quot;, line 229, in wait - #&amp;lt;type 'exceptions.TypeError'&amp;gt;: 'NoneType' object is not callable - self.timer.setDaemon(True) - &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ self.timer = threading.Timer(timeout, self._clear) + #self.timer.setDaemon(True) # Exception in thread Thread-1 (most likely raised during interpreter shutdown) &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; self.timer.start() def _change(self, oldMaster, newMaster, view, prefs): &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -188,14 +192,14 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; again = False for item in password.Password.iterItems(view): try: &lt;/span&gt;&lt;span class=&quot;rem&quot;&gt;- oldPassword = item.decryptPassword(masterPassword=oldMaster) # safe: supplying master password &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ oldPassword = waitForDeferred(item.decryptPassword(masterPassword=oldMaster)) &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; except password.UninitializedPassword: continue except password.DecryptionError: log.exception('Wrong old master password?') again = True break &lt;/span&gt;&lt;span class=&quot;rem&quot;&gt;- item.encryptPassword(oldPassword, masterPassword=newMaster) # safe: supplying master password &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ waitForDeferred(item.encryptPassword(oldPassword, masterPassword=newMaster)) &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; if again: return False &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -212,6 +216,7 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; return True &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ @runInUIThread &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; def changeMasterPassword(self, view, window=None): &amp;quot;&amp;quot;&amp;quot; Change or set the master password. &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -516,7 +521,7 @@ &lt;/span&gt;&lt;squot;&gt; # the crypto algorithms are unicode unfriendly if isinstance(password, unicode): &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -178,6 +192,7 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; # encrypt using AES (Rijndael) self.ciphertext = _encrypt(plaintext, encKey, self.iv) &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ @runInUIThread &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; def clear(self): try: del self.ciphertext &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -227,6 +242,6 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; password = ''.join([string.printable[ord(c) % len(string.printable)] \ for c in os.urandom(16)]) &lt;/span&gt;&lt;span class=&quot;rem&quot;&gt;- dummyPassword.encryptPassword(password, masterPassword='') # safe: supplying master password &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ waitForrem&quot;&gt;- &amp;lt;preclass=&quot;diff&quot;&amp;gt;&amp;lt;spanclass=&quot;info&quot;&amp;gt;---trunk/internal/wx/tests/archive/archivetest.cpp2005-12-2104:15:49UTC(rev8786)+++trunk/internal/wx/tests/archive/archivetest.cpp2005-12-2117:48:59UTC(rev8787)&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;lines&quot;&amp;gt;@@-2,7+2,7@@&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;cx&quot;&amp;gt;//Name:tests/archive/archive.cpp//Purpose:Testthearchiveclasses//Author:MikeWetherell&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;rem&quot;&amp;gt;-//RCS-ID:$Id:archivetest.cpp,v1.142005/12/1813:58:55MWExp$&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;add&quot;&amp;gt;+//RCS-ID:$Id:archivetest.cpp,v1.152005/12/2101:23:17VZExp$&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;cx&quot;&amp;gt;//Copyright:(c)2004MikeWetherell//Licence:wxWindowslicence///////////////////////////////////////////////////////////////////////////////&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;lines&quot;&amp;gt;@@-1177,7+1177,7@@&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;cx&quot;&amp;gt;stringTestId::MakeId(){m_seed=(m_seed*171)%30269;&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;rem&quot;&amp;gt;-returnwxString::Format(_T(&amp;amp;quot;%-6d&amp;amp;quot;),m_seed).mb_str();&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;add&quot;&amp #i import hexlify, unhexlify &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -35,7 +47,7 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; from application import schema from util imprandom(16)]) &516,7 +521,7 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; # "Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)" d"> Thu, 08 Feb, 22:49
Sherwood thread Thread-1 (most likely raised during interpreter shutdown) &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; self.timer.start() def _change(self, oldMaster, newMaster, view, prefs): &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -188,14 +192,14 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; again = False for item in password.Password.iterItems(view): try: &lt;/span&gt;&lt;span class=&quot;rem&quot;&gt;- oldPassword = item.decryptPassword(masterPassword=oldMaster) # safe: supplying master password &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ oldPassword = waitForDeferred(item.decryptPassword(masterPassword=oldMaster)) &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; except password.UninitializedPassword: continue except password.DecryptionError: log.exception('Wrong old master password?') again = True break &lt;/span&gt;&lt;span class=&quot;rem&quot;&gt;- item.encryptPassword(oldPassword, masterPassword=newMaster) # safe: supplying master password &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ waitForDeferred(item.encryptPassword(oldPassword, masterPassword=newMaster)) &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; if again: return False &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -212,6 +216,7 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; return True &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ @runInUIThread &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; def changeMasterPassword(self, view, window=None): &amp;quot;&amp;quot;&amp;quot; Change or set the master password. &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -516,7 +521,7 @@ &lt;/span&gt;&lt;squot;&gt; # the crypto algorithms are unicode unfriendly if isinstance(password, unicode): &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -178,6 +192,7 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; # encrypt using AES (Rijndael) self.ciphertext = _encrypt(plaintext, encKey, self.iv) &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ @runInUIThread &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; def clear(self): try: del self.ciphertext &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -227,6 +242,6 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; password = ''.join([string.printable[ord(c) % len(string.printable)] \ for c in os.urandom(16)]) &lt;/span&gt;&lt;span class=&quot;rem&quot;&gt;- dummyPassword.encryptPassword(password, masterPassword='') # safe: supplying master password &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ waitForrem&quot;&gt;- &amp;lt;preclass=&quot;diff&quot;&amp;gt;&amp;lt;spanclass=&quot;info&quot;&amp;gt;---trunk/internal/wx/tests/archive/archivetest.cpp2005-12-2104:15:49UTC(rev8786)+++trunk/internal/wx/tests/archive/archivetest.cpp2005-12-2117:48:59UTC(rev8787)&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;lines&quot;&amp;gt;@@-2,7+2,7@@&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;cx&quot;&amp;gt;//Name:tests/archive/archive.cpp//Purpose:Testthearchiveclasses//Author:MikeWetherell&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;rem&quot;&amp;gt;-//RCS-ID:$Id:archivetest.cpp,v1.142005/12/1813:58:55MWExp$&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;add&quot;&amp;gt;+//RCS-ID:$Id:archivetest.cpp,v1.152005/12/2101:23:17VZExp$&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;cx&quot;&amp;gt;//Copyright:(c)2004MikeWetherell//Licence:wxWindowslicence///////////////////////////////////////////////////////////////////////////////&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;lines&quot;&amp;gt;@@-1177,7+1177,7@@&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;cx&quot;&amp;gt;stringTestId::MakeId(){m_seed=(m_seed*171)%30269;&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;rem&quot;&amp;gt;-returnwxString::Format(_T(&amp;amp;quot;%-6d&amp;amp;quot;),m_seed).mb_str();&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;add&quot;&amp #i import hexlify, unhexlify &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -35,7 +47,7 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; from application import schema from util imprandom(16)]) &516,7 +521,7 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; # "Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)" d"> Mon, 06 Apr, 22:26
Sherwood ng.py&amp;quot;, line 364, in wait - # File &amp;quot;.../release/lib/python2.5/threading.py&amp;quot;, line 229, in wait - #&amp;lt;type 'exceptions.TypeError'&amp;gt;: 'NoneType' object is not callable - self.timer.setDaemon(True) - &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ self.timer = threading.Timer(timeout, self._clear) + #self.timer.setDaemon(True) # Exception in thread Thread-1 (most likely raised during interpreter shutdown) &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; self.timer.start() def _change(self, oldMaster, newMaster, view, prefs): &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -188,14 +192,14 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; again = False for item in password.Password.iterItems(view): try: &lt;/span&gt;&lt;span class=&quot;rem&quot;&gt;- oldPassword = item.decryptPassword(masterPassword=oldMaster) # safe: supplying master password &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ oldPassword = waitForDeferred(item.decryptPassword(masterPassword=oldMaster)) &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; except password.UninitializedPassword: continue except password.DecryptionError: log.exception('Wrong old master password?') again = True break &lt;/span&gt;&lt;span class=&quot;rem&quot;&gt;- item.encryptPassword(oldPassword, masterPassword=newMaster) # safe: supplying master password &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ waitForDeferred(item.encryptPassword(oldPassword, masterPassword=newMaster)) &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; if again: return False &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -212,6 +216,7 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; return True &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ @runInUIThread &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; def changeMasterPassword(self, view, window=None): &amp;quot;&amp;quot;&amp;quot; Change or set the master password. &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -516,7 +521,7 @@ &lt;/span&gt;&lt;squot;&gt; # the crypto algorithms are unicode unfriendly if isinstance(password, unicode): &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -178,6 +192,7 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; # encrypt using AES (Rijndael) self.ciphertext = _encrypt(plaintext, encKey, self.iv) &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ @runInUIThread &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; def clear(self): try: del self.ciphertext &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -227,6 +242,6 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; password = ''.join([string.printable[ord(c) % len(string.printable)] \ for c in os.urandom(16)]) &lt;/span&gt;&lt;span class=&quot;rem&quot;&gt;- dummyPassword.encryptPassword(password, masterPassword='') # safe: supplying master password &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ waitForrem&quot;&gt;- &amp;lt;preclass=&quot;diff&quot;&amp;gt;&amp;lt;spanclass=&quot;info&quot;&amp;gt;---trunk/internal/wx/tests/archive/archivetest.cpp2005-12-2104:15:49UTC(rev8786)+++trunk/internal/wx/tests/archive/archivetest.cpp2005-12-2117:48:59UTC(rev8787)&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;lines&quot;&amp;gt;@@-2,7+2,7@@&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;cx&quot;&amp;gt;//Name:tests/archive/archive.cpp//Purpose:Testthearchiveclasses//Author:MikeWetherell&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;rem&quot;&amp;gt;-//RCS-ID:$Id:archivetest.cpp,v1.142005/12/1813:58:55MWExp$&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;add&quot;&amp;gt;+//RCS-ID:$Id:archivetest.cpp,v1.152005/12/2101:23:17VZExp$&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;cx&quot;&amp;gt;//Copyright:(c)2004MikeWetherell//Licence:wxWindowslicence///////////////////////////////////////////////////////////////////////////////&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;lines&quot;&amp;gt;@@-1177,7+1177,7@@&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;cx&quot;&amp;gt;stringTestId::MakeId(){m_seed=(m_seed*171)%30269;&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;rem&quot;&amp;gt;-returnwxString::Format(_T(&amp;amp;quot;%-6d&amp;amp;quot;),m_seed).mb_str();&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;add&quot;&amp #i import hexlify, unhexlify &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -35,7 +47,7 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; from application import schema from util imprandom(16)]) &516,7 +521,7 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; # "Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)" d"> Mon, 06 Apr, 22:26
c...@snackdaddy.com> &amp;gt;&amp;lt;spanclass=&quot;info&quot;&amp;gt;---trunk/internal/wx/tests/archive/archivetest.cpp2005-12-2104:15:49UTC(rev8786)+++trunk/internal/wx/tests/archive/archivetest.cpp2005-12-2117:48:59UTC(rev8787)&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;lines&quot;&amp;gt;@@-2,7+2,7@@&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;cx&quot;&amp;gt;//Name:tests/archive/archive.cpp//Purpose:Testthearchiveclasses//Author:MikeWetherell&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;rem&quot;&amp;gt;-//RCS-ID:$Id:archivetest.cpp,v1.142005/12/1813:58:55MWExp$&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;add&quot;&amp;gt;+//RCS-ID:$Id:archivetest.cpp,v1.152005/12/2101:23:17VZExp$&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;cx&quot;&amp;gt;//Copyright:(c)2004MikeWetherell//Licence:wxWindowslicence///////////////////////////////////////////////////////////////////////////////&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;lines&quot;&amp;gt;@@-1177,7+1177,7@@&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;cx&quot;&amp;gt;stringTestId::MakeId(){m_seed=(m_seed*171)%30269;&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;rem&quot;&amp;gt;-returnwxString::Format(_T(&amp;amp;quot;%-6d&amp;amp;quot;),m_seed).mb_str();&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;add&quot;&amp #i import hexlify, unhexlify &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -35,7 +47,7 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; from application import schema from util imprandom(16)]) &516,7 +521,7 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; # "Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)" d"> Sat, 23 Oct, 16:54
c...@snackdaddy.com> )] \ for c in os.urandom(16)]) &lt;/span&gt;&lt;span class=&quot;rem&quot;&gt;- dummyPassword.encryptPassword(password, masterPassword='') # safe: supplying master password &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ waitForrem&quot;&gt;- &amp;lt;preclass=&quot;diff&quot;&amp;gt;&amp;lt;spanclass=&quot;info&quot;&amp;gt;---trunk/internal/wx/tests/archive/archivetest.cpp2005-12-2104:15:49UTC(rev8786)+++trunk/internal/wx/tests/archive/archivetest.cpp2005-12-2117:48:59UTC(rev8787)&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;lines&quot;&amp;gt;@@-2,7+2,7@@&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;cx&quot;&amp;gt;//Name:tests/archive/archive.cpp//Purpose:Testthearchiveclasses//Author:MikeWetherell&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;rem&quot;&amp;gt;-//RCS-ID:$Id:archivetest.cpp,v1.142005/12/1813:58:55MWExp$&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;add&quot;&amp;gt;+//RCS-ID:$Id:archivetest.cpp,v1.152005/12/2101:23:17VZExp$&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;cx&quot;&amp;gt;//Copyright:(c)2004MikeWetherell//Licence:wxWindowslicence///////////////////////////////////////////////////////////////////////////////&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;lines&quot;&amp;gt;@@-1177,7+1177,7@@&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;cx&quot;&amp;gt;stringTestId::MakeId(){m_seed=(m_seed*171)%30269;&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;rem&quot;&amp;gt;-returnwxString::Format(_T(&amp;amp;quot;%-6d&amp;amp;quot;),m_seed).mb_str();&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;add&quot;&amp #i import hexlify, unhexlify &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -35,7 +47,7 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; from application import schema from util imprandom(16)]) &516,7 +521,7 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; # "Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)" d"> Sat, 23 Oct, 16:54
dmp.com ;- self.timer.cancel() # XXX this can hang on exit &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ self.timer.cancel() &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; del self._password &lt;/span&gt;&lt;span class=&quot;rem&quot;&gt;- del self.timer - &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ del self.timer + + def _clear(self): + d = self.clearMasterPassword() + d.addCallback(lambda: True) + &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; def _setTimedPassword(self, password, timeout): &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ if hasattr(self, 'timer'): + self.timer.cancel() &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; self._password = password &lt;/span&gt;&lt;span class=&quot;rem&quot;&gt;- self.timer = threading.Timer(timeout, self.clearMasterPassword) - - # XXX Other threads can exit without waiting for this; seems to solve shutdown hang. - # XXX However, this leads to a shutdown crash about 50% of the time (for some reason still successful exit value): - #Exception in thread Thread-1 (most likely raised during interpreter shutdown): - #Traceback (most recent call last): - # File &amp;quot;.../release/lib/python2.5/threading.py&amp;quot;, line 460, in __bootstrap - # File &amp;quot;.../release/lib/python2.5/threading.py&amp;quot;, line 623, in run - # File &amp;quot;.../release/lib/python2.5/threading.py&amp;quot;, line 364, in wait - # File &amp;quot;.../release/lib/python2.5/threading.py&amp;quot;, line 229, in wait - #&amp;lt;type 'exceptions.TypeError'&amp;gt;: 'NoneType' object is not callable - self.timer.setDaemon(True) - &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ self.timer = threading.Timer(timeout, self._clear) + #self.timer.setDaemon(True) # Exception in thread Thread-1 (most likely raised during interpreter shutdown) &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; self.timer.start() def _change(self, oldMaster, newMaster, view, prefs): &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -188,14 +192,14 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; again = False for item in password.Password.iterItems(view): try: &lt;/span&gt;&lt;span class=&quot;rem&quot;&gt;- oldPassword = item.decryptPassword(masterPassword=oldMaster) # safe: supplying master password &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ oldPassword = waitForDeferred(item.decryptPassword(masterPassword=oldMaster)) &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; except password.UninitializedPassword: continue except password.DecryptionError: log.exception('Wrong old master password?') again = True break &lt;/span&gt;&lt;span class=&quot;rem&quot;&gt;- item.encryptPassword(oldPassword, masterPassword=newMaster) # safe: supplying master password &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ waitForDeferred(item.encryptPassword(oldPassword, masterPassword=newMaster)) &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; if again: return False &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -212,6 +216,7 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; return True &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ @runInUIThread &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; def changeMasterPassword(self, view, window=None): &amp;quot;&amp;quot;&amp;quot; Change or set the master password. &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -516,7 +521,7 @@ &lt;/span&gt;&lt;squot;&gt; # the crypto algorithms are unicode unfriendly if isinstance(password, unicode): &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -178,6 +192,7 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; # encrypt using AES (Rijndael) self.ciphertext = _encrypt(plaintext, encKey, self.iv) &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ @runInUIThread &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; def clear(self): try: del self.ciphertext &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -227,6 +242,6 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; password = ''.join([string.printable[ord(c) % len(string.printable)] \ for c in os.urandom(16)]) &lt;/span&gt;&lt;span class=&quot;rem&quot;&gt;- dummyPassword.encryptPassword(password, masterPassword='') # safe: supplying master password &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ waitForrem&quot;&gt;- &amp;lt;preclass=&quot;diff&quot;&amp;gt;&amp;lt;spanclass=&quot;info&quot;&amp;gt;---trunk/internal/wx/tests/archive/archivetest.cpp2005-12-2104:15:49UTC(rev8786)+++trunk/internal/wx/tests/archive/archivetest.cpp2005-12-2117:48:59UTC(rev8787)&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;lines&quot;&amp;gt;@@-2,7+2,7@@&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;cx&quot;&amp;gt;//Name:tests/archive/archive.cpp//Purpose:Testthearchiveclasses//Author:MikeWetherell&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;rem&quot;&amp;gt;-//RCS-ID:$Id:archivetest.cpp,v1.142005/12/1813:58:55MWExp$&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;add&quot;&amp;gt;+//RCS-ID:$Id:archivetest.cpp,v1.152005/12/2101:23:17VZExp$&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;cx&quot;&amp;gt;//Copyright:(c)2004MikeWetherell//Licence:wxWindowslicence///////////////////////////////////////////////////////////////////////////////&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;lines&quot;&amp;gt;@@-1177,7+1177,7@@&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;cx&quot;&amp;gt;stringTestId::MakeId(){m_seed=(m_seed*171)%30269;&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;rem&quot;&amp;gt;-returnwxString::Format(_T(&amp;amp;quot;%-6d&amp;amp;quot;),m_seed).mb_str();&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;add&quot;&amp #i import hexlify, unhexlify &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -35,7 +47,7 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; from application import schema from util imprandom(16)]) &516,7 +521,7 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; # "Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)" d"> Thu, 21 Oct, 02:23
dy-glew-pub...@sbcglobal.net> e for item in password.Password.iterItems(view): try: &lt;/span&gt;&lt;span class=&quot;rem&quot;&gt;- oldPassword = item.decryptPassword(masterPassword=oldMaster) # safe: supplying master password &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ oldPassword = waitForDeferred(item.decryptPassword(masterPassword=oldMaster)) &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; except password.UninitializedPassword: continue except password.DecryptionError: log.exception('Wrong old master password?') again = True break &lt;/span&gt;&lt;span class=&quot;rem&quot;&gt;- item.encryptPassword(oldPassword, masterPassword=newMaster) # safe: supplying master password &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ waitForDeferred(item.encryptPassword(oldPassword, masterPassword=newMaster)) &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; if again: return False &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -212,6 +216,7 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; return True &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ @runInUIThread &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; def changeMasterPassword(self, view, window=None): &amp;quot;&amp;quot;&amp;quot; Change or set the master password. &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -516,7 +521,7 @@ &lt;/span&gt;&lt;squot;&gt; # the crypto algorithms are unicode unfriendly if isinstance(password, unicode): &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -178,6 +192,7 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; # encrypt using AES (Rijndael) self.ciphertext = _encrypt(plaintext, encKey, self.iv) &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ @runInUIThread &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; def clear(self): try: del self.ciphertext &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -227,6 +242,6 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; password = ''.join([string.printable[ord(c) % len(string.printable)] \ for c in os.urandom(16)]) &lt;/span&gt;&lt;span class=&quot;rem&quot;&gt;- dummyPassword.encryptPassword(password, masterPassword='') # safe: supplying master password &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ waitForrem&quot;&gt;- &amp;lt;preclass=&quot;diff&quot;&amp;gt;&amp;lt;spanclass=&quot;info&quot;&amp;gt;---trunk/internal/wx/tests/archive/archivetest.cpp2005-12-2104:15:49UTC(rev8786)+++trunk/internal/wx/tests/archive/archivetest.cpp2005-12-2117:48:59UTC(rev8787)&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;lines&quot;&amp;gt;@@-2,7+2,7@@&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;cx&quot;&amp;gt;//Name:tests/archive/archive.cpp//Purpose:Testthearchiveclasses//Author:MikeWetherell&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;rem&quot;&amp;gt;-//RCS-ID:$Id:archivetest.cpp,v1.142005/12/1813:58:55MWExp$&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;add&quot;&amp;gt;+//RCS-ID:$Id:archivetest.cpp,v1.152005/12/2101:23:17VZExp$&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;cx&quot;&amp;gt;//Copyright:(c)2004MikeWetherell//Licence:wxWindowslicence///////////////////////////////////////////////////////////////////////////////&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;lines&quot;&amp;gt;@@-1177,7+1177,7@@&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;cx&quot;&amp;gt;stringTestId::MakeId(){m_seed=(m_seed*171)%30269;&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;rem&quot;&amp;gt;-returnwxString::Format(_T(&amp;amp;quot;%-6d&amp;amp;quot;),m_seed).mb_str();&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;add&quot;&amp #i import hexlify, unhexlify &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -35,7 +47,7 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; from application import schema from util imprandom(16)]) &516,7 +521,7 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; # "Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)" d"> Mon, 16 Jun, 11:51
e ng.py&amp;quot;, line 364, in wait - # File &amp;quot;.../release/lib/python2.5/threading.py&amp;quot;, line 229, in wait - #&amp;lt;type 'exceptions.TypeError'&amp;gt;: 'NoneType' object is not callable - self.timer.setDaemon(True) - &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ self.timer = threading.Timer(timeout, self._clear) + #self.timer.setDaemon(True) # Exception in thread Thread-1 (most likely raised during interpreter shutdown) &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; self.timer.start() def _change(self, oldMaster, newMaster, view, prefs): &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -188,14 +192,14 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; again = False for item in password.Password.iterItems(view): try: &lt;/span&gt;&lt;span class=&quot;rem&quot;&gt;- oldPassword = item.decryptPassword(masterPassword=oldMaster) # safe: supplying master password &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ oldPassword = waitForDeferred(item.decryptPassword(masterPassword=oldMaster)) &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; except password.UninitializedPassword: continue except password.DecryptionError: log.exception('Wrong old master password?') again = True break &lt;/span&gt;&lt;span class=&quot;rem&quot;&gt;- item.encryptPassword(oldPassword, masterPassword=newMaster) # safe: supplying master password &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ waitForDeferred(item.encryptPassword(oldPassword, masterPassword=newMaster)) &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; if again: return False &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -212,6 +216,7 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; return True &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ @runInUIThread &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; def changeMasterPassword(self, view, window=None): &amp;quot;&amp;quot;&amp;quot; Change or set the master password. &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -516,7 +521,7 @@ &lt;/span&gt;&lt;squot;&gt; # the crypto algorithms are unicode unfriendly if isinstance(password, unicode): &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -178,6 +192,7 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; # encrypt using AES (Rijndael) self.ciphertext = _encrypt(plaintext, encKey, self.iv) &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ @runInUIThread &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; def clear(self): try: del self.ciphertext &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -227,6 +242,6 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; password = ''.join([string.printable[ord(c) % len(string.printable)] \ for c in os.urandom(16)]) &lt;/span&gt;&lt;span class=&quot;rem&quot;&gt;- dummyPassword.encryptPassword(password, masterPassword='') # safe: supplying master password &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ waitForrem&quot;&gt;- &amp;lt;preclass=&quot;diff&quot;&amp;gt;&amp;lt;spanclass=&quot;info&quot;&amp;gt;---trunk/internal/wx/tests/archive/archivetest.cpp2005-12-2104:15:49UTC(rev8786)+++trunk/internal/wx/tests/archive/archivetest.cpp2005-12-2117:48:59UTC(rev8787)&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;lines&quot;&amp;gt;@@-2,7+2,7@@&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;cx&quot;&amp;gt;//Name:tests/archive/archive.cpp//Purpose:Testthearchiveclasses//Author:MikeWetherell&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;rem&quot;&amp;gt;-//RCS-ID:$Id:archivetest.cpp,v1.142005/12/1813:58:55MWExp$&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;add&quot;&amp;gt;+//RCS-ID:$Id:archivetest.cpp,v1.152005/12/2101:23:17VZExp$&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;cx&quot;&amp;gt;//Copyright:(c)2004MikeWetherell//Licence:wxWindowslicence///////////////////////////////////////////////////////////////////////////////&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;lines&quot;&amp;gt;@@-1177,7+1177,7@@&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;cx&quot;&amp;gt;stringTestId::MakeId(){m_seed=(m_seed*171)%30269;&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;rem&quot;&amp;gt;-returnwxString::Format(_T(&amp;amp;quot;%-6d&amp;amp;quot;),m_seed).mb_str();&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;add&quot;&amp #i import hexlify, unhexlify &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -35,7 +47,7 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; from application import schema from util imprandom(16)]) &516,7 +521,7 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; # "Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)" d"> Fri, 22 May, 17:32
e ng.py&amp;quot;, line 364, in wait - # File &amp;quot;.../release/lib/python2.5/threading.py&amp;quot;, line 229, in wait - #&amp;lt;type 'exceptions.TypeError'&amp;gt;: 'NoneType' object is not callable - self.timer.setDaemon(True) - &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ self.timer = threading.Timer(timeout, self._clear) + #self.timer.setDaemon(True) # Exception in thread Thread-1 (most likely raised during interpreter shutdown) &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; self.timer.start() def _change(self, oldMaster, newMaster, view, prefs): &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -188,14 +192,14 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; again = False for item in password.Password.iterItems(view): try: &lt;/span&gt;&lt;span class=&quot;rem&quot;&gt;- oldPassword = item.decryptPassword(masterPassword=oldMaster) # safe: supplying master password &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ oldPassword = waitForDeferred(item.decryptPassword(masterPassword=oldMaster)) &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; except password.UninitializedPassword: continue except password.DecryptionError: log.exception('Wrong old master password?') again = True break &lt;/span&gt;&lt;span class=&quot;rem&quot;&gt;- item.encryptPassword(oldPassword, masterPassword=newMaster) # safe: supplying master password &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ waitForDeferred(item.encryptPassword(oldPassword, masterPassword=newMaster)) &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; if again: return False &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -212,6 +216,7 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; return True &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ @runInUIThread &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; def changeMasterPassword(self, view, window=None): &amp;quot;&amp;quot;&amp;quot; Change or set the master password. &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -516,7 +521,7 @@ &lt;/span&gt;&lt;squot;&gt; # the crypto algorithms are unicode unfriendly if isinstance(password, unicode): &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -178,6 +192,7 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; # encrypt using AES (Rijndael) self.ciphertext = _encrypt(plaintext, encKey, self.iv) &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ @runInUIThread &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; def clear(self): try: del self.ciphertext &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -227,6 +242,6 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; password = ''.join([string.printable[ord(c) % len(string.printable)] \ for c in os.urandom(16)]) &lt;/span&gt;&lt;span class=&quot;rem&quot;&gt;- dummyPassword.encryptPassword(password, masterPassword='') # safe: supplying master password &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ waitForrem&quot;&gt;- &amp;lt;preclass=&quot;diff&quot;&amp;gt;&amp;lt;spanclass=&quot;info&quot;&amp;gt;---trunk/internal/wx/tests/archive/archivetest.cpp2005-12-2104:15:49UTC(rev8786)+++trunk/internal/wx/tests/archive/archivetest.cpp2005-12-2117:48:59UTC(rev8787)&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;lines&quot;&amp;gt;@@-2,7+2,7@@&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;cx&quot;&amp;gt;//Name:tests/archive/archive.cpp//Purpose:Testthearchiveclasses//Author:MikeWetherell&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;rem&quot;&amp;gt;-//RCS-ID:$Id:archivetest.cpp,v1.142005/12/1813:58:55MWExp$&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;add&quot;&amp;gt;+//RCS-ID:$Id:archivetest.cpp,v1.152005/12/2101:23:17VZExp$&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;cx&quot;&amp;gt;//Copyright:(c)2004MikeWetherell//Licence:wxWindowslicence///////////////////////////////////////////////////////////////////////////////&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;lines&quot;&amp;gt;@@-1177,7+1177,7@@&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;cx&quot;&amp;gt;stringTestId::MakeId(){m_seed=(m_seed*171)%30269;&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;rem&quot;&amp;gt;-returnwxString::Format(_T(&amp;amp;quot;%-6d&amp;amp;quot;),m_seed).mb_str();&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;add&quot;&amp #i import hexlify, unhexlify &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -35,7 +47,7 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; from application import schema from util imprandom(16)]) &516,7 +521,7 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; # "Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)" d"> Fri, 22 May, 17:32
e@fastmail.fm> uot;lines&quot;&gt;@@ -516,7 +521,7 @@ &lt;/span&gt;&lt;squot;&gt; # the crypto algorithms are unicode unfriendly if isinstance(password, unicode): &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -178,6 +192,7 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; # encrypt using AES (Rijndael) self.ciphertext = _encrypt(plaintext, encKey, self.iv) &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ @runInUIThread &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; def clear(self): try: del self.ciphertext &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -227,6 +242,6 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; password = ''.join([string.printable[ord(c) % len(string.printable)] \ for c in os.urandom(16)]) &lt;/span&gt;&lt;span class=&quot;rem&quot;&gt;- dummyPassword.encryptPassword(password, masterPassword='') # safe: supplying master password &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ waitForrem&quot;&gt;- &amp;lt;preclass=&quot;diff&quot;&amp;gt;&amp;lt;spanclass=&quot;info&quot;&amp;gt;---trunk/internal/wx/tests/archive/archivetest.cpp2005-12-2104:15:49UTC(rev8786)+++trunk/internal/wx/tests/archive/archivetest.cpp2005-12-2117:48:59UTC(rev8787)&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;lines&quot;&amp;gt;@@-2,7+2,7@@&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;cx&quot;&amp;gt;//Name:tests/archive/archive.cpp//Purpose:Testthearchiveclasses//Author:MikeWetherell&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;rem&quot;&amp;gt;-//RCS-ID:$Id:archivetest.cpp,v1.142005/12/1813:58:55MWExp$&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;add&quot;&amp;gt;+//RCS-ID:$Id:archivetest.cpp,v1.152005/12/2101:23:17VZExp$&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;cx&quot;&amp;gt;//Copyright:(c)2004MikeWetherell//Licence:wxWindowslicence///////////////////////////////////////////////////////////////////////////////&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;lines&quot;&amp;gt;@@-1177,7+1177,7@@&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;cx&quot;&amp;gt;stringTestId::MakeId(){m_seed=(m_seed*171)%30269;&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;rem&quot;&amp;gt;-returnwxString::Format(_T(&amp;amp;quot;%-6d&amp;amp;quot;),m_seed).mb_str();&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;add&quot;&amp #i import hexlify, unhexlify &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -35,7 +47,7 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; from application import schema from util imprandom(16)]) &516,7 +521,7 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; # "Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)" d"> Wed, 24 Feb, 18:03
e@fastmail.fm> uot;lines&quot;&gt;@@ -516,7 +521,7 @@ &lt;/span&gt;&lt;squot;&gt; # the crypto algorithms are unicode unfriendly if isinstance(password, unicode): &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -178,6 +192,7 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; # encrypt using AES (Rijndael) self.ciphertext = _encrypt(plaintext, encKey, self.iv) &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ @runInUIThread &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; def clear(self): try: del self.ciphertext &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -227,6 +242,6 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; password = ''.join([string.printable[ord(c) % len(string.printable)] \ for c in os.urandom(16)]) &lt;/span&gt;&lt;span class=&quot;rem&quot;&gt;- dummyPassword.encryptPassword(password, masterPassword='') # safe: supplying master password &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ waitForrem&quot;&gt;- &amp;lt;preclass=&quot;diff&quot;&amp;gt;&amp;lt;spanclass=&quot;info&quot;&amp;gt;---trunk/internal/wx/tests/archive/archivetest.cpp2005-12-2104:15:49UTC(rev8786)+++trunk/internal/wx/tests/archive/archivetest.cpp2005-12-2117:48:59UTC(rev8787)&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;lines&quot;&amp;gt;@@-2,7+2,7@@&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;cx&quot;&amp;gt;//Name:tests/archive/archive.cpp//Purpose:Testthearchiveclasses//Author:MikeWetherell&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;rem&quot;&amp;gt;-//RCS-ID:$Id:archivetest.cpp,v1.142005/12/1813:58:55MWExp$&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;add&quot;&amp;gt;+//RCS-ID:$Id:archivetest.cpp,v1.152005/12/2101:23:17VZExp$&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;cx&quot;&amp;gt;//Copyright:(c)2004MikeWetherell//Licence:wxWindowslicence///////////////////////////////////////////////////////////////////////////////&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;lines&quot;&amp;gt;@@-1177,7+1177,7@@&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;cx&quot;&amp;gt;stringTestId::MakeId(){m_seed=(m_seed*171)%30269;&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;rem&quot;&amp;gt;-returnwxString::Format(_T(&amp;amp;quot;%-6d&amp;amp;quot;),m_seed).mb_str();&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;add&quot;&amp #i import hexlify, unhexlify &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -35,7 +47,7 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; from application import schema from util imprandom(16)]) &516,7 +521,7 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; # "Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)" d"> Wed, 24 Feb, 18:03
fan quot;&gt;- del self.timer - &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ del self.timer + + def _clear(self): + d = self.clearMasterPassword() + d.addCallback(lambda: True) + &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; def _setTimedPassword(self, password, timeout): &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ if hasattr(self, 'timer'): + self.timer.cancel() &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; self._password = password &lt;/span&gt;&lt;span class=&quot;rem&quot;&gt;- self.timer = threading.Timer(timeout, self.clearMasterPassword) - - # XXX Other threads can exit without waiting for this; seems to solve shutdown hang. - # XXX However, this leads to a shutdown crash about 50% of the time (for some reason still successful exit value): - #Exception in thread Thread-1 (most likely raised during interpreter shutdown): - #Traceback (most recent call last): - # File &amp;quot;.../release/lib/python2.5/threading.py&amp;quot;, line 460, in __bootstrap - # File &amp;quot;.../release/lib/python2.5/threading.py&amp;quot;, line 623, in run - # File &amp;quot;.../release/lib/python2.5/threading.py&amp;quot;, line 364, in wait - # File &amp;quot;.../release/lib/python2.5/threading.py&amp;quot;, line 229, in wait - #&amp;lt;type 'exceptions.TypeError'&amp;gt;: 'NoneType' object is not callable - self.timer.setDaemon(True) - &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ self.timer = threading.Timer(timeout, self._clear) + #self.timer.setDaemon(True) # Exception in thread Thread-1 (most likely raised during interpreter shutdown) &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; self.timer.start() def _change(self, oldMaster, newMaster, view, prefs): &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -188,14 +192,14 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; again = False for item in password.Password.iterItems(view): try: &lt;/span&gt;&lt;span class=&quot;rem&quot;&gt;- oldPassword = item.decryptPassword(masterPassword=oldMaster) # safe: supplying master password &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ oldPassword = waitForDeferred(item.decryptPassword(masterPassword=oldMaster)) &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; except password.UninitializedPassword: continue except password.DecryptionError: log.exception('Wrong old master password?') again = True break &lt;/span&gt;&lt;span class=&quot;rem&quot;&gt;- item.encryptPassword(oldPassword, masterPassword=newMaster) # safe: supplying master password &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ waitForDeferred(item.encryptPassword(oldPassword, masterPassword=newMaster)) &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; if again: return False &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -212,6 +216,7 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; return True &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ @runInUIThread &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; def changeMasterPassword(self, view, window=None): &amp;quot;&amp;quot;&amp;quot; Change or set the master password. &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -516,7 +521,7 @@ &lt;/span&gt;&lt;squot;&gt; # the crypto algorithms are unicode unfriendly if isinstance(password, unicode): &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -178,6 +192,7 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; # encrypt using AES (Rijndael) self.ciphertext = _encrypt(plaintext, encKey, self.iv) &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ @runInUIThread &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; def clear(self): try: del self.ciphertext &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -227,6 +242,6 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; password = ''.join([string.printable[ord(c) % len(string.printable)] \ for c in os.urandom(16)]) &lt;/span&gt;&lt;span class=&quot;rem&quot;&gt;- dummyPassword.encryptPassword(password, masterPassword='') # safe: supplying master password &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ waitForrem&quot;&gt;- &amp;lt;preclass=&quot;diff&quot;&amp;gt;&amp;lt;spanclass=&quot;info&quot;&amp;gt;---trunk/internal/wx/tests/archive/archivetest.cpp2005-12-2104:15:49UTC(rev8786)+++trunk/internal/wx/tests/archive/archivetest.cpp2005-12-2117:48:59UTC(rev8787)&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;lines&quot;&amp;gt;@@-2,7+2,7@@&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;cx&quot;&amp;gt;//Name:tests/archive/archive.cpp//Purpose:Testthearchiveclasses//Author:MikeWetherell&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;rem&quot;&amp;gt;-//RCS-ID:$Id:archivetest.cpp,v1.142005/12/1813:58:55MWExp$&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;add&quot;&amp;gt;+//RCS-ID:$Id:archivetest.cpp,v1.152005/12/2101:23:17VZExp$&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;cx&quot;&amp;gt;//Copyright:(c)2004MikeWetherell//Licence:wxWindowslicence///////////////////////////////////////////////////////////////////////////////&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;lines&quot;&amp;gt;@@-1177,7+1177,7@@&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;cx&quot;&amp;gt;stringTestId::MakeId(){m_seed=(m_seed*171)%30269;&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;rem&quot;&amp;gt;-returnwxString::Format(_T(&amp;amp;quot;%-6d&amp;amp;quot;),m_seed).mb_str();&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;add&quot;&amp #i import hexlify, unhexlify &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -35,7 +47,7 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; from application import schema from util imprandom(16)]) &516,7 +521,7 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; # "Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)" d"> Tue, 09 May, 16:04
g.b...@opengroup.org [No Subject] Wed, 24 Aug, 19:47
ka ding.py&amp;quot;, line 460, in __bootstrap - # File &amp;quot;.../release/lib/python2.5/threading.py&amp;quot;, line 623, in run - # File &amp;quot;.../release/lib/python2.5/threading.py&amp;quot;, line 364, in wait - # File &amp;quot;.../release/lib/python2.5/threading.py&amp;quot;, line 229, in wait - #&amp;lt;type 'exceptions.TypeError'&amp;gt;: 'NoneType' object is not callable - self.timer.setDaemon(True) - &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ self.timer = threading.Timer(timeout, self._clear) + #self.timer.setDaemon(True) # Exception in thread Thread-1 (most likely raised during interpreter shutdown) &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; self.timer.start() def _change(self, oldMaster, newMaster, view, prefs): &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -188,14 +192,14 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; again = False for item in password.Password.iterItems(view): try: &lt;/span&gt;&lt;span class=&quot;rem&quot;&gt;- oldPassword = item.decryptPassword(masterPassword=oldMaster) # safe: supplying master password &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ oldPassword = waitForDeferred(item.decryptPassword(masterPassword=oldMaster)) &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; except password.UninitializedPassword: continue except password.DecryptionError: log.exception('Wrong old master password?') again = True break &lt;/span&gt;&lt;span class=&quot;rem&quot;&gt;- item.encryptPassword(oldPassword, masterPassword=newMaster) # safe: supplying master password &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ waitForDeferred(item.encryptPassword(oldPassword, masterPassword=newMaster)) &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; if again: return False &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -212,6 +216,7 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; return True &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ @runInUIThread &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; def changeMasterPassword(self, view, window=None): &amp;quot;&amp;quot;&amp;quot; Change or set the master password. &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -516,7 +521,7 @@ &lt;/span&gt;&lt;squot;&gt; # the crypto algorithms are unicode unfriendly if isinstance(password, unicode): &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -178,6 +192,7 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; # encrypt using AES (Rijndael) self.ciphertext = _encrypt(plaintext, encKey, self.iv) &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ @runInUIThread &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; def clear(self): try: del self.ciphertext &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -227,6 +242,6 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; password = ''.join([string.printable[ord(c) % len(string.printable)] \ for c in os.urandom(16)]) &lt;/span&gt;&lt;span class=&quot;rem&quot;&gt;- dummyPassword.encryptPassword(password, masterPassword='') # safe: supplying master password &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ waitForrem&quot;&gt;- &amp;lt;preclass=&quot;diff&quot;&amp;gt;&amp;lt;spanclass=&quot;info&quot;&amp;gt;---trunk/internal/wx/tests/archive/archivetest.cpp2005-12-2104:15:49UTC(rev8786)+++trunk/internal/wx/tests/archive/archivetest.cpp2005-12-2117:48:59UTC(rev8787)&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;lines&quot;&amp;gt;@@-2,7+2,7@@&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;cx&quot;&amp;gt;//Name:tests/archive/archive.cpp//Purpose:Testthearchiveclasses//Author:MikeWetherell&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;rem&quot;&amp;gt;-//RCS-ID:$Id:archivetest.cpp,v1.142005/12/1813:58:55MWExp$&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;add&quot;&amp;gt;+//RCS-ID:$Id:archivetest.cpp,v1.152005/12/2101:23:17VZExp$&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;cx&quot;&amp;gt;//Copyright:(c)2004MikeWetherell//Licence:wxWindowslicence///////////////////////////////////////////////////////////////////////////////&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;lines&quot;&amp;gt;@@-1177,7+1177,7@@&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;cx&quot;&amp;gt;stringTestId::MakeId(){m_seed=(m_seed*171)%30269;&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;rem&quot;&amp;gt;-returnwxString::Format(_T(&amp;amp;quot;%-6d&amp;amp;quot;),m_seed).mb_str();&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;add&quot;&amp #i import hexlify, unhexlify &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -35,7 +47,7 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; from application import schema from util imprandom(16)]) &516,7 +521,7 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; # "Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)" d"> Thu, 31 Jul, 19:48
ka # XXX However, this leads to a shutdown crash about 50% of the time (for some reason still successful exit value): - #Exception in thread Thread-1 (most likely raised during interpreter shutdown): - #Traceback (most recent call last): - # File &amp;quot;.../release/lib/python2.5/threading.py&amp;quot;, line 460, in __bootstrap - # File &amp;quot;.../release/lib/python2.5/threading.py&amp;quot;, line 623, in run - # File &amp;quot;.../release/lib/python2.5/threading.py&amp;quot;, line 364, in wait - # File &amp;quot;.../release/lib/python2.5/threading.py&amp;quot;, line 229, in wait - #&amp;lt;type 'exceptions.TypeError'&amp;gt;: 'NoneType' object is not callable - self.timer.setDaemon(True) - &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ self.timer = threading.Timer(timeout, self._clear) + #self.timer.setDaemon(True) # Exception in thread Thread-1 (most likely raised during interpreter shutdown) &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; self.timer.start() def _change(self, oldMaster, newMaster, view, prefs): &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -188,14 +192,14 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; again = False for item in password.Password.iterItems(view): try: &lt;/span&gt;&lt;span class=&quot;rem&quot;&gt;- oldPassword = item.decryptPassword(masterPassword=oldMaster) # safe: supplying master password &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ oldPassword = waitForDeferred(item.decryptPassword(masterPassword=oldMaster)) &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; except password.UninitializedPassword: continue except password.DecryptionError: log.exception('Wrong old master password?') again = True break &lt;/span&gt;&lt;span class=&quot;rem&quot;&gt;- item.encryptPassword(oldPassword, masterPassword=newMaster) # safe: supplying master password &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ waitForDeferred(item.encryptPassword(oldPassword, masterPassword=newMaster)) &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; if again: return False &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -212,6 +216,7 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; return True &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ @runInUIThread &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; def changeMasterPassword(self, view, window=None): &amp;quot;&amp;quot;&amp;quot; Change or set the master password. &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -516,7 +521,7 @@ &lt;/span&gt;&lt;squot;&gt; # the crypto algorithms are unicode unfriendly if isinstance(password, unicode): &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -178,6 +192,7 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; # encrypt using AES (Rijndael) self.ciphertext = _encrypt(plaintext, encKey, self.iv) &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ @runInUIThread &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; def clear(self): try: del self.ciphertext &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -227,6 +242,6 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; password = ''.join([string.printable[ord(c) % len(string.printable)] \ for c in os.urandom(16)]) &lt;/span&gt;&lt;span class=&quot;rem&quot;&gt;- dummyPassword.encryptPassword(password, masterPassword='') # safe: supplying master password &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ waitForrem&quot;&gt;- &amp;lt;preclass=&quot;diff&quot;&amp;gt;&amp;lt;spanclass=&quot;info&quot;&amp;gt;---trunk/internal/wx/tests/archive/archivetest.cpp2005-12-2104:15:49UTC(rev8786)+++trunk/internal/wx/tests/archive/archivetest.cpp2005-12-2117:48:59UTC(rev8787)&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;lines&quot;&amp;gt;@@-2,7+2,7@@&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;cx&quot;&amp;gt;//Name:tests/archive/archive.cpp//Purpose:Testthearchiveclasses//Author:MikeWetherell&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;rem&quot;&amp;gt;-//RCS-ID:$Id:archivetest.cpp,v1.142005/12/1813:58:55MWExp$&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;add&quot;&amp;gt;+//RCS-ID:$Id:archivetest.cpp,v1.152005/12/2101:23:17VZExp$&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;cx&quot;&amp;gt;//Copyright:(c)2004MikeWetherell//Licence:wxWindowslicence///////////////////////////////////////////////////////////////////////////////&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;lines&quot;&amp;gt;@@-1177,7+1177,7@@&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;cx&quot;&amp;gt;stringTestId::MakeId(){m_seed=(m_seed*171)%30269;&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;rem&quot;&amp;gt;-returnwxString::Format(_T(&amp;amp;quot;%-6d&amp;amp;quot;),m_seed).mb_str();&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;add&quot;&amp #i import hexlify, unhexlify &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -35,7 +47,7 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; from application import schema from util imprandom(16)]) &516,7 +521,7 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; # "Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)" d"> Thu, 31 Jul, 19:48
ka # XXX However, this leads to a shutdown crash about 50% of the time (for some reason still successful exit value): - #Exception in thread Thread-1 (most likely raised during interpreter shutdown): - #Traceback (most recent call last): - # File &amp;quot;.../release/lib/python2.5/threading.py&amp;quot;, line 460, in __bootstrap - # File &amp;quot;.../release/lib/python2.5/threading.py&amp;quot;, line 623, in run - # File &amp;quot;.../release/lib/python2.5/threading.py&amp;quot;, line 364, in wait - # File &amp;quot;.../release/lib/python2.5/threading.py&amp;quot;, line 229, in wait - #&amp;lt;type 'exceptions.TypeError'&amp;gt;: 'NoneType' object is not callable - self.timer.setDaemon(True) - &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ self.timer = threading.Timer(timeout, self._clear) + #self.timer.setDaemon(True) # Exception in thread Thread-1 (most likely raised during interpreter shutdown) &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; self.timer.start() def _change(self, oldMaster, newMaster, view, prefs): &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -188,14 +192,14 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; again = False for item in password.Password.iterItems(view): try: &lt;/span&gt;&lt;span class=&quot;rem&quot;&gt;- oldPassword = item.decryptPassword(masterPassword=oldMaster) # safe: supplying master password &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ oldPassword = waitForDeferred(item.decryptPassword(masterPassword=oldMaster)) &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; except password.UninitializedPassword: continue except password.DecryptionError: log.exception('Wrong old master password?') again = True break &lt;/span&gt;&lt;span class=&quot;rem&quot;&gt;- item.encryptPassword(oldPassword, masterPassword=newMaster) # safe: supplying master password &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ waitForDeferred(item.encryptPassword(oldPassword, masterPassword=newMaster)) &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; if again: return False &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -212,6 +216,7 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; return True &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ @runInUIThread &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; def changeMasterPassword(self, view, window=None): &amp;quot;&amp;quot;&amp;quot; Change or set the master password. &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -516,7 +521,7 @@ &lt;/span&gt;&lt;squot;&gt; # the crypto algorithms are unicode unfriendly if isinstance(password, unicode): &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -178,6 +192,7 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; # encrypt using AES (Rijndael) self.ciphertext = _encrypt(plaintext, encKey, self.iv) &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ @runInUIThread &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; def clear(self): try: del self.ciphertext &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -227,6 +242,6 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; password = ''.join([string.printable[ord(c) % len(string.printable)] \ for c in os.urandom(16)]) &lt;/span&gt;&lt;span class=&quot;rem&quot;&gt;- dummyPassword.encryptPassword(password, masterPassword='') # safe: supplying master password &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ waitForrem&quot;&gt;- &amp;lt;preclass=&quot;diff&quot;&amp;gt;&amp;lt;spanclass=&quot;info&quot;&amp;gt;---trunk/internal/wx/tests/archive/archivetest.cpp2005-12-2104:15:49UTC(rev8786)+++trunk/internal/wx/tests/archive/archivetest.cpp2005-12-2117:48:59UTC(rev8787)&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;lines&quot;&amp;gt;@@-2,7+2,7@@&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;cx&quot;&amp;gt;//Name:tests/archive/archive.cpp//Purpose:Testthearchiveclasses//Author:MikeWetherell&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;rem&quot;&amp;gt;-//RCS-ID:$Id:archivetest.cpp,v1.142005/12/1813:58:55MWExp$&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;add&quot;&amp;gt;+//RCS-ID:$Id:archivetest.cpp,v1.152005/12/2101:23:17VZExp$&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;cx&quot;&amp;gt;//Copyright:(c)2004MikeWetherell//Licence:wxWindowslicence///////////////////////////////////////////////////////////////////////////////&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;lines&quot;&amp;gt;@@-1177,7+1177,7@@&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;cx&quot;&amp;gt;stringTestId::MakeId(){m_seed=(m_seed*171)%30269;&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;rem&quot;&amp;gt;-returnwxString::Format(_T(&amp;amp;quot;%-6d&amp;amp;quot;),m_seed).mb_str();&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;add&quot;&amp #i import hexlify, unhexlify &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -35,7 +47,7 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; from application import schema from util imprandom(16)]) &516,7 +521,7 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; # "Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)" d"> Thu, 31 Jul, 19:48
ka # XXX However, this leads to a shutdown crash about 50% of the time (for some reason still successful exit value): - #Exception in thread Thread-1 (most likely raised during interpreter shutdown): - #Traceback (most recent call last): - # File &amp;quot;.../release/lib/python2.5/threading.py&amp;quot;, line 460, in __bootstrap - # File &amp;quot;.../release/lib/python2.5/threading.py&amp;quot;, line 623, in run - # File &amp;quot;.../release/lib/python2.5/threading.py&amp;quot;, line 364, in wait - # File &amp;quot;.../release/lib/python2.5/threading.py&amp;quot;, line 229, in wait - #&amp;lt;type 'exceptions.TypeError'&amp;gt;: 'NoneType' object is not callable - self.timer.setDaemon(True) - &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ self.timer = threading.Timer(timeout, self._clear) + #self.timer.setDaemon(True) # Exception in thread Thread-1 (most likely raised during interpreter shutdown) &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; self.timer.start() def _change(self, oldMaster, newMaster, view, prefs): &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -188,14 +192,14 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; again = False for item in password.Password.iterItems(view): try: &lt;/span&gt;&lt;span class=&quot;rem&quot;&gt;- oldPassword = item.decryptPassword(masterPassword=oldMaster) # safe: supplying master password &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ oldPassword = waitForDeferred(item.decryptPassword(masterPassword=oldMaster)) &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; except password.UninitializedPassword: continue except password.DecryptionError: log.exception('Wrong old master password?') again = True break &lt;/span&gt;&lt;span class=&quot;rem&quot;&gt;- item.encryptPassword(oldPassword, masterPassword=newMaster) # safe: supplying master password &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ waitForDeferred(item.encryptPassword(oldPassword, masterPassword=newMaster)) &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; if again: return False &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -212,6 +216,7 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; return True &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ @runInUIThread &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; def changeMasterPassword(self, view, window=None): &amp;quot;&amp;quot;&amp;quot; Change or set the master password. &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -516,7 +521,7 @@ &lt;/span&gt;&lt;squot;&gt; # the crypto algorithms are unicode unfriendly if isinstance(password, unicode): &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -178,6 +192,7 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; # encrypt using AES (Rijndael) self.ciphertext = _encrypt(plaintext, encKey, self.iv) &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ @runInUIThread &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; def clear(self): try: del self.ciphertext &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -227,6 +242,6 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; password = ''.join([string.printable[ord(c) % len(string.printable)] \ for c in os.urandom(16)]) &lt;/span&gt;&lt;span class=&quot;rem&quot;&gt;- dummyPassword.encryptPassword(password, masterPassword='') # safe: supplying master password &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ waitForrem&quot;&gt;- &amp;lt;preclass=&quot;diff&quot;&amp;gt;&amp;lt;spanclass=&quot;info&quot;&amp;gt;---trunk/internal/wx/tests/archive/archivetest.cpp2005-12-2104:15:49UTC(rev8786)+++trunk/internal/wx/tests/archive/archivetest.cpp2005-12-2117:48:59UTC(rev8787)&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;lines&quot;&amp;gt;@@-2,7+2,7@@&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;cx&quot;&amp;gt;//Name:tests/archive/archive.cpp//Purpose:Testthearchiveclasses//Author:MikeWetherell&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;rem&quot;&amp;gt;-//RCS-ID:$Id:archivetest.cpp,v1.142005/12/1813:58:55MWExp$&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;add&quot;&amp;gt;+//RCS-ID:$Id:archivetest.cpp,v1.152005/12/2101:23:17VZExp$&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;cx&quot;&amp;gt;//Copyright:(c)2004MikeWetherell//Licence:wxWindowslicence///////////////////////////////////////////////////////////////////////////////&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;lines&quot;&amp;gt;@@-1177,7+1177,7@@&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;cx&quot;&amp;gt;stringTestId::MakeId(){m_seed=(m_seed*171)%30269;&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;rem&quot;&amp;gt;-returnwxString::Format(_T(&amp;amp;quot;%-6d&amp;amp;quot;),m_seed).mb_str();&amp;lt;/span&amp;gt;&amp;lt;spanclass=&quot;add&quot;&amp #i import hexlify, unhexlify &lt;/span&gt;&lt;span class=&quot;lines&quot;&gt;@@ -35,7 +47,7 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; from application import schema from util imprandom(16)]) &516,7 +521,7 @@ &lt;/span&gt;&lt;span class=&quot;cx&quot;&gt; # "Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)" d"> Thu, 31 Jul, 19:48
m del self._password &lt;/span&gt;&lt;span class=&quot;rem&quot;&gt;- del self.timer - &lt;/span&gt;&lt;span class=&quot;add&quot;&gt;+ del self.timer + + def _clear(self): + d = self.clearMasterPassword() + d.addCallback(lambda: True) + &lt;/span&gt;&lt