X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=src%2Futil.c;h=5760ae72588f52afc5cd6caf617a4b184e344ab9;hb=42515308e72e4ea6f6b49508c1ba286263dded64;hp=c5c22ba8c8c1f68351350d39db1a543cab6cd3f9;hpb=7270f6e96fc4cd75859fd48dc80bcb8902ae1614;p=i3%2Fi3 diff --git a/src/util.c b/src/util.c index c5c22ba8..5760ae72 100644 --- a/src/util.c +++ b/src/util.c @@ -265,25 +265,13 @@ char *store_restart_layout(void) { return NULL; } - size_t written = 0; - while (written < length) { - int n = write(fd, payload + written, length - written); - /* TODO: correct error-handling */ - if (n == -1) { - perror("write()"); - free(filename); - close(fd); - return NULL; - } - if (n == 0) { - DLOG("write == 0?\n"); - free(filename); - close(fd); - return NULL; - } - written += n; - DLOG("written: %zd of %zd\n", written, length); + if (writeall(fd, payload, length) == -1) { + ELOG("Could not write restart layout to \"%s\", layout will be lost: %s\n", filename, strerror(errno)); + free(filename); + close(fd); + return NULL; } + close(fd); if (length > 0) {