MCPcopy Create free account
hub / github.com/chainreactors/EvilProxy / readRESPBulkString

Function readRESPBulkString

internal/api/redis_queue_protocol.go:455–475  ·  view source on GitHub ↗
(reader *bufio.Reader)

Source from the content-addressed store, hash-verified

453}
454
455func readRESPBulkString(reader *bufio.Reader) (string, error) {
456 line, errLine := readRESPLine(reader)
457 if errLine != nil {
458 return "", errLine
459 }
460 length, errParse := strconv.Atoi(line)
461 if errParse != nil {
462 return "", fmt.Errorf("protocol error")
463 }
464 if length < 0 {
465 return "", nil
466 }
467 buf := make([]byte, length+2)
468 if _, errRead := io.ReadFull(reader, buf); errRead != nil {
469 return "", errRead
470 }
471 if length+2 < 2 || buf[length] != '\r' || buf[length+1] != '\n' {
472 return "", fmt.Errorf("protocol error")
473 }
474 return string(buf[:length]), nil
475}
476
477func readRESPLine(reader *bufio.Reader) (string, error) {
478 line, errRead := reader.ReadString('\n')

Callers 1

readRESPStringFunction · 0.85

Calls 1

readRESPLineFunction · 0.85

Tested by

no test coverage detected