code: def _reuse_connection(self, h, req, host):
          
          try:
              self._start_transaction(h, req)
              r = h.getresponse()
              # note: just because we got something back doesn't mean it
              # worked.  We'll check the version below, too.
          except (socket.error, httplib.HTTPException):
              r = None
          except:
              # adding this block just in case we've missed
              # something we will still raise the exception, but
              # lets try and close the connection and remove it
              # first.  We previously got into a nasty loop
              # where an exception was uncaught, and so the
              # connection stayed open.  On the next try, the
              # same exception was raised, etc.  The tradeoff is
              # that it's now possible this call will raise
              # a DIFFERENT exception
              if DEBUG: DEBUG.error("unexpected exception - closing " + \
                                    "connection to %s (%d)", host, id(h))
              self._cm.remove(h)
              h.close()
              raise
                      
          if r is None or r.version == 9:
              # httplib falls back to assuming HTTP 0.9 if it gets a
              # bad header back.  This is most likely to happen if
              # the socket has been closed by the server since we
              # last used the connection.
              if DEBUG: DEBUG.info("failed to re-use connection to %s (%d)",
                                   host, id(h))
              r = None
          else:
              if DEBUG: DEBUG.info("re-using connection to %s (%d)", host, id(h))
  
          return r
docs: start the transaction with a re-used connection
          return a response object (r) upon success or None on failure.
          This DOES not close or remove bad connections in cases where
          it returns.  However, if an unexpected exception occurs, it
          will close and remove the connection before re-raising.