const struct sockaddr_storage *addr,
struct tsocket_address *local_addr,
struct tsocket_address *remote_addr);
-NTSTATUS smb_transport_direct_rdma_connect_recv(struct tevent_req *req);
+NTSTATUS smb_direct_rdma_connect_recv(struct tevent_req *req);
+struct tevent_req *smb_direct_negotiate_send(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct smb_direct_transport *transport);
+NTSTATUS smb_direct_negotiate_recv(struct tevent_req *req);
struct tevent_req *smbsock_connect_send(TALLOC_CTX *mem_ctx,
struct tevent_context *ev,
req);
}
+static void smbsock_connect_do_5445(struct tevent_req *subreq)
+{
+ struct tevent_req *req = tevent_req_callback_data(
+ subreq, struct tevent_req);
+ struct smbsock_connect_state *state = tevent_req_data(
+ req, struct smbsock_connect_state);
+
+ status = smb_direct_rdma_connect_recv(subreq);
+ TALLOC_FREE(subreq);
+ if (tevent_req_nterror(req, status)) {
+ return;
+ }
+
+ state->req_5445 = smb_direct_negotiate_send(state,
+ state->ev,
+ if (tevent_req_nomem(state->req_5445, req)) {
+ return;
+ }
+ tevent_req_set_callback(state->req_5445, smbsock_connect_connected,
+ req);
+}
+
static void smbsock_connect_connected(struct tevent_req *subreq)
{
struct tevent_req *req = tevent_req_callback_data(
if (subreq == state->req_5445) {
- status = smb_transport_direct_rdma_connect_recv(subreq);
+ status = smb_direct_negotiate_recv(subreq);
TALLOC_FREE(state->req_5445);
TALLOC_FREE(state->smb_direct);
state->sock = -1;