def doTransaction(self, env, input): """Process transaction.""" requestDict = dict(format='CGI', environ=env, input=input) self.startRequest(requestDict) streamOut = ASStreamOut() self.dispatchRawRequest(requestDict, streamOut) try: self.processResponse(streamOut._buffer) self._sock.shutdown(2) except socket.error as e: if e[0] == errno.EPIPE: # broken pipe return print '%5d HTTPServer output error: %s' % (self._requestID, e) self.endRequest()