From: Pekka Riikonen Date: Tue, 17 Dec 2002 09:07:20 +0000 (+0000) Subject: Fixed file writing on WIN32 to use O_BINARY. A patch by X-Git-Tag: silc.client.0.9.11~20 X-Git-Url: http://git.silcnet.org/gitweb/?p=silc.git;a=commitdiff_plain;h=34d96a384acf601085398600a321c3e19a982c54 Fixed file writing on WIN32 to use O_BINARY. A patch by Matthew Aldous. --- diff --git a/CHANGES b/CHANGES index d960e2aa..c4c9e7b3 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,9 @@ +Tue Dec 17 10:05:00 CET 2002 Pekka Riikonen + + * Fixed file writing on WIN32 to use O_BINARY flag. Affected + file is lib/silcutil/silcfileutil.c. A patch by Matthew + Aldous . + Mon Dec 16 19:33:05 EET 2002 Pekka Riikonen * Fixed double free in async host lookup code. Affected file diff --git a/lib/silcutil/silcfileutil.c b/lib/silcutil/silcfileutil.c index 7d2d1475..22c6dc9a 100644 --- a/lib/silcutil/silcfileutil.c +++ b/lib/silcutil/silcfileutil.c @@ -65,8 +65,14 @@ int silc_file_writefile(const char *filename, const char *buffer, SilcUInt32 len) { int fd; + int flags = O_CREAT | O_WRONLY | O_TRUNC; - if ((fd = creat(filename, 0644)) == -1) { +#if defined(O_BINARY) + flags |= O_BINARY; +#endif /* O_BINARY */ + + if ((fd = open(filename, flags, 0644)) + == -1) { SILC_LOG_ERROR(("Cannot open file %s for writing: %s", filename, strerror(errno))); return -1; @@ -90,8 +96,14 @@ int silc_file_writefile_mode(const char *filename, const char *buffer, SilcUInt32 len, int mode) { int fd; + int flags = O_CREAT | O_WRONLY | O_TRUNC; + +#if defined(O_BINARY) + flags |= O_BINARY; +#endif /* O_BINARY */ - if ((fd = creat(filename, mode)) == -1) { + if ((fd = open(filename, flags, 0644)) + == -1) { SILC_LOG_ERROR(("Cannot open file %s for writing: %s", filename, strerror(errno))); return -1;