(self)
| 130 | "doesn't match endpoint '{}'".format(cert_name, self.endpoint.address)) |
| 131 | |
| 132 | def close(self): |
| 133 | with self.lock: |
| 134 | if self.is_closed: |
| 135 | return |
| 136 | self.is_closed = True |
| 137 | |
| 138 | log.debug("Closing connection (%s) to %s" % (id(self), self.endpoint)) |
| 139 | |
| 140 | cur_gthread = eventlet.getcurrent() |
| 141 | |
| 142 | if self._read_watcher and self._read_watcher != cur_gthread: |
| 143 | self._read_watcher.kill() |
| 144 | if self._write_watcher and self._write_watcher != cur_gthread: |
| 145 | self._write_watcher.kill() |
| 146 | if self._socket: |
| 147 | self._socket.close() |
| 148 | log.debug("Closed socket to %s" % (self.endpoint,)) |
| 149 | |
| 150 | if not self.is_defunct: |
| 151 | self.error_all_requests( |
| 152 | ConnectionShutdown("Connection to %s was closed" % self.endpoint)) |
| 153 | # don't leave in-progress operations hanging |
| 154 | self.connected_event.set() |
| 155 | |
| 156 | def handle_close(self): |
| 157 | log.debug("connection closed by server") |
no test coverage detected