summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHeiko Hund <heiko.hund@sophos.com>2012-02-16 18:30:40 +0100
committerDavid Sommerseth <davids@redhat.com>2012-02-17 11:01:10 +0100
commita13cd253ca1ce987e4feca7d80bd19ff749f7787 (patch)
tree028f9f190c244ce45a64273f8d9d04f9de0ad5ed
parentd0109cbf459409a84963668c78f444c97ec2b349 (diff)
downloadopenvpn-a13cd253ca1ce987e4feca7d80bd19ff749f7787.tar.gz
openvpn-a13cd253ca1ce987e4feca7d80bd19ff749f7787.tar.xz
openvpn-a13cd253ca1ce987e4feca7d80bd19ff749f7787.zip
use the underscore version of stat on Windows
MSVC does not know wstat(). Instead _wstat() must be used here. Unfortunately _wstat() takes a 'struct _stat'. A type 'stat_t' is introduced to handle this situation in a portable way. [v2: Use openvpn_stat_t instead of stat_t (David Sommerseth)] Signed-off-by: Heiko Hund <heiko.hund@sophos.com> Signed-off-by: David Sommerseth <davids@redhat.com> Acked-by: Gert Doering <gert@greenie.muc.de>
-rw-r--r--misc.h6
-rw-r--r--pf.c2
-rw-r--r--win32.c4
3 files changed, 7 insertions, 5 deletions
diff --git a/misc.h b/misc.h
index e7a0b55..bdada42 100644
--- a/misc.h
+++ b/misc.h
@@ -168,10 +168,12 @@ openvpn_open (const char *path, int flags, mode_t mode)
#endif
#ifdef WIN32
-int openvpn_stat (const char *path, struct stat *buf);
+typedef struct _stat openvpn_stat_t;
+int openvpn_stat (const char *path, openvpn_stat_t *buf);
#else
+typedef struct stat openvpn_stat_t;
static inline int
-openvpn_stat (const char *path, struct stat *buf)
+openvpn_stat (const char *path, openvpn_stat_t *buf)
{
return stat (path, buf);
}
diff --git a/pf.c b/pf.c
index a0e9fc8..0ef839e 100644
--- a/pf.c
+++ b/pf.c
@@ -498,7 +498,7 @@ pf_check_reload (struct context *c)
&& c->c2.pf.filename
&& event_timeout_trigger (&c->c2.pf.reload, &c->c2.timeval, ETT_DEFAULT))
{
- struct stat s;
+ openvpn_stat_t s;
if (!openvpn_stat (c->c2.pf.filename, &s))
{
if (s.st_mtime > c->c2.pf.file_last_mod)
diff --git a/win32.c b/win32.c
index a8f4ed9..2ba97fc 100644
--- a/win32.c
+++ b/win32.c
@@ -1073,10 +1073,10 @@ openvpn_open (const char *path, int flags, int mode)
}
int
-openvpn_stat (const char *path, struct stat *buf)
+openvpn_stat (const char *path, openvpn_stat_t *buf)
{
struct gc_arena gc = gc_new ();
- int res = wstat (wide_string (path, &gc), buf);
+ int res = _wstat (wide_string (path, &gc), buf);
gc_free (&gc);
return res;
}