}
else
{
- lm->disconn_slaves++;
-
elt.key = -1;
elt.data_struct = conn;
if ((index =
/* try connectiong to master */
err = memif_request_connection (conn);
- if ((err < 0) && (lm->disconn_slaves == 1))
+ if ((err != MEMIF_ERR_SUCCESS) && (lm->disconn_slaves == 0))
{
/* connection failed, arm reconnect timer (if not armed) */
if (timerfd_settime (lm->timerfd, 0, &lm->arm, NULL) < 0)
goto error;
}
}
+ lm->disconn_slaves++;
}
*c = conn;
}
else
{
+ err = memif_syscall_error_handler (errno);
strcpy ((char *) conn->remote_disconnect_string,
- memif_strerror (memif_syscall_error_handler (errno)));
+ memif_strerror (err));
goto error;
}
ring->desc[slot & mask].offset =
(uint32_t) (b0->data -
c->regions[ring->desc[slot & mask].region].addr);
+ ring->desc[slot & mask].flags &= ~MEMIF_DESC_FLAG_NEXT;
ring->desc[slot & mask].flags |=
(b0->flags & MEMIF_BUFFER_FLAG_NEXT) ? MEMIF_DESC_FLAG_NEXT : 0;