From 7d327eaa0500ed510350362e6e1eb74f3500a911 Mon Sep 17 00:00:00 2001 From: Art Cancro Date: Thu, 24 Aug 2023 04:55:33 -0900 Subject: [PATCH] Makefile: restructured so that backends can be compiled into utilities database.c has been moved from server/ into server/backends/common. Makefile now separates server objects from backend objects. This is all in preparation for ctdldump and ctdlload to link the backend code instead of calling BDB directly. --- citadel/Makefile | 16 ++++++++++------ .../server/backends/berkeley_db/berkeley_db.c | 8 +++----- citadel/server/{ => backends/common}/database.c | 12 ++++++------ citadel/server/config.c | 1 - citadel/server/config.h | 2 +- citadel/server/control.c | 4 ++-- citadel/server/modules/upgrade/serv_upgrade.c | 4 ---- citadel/utils/ctdldump.c | 1 + citadel/utils/ctdlload.c | 1 + 9 files changed, 24 insertions(+), 25 deletions(-) rename citadel/server/{ => backends/common}/database.c (94%) diff --git a/citadel/Makefile b/citadel/Makefile index c398891bb..a4c7f5536 100644 --- a/citadel/Makefile +++ b/citadel/Makefile @@ -13,18 +13,22 @@ include config.mk all := ctdldump ctdlload citserver setup sendcommand citmail chkpw chkpwd all: $(all) -SRCDIRS := $(wildcard server server/modules/* server/backends/*) -SOURCES := $(wildcard server/*.c server/modules/*/*.c server/backends/*/*.c) -OBJECTS := $(patsubst %.c,%.o,$(SOURCES)) +SERVER_SOURCES := $(wildcard server/*.c server/modules/*/*.c) +SERVER_OBJECTS := $(patsubst %.c,%.o,$(SERVER_SOURCES)) +BACKEND_SOURCES := $(wildcard server/backends/*/*.c) +BACKEND_OBJECTS := $(patsubst %.c,%.o,$(BACKEND_SOURCES)) -citserver: $(OBJECTS) +citserver: $(SERVER_OBJECTS) $(BACKEND_OBJECTS) cc ${CFLAGS} \ - $(OBJECTS) \ + $(SERVER_OBJECTS) $(BACKEND_OBJECTS) \ ${LDFLAGS} \ -lresolv -lcitadel -lpthread -lz -lical -lldap -lcrypt -lexpat -lcurl -ldb \ -o citserver -$(SOURCES): server/*.h server/modules/*/*.h server/backends/*/*.h +$(SERVER_SOURCES): server/*.h server/modules/*/*.h server/backends/*/*.h + @touch $@ + +$(BACKEND_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 a55c6113a..2a8e2f14a 100644 --- a/citadel/server/backends/berkeley_db/berkeley_db.c +++ b/citadel/server/backends/berkeley_db/berkeley_db.c @@ -177,11 +177,9 @@ void bdb_checkpoint(void) { } // After a successful checkpoint, we can cull the unused logs - if (CtdlGetConfigInt("c_auto_cull")) { - ret = bdb_env->log_set_config(bdb_env, DB_LOG_AUTO_REMOVE, 1); - } - else { - ret = bdb_env->log_set_config(bdb_env, DB_LOG_AUTO_REMOVE, 0); + ret = bdb_env->log_set_config(bdb_env, DB_LOG_AUTO_REMOVE, 1); + if (ret != 0) { + syslog(LOG_ERR, "bdb: bdb_checkpoint() auto coll logs: %s", db_strerror(ret)); } } diff --git a/citadel/server/database.c b/citadel/server/backends/common/database.c similarity index 94% rename from citadel/server/database.c rename to citadel/server/backends/common/database.c index 8327ed500..ac1ebbad6 100644 --- a/citadel/server/database.c +++ b/citadel/server/backends/common/database.c @@ -5,20 +5,20 @@ // 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 "../../sysdep.h" #include #include #include #include #include #include -#include "ctdl_module.h" -#include "control.h" -#include "citserver.h" -#include "config.h" +#include "../../ctdl_module.h" +#include "../../control.h" +#include "../../citserver.h" +#include "../../config.h" // Header files for all available backends must be included here. -#include "backends/berkeley_db/berkeley_db.h" +#include "../berkeley_db/berkeley_db.h" // Backends must include implementations of all these functions, but with their own prefix instead of "cdb_". // The initialization function of the selected backend will map them. diff --git a/citadel/server/config.c b/citadel/server/config.c index 49ef9600c..0f1432618 100644 --- a/citadel/server/config.c +++ b/citadel/server/config.c @@ -187,7 +187,6 @@ void migrate_legacy_config(struct legacy_config *lconfig) { CtdlSetConfigInt( "c_imaps_port" , lconfig->c_imaps_port ); CtdlSetConfigInt( "c_pop3s_port" , lconfig->c_pop3s_port ); CtdlSetConfigInt( "c_smtps_port" , lconfig->c_smtps_port ); - CtdlSetConfigInt( "c_auto_cull" , lconfig->c_auto_cull ); CtdlSetConfigInt( "c_allow_spoofing" , lconfig->c_allow_spoofing ); CtdlSetConfigInt( "c_journal_email" , lconfig->c_journal_email ); CtdlSetConfigInt( "c_journal_pubmsgs" , lconfig->c_journal_pubmsgs ); diff --git a/citadel/server/config.h b/citadel/server/config.h index 23f144a48..df6838292 100644 --- a/citadel/server/config.h +++ b/citadel/server/config.h @@ -66,7 +66,7 @@ struct legacy_config { int c_imaps_port; int c_pop3s_port; int c_smtps_port; - char c_auto_cull; + char c_niu_4a; char c_niu_5; char c_allow_spoofing; char c_journal_email; diff --git a/citadel/server/control.c b/citadel/server/control.c index b6e4d88be..9476e40be 100644 --- a/citadel/server/control.c +++ b/citadel/server/control.c @@ -266,7 +266,7 @@ void cmd_conf(char *argbuf) { cprintf("%d\n", CtdlGetConfigInt("c_pop3s_port")); cprintf("%d\n", CtdlGetConfigInt("c_smtps_port")); cprintf("%d\n", CtdlGetConfigInt("c_enable_fulltext")); - cprintf("%d\n", CtdlGetConfigInt("c_auto_cull")); + cprintf("1\n"); cprintf("1\n"); cprintf("%d\n", CtdlGetConfigInt("c_allow_spoofing")); cprintf("%d\n", CtdlGetConfigInt("c_journal_email")); @@ -456,7 +456,7 @@ void cmd_conf(char *argbuf) { CtdlSetConfigInt("c_enable_fulltext", confbool(buf)); break; case 43: - CtdlSetConfigInt("c_auto_cull", confbool(buf)); + // niu break; case 44: // niu diff --git a/citadel/server/modules/upgrade/serv_upgrade.c b/citadel/server/modules/upgrade/serv_upgrade.c index 2c662245f..4fab951b2 100644 --- a/citadel/server/modules/upgrade/serv_upgrade.c +++ b/citadel/server/modules/upgrade/serv_upgrade.c @@ -303,10 +303,6 @@ void update_config(void) { CtdlSetConfigInt("c_enable_fulltext", 1); } - if (oldver < 652) { - CtdlSetConfigInt("c_auto_cull", 1); - } - if (oldver < 725) { CtdlSetConfigInt("c_xmpp_c2s_port", 5222); CtdlSetConfigInt("c_xmpp_s2s_port", 5269); diff --git a/citadel/utils/ctdldump.c b/citadel/utils/ctdldump.c index ccd6c18cc..208585271 100644 --- a/citadel/utils/ctdldump.c +++ b/citadel/utils/ctdldump.c @@ -27,6 +27,7 @@ #include "../server/server.h" #include "../server/citadel_dirs.h" +uid_t ctdluid = 0; // Wrapper for realloc() that crashes and burns if the call fails. void *reallok(void *ptr, size_t size) { diff --git a/citadel/utils/ctdlload.c b/citadel/utils/ctdlload.c index 406618b22..3a5f64a6c 100644 --- a/citadel/utils/ctdlload.c +++ b/citadel/utils/ctdlload.c @@ -28,6 +28,7 @@ #include "../server/makeuserkey.h" #include "../server/citadel_dirs.h" +uid_t ctdluid = 0; // Wrapper for realloc() that crashes and burns if the call fails. void *reallok(void *ptr, size_t size) { -- 2.39.2