conn_param.initiator_depth = 1;
// conn_param.retry_count = 10;
- errno = 0;
-
- result = rdma_accept(cm_ev->id, NULL);
- if (result != 0) {
- DBG_ERR("rdma_accept failed [%s] result [%d]\n", strerror(errno), result);
- goto fail;
- }
-
sconn = smb_direct_connection_listener(daemon_state,
cm_ev->id);
if (sconn == NULL) {
DBG_ERR("smb_direct_connection_create failed\n");
- return;
+ goto fail;
+ }
+
+ status = smb_direct_connection_complete_alloc(sconn);
+ if (!NT_STATUS_IS_OK(status)) {
+ DBG_ERR("smb_direct_connection_complete_alloc failed\n");
+ goto fail;
}
cm_ev->id->context = sconn;
+
+ result = rdma_accept(cm_ev->id, NULL);
+ if (result != 0) {
+ DBG_ERR("rdma_accept failed [%s] result [%d]\n", strerror(errno), result);
+ goto fail;
+ }
+
break;
}
sconn = talloc_get_type_abort(cm_ev->id->context,
struct smb_direct_connection);
- status = smb_direct_connection_complete_alloc(sconn);
- if (!NT_STATUS_IS_OK(status)) {
- DBG_ERR("smb_direct_connection_complete_alloc failed\n");
- return;
- }
/*
* TODO: get things going...
*/