MCPcopy Create free account
hub / github.com/alibaba/PhotonLibOS / send_header

Method send_header

net/http/message.cpp:133–150  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

131}
132
133int Message::send_header(net::ISocketStream* stream) {
134 if (stream != nullptr) m_stream = stream; // update stream if needed
135
136 using SV = std::string_view;
137 headers.insert("Connection", m_keep_alive ? SV("keep-alive") :
138 SV("close"));
139 if (headers.space_remain() < 2)
140 LOG_ERROR_RETURN(ENOBUFS, -1, "no buffer");
141
142 memcpy(m_buf + m_buf_size + headers.size(), "\r\n", 2);
143 std::string_view sv = {m_buf, m_buf_size + headers.size() + 2UL};
144
145 ssize_t ret = m_stream->write(sv.data(), sv.size());
146 if (ret < (ssize_t)sv.size())
147 LOG_ERRNO_RETURN(0, -1, "send header failed ");
148 message_status = HEADER_SENT;
149 return prepare_body_write_stream();
150}
151
152ssize_t Message::read(void *buf, size_t count) {
153 if (!m_body_stream)

Callers 1

do_roundtripMethod · 0.80

Calls 6

SVClass · 0.85
insertMethod · 0.45
space_remainMethod · 0.45
sizeMethod · 0.45
writeMethod · 0.45
dataMethod · 0.45

Tested by

no test coverage detected