Updated to current mtstdopen interface.
[statserve.git] / statdbput.c
index 569afe1..3f5ea08 100644 (file)
@@ -158,7 +158,7 @@ static int dodir(char *path, char *ctype)
     }
     buffree(fnbuf);
     closedir(dir);
-    return(0);
+    return(rv);
 }
 
 static void usage(FILE *out)
@@ -212,6 +212,8 @@ int main(int argc, char **argv)
     while(1) {
        if((ret = env->txn_begin(env, NULL, &txn, 0)) != 0) {
            fprintf(stderr, "statdbput: could not begin transaction in %s: %s\n", dbpath, db_strerror(ret));
+           db->close(db, 0);
+           env->close(env, 0);
            return(1);
        }
        rv = 0;
@@ -255,8 +257,12 @@ int main(int argc, char **argv)
     }
     if((ret = txn->commit(txn, 0)) != 0) {
        fprintf(stderr, "statdbput: could not commit transaction in %s: %s\n", dbpath, db_strerror(ret));
+       db->close(db, 0);
+       env->close(env, 0);
        return(1);
     }
+    db->close(db, 0);
+    env->close(env, 0);
     if(ul) {
        for(i = 0; i < files.d; i++) {
            if(verbose)