summaryrefslogtreecommitdiffstats
path: root/proxy/src/gp_socket.c
diff options
context:
space:
mode:
authorSimo Sorce <simo@redhat.com>2012-01-17 19:19:44 -0500
committerSimo Sorce <simo@redhat.com>2012-01-17 23:51:17 -0500
commit1d62ecb4261c30c8312f765f81ad9b4c75334a33 (patch)
tree0b3ac8467a000d0f3d59b1ff756346f7d3fce992 /proxy/src/gp_socket.c
parent6e78f9028693fa17bbdc89dfd64111c76c2c9981 (diff)
downloadgss-proxy-1d62ecb4261c30c8312f765f81ad9b4c75334a33.tar.gz
gss-proxy-1d62ecb4261c30c8312f765f81ad9b4c75334a33.tar.xz
gss-proxy-1d62ecb4261c30c8312f765f81ad9b4c75334a33.zip
Add worker threads
Diffstat (limited to 'proxy/src/gp_socket.c')
-rw-r--r--proxy/src/gp_socket.c17
1 files changed, 13 insertions, 4 deletions
diff --git a/proxy/src/gp_socket.c b/proxy/src/gp_socket.c
index 8b360ed..3c80142 100644
--- a/proxy/src/gp_socket.c
+++ b/proxy/src/gp_socket.c
@@ -233,6 +233,7 @@ static void gp_socket_read(verto_ctx *vctx, verto_ev *ev)
uint32_t size;
bool header = false;
size_t rn;
+ int ret;
int fd;
fd = verto_get_fd(ev);
@@ -299,10 +300,18 @@ static void gp_socket_read(verto_ctx *vctx, verto_ev *ev)
rbuf->pos += rn;
if (rbuf->pos == rbuf->size) {
- /* got all data hand over packet */
- /* TODO */
- ret = ENOENT;
- goto done;
+ /* got all data, hand over packet */
+ ret = gp_query_new(rbuf->conn->gpctx->workers, rbuf->conn,
+ rbuf->data, rbuf->size);
+ if (ret != 0) {
+ /* internal error, not much we can do */
+ goto done;
+ }
+
+ /* we successfully handed over the data */
+ rbuf->data = NULL;
+ gp_buffer_free(rbuf);
+ return;
}
ret = EAGAIN;