Cyrus 2.3.9 RC1

Tomas Janousek tjanouse at redhat.com
Tue Aug 14 11:25:29 EDT 2007


Hello,

On Fri, Aug 10, 2007 at 01:29:26PM -0400, Ken Murchison wrote:
> If there are any outstanding issues that you believe still need to be 
> addressed in 2.3.9, please let me know.

The glibc upstream has recently defined open as macro to check for incorrect
usage of the third parameter. This is correct, the POSIX standard says that it
may be declared in such a way. The attached patch redefines all those
> db->open(...)
calls to
> (db->open)(...)
. I also replaced the close calls, since close may be declared as macro too.

(a similar fix is on its way to db4 upstream, I think)

Regards,
-- 
Tomas Janousek, SW Engineer, Red Hat, Inc.
-------------- next part --------------
--- cyrus-imapd-2.3.9/imap/quota_db.c.openmacro	2007-08-14 16:21:29.000000000 +0200
+++ cyrus-imapd-2.3.9/imap/quota_db.c	2007-08-14 16:31:48.000000000 +0200
@@ -251,7 +251,7 @@
 	strlcat(fname, FNAME_QUOTADB, fname_len);
     }
 
-    ret = QDB->open(fname, CYRUSDB_CREATE, &qdb);
+    ret = (QDB->open)(fname, CYRUSDB_CREATE, &qdb);
     if (ret != 0) {
 	syslog(LOG_ERR, "DBERROR: opening %s: %s", fname,
 	       cyrusdb_strerror(ret));
@@ -270,7 +270,7 @@
     int r;
 
     if (quota_dbopen) {
-	r = QDB->close(qdb);
+	r = (QDB->close)(qdb);
 	if (r) {
 	    syslog(LOG_ERR, "DBERROR: error closing quotas: %s",
 		   cyrusdb_strerror(r));
--- cyrus-imapd-2.3.9/imap/seen_bigdb.c.openmacro	2007-08-14 16:21:29.000000000 +0200
+++ cyrus-imapd-2.3.9/imap/seen_bigdb.c	2007-08-14 16:32:03.000000000 +0200
@@ -104,7 +104,7 @@
     strcpy(fname, config_dir);
     strcat(fname, FNAME_SEENDB);
 
-    r = DB->open(fname, CYRUSDB_CREATE, &bigdb);
+    r = (DB->open)(fname, CYRUSDB_CREATE, &bigdb);
     if (r != 0) {
 	syslog(LOG_ERR, "DBERROR: opening %s: %s", fname,
 	       cyrusdb_strerror(r));
@@ -385,7 +385,7 @@
     int r;
 
     if (seen_inited) {
-	r = DB->close(bigdb);
+	r = (DB->close)(bigdb);
 	if (r != 0) {
 	    syslog(LOG_ERR, "DBERROR: closing seen database: %s",
 		   cyrusdb_strerror(r));
--- cyrus-imapd-2.3.9/imap/mboxkey.c.openmacro	2007-08-14 16:21:29.000000000 +0200
+++ cyrus-imapd-2.3.9/imap/mboxkey.c	2007-08-14 16:31:01.000000000 +0200
@@ -150,7 +150,7 @@
     /* otherwise, close the existing database */
     if (mboxkeydb) {
 	abortcurrent(mboxkeydb);
-	r = DB->close(mboxkeydb->db);
+	r = (DB->close)(mboxkeydb->db);
 	if (r) {
 	    syslog(LOG_ERR, "DBERROR: error closing mboxkeydb: %s", 
 		   cyrusdb_strerror(r));
@@ -164,7 +164,7 @@
 
     /* open the mboxkeydb corresponding to user */
     fname = mboxkey_getpath(user);
-    r = DB->open(fname, (flags & MBOXKEY_CREATE) ? CYRUSDB_CREATE : 0,
+    r = (DB->open)(fname, (flags & MBOXKEY_CREATE) ? CYRUSDB_CREATE : 0,
 		 &mboxkeydb->db);
     if (r != 0) {
 	int level = (flags & MBOXKEY_CREATE) ? LOG_ERR : LOG_DEBUG;
@@ -325,7 +325,7 @@
 
 	/* free the old database hanging around */
 	abortcurrent(lastmboxkey);
-	r = DB->close(lastmboxkey->db);
+	r = (DB->close)(lastmboxkey->db);
 	if (r != CYRUSDB_OK) {
 	    syslog(LOG_ERR, "DBERROR: error closing lastmboxkey: %s",
 		   cyrusdb_strerror(r));
@@ -409,7 +409,7 @@
 
     if (lastmboxkey) {
 	abortcurrent(lastmboxkey);
-	r = DB->close(lastmboxkey->db);
+	r = (DB->close)(lastmboxkey->db);
 	if (r) {
 	    syslog(LOG_ERR, "DBERROR: error closing lastmboxkey: %s",
 		   cyrusdb_strerror(r));
@@ -482,10 +482,10 @@
     struct mboxkey_merge_rock rock;
 
     /* xxx does this need to be CYRUSDB_CREATE? */
-    r = DB->open(tmpfile, CYRUSDB_CREATE, &tmp);
+    r = (DB->open)(tmpfile, CYRUSDB_CREATE, &tmp);
     if(r) goto done;
 	    
-    r = DB->open(tgtfile, CYRUSDB_CREATE, &tgt);
+    r = (DB->open)(tgtfile, CYRUSDB_CREATE, &tgt);
     if(r) goto done;
 
     rock.db = tgt;
@@ -498,8 +498,8 @@
 
  done:
 
-    if(tgt) DB->close(tgt);
-    if(tmp) DB->close(tmp);
+    if(tgt) (DB->close)(tgt);
+    if(tmp) (DB->close)(tmp);
     
     return r;
 }
--- cyrus-imapd-2.3.9/imap/tls.c.openmacro	2007-08-14 16:21:29.000000000 +0200
+++ cyrus-imapd-2.3.9/imap/tls.c	2007-08-14 16:33:15.000000000 +0200
@@ -650,7 +650,7 @@
 	strlcpy(dbdir, config_dir, sizeof(dbdir));
 	strlcat(dbdir, FNAME_TLSSESSIONS, sizeof(dbdir));
 
-	r = DB->open(dbdir, CYRUSDB_CREATE, &sessdb);
+	r = (DB->open)(dbdir, CYRUSDB_CREATE, &sessdb);
 	if (r != 0) {
 	    syslog(LOG_ERR, "DBERROR: opening %s: %s",
 		   dbdir, cyrusdb_strerror(ret));
@@ -931,7 +931,7 @@
     int r;
 
     if (tls_serverengine && sess_dbopen) {
-	r = DB->close(sessdb);
+	r = (DB->close)(sessdb);
 	if (r) {
 	    syslog(LOG_ERR, "DBERROR: error closing tlsdb: %s",
 		   cyrusdb_strerror(r));
@@ -1008,7 +1008,7 @@
     strlcpy(dbdir, config_dir, sizeof(dbdir));
     strlcat(dbdir, FNAME_TLSSESSIONS, sizeof(dbdir));
 
-    ret = DB->open(dbdir, CYRUSDB_CREATE, &sessdb);
+    ret = (DB->open)(dbdir, CYRUSDB_CREATE, &sessdb);
     if (ret != CYRUSDB_OK) {
 	syslog(LOG_ERR, "DBERROR: opening %s: %s",
 	       dbdir, cyrusdb_strerror(ret));
@@ -1019,7 +1019,7 @@
 	sess_dbopen = 1;
 	prock.count = prock.deletions = 0;
 	DB->foreach(sessdb, "", 0, &prune_p, &prune_cb, &prock, NULL);
-	DB->close(sessdb);
+	(DB->close)(sessdb);
 	sessdb = NULL;
 	sess_dbopen = 0;
 
--- cyrus-imapd-2.3.9/imap/duplicate.c.openmacro	2007-08-14 16:21:29.000000000 +0200
+++ cyrus-imapd-2.3.9/imap/duplicate.c	2007-08-14 16:30:03.000000000 +0200
@@ -105,7 +105,7 @@
 	    strcat(fname, FNAME_DELIVERDB);
 	}
 
-	r = DB->open(fname, CYRUSDB_CREATE, &dupdb);
+	r = (DB->open)(fname, CYRUSDB_CREATE, &dupdb);
 	if (r != 0)
 	    syslog(LOG_ERR, "DBERROR: opening %s: %s", fname,
 		   cyrusdb_strerror(r));
@@ -395,7 +395,7 @@
     int r = 0;
 
     if (duplicate_dbopen) {
-	r = DB->close(dupdb);
+	r = (DB->close)(dupdb);
 	if (r) {
 	    syslog(LOG_ERR, "DBERROR: error closing deliverdb: %s",
 		   cyrusdb_strerror(r));
--- cyrus-imapd-2.3.9/imap/cvt_cyrusdb.c.openmacro	2007-08-14 16:21:29.000000000 +0200
+++ cyrus-imapd-2.3.9/imap/cvt_cyrusdb.c	2007-08-14 16:29:32.000000000 +0200
@@ -157,10 +157,10 @@
     printf("Converting from %s (%s) to %s (%s)\n", old_db, DB_OLD->name,
 	   new_db, DB_NEW->name);
 
-    r = DB_OLD->open(old_db, 0, &odb);
+    r = (DB_OLD->open)(old_db, 0, &odb);
     if(r != CYRUSDB_OK)
 	fatal("can't open old database", EC_TEMPFAIL);
-    r = DB_NEW->open(new_db, CYRUSDB_CREATE, &ndb);
+    r = (DB_NEW->open)(new_db, CYRUSDB_CREATE, &ndb);
     if(r != CYRUSDB_OK)
 	fatal("can't open new database", EC_TEMPFAIL);
 
@@ -173,8 +173,8 @@
 	fprintf(stderr, "Warning: apparently empty database converted.\n");
     
 
-    DB_OLD->close(odb);
-    DB_NEW->close(ndb);
+    (DB_OLD->close)(odb);
+    (DB_NEW->close)(ndb);
     
     cyrus_done();
 
--- cyrus-imapd-2.3.9/imap/annotate.c.openmacro	2007-08-14 16:21:29.000000000 +0200
+++ cyrus-imapd-2.3.9/imap/annotate.c	2007-08-14 16:28:42.000000000 +0200
@@ -253,7 +253,7 @@
 	strcat(fname, FNAME_ANNOTATIONS);
     }
 
-    ret = DB->open(fname, CYRUSDB_CREATE, &anndb);
+    ret = (DB->open)(fname, CYRUSDB_CREATE, &anndb);
     if (ret != 0) {
 	syslog(LOG_ERR, "DBERROR: opening %s: %s", fname,
 	       cyrusdb_strerror(ret));
@@ -270,7 +270,7 @@
     int r;
 
     if (annotate_dbopen) {
-	r = DB->close(anndb);
+	r = (DB->close)(anndb);
 	if (r) {
 	    syslog(LOG_ERR, "DBERROR: error closing annotations: %s",
 		   cyrusdb_strerror(r));
--- cyrus-imapd-2.3.9/imap/arbitron.c.openmacro	2007-08-14 16:21:29.000000000 +0200
+++ cyrus-imapd-2.3.9/imap/arbitron.c	2007-08-14 16:29:11.000000000 +0200
@@ -419,14 +419,14 @@
     int r;    
     struct db *tmp = NULL;
 
-    r = DB->open(path, 0, &tmp);
+    r = (DB->open)(path, 0, &tmp);
     if(r) goto done;
     
     DB->foreach(tmp, "", 0, process_user_p, process_user_cb,
 		(void *) user, NULL);
 
  done:
-    if(tmp) DB->close(tmp);
+    if(tmp) (DB->close)(tmp);
 }
 
 static int process_subs_cb(void *rockp __attribute__((unused)),
@@ -475,14 +475,14 @@
     int r;    
     struct db *tmp = NULL;
 
-    r = SUBDB->open(path, 0, &tmp);
+    r = (SUBDB->open)(path, 0, &tmp);
     if(r) goto done;
     
     SUBDB->foreach(tmp, "", 0, process_subs_p, process_subs_cb,
 		   (void *) user, NULL);
 
  done:
-    if(tmp) SUBDB->close(tmp);
+    if(tmp) (SUBDB->close)(tmp);
 }
 
 void report_users(struct user_list *u)
--- cyrus-imapd-2.3.9/imap/mboxlist.c.openmacro	2007-08-14 16:21:29.000000000 +0200
+++ cyrus-imapd-2.3.9/imap/mboxlist.c	2007-08-14 16:31:28.000000000 +0200
@@ -2746,7 +2746,7 @@
 	flags |= CYRUSDB_MBOXSORT;
     }
 
-    ret = DB->open(fname, flags, &mbdb);
+    ret = (DB->open)(fname, flags, &mbdb);
     if (ret != 0) {
 	syslog(LOG_ERR, "DBERROR: opening %s: %s", fname,
 	       cyrusdb_strerror(ret));
@@ -2765,7 +2765,7 @@
     int r;
 
     if (mboxlist_dbopen) {
-	r = DB->close(mbdb);
+	r = (DB->close)(mbdb);
 	if (r) {
 	    syslog(LOG_ERR, "DBERROR: error closing mailboxes: %s",
 		   cyrusdb_strerror(r));
@@ -2825,7 +2825,7 @@
 	flags |= CYRUSDB_MBOXSORT;
     }
 
-    r = SUBDB->open(subsfname, flags, ret);
+    r = (SUBDB->open)(subsfname, flags, ret);
     if (r != CYRUSDB_OK) {
 	r = IMAP_IOERROR;
     }
@@ -2839,7 +2839,7 @@
  */
 static void mboxlist_closesubs(struct db *sub)
 {
-    SUBDB->close(sub);
+    (SUBDB->close)(sub);
 }
 
 /*
--- cyrus-imapd-2.3.9/imap/cyr_dbtool.c.openmacro	2007-08-14 16:21:29.000000000 +0200
+++ cyrus-imapd-2.3.9/imap/cyr_dbtool.c	2007-08-14 16:29:52.000000000 +0200
@@ -203,7 +203,7 @@
     cyrus_init(alt_config, "cyr_dbtool", 0);
 
 
-    r = DB_OLD->open(old_db, db_flags, &odb);
+    r = (DB_OLD->open)(old_db, db_flags, &odb);
     if(r != CYRUSDB_OK)
 	fatal("can't open database", EC_TEMPFAIL);
 
@@ -250,7 +250,7 @@
         printf("Unknown action %s\n", action);
     }
 
-    DB_OLD->close(odb);
+    (DB_OLD->close)(odb);
     
     cyrus_done();
 
--- cyrus-imapd-2.3.9/imap/seen_db.c.openmacro	2007-08-14 16:21:29.000000000 +0200
+++ cyrus-imapd-2.3.9/imap/seen_db.c	2007-08-14 16:32:46.000000000 +0200
@@ -157,7 +157,7 @@
     /* otherwise, close the existing database */
     if (seendb) {
 	abortcurrent(seendb);
-	r = DB->close(seendb->db);
+	r = (DB->close)(seendb->db);
 	if (r) {
 	    syslog(LOG_ERR, "DBERROR: error closing seendb: %s", 
 		   cyrusdb_strerror(r));
@@ -170,7 +170,7 @@
 
     /* open the seendb corresponding to user */
     fname = seen_getpath(user);
-    r = DB->open(fname, (flags & SEEN_CREATE) ? CYRUSDB_CREATE : 0,
+    r = (DB->open)(fname, (flags & SEEN_CREATE) ? CYRUSDB_CREATE : 0,
 		 &seendb->db);
     if (r != 0) {
 	int level = (flags & SEEN_CREATE) ? LOG_ERR : LOG_DEBUG;
@@ -416,7 +416,7 @@
 
 	/* free the old database hanging around */
 	abortcurrent(lastseen);
-	r = DB->close(lastseen->db);
+	r = (DB->close)(lastseen->db);
 	if (r != CYRUSDB_OK) {
 	    syslog(LOG_ERR, "DBERROR: error closing lastseen: %s",
 		   cyrusdb_strerror(r));
@@ -555,7 +555,7 @@
 
     if (lastseen) {
 	abortcurrent(lastseen);
-	r = DB->close(lastseen->db);
+	r = (DB->close)(lastseen->db);
 	if (r) {
 	    syslog(LOG_ERR, "DBERROR: error closing lastseen: %s",
 		   cyrusdb_strerror(r));
@@ -653,10 +653,10 @@
     struct seen_merge_rock rock;
 
     /* xxx does this need to be CYRUSDB_CREATE? */
-    r = DB->open(tmpfile, CYRUSDB_CREATE, &tmp);
+    r = (DB->open)(tmpfile, CYRUSDB_CREATE, &tmp);
     if(r) goto done;
 	    
-    r = DB->open(tgtfile, CYRUSDB_CREATE, &tgt);
+    r = (DB->open)(tgtfile, CYRUSDB_CREATE, &tgt);
     if(r) goto done;
 
     rock.db = tgt;
@@ -669,8 +669,8 @@
 
  done:
 
-    if(tgt) DB->close(tgt);
-    if(tmp) DB->close(tmp);
+    if(tgt) (DB->close)(tgt);
+    if(tmp) (DB->close)(tmp);
     
     return r;
 }
--- cyrus-imapd-2.3.9/imap/fetchnews.c.openmacro	2007-08-14 16:21:29.000000000 +0200
+++ cyrus-imapd-2.3.9/imap/fetchnews.c	2007-08-14 16:30:14.000000000 +0200
@@ -94,7 +94,7 @@
 	    strcat(fname, FNAME_NEWSRCDB);
 	}
 
-	r = DB->open(fname, CYRUSDB_CREATE, &newsrc_db);
+	r = (DB->open)(fname, CYRUSDB_CREATE, &newsrc_db);
 	if (r != 0)
 	    syslog(LOG_ERR, "DBERROR: opening %s: %s", fname,
 		   cyrusdb_strerror(r));
@@ -112,7 +112,7 @@
     int r = 0;
 
     if (newsrc_dbopen) {
-	r = DB->close(newsrc_db);
+	r = (DB->close)(newsrc_db);
 	if (r) {
 	    syslog(LOG_ERR, "DBERROR: error closing fetchnews.db: %s",
 		   cyrusdb_strerror(r));
--- cyrus-imapd-2.3.9/lib/auth_pts.c.openmacro	2007-08-14 16:21:29.000000000 +0200
+++ cyrus-imapd-2.3.9/lib/auth_pts.c	2007-08-14 16:33:28.000000000 +0200
@@ -359,7 +359,7 @@
     
     strcpy(fnamebuf, config_dir);
     strcat(fnamebuf, PTS_DBFIL);
-    r = the_ptscache_db->open(fnamebuf, CYRUSDB_CREATE, &ptdb);
+    r = (the_ptscache_db->open)(fnamebuf, CYRUSDB_CREATE, &ptdb);
     if (r != 0) {
 	syslog(LOG_ERR, "DBERROR: opening %s: %s", fnamebuf,
 	       cyrusdb_strerror(ret));
@@ -501,7 +501,7 @@
     }
 
     /* close and unlock the database */
-    the_ptscache_db->close(ptdb);
+    (the_ptscache_db->close)(ptdb);
 
     return rc;
 }
--- cyrus-imapd-2.3.9/lib/test/rnddb.c.openmacro	2007-08-14 16:21:29.000000000 +0200
+++ cyrus-imapd-2.3.9/lib/test/rnddb.c	2007-08-14 16:34:50.000000000 +0200
@@ -133,7 +133,7 @@
 	srand(atoi(argv[2]));
     }
 
-    TRY(DB->open("scratch", &db));
+    TRY((DB->open)("scratch", &db));
 
     if (DB->consistent) {
 	TRY(DB->consistent(db));
@@ -291,7 +291,7 @@
 #endif
     }
 
-    TRY(DB->close(db));
+    TRY((DB->close)(db));
     TRY(DB->done());
 
     do_report();
--- cyrus-imapd-2.3.9/lib/test/cyrusdb.c.openmacro	2007-08-14 16:21:29.000000000 +0200
+++ cyrus-imapd-2.3.9/lib/test/cyrusdb.c	2007-08-14 16:34:37.000000000 +0200
@@ -70,15 +70,15 @@
 	    char *fname = buf + 5;
 
 	    if (db) { /* close it */
-		TRY(DB->close(db));
+		TRY((DB->close)(db));
 	    }
-	    TRY(DB->open(fname, 1, &db));
+	    TRY((DB->open)(fname, 1, &db));
 
 	    printf("ok\n");
 	} else if (!db) {
 	    TRY(db == NULL);
 	} else if (!strncasecmp(buf, "close", 5)) {
-	    TRY(DB->close(db));
+	    TRY((DB->close)(db));
 	    db = NULL;
 	    printf("ok\n");
 	} else if (!strncasecmp(buf, "put ", 4)) {
--- cyrus-imapd-2.3.9/lib/cyrusdb_berkeley.c.openmacro	2007-08-14 16:21:29.000000000 +0200
+++ cyrus-imapd-2.3.9/lib/cyrusdb_berkeley.c	2007-08-14 16:34:19.000000000 +0200
@@ -212,7 +212,7 @@
 	r = dbenv->set_cachesize(dbenv, 0, opt * 1024, 0);
 	if (r) {
 	    dbenv->err(dbenv, r, "set_cachesize");
-	    dbenv->close(dbenv, 0);
+	    (dbenv->close)(dbenv, 0);
 	    syslog(LOG_ERR, "DBERROR: set_cachesize(): %s", db_strerror(r));
 	    return CYRUSDB_IOERROR;
 	}
@@ -223,9 +223,9 @@
     flags |= DB_INIT_LOCK | DB_INIT_MPOOL | 
 	     DB_INIT_LOG | DB_INIT_TXN;
 #if (DB_VERSION_MAJOR > 3) || ((DB_VERSION_MAJOR == 3) && (DB_VERSION_MINOR > 0))
-    r = dbenv->open(dbenv, dbdir, flags, 0644); 
+    r = (dbenv->open)(dbenv, dbdir, flags, 0644); 
 #else
-    r = dbenv->open(dbenv, dbdir, NULL, flags, 0644); 
+    r = (dbenv->open)(dbenv, dbdir, NULL, flags, 0644); 
 #endif
     if (r) {
         if (do_retry && (r == ENOENT)) {
@@ -264,7 +264,7 @@
 
     if (--dbinit) return 0;
 
-    r = dbenv->close(dbenv, 0);
+    r = (dbenv->close)(dbenv, 0);
     dbinit = 0;
     if (r) {
 	syslog(LOG_ERR, "DBERROR: error exiting application: %s",
@@ -412,15 +412,15 @@
     if (flags & CYRUSDB_MBOXSORT) db->set_bt_compare(db, mbox_compar);
 
 #if DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 1
-    r = db->open(db, NULL, fname, NULL, type, dbflags | DB_AUTO_COMMIT, 0664);
+    r = (db->open)(db, NULL, fname, NULL, type, dbflags | DB_AUTO_COMMIT, 0664);
 #else
-    r = db->open(db, fname, NULL, type, dbflags, 0664);
+    r = (db->open)(db, fname, NULL, type, dbflags, 0664);
 #endif
 
     if (r != 0) {
 	int level = (flags & CYRUSDB_CREATE) ? LOG_ERR : LOG_DEBUG;
 	syslog(level, "DBERROR: opening %s: %s", fname, db_strerror(r));
-	r = db->close(db, DB_NOSYNC);
+	r = (db->close)(db, DB_NOSYNC);
         if (r != 0) {
             syslog(level, "DBERROR: closing %s: %s", fname, db_strerror(r));
         }
@@ -450,7 +450,7 @@
     assert(dbinit && db);
 
     /* since we're using txns, we can supply DB_NOSYNC */
-    r = a->close(a, DB_NOSYNC);
+    r = (a->close)(a, DB_NOSYNC);
     if (r != 0) {
 	syslog(LOG_ERR, "DBERROR: error closing: %s", db_strerror(r));
 	r = CYRUSDB_IOERROR;
--- cyrus-imapd-2.3.9/ptclient/ptloader.c.openmacro	2007-08-14 16:21:29.000000000 +0200
+++ cyrus-imapd-2.3.9/ptclient/ptloader.c	2007-08-14 16:35:25.000000000 +0200
@@ -167,7 +167,7 @@
 
     strcpy(fnamebuf, config_dir);
     strcat(fnamebuf, PTS_DBFIL);
-    r = DB->open(fnamebuf, CYRUSDB_CREATE, &ptsdb);
+    r = (DB->open)(fnamebuf, CYRUSDB_CREATE, &ptsdb);
     if (r != 0) {
 	syslog(LOG_ERR, "DBERROR: opening %s: %s", fnamebuf,
 	       cyrusdb_strerror(ret));
@@ -184,7 +184,7 @@
 {
     int r;
 
-    r = DB->close(ptsdb);
+    r = (DB->close)(ptsdb);
     if (r) {
 	syslog(LOG_ERR, "DBERROR: error closing ptsdb: %s",
 	       cyrusdb_strerror(r));
--- cyrus-imapd-2.3.9/ptclient/ptdump.c.openmacro	2007-08-14 16:21:29.000000000 +0200
+++ cyrus-imapd-2.3.9/ptclient/ptdump.c	2007-08-14 16:35:02.000000000 +0200
@@ -100,7 +100,7 @@
     /* open database */
     strcpy(fnamebuf, config_dir);
     strcat(fnamebuf, PTS_DBFIL);
-    r = config_ptscache_db->open(fnamebuf, CYRUSDB_CREATE, &ptdb);
+    r = (config_ptscache_db->open)(fnamebuf, CYRUSDB_CREATE, &ptdb);
     if(r != CYRUSDB_OK) {
 	fprintf(stderr,"error opening %s (%s)", fnamebuf,
 	       cyrusdb_strerror(r));
@@ -110,7 +110,7 @@
     /* iterate through db, wiping expired entries */
     config_ptscache_db->foreach(ptdb, "", 0, NULL, dump_cb, ptdb, NULL);
 
-    config_ptscache_db->close(ptdb);
+    (config_ptscache_db->close)(ptdb);
 
     cyrus_done();
 
--- cyrus-imapd-2.3.9/ptclient/ptexpire.c.openmacro	2007-08-14 16:21:29.000000000 +0200
+++ cyrus-imapd-2.3.9/ptclient/ptexpire.c	2007-08-14 16:35:14.000000000 +0200
@@ -148,7 +148,7 @@
     /* open database */
     strcpy(fnamebuf, config_dir);
     strcat(fnamebuf, PTS_DBFIL);
-    r = config_ptscache_db->open(fnamebuf, CYRUSDB_CREATE, &ptdb);
+    r = (config_ptscache_db->open)(fnamebuf, CYRUSDB_CREATE, &ptdb);
     if(r != CYRUSDB_OK) {
 	syslog(LOG_ERR, "error opening %s (%s)", fnamebuf,
 	       cyrusdb_strerror(r));
@@ -158,7 +158,7 @@
     /* iterate through db, wiping expired entries */
     config_ptscache_db->foreach(ptdb, "", 0, expire_p, expire_cb, ptdb, NULL);
 
-    config_ptscache_db->close(ptdb);
+    (config_ptscache_db->close)(ptdb);
 
     cyrus_done();
 


More information about the Cyrus-devel mailing list