On Fri, Jan 17, 2014 at 05:26:26PM +0100, Daniel Willmann wrote:
- LOGP(DSMPP, LOGL_ERROR, "[%s] read returned
%d\n",
- esme->system_id, rc);
+ /* EINTR is a non-fatal error, just try again */
+ if (errno == EINTR)
+ return 0;
if (rc < 0) {
- LOGP(DSMPP, LOGL_ERROR, "[%s] read returned %d\n",
- esme->system_id, rc);
+ LOGP(DSMPP, LOGL_ERROR, "[%s] read returned %d (%s)\n",
+ esme->system_id, rc, strerror(errno));
+ goto dead_socket;
For reference. you should make the errno check in both cases or just
simplify the reading part and move the error handling to a macro.