Add v9fs_rerror() function to the 9p test client. This function is the legacy 9p2000.u variant for returned errors (i.e. in contrast to the already existing Rlerror response handler function v9fs_rlerror() for the 9p2000.L protocol version).
Signed-off-by: Christian Schoenebeck <[email protected]> --- tests/qtest/libqos/virtio-9p-client.c | 11 +++++++++++ tests/qtest/libqos/virtio-9p-client.h | 1 + 2 files changed, 12 insertions(+) diff --git a/tests/qtest/libqos/virtio-9p-client.c b/tests/qtest/libqos/virtio-9p-client.c index b2f0037b7b..005ae53a3f 100644 --- a/tests/qtest/libqos/virtio-9p-client.c +++ b/tests/qtest/libqos/virtio-9p-client.c @@ -287,6 +287,17 @@ void v9fs_req_free(P9Req *req) g_free(req); } +/* size[4] Rerror tag[2] ename[s] errno[4] */ +void v9fs_rerror(P9Req *req, uint32_t *err) +{ + g_autofree char *ename = NULL; + + v9fs_req_recv(req, P9_RERROR); + v9fs_string_read(req, NULL, &ename); + v9fs_uint32_read(req, err); + v9fs_req_free(req); +} + /* size[4] Rlerror tag[2] ecode[4] */ void v9fs_rlerror(P9Req *req, uint32_t *err) { diff --git a/tests/qtest/libqos/virtio-9p-client.h b/tests/qtest/libqos/virtio-9p-client.h index c910407f70..5a00a0870c 100644 --- a/tests/qtest/libqos/virtio-9p-client.h +++ b/tests/qtest/libqos/virtio-9p-client.h @@ -599,6 +599,7 @@ void v9fs_req_send(P9Req *req); void v9fs_req_wait_for_reply(P9Req *req, uint32_t *len); void v9fs_req_recv(P9Req *req, uint8_t id); void v9fs_req_free(P9Req *req); +void v9fs_rerror(P9Req *req, uint32_t *err); void v9fs_rlerror(P9Req *req, uint32_t *err); TVersionRes v9fs_tversion(TVersionOpt); void v9fs_rversion(P9Req *req, uint16_t *len, char **version); -- 2.47.3
