more caller
authorStefan Metzmacher <metze@samba.org>
Sun, 16 Sep 2012 22:33:42 +0000 (00:33 +0200)
committerStefan Metzmacher <metze@samba.org>
Tue, 18 Sep 2012 03:10:24 +0000 (05:10 +0200)
source3/libsmb/smbsock_connect.c

index 58ed95c1a13c0680ce7645df2f5b8bb7b8d95aa0..7393784ef5273ecb042956ec00205e1cbcfc4610 100644 (file)
@@ -330,7 +330,11 @@ struct tevent_req *smb_direct_rdma_connect_send(TALLOC_CTX *mem_ctx,
                                        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,
@@ -456,6 +460,28 @@ static void smbsock_connect_do_139(struct tevent_req *subreq)
                                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(
@@ -466,7 +492,7 @@ static void smbsock_connect_connected(struct tevent_req *subreq)
 
        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;