summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWerner Koch <wk@gnupg.org>2010-12-09 12:50:22 +0100
committerWerner Koch <wk@gnupg.org>2010-12-09 12:50:22 +0100
commit1486dec17bfb4b60f49da2ea7a342abef33f2201 (patch)
treebcec62b0deef70ab50ae5631ad9501cbe637e0f7
parentChange timer tick interval under Wince (diff)
downloadgnupg2-1486dec17bfb4b60f49da2ea7a342abef33f2201.tar.xz
gnupg2-1486dec17bfb4b60f49da2ea7a342abef33f2201.zip
Change dirmngr timer under W32CE.
Fix trustdb open problem under W32CE.
-rw-r--r--dirmngr/ChangeLog4
-rw-r--r--dirmngr/dirmngr.c12
-rw-r--r--g10/ChangeLog6
-rw-r--r--g10/tdbio.c17
4 files changed, 35 insertions, 4 deletions
diff --git a/dirmngr/ChangeLog b/dirmngr/ChangeLog
index d840ed43f..67a51b005 100644
--- a/dirmngr/ChangeLog
+++ b/dirmngr/ChangeLog
@@ -1,3 +1,7 @@
+2010-12-07 Werner Koch <wk@g10code.com>
+
+ * dirmngr.c (TIMERTICK_INTERVAL) [W32CE]: Change to 60s.
+
2010-11-23 Werner Koch <wk@g10code.com>
* Makefile.am (dirmngr_LDFLAGS): Add extra_bin_ldflags.
diff --git a/dirmngr/dirmngr.c b/dirmngr/dirmngr.c
index 9525e2e12..966c657d0 100644
--- a/dirmngr/dirmngr.c
+++ b/dirmngr/dirmngr.c
@@ -241,11 +241,15 @@ static int active_connections;
/* The timer tick used for housekeeping stuff. For Windows we use a
longer period as the SetWaitableTimer seems to signal earlier than
- the 2 seconds. */
-#ifdef HAVE_W32_SYSTEM
-#define TIMERTICK_INTERVAL (4)
+ the 2 seconds. CHECK_OWN_SOCKET_INTERVAL defines how often we
+ check our own socket in standard socket mode. If that value is 0
+ we don't check at all. All values are in seconds. */
+#if defined(HAVE_W32CE_SYSTEM)
+# define TIMERTICK_INTERVAL (60)
+#elif defined(HAVE_W32_SYSTEM)
+# define TIMERTICK_INTERVAL (4)
#else
-#define TIMERTICK_INTERVAL (2) /* Seconds. */
+# define TIMERTICK_INTERVAL (2)
#endif
/* This union is used to avoid compiler warnings in case a pointer is
diff --git a/g10/ChangeLog b/g10/ChangeLog
index 0af97c45e..669c135ee 100644
--- a/g10/ChangeLog
+++ b/g10/ChangeLog
@@ -1,3 +1,9 @@
+2010-12-09 Werner Koch <wk@g10code.com>
+
+ * tdbio.c (tdbio_set_dbname) [W32CE]: Take care of missing errno.
+ (strerror) [W32CE]: Dummy replacement.
+ (open_db) [W32CE]: Fall back to read-only on any error.
+
2010-12-02 Werner Koch <wk@g10code.com>
* misc.c (openpgp_cipher_algo_name): Use gnupg_cipher_algo_name.
diff --git a/g10/tdbio.c b/g10/tdbio.c
index f967742c3..73681af7d 100644
--- a/g10/tdbio.c
+++ b/g10/tdbio.c
@@ -48,6 +48,13 @@
#define MY_O_BINARY 0
#endif
+/* We use ERRNO despite that the cegcc provided open/read/write
+ functions don't set ERRNO - at least show that ERRNO does not make
+ sense. */
+#ifdef HAVE_W32CE_SYSTEM
+#undef strerror
+#define strerror(a) ("[errno not available]")
+#endif
/****************
* Yes, this is a very simple implementation. We should really
@@ -494,6 +501,13 @@ tdbio_set_dbname( const char *new_dbname, int create )
fname = xstrdup (new_dbname);
if( access( fname, R_OK ) ) {
+#ifdef HAVE_W32CE_SYSTEM
+ /* We know how the cegcc implementation of access works ;-). */
+ if (GetLastError () == ERROR_FILE_NOT_FOUND)
+ gpg_err_set_errno (ENOENT);
+ else
+ gpg_err_set_errno (EIO);
+#endif /*HAVE_W32CE_SYSTEM*/
if( errno != ENOENT ) {
log_error( _("can't access `%s': %s\n"), fname, strerror(errno) );
xfree(fname);
@@ -606,6 +620,9 @@ open_db()
#ifdef EROFS
|| errno == EROFS
#endif
+#ifdef HAVE_W32CE_SYSTEM
+ || 1 /* cegcc's open does not set ERRNO. */
+#endif
)
) {
db_fd = open (db_name, O_RDONLY | MY_O_BINARY );