diff options
Diffstat (limited to 'source3/lib')
-rw-r--r-- | source3/lib/tldap.c | 49 |
1 files changed, 25 insertions, 24 deletions
diff --git a/source3/lib/tldap.c b/source3/lib/tldap.c index 8f6e3a246e..aba8a25fbf 100644 --- a/source3/lib/tldap.c +++ b/source3/lib/tldap.c @@ -229,6 +229,31 @@ struct read_ldap_state { bool done; }; +static ssize_t read_ldap_more(uint8_t *buf, size_t buflen, void *private_data); +static void read_ldap_done(struct tevent_req *subreq); + +static struct tevent_req *read_ldap_send(TALLOC_CTX *mem_ctx, + struct tevent_context *ev, + struct tstream_context *conn) +{ + struct tevent_req *req, *subreq; + struct read_ldap_state *state; + + req = tevent_req_create(mem_ctx, &state, struct read_ldap_state); + if (req == NULL) { + return NULL; + } + state->done = false; + + subreq = tstream_read_packet_send(state, ev, conn, 2, read_ldap_more, + state); + if (tevent_req_nomem(subreq, req)) { + return tevent_req_post(req, ev); + } + tevent_req_set_callback(subreq, read_ldap_done, req); + return req; +} + static ssize_t read_ldap_more(uint8_t *buf, size_t buflen, void *private_data) { struct read_ldap_state *state = talloc_get_type_abort( @@ -275,30 +300,6 @@ static ssize_t read_ldap_more(uint8_t *buf, size_t buflen, void *private_data) return len; } -static void read_ldap_done(struct tevent_req *subreq); - -static struct tevent_req *read_ldap_send(TALLOC_CTX *mem_ctx, - struct tevent_context *ev, - struct tstream_context *conn) -{ - struct tevent_req *req, *subreq; - struct read_ldap_state *state; - - req = tevent_req_create(mem_ctx, &state, struct read_ldap_state); - if (req == NULL) { - return NULL; - } - state->done = false; - - subreq = tstream_read_packet_send(state, ev, conn, 2, read_ldap_more, - state); - if (tevent_req_nomem(subreq, req)) { - return tevent_req_post(req, ev); - } - tevent_req_set_callback(subreq, read_ldap_done, req); - return req; -} - static void read_ldap_done(struct tevent_req *subreq) { struct tevent_req *req = tevent_req_callback_data( |