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

Function readRedisCommand

internal/home/client_test.go:409–443  ·  view source on GitHub ↗
(reader *bufio.Reader)

Source from the content-addressed store, hash-verified

407}
408
409func readRedisCommand(reader *bufio.Reader) ([]string, error) {
410 line, errRead := reader.ReadString('\n')
411 if errRead != nil {
412 return nil, errRead
413 }
414 line = strings.TrimSpace(line)
415 if !strings.HasPrefix(line, "*") {
416 return nil, fmt.Errorf("expected array, got %q", line)
417 }
418 count, errCount := strconv.Atoi(strings.TrimPrefix(line, "*"))
419 if errCount != nil {
420 return nil, errCount
421 }
422 args := make([]string, 0, count)
423 for i := 0; i < count; i++ {
424 bulkLine, errBulk := reader.ReadString('\n')
425 if errBulk != nil {
426 return nil, errBulk
427 }
428 bulkLine = strings.TrimSpace(bulkLine)
429 if !strings.HasPrefix(bulkLine, "$") {
430 return nil, fmt.Errorf("expected bulk string, got %q", bulkLine)
431 }
432 size, errSize := strconv.Atoi(strings.TrimPrefix(bulkLine, "$"))
433 if errSize != nil {
434 return nil, errSize
435 }
436 payload := make([]byte, size+2)
437 if _, errFull := io.ReadFull(reader, payload); errFull != nil {
438 return nil, errFull
439 }
440 args = append(args, string(payload[:size]))
441 }
442 return args, nil
443}
444
445func TestModelsRequestSerializationCarriesCredentials(t *testing.T) {
446 req := modelsRequest{

Callers 1

Calls

no outgoing calls

Tested by

no test coverage detected