Some refactoring, remove build bits for libmicrohttpd
[blerg.git] / database.c
index 2da6530..c3ac954 100644 (file)
@@ -36,7 +36,7 @@ void blerg_segment_close(struct blerg *blerg) {
        if (blerg->data_fd != -1)
                close(blerg->data_fd);
        if (blerg->index != NULL)
-               munmap((void *)blerg->index, sizeof(RECORDS_PER_SEGMENT * sizeof(struct record)));
+               munmap((void *)blerg->index, RECORDS_PER_SEGMENT * sizeof(struct record));
        if (blerg->index_fd != -1)
                close(blerg->index_fd);
 }
@@ -108,6 +108,22 @@ open_failed_index_open:
        return 0;
 }
 
+int blerg_exists(const char *name) {
+       int namelen = strlen(name);
+       char filename[512];
+
+       if (namelen > 32) {
+               perror("Name too long");
+               return 0;
+       }
+
+       snprintf(filename, 512, "%s/%s", DATA_PATH, name);
+       if (access(filename, F_OK) == -1)
+               return 0;
+       else
+               return 1;
+}
+
 struct blerg *blerg_open(const char *name) {
        int namelen = strlen(name);
        char filename[512];