From dd174820dcbb31d57ce35c201b70381479724694 Mon Sep 17 00:00:00 2001 From: Wouter Wijngaards Date: Tue, 27 Oct 2015 15:35:08 +0000 Subject: [PATCH] windows portability. git-svn-id: file:///svn/unbound/trunk@3521 be551aaa-1e26-0410-a405-d3ace91eadb9 --- config.h.in | 3 +++ configure | 2 +- configure.ac | 2 +- smallapp/unbound-anchor.c | 8 ++++++++ validator/autotrust.c | 4 ++++ 5 files changed, 17 insertions(+), 2 deletions(-) diff --git a/config.h.in b/config.h.in index 32a9d88c6..1e44741a3 100644 --- a/config.h.in +++ b/config.h.in @@ -155,6 +155,9 @@ /* Define to 1 if fseeko (and presumably ftello) exists and is declared. */ #undef HAVE_FSEEKO +/* Define to 1 if you have the `fsync' function. */ +#undef HAVE_FSYNC + /* Whether getaddrinfo is available */ #undef HAVE_GETADDRINFO diff --git a/configure b/configure index bc09113f1..a08112699 100755 --- a/configure +++ b/configure @@ -18116,7 +18116,7 @@ if test "$ac_res" != no; then : fi -for ac_func in tzset sigprocmask fcntl getpwnam getrlimit setrlimit setsid sbrk chroot kill chown sleep usleep random srandom recvmsg sendmsg writev socketpair glob initgroups strftime localtime_r setusercontext _beginthreadex endservent endprotoent +for ac_func in tzset sigprocmask fcntl getpwnam getrlimit setrlimit setsid sbrk chroot kill chown sleep usleep random srandom recvmsg sendmsg writev socketpair glob initgroups strftime localtime_r setusercontext _beginthreadex endservent endprotoent fsync do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" diff --git a/configure.ac b/configure.ac index aa7a9f20b..dd7bd2a57 100644 --- a/configure.ac +++ b/configure.ac @@ -990,7 +990,7 @@ AC_INCLUDES_DEFAULT #endif ]) AC_SEARCH_LIBS([setusercontext], [util]) -AC_CHECK_FUNCS([tzset sigprocmask fcntl getpwnam getrlimit setrlimit setsid sbrk chroot kill chown sleep usleep random srandom recvmsg sendmsg writev socketpair glob initgroups strftime localtime_r setusercontext _beginthreadex endservent endprotoent]) +AC_CHECK_FUNCS([tzset sigprocmask fcntl getpwnam getrlimit setrlimit setsid sbrk chroot kill chown sleep usleep random srandom recvmsg sendmsg writev socketpair glob initgroups strftime localtime_r setusercontext _beginthreadex endservent endprotoent fsync]) AC_CHECK_FUNCS([setresuid],,[AC_CHECK_FUNCS([setreuid])]) AC_CHECK_FUNCS([setresgid],,[AC_CHECK_FUNCS([setregid])]) diff --git a/smallapp/unbound-anchor.c b/smallapp/unbound-anchor.c index 612f0368f..884cb0185 100644 --- a/smallapp/unbound-anchor.c +++ b/smallapp/unbound-anchor.c @@ -1833,7 +1833,11 @@ write_unsigned_root(const char* root_anchor_file) if(verb && errno != 0) printf("%s\n", strerror(errno)); } fflush(out); +#ifdef HAVE_FSYNC fsync(fileno(out)); +#else + FlushFileBuffers((HANDLE)_fileno(out)); +#endif fclose(out); } @@ -1861,7 +1865,11 @@ write_root_anchor(const char* root_anchor_file, BIO* ds) if(verb && errno != 0) printf("%s\n", strerror(errno)); } fflush(out); +#ifdef HAVE_FSYNC fsync(fileno(out)); +#else + FlushFileBuffers((HANDLE)_fileno(out)); +#endif fclose(out); } diff --git a/validator/autotrust.c b/validator/autotrust.c index 9c500e08e..6e0f16040 100644 --- a/validator/autotrust.c +++ b/validator/autotrust.c @@ -1197,8 +1197,12 @@ void autr_write_file(struct module_env* env, struct trust_anchor* tp) } if(fflush(out) != 0) log_err("could not fflush(%s): %s", fname, strerror(errno)); +#ifdef HAVE_FSYNC if(fsync(fileno(out)) != 0) log_err("could not fsync(%s): %s", fname, strerror(errno)); +#else + FlushFileBuffers((HANDLE)_fileno(out)); +#endif if(fclose(out) != 0) { fatal_exit("could not complete write: %s: %s", fname, strerror(errno)); -- 2.47.2