summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVolker Lendecke <vl@samba.org>2009-05-10 10:49:39 +0200
committerVolker Lendecke <vl@samba.org>2009-05-24 13:49:59 +0200
commit6492ffd8df0d8bd847c977396edd070b8be65f54 (patch)
tree2e8a994efd2ee9b5fbcc48c83f92bae77d45c80f
parenta8e02b591b0c82c1f75f4f51bc683d9775f13d54 (diff)
downloadsamba-6492ffd8df0d8bd847c977396edd070b8be65f54.tar.gz
samba-6492ffd8df0d8bd847c977396edd070b8be65f54.tar.bz2
samba-6492ffd8df0d8bd847c977396edd070b8be65f54.zip
Fix wb_simple_trans queueing
-rw-r--r--source3/lib/wb_reqtrans.c19
1 files changed, 3 insertions, 16 deletions
diff --git a/source3/lib/wb_reqtrans.c b/source3/lib/wb_reqtrans.c
index 3fdf62a108..16d71fe03e 100644
--- a/source3/lib/wb_reqtrans.c
+++ b/source3/lib/wb_reqtrans.c
@@ -169,14 +169,7 @@ static void wb_req_write_done(struct tevent_req *subreq)
int err;
state->ret = writev_recv(subreq, &err);
- /*
- * We do not TALLOC_FREE(subreq) here, as this would trigger the next
- * write of a client. The winbind protocol is purely request/response
- * without multiplex ID's, so having multiple requeusts on the fly
- * would confuse sequencing.
- *
- * Eventually the writev_req will be freed, "subreq" a child of "req"
- */
+ TALLOC_FREE(subreq);
if (state->ret < 0) {
tevent_req_error(req, err);
return;
@@ -417,14 +410,7 @@ static void wb_simple_trans_write_done(struct tevent_req *subreq)
int err;
ret = wb_req_write_recv(subreq, &err);
- /*
- * We do not TALLOC_FREE(subreq) here, as this would trigger the next
- * write of a client. The winbind protocol is purely request/response
- * without multiplex ID's, so having multiple requeusts on the fly
- * would confuse sequencing.
- *
- * Eventually the "subreq" will be freed, it is a child of "req"
- */
+ TALLOC_FREE(subreq);
if (ret == -1) {
tevent_req_error(req, err);
return;
@@ -446,6 +432,7 @@ static void wb_simple_trans_read_done(struct tevent_req *subreq)
int err;
ret = wb_resp_read_recv(subreq, state, &state->wb_resp, &err);
+ TALLOC_FREE(subreq);
if (ret == -1) {
tevent_req_error(req, err);
return;