From 9c9527faa922fff90f04a7c22788a282b4b02fa1 Mon Sep 17 00:00:00 2001 From: Sebastian Wiedenroth Date: Sun, 18 Jan 2015 02:30:28 +0100 Subject: Fix build on SunOS - the struct dirent d_type is not available on SunOS - tm_gmtoff is not a POSIX field --- src/client/rspamc.c | 12 ++++++++++-- src/lua/lua_task.c | 2 ++ 2 files changed, 12 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/client/rspamc.c b/src/client/rspamc.c index 2a3191f27..5432aeae7 100644 --- a/src/client/rspamc.c +++ b/src/client/rspamc.c @@ -853,6 +853,9 @@ rspamc_process_dir (struct event_base *ev_base, struct rspamc_command *cmd, DIR *d; gint cur_req = 0; struct dirent *ent; +#if defined(__sun) + struct stat sb; +#endif FILE *in; char filebuf[PATH_MAX]; @@ -860,9 +863,14 @@ rspamc_process_dir (struct event_base *ev_base, struct rspamc_command *cmd, if (d != NULL) { while ((ent = readdir (d))) { + rspamd_snprintf (filebuf, sizeof (filebuf), "%s%c%s", + name, G_DIR_SEPARATOR, ent->d_name); +#if defined(__sun) + if (stat (filebuf, &sb)) continue; + if (S_ISREG (sb.st_mode)) { +#else if (ent->d_type == DT_REG || ent->d_type == DT_UNKNOWN) { - rspamd_snprintf (filebuf, sizeof (filebuf), "%s%c%s", - name, G_DIR_SEPARATOR, ent->d_name); +#endif if (access (filebuf, R_OK) != -1) { in = fopen (filebuf, "r"); if (in == NULL) { diff --git a/src/lua/lua_task.c b/src/lua/lua_task.c index 6d2ded9ec..7eed0a395 100644 --- a/src/lua/lua_task.c +++ b/src/lua/lua_task.c @@ -1763,7 +1763,9 @@ lua_task_get_date (lua_State *L) tt = tim; localtime_r (&tt, &t); +#if !defined(__sun) t.tm_gmtoff = 0; +#endif t.tm_isdst = 0; tim = mktime (&t); } -- cgit v1.2.3