fd_set writefs;
guint32 n;
- n = count - offset;
+ n = count;
FD_SET(fd, &writefs);
tmval.tv_sec = timeout / 1000;
}
}
- t = write(fd, buffer + offset, count);
+ do {
+ t = write (fd, buffer + offset, n);
+ } while (t == -1 && errno == EINTR);
+
+ if (t < 0)
+ return -1;
if (timeout > 0)
{
{
return -1;
}
- }
+ }
offset += t;
n -= t;