error reporting function.
git-svn-id: svn://svn.tartarus.org/sgt/putty@9933
cda61777-01e9-0310-a592-
d414129be87e
*/
fd = open(fname, O_CREAT | O_WRONLY, 0600);
if (fd < 0) {
*/
fd = open(fname, O_CREAT | O_WRONLY, 0600);
if (fd < 0) {
+ if (errno != ENOENT) {
+ char *msg = dupprintf("Unable to write random seed: open(\"%s\") "
+ "returned '%s'", fname, strerror(errno));
+ nonfatal(msg);
+ sfree(msg);
+ return;
+ }
char *dir;
dir = make_filename(INDEX_DIR, NULL);
char *dir;
dir = make_filename(INDEX_DIR, NULL);
+ if (mkdir(dir, 0700) < 0) {
+ char *msg = dupprintf("Unable to write random seed: mkdir(\"%s\") "
+ "returned '%s'", dir, strerror(errno));
+ nonfatal(msg);
+ sfree(msg);
+ sfree(dir);
+ return;
+ }
sfree(dir);
fd = open(fname, O_CREAT | O_WRONLY, 0600);
sfree(dir);
fd = open(fname, O_CREAT | O_WRONLY, 0600);
+ if (errno != ENOENT) {
+ char *msg = dupprintf("Unable to write random seed: open(\"%s\") "
+ "returned '%s'", fname, strerror(errno));
+ nonfatal(msg);
+ sfree(msg);
+ return;
+ }
}
while (len > 0) {
int ret = write(fd, data, len);
}
while (len > 0) {
int ret = write(fd, data, len);
+ if (ret < 0) {
+ char *msg = dupprintf("Unable to write random seed: write "
+ "returned '%s'", strerror(errno));
+ nonfatal(msg);
+ sfree(msg);
+ break;
+ }
len -= ret;
data = (char *)data + len;
}
len -= ret;
data = (char *)data + len;
}