X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=citadel%2Fmodules%2Fupgrade%2Fserv_upgrade.c;h=249c825053524575e3bf5b990a442bf9d88fc111;hb=cdb873062246d255bb3813d4443bcaa0992e03ff;hp=1ce073f78b911b8572e42f8de8504ec40265537c;hpb=a46e719c5c6252c1342acb5f2d5ac96f8778759a;p=citadel.git diff --git a/citadel/modules/upgrade/serv_upgrade.c b/citadel/modules/upgrade/serv_upgrade.c index 1ce073f78..249c82505 100644 --- a/citadel/modules/upgrade/serv_upgrade.c +++ b/citadel/modules/upgrade/serv_upgrade.c @@ -1,7 +1,7 @@ /* * Transparently handle the upgrading of server data formats. * - * Copyright (c) 1987-2015 by the citadel.org team + * Copyright (c) 1987-2016 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. @@ -94,60 +94,6 @@ void fix_sys_user_name(void) } -/* - * Back end processing function for cmd_bmbx - */ -void cmd_bmbx_backend(struct ctdlroom *qrbuf, void *data) { - static struct RoomProcList *rplist = NULL; - struct RoomProcList *ptr; - struct ctdlroom qr; - - /* Lazy programming here. Call this function as a CtdlForEachRoom backend - * in order to queue up the room names, or call it with a null room - * to make it do the processing. - */ - if (qrbuf != NULL) { - ptr = (struct RoomProcList *) malloc(sizeof (struct RoomProcList)); - if (ptr == NULL) return; - - safestrncpy(ptr->name, qrbuf->QRname, sizeof ptr->name); - ptr->next = rplist; - rplist = ptr; - return; - } - - while (rplist != NULL) { - - if (CtdlGetRoomLock(&qr, rplist->name) == 0) { - syslog(LOG_DEBUG, "Processing <%s>...", rplist->name); - if ( (qr.QRflags & QR_MAILBOX) == 0) { - syslog(LOG_DEBUG, " -- not a mailbox"); - } - else { - - qr.QRgen = time(NULL); - syslog(LOG_DEBUG, " -- fixed!"); - } - CtdlPutRoomLock(&qr); - } - - ptr = rplist; - rplist = rplist->next; - free(ptr); - } -} - -/* - * quick fix to bump mailbox generation numbers - */ -void bump_mailbox_generation_numbers(void) { - syslog(LOG_WARNING, "Applying security fix to mailbox rooms"); - CtdlForEachRoom(cmd_bmbx_backend, NULL); - cmd_bmbx_backend(NULL, NULL); - return; -} - - /* * Back end processing function for convert_ctdluid_to_minusone() */ @@ -245,8 +191,8 @@ void guess_time_zone(void) { if (fp) { if (fgets(buf, sizeof buf, fp) && (strlen(buf) > 2)) { buf[strlen(buf)-1] = 0; - safestrncpy(config.c_default_cal_zone, buf, sizeof config.c_default_cal_zone); - syslog(LOG_INFO, "Configuring timezone: %s", config.c_default_cal_zone); + CtdlSetConfigStr("c_default_cal_zone", buf); + syslog(LOG_INFO, "Configuring timezone: %s", buf); } fclose(fp); } @@ -260,47 +206,46 @@ void guess_time_zone(void) { * Note that if the previous version was 0 then this is a new installation running for the first time. */ void update_config(void) { - get_config(); - if (CitControl.MM_hosted_upgrade_level < 606) { - config.c_rfc822_strict_from = 0; + int oldver = CtdlGetConfigInt("MM_hosted_upgrade_level"); + + if (oldver < 606) { + CtdlSetConfigInt("c_rfc822_strict_from", 0); } - if (CitControl.MM_hosted_upgrade_level < 609) { - config.c_purge_hour = 3; + if (oldver < 609) { + CtdlSetConfigInt("c_purge_hour", 3); } - if (CitControl.MM_hosted_upgrade_level < 615) { - config.c_ldap_port = 389; + if (oldver < 615) { + CtdlSetConfigInt("c_ldap_port", 389); } - if (CitControl.MM_hosted_upgrade_level < 623) { - strcpy(config.c_ip_addr, "*"); + if (oldver < 623) { + CtdlSetConfigStr("c_ip_addr", "*"); } - if (CitControl.MM_hosted_upgrade_level < 650) { - config.c_enable_fulltext = 1; + if (oldver < 650) { + CtdlSetConfigInt("c_enable_fulltext", 1); } - if (CitControl.MM_hosted_upgrade_level < 652) { - config.c_auto_cull = 1; + if (oldver < 652) { + CtdlSetConfigInt("c_auto_cull", 1); } - if (CitControl.MM_hosted_upgrade_level < 725) { - config.c_xmpp_c2s_port = 5222; - config.c_xmpp_s2s_port = 5269; + if (oldver < 725) { + CtdlSetConfigInt("c_xmpp_c2s_port", 5222); + CtdlSetConfigInt("c_xmpp_s2s_port", 5269); } - if (CitControl.MM_hosted_upgrade_level < 830) { - config.c_nntp_port = 119; - config.c_nntps_port = 563; + if (oldver < 830) { + CtdlSetConfigInt("c_nntp_port", 119); + CtdlSetConfigInt("c_nntps_port", 563); } - if (IsEmptyStr(config.c_default_cal_zone)) { + if (IsEmptyStr(CtdlGetConfigStr("c_default_cal_zone"))) { guess_time_zone(); } - - put_config(); } @@ -311,13 +256,9 @@ void update_config(void) { */ void check_server_upgrades(void) { - get_control(); - syslog(LOG_INFO, "Existing database version on disk is %d.%02d", - (CitControl.MM_hosted_upgrade_level / 100), - (CitControl.MM_hosted_upgrade_level % 100) - ); + syslog(LOG_INFO, "Existing database version on disk is %d", CtdlGetConfigInt("MM_hosted_upgrade_level")); - if (CitControl.MM_hosted_upgrade_level < REV_LEVEL) { + if (CtdlGetConfigInt("MM_hosted_upgrade_level") < REV_LEVEL) { syslog(LOG_WARNING, "Server hosted updates need to be processed at this time. Please wait..." ); @@ -328,29 +269,26 @@ void check_server_upgrades(void) { update_config(); - if ((CitControl.MM_hosted_upgrade_level > 000) && (CitControl.MM_hosted_upgrade_level < 555)) { + if ((CtdlGetConfigInt("MM_hosted_upgrade_level") > 000) && (CtdlGetConfigInt("MM_hosted_upgrade_level") < 591)) { syslog(LOG_EMERG, "This database is too old to be upgraded. Citadel server will exit."); exit(EXIT_FAILURE); } - if ((CitControl.MM_hosted_upgrade_level > 000) && (CitControl.MM_hosted_upgrade_level < 591)) { - bump_mailbox_generation_numbers(); - } - if ((CitControl.MM_hosted_upgrade_level > 000) && (CitControl.MM_hosted_upgrade_level < 608)) { + if ((CtdlGetConfigInt("MM_hosted_upgrade_level") > 000) && (CtdlGetConfigInt("MM_hosted_upgrade_level") < 608)) { convert_ctdluid_to_minusone(); } - if ((CitControl.MM_hosted_upgrade_level > 000) && (CitControl.MM_hosted_upgrade_level < 659)) { + if ((CtdlGetConfigInt("MM_hosted_upgrade_level") > 000) && (CtdlGetConfigInt("MM_hosted_upgrade_level") < 659)) { rebuild_euid_index(); } - if (CitControl.MM_hosted_upgrade_level < 735) { + if (CtdlGetConfigInt("MM_hosted_upgrade_level") < 735) { fix_sys_user_name(); } - if (CitControl.MM_hosted_upgrade_level < 736) { + if (CtdlGetConfigInt("MM_hosted_upgrade_level") < 736) { rebuild_usersbynumber(); } - if (CitControl.MM_hosted_upgrade_level < 790) { + if (CtdlGetConfigInt("MM_hosted_upgrade_level") < 790) { remove_thread_users(); } - if (CitControl.MM_hosted_upgrade_level < 810) { + if (CtdlGetConfigInt("MM_hosted_upgrade_level") < 810) { struct ctdlroom QRoom; if (!CtdlGetRoom(&QRoom, SMTP_SPOOLOUT_ROOM)) { QRoom.QRdefaultview = VIEW_QUEUE; @@ -362,25 +300,23 @@ void check_server_upgrades(void) { } } - CitControl.MM_hosted_upgrade_level = REV_LEVEL; + CtdlSetConfigInt("MM_hosted_upgrade_level", REV_LEVEL); /* * Negative values for maxsessions are not allowed. */ - if (config.c_maxsessions < 0) { - config.c_maxsessions = 0; + if (CtdlGetConfigInt("c_maxsessions") < 0) { + CtdlSetConfigInt("c_maxsessions", 0); } /* We need a system default message expiry policy, because this is * the top level and there's no 'higher' policy to fall back on. * By default, do not expire messages at all. */ - if (config.c_ep.expire_mode == 0) { - config.c_ep.expire_mode = EXPIRE_MANUAL; - config.c_ep.expire_value = 0; + if (CtdlGetConfigInt("c_ep_mode") == 0) { + CtdlSetConfigInt("c_ep_mode", EXPIRE_MANUAL); + CtdlSetConfigInt("c_ep_value", 0); } - - put_control(); }