fix syslog message if bogous vrrp packet (wrong auth type) received

this patch fixes the debug message in /var/log/messages. Authentication type
always should be 0, so the debug message must be
"receive a <n> auth, expecting 0!", where <n> is the bogus authentication
type number.
Fix a typo for healthchecker.

Patch from Jay Faulkner.
fix documentation on linkbeat_use_polling keyword

The keyword is called linkbeat_use_polling not vrrp_linkbeat_use_polling.

Signed-off-by: Sebastian Herbszt <herbszt@gmx.de>
vrrp: on shutdown, release sockets later to be able to send shutdown packet

Each VRRP instance should be able to send a shutdown packet when the
instance is terminated. However, the socket pool was released early
and the socket was closed too soon. We release the socket pool later
to avoid this problem.
configure: don't check for IPVS support with kernel 2.6.x

Since 1.2.1, ip_vs.h header is provided for kernel 2.6. There is no
need for this header anymore. We keep the check for 2.4.

Regenerating configure is needed after this commit.
configure: check for nl_socket_modify_cb for libnl

libnl 1.0 does not have nl_socket_modify_cb while libnl 1.1 has it.
This change allows us to check the version of the library as well.
ipvs: don't include linux/types.h or asm/types.h

Those kernel headers should not be included into userland programs. We
redefine kernel types like __u32, __be32 to their userland
counterparts instead. This allows keepalived to compile on RHEL 5.
fix 'gratuitous' typos

Fix 'gratuitous' typos.

Signed-off-by: Sebastian Herbszt <herbszt@gmx.de>
Set correct rights on PID file.

This file was writable by anybody, leading to the possibility of
writing any PID an waiting for some admin to restart keepalived to
kill the process of your choice.
Do not set reload flag in the main process.

The main process does not use the reload flag. When setting the reload
flag in the main process and a child dies, the new child will have the
reload flag for a short time. There seems to be some race condition
here. This "fix" seems to circumvent this race condition.
When respawning VRRP or check process, use LOG_ALERT.

Since respawning VRRP or check process is an uncommon situation, we
may want this message to reach supervision. Therefore, we promote it
from LOG_INFO to LOG_ALERT.
Only define kernel types for ip_vs.h header to avoid problems when loading other headers.
range: when specifying an IPv6 range, range is hexadecimal value

A range 2001:db8::16-30 was interpreted as 0x16 -> 0x1e while it
should be interpreted as 0x16 -> 0x30.
checker: keep retry in case of early TCP failures in checks

Patch from Brad Schick. Original mail:

Two patched attached. It turns out that 1.1.20 and 1.2.2 each had some
partial implementations of my proposed improvements already, but they
are inconsistent. And I believe in the case of 1.2.2, the existing
implementation leaks socket handles.

These patches cleanup 1.1.20 and 1.2.2 respectively and make both of
them continue to retry after socket creation and bind failures. I also
added INFO level logging rather than DGB only since this is very
helpful information when things aren't working as expected.

I also fixed another random mis-use of the DBG macro that I noticed in
both 1.1.20 and 1.2.2. Patches attached.
Pretty-print IP:port as [%s]:%d

This is extension of commit 78f9de290fd592a68090 changes to the rest of
the tree.

Signed-off-by: <jakub.jankowski@superhost.pl>
Fix double ntohs() in SMTP checker

Double ntohs() call in smtp_dump_host() caused printing wrong value for
RS checked port in --dump-conf output (ie. "port = 6400" instead of 25).

Signed-off-by: <jakub.jankowski@superhost.pl>
Fix modprobe arguments.

Fix by Dan Wallis.
check: enable the use of fwmark with IPv6 virtual servers

When using fwmark, the virtual server was assumed to use IPv4. We
correct this by looking at the address family of the first real
server.
Don't use bind() with AF_UNSPEC

tcp_bind_connect() may be called with a non NULL bind_addr variable
but filled with 0. This cause bind() to be called with AF_UNSPEC and
make it fail with recent kernels.
Fix IPv4 address comparison routine.

Two different IPv4 addresses were returned to be equal while this was
not the case. Thanks to Ronie Gilberto Henrich for spotting this bug.