X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=citadel%2Fmodules%2Fupgrade%2Fserv_upgrade.c;fp=citadel%2Fmodules%2Fupgrade%2Fserv_upgrade.c;h=35216e126ed97ae73e685dfa04eee36de530c170;hb=e047988e5cb07d89edeec13afea5c25a52ef26c6;hp=94c1406f49c5f08fdcf046ba04db7b385f5ad255;hpb=86c0cb1fe43b21ec15052f97129844a7fd501d95;p=citadel.git diff --git a/citadel/modules/upgrade/serv_upgrade.c b/citadel/modules/upgrade/serv_upgrade.c index 94c1406f4..35216e126 100644 --- a/citadel/modules/upgrade/serv_upgrade.c +++ b/citadel/modules/upgrade/serv_upgrade.c @@ -4,7 +4,7 @@ * guesses about what kind of data format changes need to be applied, and * we apply them transparently. * - * Copyright (c) 1987-2017 by the citadel.org team + * Copyright (c) 1987-2018 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. @@ -501,6 +501,38 @@ void miafvtur_backend(struct ctdluser *usbuf, void *data) { } +/* + * If our system still has a "refcount_adjustments.dat" sitting around from an old version, ingest it now. + */ +int ProcessOldStyleAdjRefCountQueue(void) +{ + int r; + FILE *fp; + struct arcq arcq_rec; + int num_records_processed = 0; + + fp = fopen(file_arcq, "rb"); + if (fp == NULL) { + return(num_records_processed); + } + + syslog(LOG_INFO, "msgbase: ingesting %s", file_arcq); + + while (fread(&arcq_rec, sizeof(struct arcq), 1, fp) == 1) { + AdjRefCount(arcq_rec.arcq_msgnum, arcq_rec.arcq_delta); + ++num_records_processed; + } + + fclose(fp); + r = unlink(file_arcq); + if (r != 0) { + syslog(LOG_ERR, "%s: %m", file_arcq); + } + + return(num_records_processed); +} + + /* * Prior to version 912 we kept a user's various Internet email addresses in their vCards. * This function moves them over to the user record, which is where we keep them now. @@ -599,6 +631,10 @@ void post_startup_upgrades(void) { if ((oldver > 000) && (oldver < 912)) { move_inet_addrs_from_vcards_to_user_records(); } + + if ((oldver > 000) && (oldver < 922)) { + ProcessOldStyleAdjRefCountQueue(); + } }