diff options
author | Simo Sorce <simo@redhat.com> | 2012-01-17 19:19:44 -0500 |
---|---|---|
committer | Simo Sorce <simo@redhat.com> | 2012-01-17 23:51:17 -0500 |
commit | 1d62ecb4261c30c8312f765f81ad9b4c75334a33 (patch) | |
tree | 0b3ac8467a000d0f3d59b1ff756346f7d3fce992 /proxy/src/gp_socket.c | |
parent | 6e78f9028693fa17bbdc89dfd64111c76c2c9981 (diff) | |
download | gss-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.c | 17 |
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; |