README
changeset 0 c045670f36e9
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/README	Thu Nov 01 14:46:11 2007 +0100
@@ -0,0 +1,105 @@
+queue-fix 1.4
+19990314
+Copyright 1999
+Eric Huss
+e-huss@netmeridian.com
+
+This is a small utility for checking and repairing the qmail queue
+structure.  It will fix uid/gid settings and permissions.  It will
+rename the message files to match their inodes.  It will even create
+directories and files that don't exist that should be there (you can
+even create a queue from scratch).  It will also print warnings for
+any files it finds that should not exist.
+
+Compiling:
+1) Extract the tar file.
+2) Edit conf-cc and conf-ld for your compiler.
+3) If you changed conf-split when you compiled qmail, edit queue-fix.c
+and change SPLIT_NUM to this value.
+4) Type make.
+
+This will produce the "queue-fix" executable.
+
+How to use:
+	queue-fix [-i | -N] queue_directory
+
+Use the -i option to go into interactive mode.  In interactive mode,
+it will prompt for confirmation before it begins a task.
+Alternatively, you may use the -N option to go into test mode.
+In test mode, queue-fix will print to standard output all the actions
+queue-fix would normally do, but does not actually call them.
+queue_directory is the location of the queue to fix.
+
+For your safety, you should always make a backup of your queue before
+running queue-fix.
+
+Examples:
+
+1) Moving your queue.
+     a) Shut down qmail-send.  Wait for exiting to show up in the log.
+        Shut down qmail-smptd:
+             - if inetd, comment out of /etc/inetd.conf and send inetd
+               a HUP.
+             - if supervise, use svc -d to bring it down
+        Shut down any processes which may run qmail-queue.  This includes,
+        but is not limited to qmqpd, pop, imapd, etc.
+     b) Choose the location for the new home of your queue.  In this
+        example:  originally in /var/qmail/queue
+                  moving to /other/qmail/queue
+     c) cd /var/qmail
+     d) mv queue /other/qmail
+     e) queue-fix -i /other/qmail/queue
+     f) Run queue-fix again just to make sure it worked.  If it prints
+        anything other than finished, then something is seriously
+        wrong.
+     g) Either make a link to the new queue location, or recompile
+        qmail with the new queue location.
+     h) Restart qmail and test it.
+
+2) Reconstructing the file system.
+     a) Shut down qmail-send.  Wait for exiting to show up in the log.
+        Shut down qmail-smptd:
+             - if inetd, comment out of /etc/inetd.conf and send inetd
+               a HUP.
+             - if supervise, use svc -d to bring it down
+        Shut down any processes which may run qmail-queue.  This includes,
+        but is not limited to qmqpd, pop, imapd, etc.
+     b) Do whatever file system changes that you need to do.
+     c) queue-fix -i /var/qmail/queue
+     d) Run queue-fix again just to make sure it worked.  If it prints
+        anything other than finished, then something is seriously
+        wrong.
+     e) Restart qmail and test it.
+
+Extra Safety:
+
+You must ensure that no other program modifies the queue while queue-fix
+is running.  If you are unsure whether or not something will try to use
+the queue, type:
+
+     chmod 0 /var/qmail/bin/qmail-queue
+
+before running queue-fix.  This will assume that MUA's and other applications
+that inject mail will recognize the failure to run qmail-queue.
+Once you are done, type:
+
+     chmod 4711 /var/qmail/bin/qmail-queue
+
+to get it going again.
+
+Known faults:
+
+- The error messages are not very descriptive of the problem.
+- Responding "no" during interactive mode results in a confusing
+  error message.
+- queue-fix checks for special files to exist in the queue, but does
+  not check their type (for example, a regular file existing where
+  there should be a named pipe).
+
+Epilogue:
+
+If you have problems, please let me know.  I make no guarantees about
+the quality of this program.
+
+This utility as an experiment uses the libraries written by D. J.
+Bernstein.  Thanks!