-/* $Id$ */
+/*
+ * $Id$
+ *
+ * Transparently handle the upgrading of server data formats.
+ *
+ */
+
#include "sysdep.h"
#include <stdlib.h>
#include <unistd.h>
strcpy(tempfilename, tmpnam(NULL));
/* First, back out all old version records to a flat file */
+ cdb_begin_transaction();
cdb_rewind(CDB_USERSUPP);
while(cdbus = cdb_next_item(CDB_USERSUPP), cdbus != NULL) {
memset(&usbuf, 0, sizeof(struct pre555usersupp));
cdb_free(cdbus);
fwrite(&usbuf, sizeof(struct pre555usersupp), 1, fp);
}
+ cdb_end_transaction();
/* ...and overwrite the records with new format records */
rewind(fp);
fwrite(vcard, strlen(vcard)+1, 1, tp);
fclose(tp);
- CtdlWriteObject(CONFIGROOM, "text/x-vcard",
+ CtdlWriteObject(USERCONFIGROOM, "text/x-vcard",
tempfilename, &newus, 0, 1, CM_SKIP_HOOKS);
unlink(tempfilename);
}
(CitControl.version / 100),
(CitControl.version % 100) );
- if (CitControl.version < config.c_setup_level) {
+ if (CitControl.version < REV_LEVEL) {
lprintf(5, "Server hosted updates need to be processed at "
"this time. Please wait...\n");
}
return;
}
-
if (CitControl.version < 555) do_pre555_usersupp_upgrade();
-
- CitControl.version = config.c_setup_level;
+ CitControl.version = REV_LEVEL;
put_control();
}