static void wreplsrv_call_writev_done(struct tevent_req *subreq) { struct wreplsrv_in_call *call = tevent_req_callback_data(subreq, struct wreplsrv_in_call); int sys_errno; int rc; rc = tstream_writev_queue_recv(subreq, &sys_errno); TALLOC_FREE(subreq); if (rc == -1) { const char *reason; reason = talloc_asprintf(call, "wreplsrv_call_writev_done: " "tstream_writev_queue_recv() - %d:%s", sys_errno, strerror(sys_errno)); if (reason == NULL) { reason = "wreplsrv_call_writev_done: " "tstream_writev_queue_recv() failed"; } wreplsrv_terminate_in_connection(call->wreplconn, reason); return; } if (call->terminate_after_send) { wreplsrv_terminate_in_connection(call->wreplconn, "wreplsrv_in_connection: terminate_after_send"); return; } talloc_free(call); }
static void kdc_tcp_call_writev_done(struct tevent_req *subreq) { struct kdc_tcp_call *call = tevent_req_callback_data(subreq, struct kdc_tcp_call); int sys_errno; int rc; rc = tstream_writev_queue_recv(subreq, &sys_errno); TALLOC_FREE(subreq); if (rc == -1) { const char *reason; reason = talloc_asprintf(call, "kdc_tcp_call_writev_done: " "tstream_writev_queue_recv() - %d:%s", sys_errno, strerror(sys_errno)); if (!reason) { reason = "kdc_tcp_call_writev_done: tstream_writev_queue_recv() failed"; } kdc_tcp_terminate_connection(call->kdc_conn, reason); return; } /* We don't care about errors */ talloc_free(call); }
static void ldapsrv_call_writev_done(struct tevent_req *subreq) { struct ldapsrv_call *call = tevent_req_callback_data(subreq, struct ldapsrv_call); struct ldapsrv_connection *conn = call->conn; int sys_errno; int rc; rc = tstream_writev_queue_recv(subreq, &sys_errno); TALLOC_FREE(subreq); if (rc == -1) { const char *reason; reason = talloc_asprintf(call, "ldapsrv_call_writev_done: " "tstream_writev_queue_recv() - %d:%s", sys_errno, strerror(sys_errno)); if (reason == NULL) { reason = "ldapsrv_call_writev_done: " "tstream_writev_queue_recv() failed"; } ldapsrv_terminate_connection(conn, reason); return; } if (call->postprocess_send) { subreq = call->postprocess_send(call, conn->connection->event.ctx, call->postprocess_private); if (subreq == NULL) { ldapsrv_terminate_connection(conn, "ldapsrv_call_writev_done: " "call->postprocess_send - no memory"); return; } tevent_req_set_callback(subreq, ldapsrv_call_postprocess_done, call); return; } TALLOC_FREE(call); ldapsrv_call_read_next(conn); }