Lines Matching refs:rb_

119   rb_.ensure_chunk();
121 if (rb_.rleft() && on_read() != 0) {
124 if (rb_.rleft() == 0) {
125 rb_.reset();
126 } else if (rb_.wleft() == 0) {
135 auto nread = conn_.read_clear(rb_.last(), rb_.wleft());
138 if (rb_.rleft() == 0) {
139 rb_.release_chunk();
148 rb_.write(nread);
185 rb_.ensure_chunk();
187 assert(rb_.rleft() == 0);
189 auto nread = conn_.peek_clear(rb_.last(), rb_.wleft());
202 rb_.write(nread);
208 rb_.reset();
247 rb_.ensure_chunk();
251 if (rb_.rleft() && on_read() != 0) {
254 if (rb_.rleft() == 0) {
255 rb_.reset();
256 } else if (rb_.wleft() == 0) {
265 auto nread = conn_.read_tls(rb_.last(), rb_.wleft());
268 if (rb_.rleft() == 0) {
269 rb_.release_chunk();
278 rb_.write(nread);
359 auto nread = std::min(left_connhd_len_, rb_.rleft());
361 rb_.pos(), nread) != 0) {
371 rb_.drain(nread);
388 auto nread = std::min(left_connhd_len_, rb_.rleft());
390 rb_.pos(), nread) != 0) {
409 rb_.drain(nread);
444 rb_(worker->get_mcpool()),
694 if (rb_.chunk_avail()) {
1246 ClientHandler::ReadBuf *ClientHandler::get_rb() { return &rb_; }
1287 auto len = rb_.pos() - rb_.begin();
1296 rb_.reset();
1298 if (conn_.read_nolim_clear(rb_.pos(), len) < 0) {
1302 rb_.reset();
1325 auto first = rb_.pos();
1327 if (rb_.rleft() >= PROXY_PROTO_V2_HDLEN &&
1342 auto bufend = rb_.pos() + std::min(MAX_PROXY_LINELEN, rb_.rleft());
1345 std::find_first_of(rb_.pos(), bufend, std::begin(chrs), std::end(chrs));
1347 if (end == bufend || *end == '\0' || end == rb_.pos() || *(end - 1) != '\r') {
1358 if (static_cast<size_t>(end - rb_.pos()) < HEADER.size()) {
1365 if (!util::streq(HEADER, StringRef{rb_.pos(), HEADER.size()})) {
1372 rb_.drain(HEADER.size());
1376 if (rb_.pos()[0] == 'T') {
1377 if (end - rb_.pos() < 5) {
1384 if (rb_.pos()[1] != 'C' || rb_.pos()[2] != 'P') {
1391 switch (rb_.pos()[3]) {
1405 rb_.drain(5);
1407 if (end - rb_.pos() < 7) {
1413 if (!util::streq_l("UNKNOWN", rb_.pos(), 7)) {
1420 rb_.drain(end + 2 - rb_.pos());
1426 auto token_end = std::find(rb_.pos(), end, ' ');
1435 if (!util::numeric_host(reinterpret_cast<const char *>(rb_.pos()), family)) {
1442 auto src_addr = rb_.pos();
1443 auto src_addrlen = token_end - rb_.pos();
1445 rb_.drain(token_end - rb_.pos() + 1);
1448 token_end = std::find(rb_.pos(), end, ' ');
1457 if (!util::numeric_host(reinterpret_cast<const char *>(rb_.pos()), family)) {
1466 rb_.drain(token_end - rb_.pos() + 1);
1469 auto n = parse_proxy_line_port(rb_.pos(), end);
1470 if (n <= 0 || *(rb_.pos() + n) != ' ') {
1477 rb_.pos()[n] = '\0';
1478 auto src_port = rb_.pos();
1481 rb_.drain(n + 1);
1484 n = parse_proxy_line_port(rb_.pos(), end);
1485 if (n <= 0 || rb_.pos() + n != end) {
1494 rb_.drain(end + 2 - rb_.pos());
1501 CLOG(INFO, this) << "PROXY-protocol-v1: Finished, " << (rb_.pos() - first)
1519 assert(rb_.rleft() >= PROXY_PROTO_V2_HDLEN);
1521 auto p = rb_.pos() + str_size(PROXY_PROTO_V2_SIG);
1555 if (rb_.last() - p < len) {
1559 << len << " bytes, " << rb_.last() - p << " bytes left";
1608 rb_.drain(PROXY_PROTO_V2_HDLEN + len);
1624 rb_.drain(PROXY_PROTO_V2_HDLEN + len);
1660 << p - rb_.pos() << " bytes read, "
1661 << PROXY_PROTO_V2_HDLEN + len - (p - rb_.pos())
1673 rb_.drain(PROXY_PROTO_V2_HDLEN + len);