From: Art Cancro Date: Wed, 22 May 2024 03:24:53 +0000 (+0000) Subject: Remove preprocessor tests for OpenSSL. It's a requirement. X-Git-Url: https://code.citadel.org/?p=citadel.git;a=commitdiff_plain;h=HEAD;hp=fd9570c14521f696cccaaf8b8e7e0fa75cfddc2a Remove preprocessor tests for OpenSSL. It's a requirement. --- diff --git a/citadel/configure b/citadel/configure index ad136e3ac..381a2544c 100755 --- a/citadel/configure +++ b/citadel/configure @@ -74,7 +74,6 @@ int main(int argc, char **argv) { } ! $CC $CFLAGS $CPPFLAGS $tempcc -o $tempfile $LDFLAGS -lssl -lcrypto && $tempfile >/dev/null 2>&1 && { - CFLAGS=${CFLAGS}' -DHAVE_OPENSSL' LDFLAGS=${LDFLAGS}' -lssl -lcrypto -lz' } || { echo Citadel Server requires OpenSSL which is not present. diff --git a/citadel/dumploadtest.sh b/citadel/dumploadtest.sh index 7179f3991..835986ec7 100755 --- a/citadel/dumploadtest.sh +++ b/citadel/dumploadtest.sh @@ -1,20 +1,31 @@ #!/bin/bash - # This script dumps the database, deletes the database, loads the database, dumps it again... # ...and then compares the two dumps to see if we have full fidelity between them. # # Did you read that correctly? Yes, it will DELETE your database. So don't run this. -exit 0 # In fact, here's an exit statement you must delete before you can even run it. + +if [ "${YES_DELETE_MY_DATABASE}" != '' ] ; then + echo Ah, I see you have set YES_DELETE_MY_DATABASE to a non-empty value. + echo The dump and load test will now proceed. +else + echo 'This script dumps the database, deletes the database, loads the database, dumps it again...' + echo '...and then compares the two dumps to see if we have full fidelity between them.' + echo 'Did you read that correctly? Yes, it will DELETE your database.' + echo 'If this is really what you want, set the environment variable YES_DELETE_MY_DATABASE' + echo 'to a non-empty value, and run it again.' + exit 0 +fi ps ax | grep citserver | grep -v grep >/dev/null 2>/dev/null && { - echo dont do this while the server is running + echo Do not do this while the server is running. exit 1 } ./ctdldump -y >dump.dat first=$(md5sum dump.dat | awk ' { print $1 } ' ) + rm -fv data/* ./ctdlload -y dump.dat diff --git a/citadel/server/citadel_defs.h b/citadel/server/citadel_defs.h index 4ee0cd060..0ed7a5a63 100644 --- a/citadel/server/citadel_defs.h +++ b/citadel/server/citadel_defs.h @@ -21,7 +21,7 @@ #include "typesize.h" #include "ipcdef.h" -#define REV_LEVEL 999 // This version +#define REV_LEVEL 1000 // This version #define REV_MIN 591 // Oldest compatible database #define EXPORT_REV_MIN 931 // Oldest compatible export files #define LIBCITADEL_MIN 951 // Minimum required version of libcitadel diff --git a/citadel/server/citserver.c b/citadel/server/citserver.c index da0865899..a6c950596 100644 --- a/citadel/server/citserver.c +++ b/citadel/server/citserver.c @@ -29,24 +29,8 @@ int panic_fd; // We need pseudo-random numbers for a few things. Seed generously. void seed_random_number_generator(void) { - FILE *urandom; - struct timeval tv; - unsigned int seed; - - syslog(LOG_INFO, "Seeding the pseudo-random number generator..."); - urandom = fopen("/dev/urandom", "r"); - if (urandom != NULL) { - if (fread(&seed, sizeof seed, 1, urandom) == -1) { - syslog(LOG_ERR, "citserver: failed to read random seed: %m"); - } - fclose(urandom); - } - else { - gettimeofday(&tv, NULL); - seed = tv.tv_usec; - } - srand(seed); - srandom(seed); + syslog(LOG_INFO, "citserver: seeding the pseudo-random number generator"); + srand(time(NULL) + getpid() + clock()); } @@ -56,10 +40,10 @@ void master_startup(void) { struct passwd *pw; gid_t gid; - syslog(LOG_DEBUG, "master_startup() started"); + syslog(LOG_DEBUG, "citserver: master_startup() started"); time(&server_startup_time); - syslog(LOG_INFO, "Checking directory access"); + syslog(LOG_INFO, "citserver: checking directory access"); if ((pw = getpwuid(ctdluid)) == NULL) { gid = getgid(); } @@ -77,13 +61,13 @@ void master_startup(void) { syslog(LOG_DEBUG, "citserver: ctdl_key_dir is %s", ctdl_key_dir); syslog(LOG_DEBUG, "citserver: ctdl_run_dir is %s", ctdl_run_dir); - syslog(LOG_INFO, "Opening databases"); + syslog(LOG_INFO, "citserver: opening databases"); cdb_init_backends(); cdb_open_databases(); // Load site-specific configuration seed_random_number_generator(); // must be done before config system - syslog(LOG_INFO, "Initializing configuration system"); + syslog(LOG_INFO, "citserver: initializing configuration system"); initialize_config_system(); validate_config(); migrate_legacy_control_record(); @@ -98,7 +82,7 @@ void master_startup(void) { // Check floor reference counts check_ref_counts(); - syslog(LOG_INFO, "Creating base rooms (if necessary)"); + syslog(LOG_INFO, "citserver: creating base rooms (if necessary)"); CtdlCreateRoom(CtdlGetConfigStr("c_baseroom"), 0, "", 0, 1, 0, VIEW_BBS); CtdlCreateRoom(AIDEROOM, 3, "", 0, 1, 0, VIEW_BBS); CtdlCreateRoom(SYSCONFIGROOM, 3, "", 0, 1, 0, VIEW_BBS); @@ -116,7 +100,7 @@ void master_startup(void) { CtdlPutRoomLock(&qrbuf); } - syslog(LOG_DEBUG, "master_startup() finished"); + syslog(LOG_DEBUG, "citserver: master_startup() finished"); } diff --git a/citadel/server/context.c b/citadel/server/context.c index 6415ce12a..81709b5b5 100644 --- a/citadel/server/context.c +++ b/citadel/server/context.c @@ -318,10 +318,7 @@ CitContext *CloneContext(CitContext *CloneMe) { me->MigrateBuf = NULL; me->sMigrateBuf = NULL; me->redirect_buffer = NULL; -#ifdef HAVE_OPENSSL me->ssl = NULL; -#endif - me->download_fp = NULL; me->upload_fp = NULL; me->ma = NULL; diff --git a/citadel/server/context.h b/citadel/server/context.h index d28dff7a7..1b207b645 100644 --- a/citadel/server/context.h +++ b/citadel/server/context.h @@ -56,10 +56,8 @@ struct CitContext { // Redirect this session's output to a memory buffer? StrBuf *redirect_buffer; // the buffer StrBuf *StatusMessage; -#ifdef HAVE_OPENSSL SSL *ssl; int redirect_ssl; -#endif char curr_user[USERNAME_SIZE]; // name of current user int logged_in; // logged in? diff --git a/citadel/server/control.c b/citadel/server/control.c index b3df0ae3f..9be3addeb 100644 --- a/citadel/server/control.c +++ b/citadel/server/control.c @@ -636,7 +636,7 @@ void cmd_conf(char *argbuf) { char *valbuf = malloc(bytes + 1); cprintf("%d %d\n", SEND_BINARY, bytes); client_read(valbuf, bytes); - valbuf[bytes+1] = 0; + valbuf[bytes] = 0; CtdlSetConfigStr(confname, valbuf); free(valbuf); } diff --git a/citadel/server/internet_addressing.h b/citadel/server/internet_addressing.h index 16f1a0164..b0e48075c 100644 --- a/citadel/server/internet_addressing.h +++ b/citadel/server/internet_addressing.h @@ -22,6 +22,7 @@ int CtdlIsMe(char *addr, int addr_buf_len); int CtdlHostAlias(char *fqdn); char *harvest_collected_addresses(struct CtdlMessage *msg); int is_email_subscribed_to_list(char *email, char *room_name); +void generate_one_click_url(char *target_buf, char *base_url, char *action, char *roomname, char *emailaddr); // Values that can be returned by CtdlHostAlias() enum { diff --git a/citadel/server/modules/autocompletion/serv_autocompletion.c b/citadel/server/modules/autocompletion/serv_autocompletion.c index 413bf472b..822e01aac 100644 --- a/citadel/server/modules/autocompletion/serv_autocompletion.c +++ b/citadel/server/modules/autocompletion/serv_autocompletion.c @@ -1,9 +1,6 @@ // Autocompletion of email recipients, etc. -// // 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. +// This program is open source software. Use, duplication, or disclosure is subject to the GNU General Public License version 3. #include "../../ctdl_module.h" #include "serv_autocompletion.h" diff --git a/citadel/server/modules/bio/serv_bio.c b/citadel/server/modules/bio/serv_bio.c index 8be817ae6..6ff861551 100644 --- a/citadel/server/modules/bio/serv_bio.c +++ b/citadel/server/modules/bio/serv_bio.c @@ -3,9 +3,7 @@ // // Copyright (c) 1987-2022 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. -// The program is distributed without any warranty, expressed or implied. +// This program is open source software. Use, duplication, or disclosure is subject to the GNU General Public License, version 3. #include #include diff --git a/citadel/server/modules/crypto/serv_crypto.c b/citadel/server/modules/crypto/serv_crypto.c index 5d41fa27c..541479af1 100644 --- a/citadel/server/modules/crypto/serv_crypto.c +++ b/citadel/server/modules/crypto/serv_crypto.c @@ -7,11 +7,9 @@ #include #include "../../sysdep.h" -#ifdef HAVE_OPENSSL #include #include #include -#endif #include @@ -32,8 +30,6 @@ #include "../../config.h" #include "../../ctdl_module.h" -#ifdef HAVE_OPENSSL - SSL_CTX *ssl_ctx = NULL; // This SSL context is used for all sessions. char *ssl_cipher_list = CIT_CIPHERS; @@ -609,5 +605,3 @@ void endtls(void) { CC->ssl = NULL; CC->redirect_ssl = 0; } - -#endif // HAVE_OPENSSL diff --git a/citadel/server/modules/crypto/serv_crypto.h b/citadel/server/modules/crypto/serv_crypto.h index b5ee85d53..4ef8033d5 100644 --- a/citadel/server/modules/crypto/serv_crypto.h +++ b/citadel/server/modules/crypto/serv_crypto.h @@ -7,7 +7,6 @@ // Which ciphers will be offered; see https://www.openssl.org/docs/manmaster/man1/ciphers.html #define CIT_CIPHERS "ALL:RC4+RSA:+SSLv2:+TLSv1:!MD5:@STRENGTH" -#ifdef HAVE_OPENSSL #define OPENSSL_NO_KRB5 /* work around redhat b0rken ssl headers */ void init_ssl(void); void client_write_ssl (const char *buf, int nbytes); @@ -19,5 +18,3 @@ void cmd_gtls(char *params); void endtls(void); void CtdlStartTLS(char *ok_response, char *nosup_response, char *error_response); extern SSL_CTX *ssl_ctx; - -#endif diff --git a/citadel/server/modules/ctdlproto/serv_ctdlproto.c b/citadel/server/modules/ctdlproto/serv_ctdlproto.c index ae267b596..d5e7ffe61 100644 --- a/citadel/server/modules/ctdlproto/serv_ctdlproto.c +++ b/citadel/server/modules/ctdlproto/serv_ctdlproto.c @@ -1,72 +1,56 @@ -/* - * Citadel protocol main dispatcher - * - * Copyright (c) 1987-2017 by the citadel.org team - * - * This program is open source software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License, version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - */ +// Citadel protocol main dispatcher +// Copyright (c) 1987-2024 by the citadel.org team +// This program is open source software. Use, duplication, or disclosure are subject to the GNU General Public License v3. #include #include - #include "../../citserver.h" #include "../../ctdl_module.h" #include "../../config.h" -/* - * This loop recognizes all server commands. - */ + +// This loop recognizes all server commands. void do_command_loop(void) { - struct CitContext *CCC = CC; char cmdbuf[SIZ]; - time(&CCC->lastcmd); - memset(cmdbuf, 0, sizeof cmdbuf); /* Clear it, just in case */ + time(&CC->lastcmd); + memset(cmdbuf, 0, sizeof cmdbuf); // Clear it, just in case if (client_getln(cmdbuf, sizeof cmdbuf) < 1) { syslog(LOG_INFO, "Citadel client disconnected: ending session."); - CCC->kill_me = KILLME_CLIENT_DISCONNECTED; + CC->kill_me = KILLME_CLIENT_DISCONNECTED; return; } - /* Log the server command, but don't show passwords... */ - if ( (strncasecmp(cmdbuf, "PASS", 4)) && (strncasecmp(cmdbuf, "SETP", 4)) ) { - syslog(LOG_DEBUG, "[%s(%ld)] %s", - CCC->curr_user, CCC->user.usernum, cmdbuf - ); + // Log the server command, but don't show passwords... + if ( (strncasecmp(cmdbuf, "PASS", 4)) + && (strncasecmp(cmdbuf, "SETP", 4)) + ) { + syslog(LOG_DEBUG, "[%s(%ld)] %s", CC->curr_user, CC->user.usernum, cmdbuf); } else { - syslog(LOG_DEBUG, "[%s(%ld)]