[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [RFC][PATCH v3 10/21] virtproxy: add handler for data p
From: |
Jes Sorensen |
Subject: |
Re: [Qemu-devel] [RFC][PATCH v3 10/21] virtproxy: add handler for data packets |
Date: |
Thu, 18 Nov 2010 12:25:42 +0100 |
User-agent: |
Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.12) Gecko/20101103 Fedora/1.0-0.33.b2pre.fc14 Lightning/1.0b3pre Thunderbird/3.1.6 |
On 11/16/10 02:16, Michael Roth wrote:
> + if (pkt->type == VP_PKT_CLIENT) {
> + TRACE("recieved client packet, client fd: %d, server fd: %d",
> + pkt->payload.proxied.client_fd,
> pkt->payload.proxied.server_fd);
> + fd = pkt->payload.proxied.server_fd;
> + } else if (pkt->type == VP_PKT_SERVER) {
> + TRACE("recieved server packet, client fd: %d, server fd: %d",
> + pkt->payload.proxied.client_fd,
> pkt->payload.proxied.server_fd);
> + fd = pkt->payload.proxied.client_fd;
> + } else {
> + TRACE("unknown packet type");
> + return -1;
> + }
-1 isn't a very friendly error value to pass up the stack.
> + /* TODO: proxied in non-blocking mode can causes us to spin here
> + * for slow servers/clients. need to use write()'s and maintain
> + * a per-conn write queue that we clear out before sending any
> + * more data to the fd
> + */
> + ret = vp_send_all(fd, (void *)pkt->payload.proxied.data,
> + pkt->payload.proxied.bytes);
> + if (ret == -1) {
> + LOG("error sending data over channel");
> + return -1;
> + } else if (ret != pkt->payload.proxied.bytes) {
> + TRACE("buffer full?");
> + return -1;
> + }
Again here, please pass the error codes up the stack so we can later
handle them appropriately.
Cheers,
Jes
- [Qemu-devel] [RFC][PATCH v3 05/21] virtproxy, add vp_channel_send_all, (continued)
- [Qemu-devel] [RFC][PATCH v3 05/21] virtproxy, add vp_channel_send_all, Michael Roth, 2010/11/15
- [Qemu-devel] [RFC][PATCH v3 06/21] virtproxy: add accept handler for communication channel, Michael Roth, 2010/11/15
- [Qemu-devel] [RFC][PATCH v3 07/21] virtproxy: add read handler for communication channel, Michael Roth, 2010/11/15
- [Qemu-devel] [RFC][PATCH v3 08/21] virtproxy: add vp_new() VPDriver constructor, Michael Roth, 2010/11/15
- [Qemu-devel] [RFC][PATCH v3 09/21] virtproxy: interfaces to set/remove/handle VPOForwards, Michael Roth, 2010/11/15
- [Qemu-devel] [RFC][PATCH v3 10/21] virtproxy: add handler for data packets, Michael Roth, 2010/11/15
- Re: [Qemu-devel] [RFC][PATCH v3 10/21] virtproxy: add handler for data packets,
Jes Sorensen <=
- [Qemu-devel] [RFC][PATCH v3 12/21] virtproxy: add vp_handle_packet(), Michael Roth, 2010/11/15
- [Qemu-devel] [RFC][PATCH v3 13/21] virtproxy: interfaces to set/remove VPIForwards, Michael Roth, 2010/11/15
- [Qemu-devel] [RFC][PATCH v3 15/21] virtproxy: add read handler for proxied connections, Michael Roth, 2010/11/15
- [Qemu-devel] [RFC][PATCH v3 14/21] virtproxy: use new option list in virtproxy.c, Michael Roth, 2010/11/15
- [Qemu-devel] [RFC][PATCH v3 11/21] virtproxy: add handler for control packet, Michael Roth, 2010/11/15