Lines Matching full:client

582 /* Client */
597 static int coroutine_fn prh_read(PRHelperClient *client, void *buf, int sz, in prh_read() argument
611 n_read = qio_channel_readv_full(QIO_CHANNEL(client->ioc), &iov, 1, in prh_read()
615 qio_channel_yield(QIO_CHANNEL(client->ioc), G_IO_IN); in prh_read()
627 if (client->fd == -1) { in prh_read()
628 client->fd = fds[i]; in prh_read()
648 if (client->fd != -1) { in prh_read()
649 close(client->fd); in prh_read()
650 client->fd = -1; in prh_read()
655 static int coroutine_fn prh_read_request(PRHelperClient *client, in prh_read_request() argument
661 if (prh_read(client, req->cdb, sizeof(req->cdb), NULL) < 0) { in prh_read_request()
665 if (client->fd == -1) { in prh_read_request()
677 if (sz > sizeof(client->data)) { in prh_read_request()
682 if (qio_channel_read_all(QIO_CHANNEL(client->ioc), in prh_read_request()
683 (char *)client->data, sz, in prh_read_request()
689 req->fd = client->fd; in prh_read_request()
691 client->fd = -1; in prh_read_request()
695 close(client->fd); in prh_read_request()
696 client->fd = -1; in prh_read_request()
700 static int coroutine_fn prh_write_response(PRHelperClient *client, in prh_write_response() argument
708 assert(resp->sz <= req->sz && resp->sz <= sizeof(client->data)); in prh_write_response()
717 r = qio_channel_write_all(QIO_CHANNEL(client->ioc), in prh_write_response()
723 r = qio_channel_write_all(QIO_CHANNEL(client->ioc), in prh_write_response()
724 (char *) client->data, in prh_write_response()
731 PRHelperClient *client = opaque; in prh_co_entry() local
736 qio_channel_set_blocking(QIO_CHANNEL(client->ioc), in prh_co_entry()
738 qio_channel_set_follow_coroutine_ctx(QIO_CHANNEL(client->ioc), true); in prh_co_entry()
744 r = qio_channel_write_all(QIO_CHANNEL(client->ioc), in prh_co_entry()
750 r = qio_channel_read_all(QIO_CHANNEL(client->ioc), in prh_co_entry()
761 sz = prh_read_request(client, &req, &resp, &local_err); in prh_co_entry()
769 client->data, sz); in prh_co_entry()
772 resp.sz = sizeof(client->data); in prh_co_entry()
774 client->data, &resp.sz); in prh_co_entry()
784 if (prh_write_response(client, &req, &resp, &local_err) < 0) { in prh_co_entry()
798 object_unref(OBJECT(client->ioc)); in prh_co_entry()
799 g_free(client); in prh_co_entry()