commit ef44416cfd00b4342a63c6b34738e5dd31d3a2d0 from: Omar Polo date: Sun Aug 01 22:53:33 2021 UTC pretty print Rwalk commit - b806d4d5f817e295b67751f70972867d2bc94bf0 commit + ef44416cfd00b4342a63c6b34738e5dd31d3a2d0 blob - 85c537570bcd93930f6544a2d914016a5fc79b27 blob + 15e7e7bf93516a927cc870960e3b520cbcebc1d1 --- kamirepl.c +++ kamirepl.c @@ -708,6 +708,36 @@ pp_msg(uint32_t len, uint8_t type, uint16_t tag, const case Rflush: if (len != 0) printf("invalid Rflush: %"PRIu32" extra bytes", len); + break; + + case Rwalk: + if (len < 2) { + printf("invaild Rwalk: less than two bytes (%d)", + (int)len); + break; + } + + memcpy(&slen, d, sizeof(slen)); + d += sizeof(slen); + len -= sizeof(slen); + slen = le16toh(slen); + + if (len != QIDSIZE * slen) { + printf("invalid Rwalk: wanted %d bytes for %d qids " + "but got %"PRIu32" bytes instead", + QIDSIZE*slen, slen, len); + break; + } + + printf("nwqid=%"PRIu16, slen); + + for (; slen != 0; slen--) { + printf(" "); + pp_qid(d, len); + d += QIDSIZE; + len -= QIDSIZE; + } + break; case Rerror: