MCPcopy Create free account
hub / github.com/acl-dev/acl / peek_head_2bytes

Method peek_head_2bytes

lib_acl_cpp/src/http/websocket.cpp:509–540  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

507}
508
509bool websocket::peek_head_2bytes(void)
510{
511 size_t len = peek_buf_->size();
512
513 if (len >= 2) {
514 logger_fatal("overflow, len=%ld", (long) len);
515 }
516
517 if (!client_.readn_peek(peek_buf_, 2 - len, false)) {
518 return false;
519 }
520
521 assert(peek_buf_->size() == 2);
522
523 unsigned char* s = (unsigned char*) peek_buf_->c_str();
524 update_head_2bytes(s[0], s[1]);
525
526 if (header_.payload_len == 126) {
527 status_ = WS_HEAD_LEN_2BYTES;
528 } else if (header_.payload_len > 126) {
529 status_ = WS_HEAD_LEN_8BYTES;
530 }
531 // header_.payload_len <= 125
532 else if (header_.mask) {
533 status_ = WS_HEAD_MASKING_KEY;
534 } else {
535 status_ = WS_HEAD_FINISH;
536 }
537
538 peek_buf_->clear();
539 return true;
540}
541
542bool websocket::peek_head_len_2bytes(void)
543{

Callers

nothing calls this directly

Calls 4

readn_peekMethod · 0.80
sizeMethod · 0.45
c_strMethod · 0.45
clearMethod · 0.45

Tested by

no test coverage detected