]> git.sur5r.net Git - openldap/blobdiff - libraries/libldbm/ldbm.c
Provide a little information about SDF, how to use it, and where to get it.h
[openldap] / libraries / libldbm / ldbm.c
index c2f191c31f2771dcd0d0dde74ba32abce81092f6..0ce41481c8213a876c0c8826c69fa0edce2b1e47 100644 (file)
@@ -26,6 +26,7 @@ ldbm_datum_free( LDBM ldbm, Datum data )
        if ( data.dptr ) {
                free( data.dptr );
                memset( &data, 0, sizeof( Datum ));
+               data.dptr = NULL;
        }
 }
 
@@ -79,6 +80,7 @@ int ldbm_shutdown( void )
 
 #else
 
+#ifndef WIN32
 #ifdef HAVE_SYSLOG
 #include "syslog.h"
 #else
@@ -86,6 +88,7 @@ int ldbm_shutdown( void )
 #define LOG_INFO 1
 extern int syslog(int, char*, ...);
 #endif
+#endif /* WIN32 */
 
 void *
 ldbm_malloc( size_t size )
@@ -96,7 +99,9 @@ ldbm_malloc( size_t size )
 static void
 ldbm_db_errcall( const char *prefix, char *message )
 {
+#ifndef WIN32
        syslog( LOG_INFO, "ldbm_db_errcall(): %s %s", prefix, message );
+#endif
 }
 
 /*  a dbEnv for BERKELEYv2  */
@@ -131,9 +136,11 @@ int ldbm_initialize( void )
                        sprintf( error, "%s\n", strerror( err ));
                }
 
+#ifndef WIN32
                syslog( LOG_INFO,
                        "ldbm_initialize(): FATAL error in db_appinit() : %s\n",
                        error );
+#endif
                return( 1 );
        }
 
@@ -405,7 +412,9 @@ ldbm_errno( LDBM ldbm )
 
 #elif defined( HAVE_GDBM )
 
+#ifdef HAVE_ST_BLKSIZE
 #include <sys/stat.h>
+#endif
 
 /*****************************************************************
  *                                                               *
@@ -417,7 +426,9 @@ LDBM
 ldbm_open( char *name, int rw, int mode, int dbcachesize )
 {
        LDBM            db;
-       struct stat     st;
+#ifdef HAVE_ST_BLKSIZE
+               struct stat     st;
+#endif
 
        LDBM_LOCK;
 
@@ -425,10 +436,16 @@ ldbm_open( char *name, int rw, int mode, int dbcachesize )
                LDBM_UNLOCK;
                return( NULL );
        }
+
+#ifdef HAVE_ST_BLKSIZE
        if ( dbcachesize > 0 && stat( name, &st ) == 0 ) {
                dbcachesize = (dbcachesize / st.st_blksize);
                gdbm_setopt( db, GDBM_CACHESIZE, &dbcachesize, sizeof(int) );
        }
+#else
+       dbcachesize = (dbcachesize / 4096);
+       gdbm_setopt( db, GDBM_CACHESIZE, &dbcachesize, sizeof(int) );
+#endif
 
        LDBM_UNLOCK;