| 183 | } |
| 184 | |
| 185 | Result HttpAsyncClient::detachWebSocketTransport(HttpWebSocketTransportView& transport) |
| 186 | { |
| 187 | SC_TRY_MSG(connection != nullptr, "HttpAsyncClient::detachWebSocketTransport init not called"); |
| 188 | SC_TRY_MSG(response.hasReceivedHeaders(), "HttpAsyncClient::detachWebSocketTransport response headers missing"); |
| 189 | SC_TRY_MSG(response.getParser().statusCode == 101, "HttpAsyncClient::detachWebSocketTransport expected 101"); |
| 190 | |
| 191 | transport.readableStream = &connection->getReadableTransportStream(); |
| 192 | transport.writableStream = &connection->getWritableTransportStream(); |
| 193 | transport.buffersPool = &connection->buffersPool; |
| 194 | |
| 195 | (void)connection->getReadableTransportStream() |
| 196 | .eventData.removeListener<HttpAsyncClient, &HttpAsyncClient::onResponseData>(*this); |
| 197 | (void)connection->getReadableTransportStream() |
| 198 | .eventData.removeListener<HttpAsyncClient, &HttpAsyncClient::onResponseBodyData>(*this); |
| 199 | (void)connection->getReadableTransportStream() |
| 200 | .eventError.removeListener<HttpAsyncClient, &HttpAsyncClient::onReadableError>(*this); |
| 201 | (void)connection->getWritableTransportStream() |
| 202 | .eventError.removeListener<HttpAsyncClient, &HttpAsyncClient::onWritableError>(*this); |
| 203 | (void)connection->getReadableTransportStream() |
| 204 | .eventEnd.removeListener<HttpAsyncClient, &HttpAsyncClient::onReadableEnd>(*this); |
| 205 | (void)connection->pipeline.eventError.removeListener<HttpAsyncClient, &HttpAsyncClient::onPipelineError>(*this); |
| 206 | (void)connection->pipeline.unpipe(); |
| 207 | |
| 208 | hasOpenConnection = false; |
| 209 | currentProtocol = {}; |
| 210 | currentHost = {}; |
| 211 | currentPort = 0; |
| 212 | webSocketUpgraded = true; |
| 213 | return Result(true); |
| 214 | } |
| 215 | |
| 216 | Result HttpAsyncClient::prepareRequest(const RequestPreset& preset) |
| 217 | { |
no test coverage detected