--- /dev/null
+This will be a module to synchronise two Citadel servers.
+
+We should add comments here for features that are needed
+
+
+The initial plan is that this module will provide services to allow
+a new Citadel server to collect all data from an existing Citadel server
+resulting in the new server being a complete duplicate of the original.
+
+All data must be transfered over the wire.
+The data synchronised should include the log in/out messages and anyfiles
+in a room not just the content of the message base.
+
+I think we should structure this as a series of commands that can be issued
+in any order with the exception of one command that forces the exporting
+server to go "single user" to ensure the system doesn't change during the sync.
+
+These are the commands I can think of at the moment.
+
+SNGL Go single user.
+This will prevent new logins from happening and also prevent inbound messages
+from SMTP, IMAP RSS and IGNET etc.
+This command should allow real user to complete what they are doing and should
+probably give them a message to say the system wants to go single user.
+This command should take two arguments. The first is the time to wait for the
+system to go single user. The second argument is the time to expire single user
+mode if the requesting server disappears.
+
+ESNG End single user mode.
+
+SYNC Main command for all synchronisation options.
+This is to be followed by 2 or more arguments.
+Argument 1 is the type of Citadel data to be worked with eg. rooms, files
+messages, users etc.
+Argument 2 is the action to carry out on the specified data.
+
+
+So a sequence might go something like this:
+
+Unconfigured server. Old server
+SNGL 120|500 Goes single user within 120
+ seconds. Reverts to normal
+ operation if no activity
+ for 500 seconds.
+
+SYNC users|info Send back info on the system
+ users. A CRC and a few other
+ items so that the requesting
+ server can determine if its
+ user data is out of sync.
+
+SYNC users|getall Send back all users info.
+
+ESNG Revert back to multi user mode.
+
+
+Obviously there is lots to be worked out here. It may be a good idea to
+timestamp every thing to determine the need for updates.
+
+If we do this right this module could replace IGNET and ARTV and could be used
+clients to sync mailboxes and calendars etc.