+
+/*
+ * Fix up the name for Citadel user 0 and try to remove any extra users with number 0
+ */
+void fix_sys_user_name(void)
+{
+ struct ctdluser usbuf;
+ char usernamekey[USERNAME_SIZE];
+
+ /** If we have a user called Citadel rename them to SYS_Citadel */
+ if (getuser(&usbuf, "Citadel") == 0)
+ {
+ rename_user("Citadel", "SYS_Citadel");
+ }
+
+ while (getuserbynumber(&usbuf, 0) == 0)
+ {
+ /* delete user with number 0 and no name */
+ if (IsEmptyStr(usbuf.fullname))
+ cdb_delete(CDB_USERS, "", 0);
+ else
+ { /* temporarily set this user to -1 */
+ usbuf.usernum = -1;
+ putuser(&usbuf);
+ }
+ }
+
+ /** Make sure user SYS_* is user 0 */
+ while (getuserbynumber(&usbuf, -1) == 0)
+ {
+ if (strncmp(usbuf.fullname, "SYS_", 4))
+ { /** Delete any user 0 that doesn't start with SYS_ */
+ makeuserkey(usernamekey, usbuf.fullname);
+ cdb_delete(CDB_USERS, usernamekey, strlen(usernamekey));
+ }
+ else
+ {
+ usbuf.usernum = 0;
+ putuser(&usbuf);
+ }
+ }
+}
+
+