Beispiel #1
0
void ReplayTransport::sendImpl(const void *data, int size, int code,
                               bool chunked, bool eom) {
    m_code = code;

    m_response = "HTTP/1.1 ";
    m_response += folly::to<std::string>(code);
    m_response += " ";
    m_response += HttpProtocol::GetReasonString(m_code);
    m_response += "\r\n";

    for (HeaderMap::const_iterator iter = m_responseHeaders.begin();
            iter != m_responseHeaders.end(); ++iter) {
        for (unsigned int i = 0; i < iter->second.size(); i++) {
            m_response += iter->first;
            m_response += ": ";
            m_response += iter->second[i];
            m_response += "\r\n";
        }
    }

    m_response += "\r\n";
    m_response.append((const char *)data, size);
    m_response += "\r\n";
    if (eom) {
        onSendEndImpl();
    }
}
Beispiel #2
0
void Transport::onSendEnd() {
  if (m_compressor && m_chunkedEncoding) {
    bool compressed = false;
    String response = prepareResponse("", 0, compressed, true);
    sendImpl(response.data(), response.size(), m_responseCode, true);
  }
  onSendEndImpl();
}