From: Art Cancro Date: Wed, 9 Aug 2023 14:20:44 +0000 (-0400) Subject: Building better abstractions for the backend interface X-Git-Tag: v989~90 X-Git-Url: https://code.citadel.org/?p=citadel.git;a=commitdiff_plain;h=2e5c8f0441e113ace438aa74545dbd04e40c0d8b Building better abstractions for the backend interface --- diff --git a/citadel/Makefile b/citadel/Makefile index 281030249..c398891bb 100644 --- a/citadel/Makefile +++ b/citadel/Makefile @@ -24,7 +24,7 @@ citserver: $(OBJECTS) -lresolv -lcitadel -lpthread -lz -lical -lldap -lcrypt -lexpat -lcurl -ldb \ -o citserver -$(SOURCES): server/*.h server/modules/*/*.h +$(SOURCES): server/*.h server/modules/*/*.h server/backends/*/*.h @touch $@ %.o: %.c diff --git a/citadel/server/backends/berkeley_db/berkeley_db.c b/citadel/server/backends/berkeley_db/berkeley_db.c index 69de8abcf..dec082234 100644 --- a/citadel/server/backends/berkeley_db/berkeley_db.c +++ b/citadel/server/backends/berkeley_db/berkeley_db.c @@ -29,6 +29,7 @@ #include "../../control.h" #include "../../citserver.h" #include "../../config.h" +#include "berkeley_db.h" void (*cdb_open_databases)(void) = NULL; void (*cdb_close_databases)(void) = NULL; @@ -782,7 +783,3 @@ void bdb_init_backend(void) { } -// This will get split out into a separate file. It will act as a marshal for multiple database backends. -void cdb_init_backends(void) { - bdb_init_backend(); // For now, Berkeley DB is the only backend, so we always initialize it. -} diff --git a/citadel/server/backends/berkeley_db/berkeley_db.h b/citadel/server/backends/berkeley_db/berkeley_db.h new file mode 100644 index 000000000..651376a01 --- /dev/null +++ b/citadel/server/backends/berkeley_db/berkeley_db.h @@ -0,0 +1,6 @@ +// Copyright (c) 1987-2023 by the citadel.org team +// +// This program is open source software. Use, duplication, or disclosure +// is subject to the terms of the GNU General Public License, version 3. + +void bdb_init_backend(void); diff --git a/citadel/server/database.c b/citadel/server/database.c new file mode 100644 index 000000000..2ba0102ca --- /dev/null +++ b/citadel/server/database.c @@ -0,0 +1,24 @@ +// Copyright (c) 1987-2023 by the citadel.org team +// This program is open source software. Use, duplication, or disclosure +// are subject to the terms of the GNU General Public License, version 3. + +// The functions in this file handle the selection and activation of a storage backend for Citadel Server. +// Right now, it simply activates Berkeley DB because that's the only one we have. + + +#include "sysdep.h" +#include +#include +#include +#include +#include +#include "ctdl_module.h" +#include "control.h" +#include "citserver.h" +#include "config.h" + +#include "backends/berkeley_db/berkeley_db.h" + +void cdb_init_backends(void) { + bdb_init_backend(); +}