jedisct1/UCarp — pull request #6 by miconda (2012-12-04 17:51:01+00:00)
Title: Few enhancements to ucarp

Hello, I added few new features to ucarp, starting from the master branch in your repo. In summary, they are:
1) option to encapsulate advertisement packet in UDP payload and send to the other peer in a group of two servers (the master and the backup). The reason for it was that in some virtualized systems (e.g., vmware), it is sometime hard to get multicast/broadcast working, specially if the environment was preconfigured without such support and one doesn't have admin rights to change in the management interface of the virtual machines. It is working only in a pair of two servers, but could be extended in the future. The advertisement packet is completely embedded in UDP, then extracted and passed to the packethandler() function, so any change in the format of the advertisement should be transparent. Also, the patch got pretty non-intrusive to the existing code
2) option to set a threshold for debug messages -- it is sometime handy for troubleshooting to compile using --with-debug and control the verbosity from the command line parameter
3) option to write PID in a file -- useful for monitoring -- while some OS-es have their init.d set of functions able to do this, there are situations when simply having this feature make things a lot easier
4) option to write details of the current state in a file -- again useful for monitoring tools. I have seen another fork in github with a commit trying to achieve the same thing. The difference is that this patch updates the content of the state file in the spawned process for executing UP/DOWN scripts, thus not affecting (like potentially blocking) main process
5) added .gitignore file -- no really relevant, but is good to get proper statuses of git local copy and not add by mistake some binaries or tmp files in the repo

Hope you will find some of these features interesting enough to merge them in the main project. Thanks, Daniel