mirror of
https://github.com/cuberite/libevent.git
synced 2025-09-08 20:07:56 -04:00
Tweak the evutil_open_closeonexec patch to work on windows, old unixes.
Windows doesn't have a mode_t as far as I can tell. Some unixes, iirc, don't like three-argument open without O_CREAT.
This commit is contained in:
parent
d2b5f7223a
commit
03dce42dfa
7
evutil.c
7
evutil.c
@ -88,7 +88,7 @@
|
||||
#endif
|
||||
|
||||
int
|
||||
evutil_open_closeonexec(const char *pathname, int flags, mode_t mode)
|
||||
evutil_open_closeonexec(const char *pathname, int flags, unsigned mode)
|
||||
{
|
||||
int fd;
|
||||
|
||||
@ -96,7 +96,10 @@ evutil_open_closeonexec(const char *pathname, int flags, mode_t mode)
|
||||
flags |= O_CLOEXEC;
|
||||
#endif
|
||||
|
||||
fd = open(pathname, flags, mode);
|
||||
if (flags & O_CREAT)
|
||||
fd = open(pathname, flags, (mode_t)mode);
|
||||
else
|
||||
fd = open(pathname, flags);
|
||||
if (fd < 0)
|
||||
return -1;
|
||||
|
||||
|
@ -161,7 +161,10 @@ char EVUTIL_TOLOWER(char c);
|
||||
#define EVUTIL_UPCAST(ptr, type, field) \
|
||||
((type *)(((char*)(ptr)) - evutil_offsetof(type, field)))
|
||||
|
||||
int evutil_open_closeonexec(const char *pathname, int flags, mode_t mode);
|
||||
/* As open(pathname, flags, mode), except that the file is always opened with
|
||||
* the close-on-exec flag set. (And the mode argument is mandatory.)
|
||||
*/
|
||||
int evutil_open_closeonexec(const char *pathname, int flags, unsigned mode);
|
||||
|
||||
int evutil_read_file(const char *filename, char **content_out, size_t *len_out,
|
||||
int is_binary);
|
||||
|
Loading…
x
Reference in New Issue
Block a user