goto exit;
}
+ dsi->write_count += written;
+
+exit:
if (setnonblock(dsi->socket, 0) < 0) {
LOG(log_error, logtype_dsi, "dsi_stream_write: setnonblock: %s", strerror(errno));
written = -1;
- goto exit;
}
- dsi->write_count += written;
-
-exit:
dsi->in_write--;
return written;
}
{
size_t stored;
ssize_t len;
-
+
stored = 0;
while (stored < length) {
len = buf_read(dsi, (u_int8_t *) data + stored, length - stored);
- if (len == -1 && errno == EINTR)
+ if (len == -1 && errno == EINTR) {
continue;
- else if (len > 0)
+ } else if (len > 0) {
stored += len;
- else { /* eof or error */
+ } else { /* eof or error */
/* don't log EOF error if it's just after connect (OSX 10.3 probe) */
if (len || stored || dsi->read_count) {
- LOG(log_error, logtype_dsi, "dsi_stream_read(%d): %s", len, (len < 0)?strerror(errno):"unexpected EOF");
+ if (! (dsi->flags & DSI_DISCONNECTED))
+ LOG(log_error, logtype_dsi, "dsi_stream_read(fd: %i): len:%d, %s",
+ dsi->socket, len, (len < 0) ? strerror(errno) : "unexpected EOF");
}
break;
}
*/
void dsi_sleep(DSI *dsi, const int state)
{
- dsi->asleep = state;
+ if (state)
+ dsi->flags |= DSI_SLEEPING;
+ else
+ dsi->flags &= ~DSI_SLEEPING;
}
/* ---------------------------------------