Welcome to mirror list, hosted at ThFree Co, Russian Federation.

dev.gajim.org/gajim/gajim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYann Leboulanger <asterix@lagaule.org>2007-11-14 01:42:53 +0300
committerYann Leboulanger <asterix@lagaule.org>2007-11-14 01:42:53 +0300
commitc89c92e2fd0cb93e576c45f0636f3888eb0cdbaf (patch)
tree0b9caafd092d5ee3f2e0c7c4b7831d4f0f6f2bbc
parentfa5728ec3027adf2be156e4de4c20eb24b6d407e (diff)
don't fail gpg encryption when verbose is on. check in status-fd if encryption succeeded. fixes #3542
-rw-r--r--src/common/GnuPG.py23
1 files changed, 20 insertions, 3 deletions
diff --git a/src/common/GnuPG.py b/src/common/GnuPG.py
index 7d1a88e56..5d865828f 100644
--- a/src/common/GnuPG.py
+++ b/src/common/GnuPG.py
@@ -87,19 +87,36 @@ else:
return str, 'GnuPG not usable'
self.options.recipients = recipients # a list!
- proc = self.run(['--encrypt'], create_fhs=['stdin', 'stdout',
+ proc = self.run(['--encrypt'], create_fhs=['stdin', 'stdout', 'status',
'stderr'])
proc.handles['stdin'].write(str)
- proc.handles['stdin'].close()
+ try:
+ proc.handles['stdin'].close()
+ except IOError:
+ pass
output = proc.handles['stdout'].read()
- proc.handles['stdout'].close()
+ try:
+ proc.handles['stdout'].close()
+ except IOError:
+ pass
+
+ stat = proc.handles['status']
+ resp = self._read_response(stat)
+ try:
+ proc.handles['status'].close()
+ except IOError:
+ pass
error = proc.handles['stderr'].read()
proc.handles['stderr'].close()
try: proc.wait()
except IOError: pass
+ if 'BEGIN_ENCRYPTION' in resp and 'END_ENCRYPTION' in resp:
+ # Encryption succeeded, even if there is output on stderr. Maybe
+ # verbose is on
+ error = ''
return self._stripHeaderFooter(output), error
def decrypt(self, str, keyID):