bitServe

Open Source Patches

During our use of open source software, we sometimes find the need to modify it, and in order to contribute back into the open source community, we make our modifications available for review.


Problem: When running qmail under inetd, get warning messages similar to "inetd[445]: pid 9662: exit status 1".

Description: The author of qmail claims that it's because you shouldn't start qmail with inetd, and that he only supports starting it with his own ucspi-tcp program. I think that you should NEVER exit a program with exit status 1, unless there is an error.

I have corrected two "problems" in qmail-popup. More than likely, you shouldn't try to implement qmail with inetd, but some code repair was also in order for qmail.

The issues that are fixed in this patch are:

  1. Attempts to close the wrong pipe, which leaves pipe open and at the same time causes "pipe not open" error.
  2. Always exits with status (1), even if no error encountered.

Solution: qmail-popup.error0.patch (Tested on Qmail v1.03)

Note: When using tcpserver instead of inetd, when qmail doesn't exit with a 0, the exit code being returned is useless because it is the status of the wait, and not the status of the qmail child. This should probably be patched as well. I may release a patch some day.


Problem: VMailMgr uses PID files and seconds since epoch for "unique" file names.

Description: VMailMgr's vdeliver command doesn't use unique enough file names on some systems that receive more than one email message to the same user per second, especially if the system uses the same PID because the messages are from the same SMTP session. The problem is that vdeliver only uses the seconds since the epoch and the PID to create new messages in a user's inbox. Because most random number generators are seeded with the seconds since the epoch to get a predictable but random number, they won't work in this instance. As a result, a simple work around that should improve the issue if not totally solve it is to use milliseconds since the epoch. The following patch adds this as well as corrects some path names and adds some more verbose error messages when linking files.

Symptoms of this problem are temporary failures on a busy mailserver and the following error in your logs:

"Error_linking_the_temp_file_to_the_new_file"

Solution: vdeliverfast.patch (for VMailMgr 0.97)


Problem: supervise-scripts RPM installation results in error "tail: cannot open `+23' for reading: No such file or directory".

Description: When installng Bruce Guenter's supervise-scripts RPM on RHEL 5 or later or any system with a new posix compliant tail command, you will get the above error when installing due to a deprecated switch used on the tail command.

Solution: supervise-scripts-3.5-2.noarch.rpm

Consulting Services

We have a low overhead, and don't need to charge $150/hour. None of our employees are making $300K/year funded by your business's hard earned money.

bitServe's primary source of income is through consulting services, resulting in many years of experience at satisfying our customers' needs.