Changeset 8969

Show
Ignore:
Timestamp:
11/13/07 23:42:53 (10 months ago)
Author:
asterix
Message:

don't fail gpg encryption when verbose is on. check in status-fd if encryption succeeded. fixes #3542

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • branches/gajim_0.11.2/src/common/GnuPG.py

    r7829 r8969  
    8888                        self.options.recipients = recipients   # a list! 
    8989 
    90                         proc = self.run(['--encrypt'], create_fhs=['stdin', 'stdout', 
     90                        proc = self.run(['--encrypt'], create_fhs=['stdin', 'stdout', 'status', 
    9191                                'stderr']) 
    9292                        proc.handles['stdin'].write(str) 
    93                         proc.handles['stdin'].close() 
    94  
    95                         output = proc.handles['stdout'].read() 
    96                         proc.handles['stdout'].close() 
     93                        try: 
     94                                proc.handles['stdin'].close() 
     95                        except IOError: 
     96                                pass 
     97 
     98                        output = proc.handles['stdout'].read() 
     99                        try: 
     100                                proc.handles['stdout'].close() 
     101                        except IOError: 
     102                                pass 
     103 
     104                        stat = proc.handles['status'] 
     105                        resp = self._read_response(stat) 
     106                        try: 
     107                                proc.handles['status'].close() 
     108                        except IOError: 
     109                                pass 
    97110 
    98111                        error = proc.handles['stderr'].read() 
     
    101114                        try: proc.wait() 
    102115                        except IOError: pass 
     116                        if 'BEGIN_ENCRYPTION' in resp and 'END_ENCRYPTION' in resp: 
     117                                # Encryption succeeded, even if there is output on stderr. Maybe 
     118                                # verbose is on 
     119                                error = '' 
    103120                        return self._stripHeaderFooter(output), error 
    104121