needed? ignore EAGAIN in from rdma_get_cm_event
authorRalph Boehme <slow@samba.org>
Fri, 30 Sep 2016 22:42:00 +0000 (15:42 -0700)
committerStefan Metzmacher <metze@samba.org>
Fri, 1 Jun 2018 12:35:13 +0000 (14:35 +0200)
Working up to accepting RDMA connection. Next step is to read SMB-D nego
req and response.

Trace: smb-d-step1.pcap

Commit: e12b372d2d615256f86c0eee063c036c0645ad80

libcli/smb/smb_direct.c

index 4bfe03d005971be0cbc1ac15c1e2378ec57fe33f..d648672f4186c4858b3afb2bea1dd693940eb633 100644 (file)
@@ -2378,6 +2378,10 @@ static void smb_direct_listener_accept_rdma_handler(struct tevent_context *ev,
        ret = rdma_get_cm_event(l->rdma.cm_channel,
                                &l->rdma.cm_event);
        if (ret != 0) {
+               if (errno == EAGAIN) {
+                       DBG_ERR("SMB-D got EAGAIN error event on listener [%p]\n", l);
+                       return;
+               }
                status = map_nt_error_from_unix_common(errno);
                DEBUG(0,("%s:%s: ret[%d] errno[%d] status[%s]\n",
                        __location__, __FUNCTION__, ret, errno, nt_errstr(status)));