* keepalived-1.1.15 released.
* Matthias Saou, <matthias at rpmforge.net> fixed genhash
Makefile for man page installation.
* Casey Zacek, <keepalived at bogleg.org> provided a patch
to check_http to remove buffer minimization while processing
stream. It appears some webserver cause healthchecker crash.
* Chris Marchesi, <chris.marchesi at canadawebhosting.com> provided
a patch for better handling of SSL handshake errors.
* Shinji Tanaka, <stanaka at hatena.ne.jp> fixed parser "include"
directive to support declaration inside configuration directives,
like including file inside vrrp_instance declaration.
* Andreas Kotes, <count at flatline.de> fixed HTTP healthchecker
while handling MD5SUM result. It appears checker never removed
realserver on MD5SUM mismatch !!! whats that crap.
* VRRP : Willy Tarreau, <w at 1wt.eu> fixed a missing notifications
upon transition from fault to backup.
* VRRP : Add support to route metric in virtual_routes definition.
+2007-09-15 Alexandre Cassen <acassen@linux-vs.org>
+ * keepalived-1.1.15 released.
+ * Matthias Saou, <matthias at rpmforge.net> fixed genhash
+ Makefile for man page installation.
+ * Casey Zacek, <keepalived at bogleg.org> provided a patch
+ to check_http to remove buffer minimization while processing
+ stream. It appears some webserver cause healthchecker crash.
+ * Chris Marchesi, <chris.marchesi at canadawebhosting.com> provided
+ a patch for better handling of SSL handshake errors.
+ * Shinji Tanaka, <stanaka at hatena.ne.jp> fixed parser "include"
+ directive to support declaration inside configuration directives,
+ like including file inside vrrp_instance declaration.
+ * Andreas Kotes, <count at flatline.de> fixed HTTP healthchecker
+ while handling MD5SUM result. It appears checker never removed
+ realserver on MD5SUM mismatch !!! whats that crap.
+ * VRRP : Willy Tarreau, <w at 1wt.eu> fixed a missing notifications
+ upon transition from fault to backup.
+ * VRRP : Add support to route metric in virtual_routes definition.
+
2007-09-13 Alexandre Cassen <acassen@linux-vs.org>
* keepalived-1.1.14 released.
* Shinji Tanaka, <stanaka at hatena.ne.jp> extended parsing
...
}
virtual_routes { # VRRP virtual routes
- src <IP ADDRESS> [to] <IP ADDRESS>/<MASK> via|gw <IP ADDRESS> dev <STRING> scope <SCOPE> table <TABLE-ID> # to is optional
- src <IP ADDRESS> [to] <IP ADDRESS>/<MASK> via|gw <IP ADDRESS> dev <STRING> scope <SCOPE> table <TABLE-ID> # to is optional
+ src <IP ADDRESS> [to] <IP ADDRESS>/<MASK> via|gw <IP ADDRESS> dev <STRING> scope <SCOPE> table <TABLE-ID> metric <METRIC> # to is optional
+ src <IP ADDRESS> [to] <IP ADDRESS>/<MASK> via|gw <IP ADDRESS> dev <STRING> scope <SCOPE> table <TABLE-ID> metric <METRIC> # to is optional
...
}
nopreempt # Override VRRP RFC preemption default
"ifconfig", it should be of the form <realdev>:<anytext>, for example
eth0:1 for an alias on eth0.
+METRIC is optional and specify a route priority.
+
When a weight is specified in track_interface, instead of setting the vrrp
instance to the FAULT state in case of failure, its priority will be
increased by the weight when the interface is up (for positive weights),
uninstall:
rm -f $(DESTDIR)$(bindir)/$(EXEC)
- rm -f $(DESTDIR)$(mandir)/man/man1/genhash.1
+ rm -f $(DESTDIR)$(mandir)/man1/genhash.1
install:
install -d $(DESTDIR)$(bindir)
install -m 755 $(BIN)/$(EXEC) $(DESTDIR)$(bindir)/
- install -d $(DESTDIR)$(mandir)/man/man1
- install -m 644 ../doc/man/man1/genhash.1 $(DESTDIR)$(mandir)/man/man1
+ install -d $(DESTDIR)$(mandir)/man1
+ install -m 644 ../doc/man/man1/genhash.1 $(DESTDIR)$(mandir)/man1
mrproper: clean distclean
rm -f config.*
Summary: HA monitor built upon LVS, VRRP and services poller
Name: keepalived
-Version: 1.1.13
+Version: 1.1.15
Release: 5
License: GPL
Group: Applications/System
*
* Part: Checkers registration.
*
- * Version: $Id: check_api.c,v 1.1.14 2007/09/13 21:12:33 acassen Exp $
+ * Version: $Id: check_api.c,v 1.1.15 2007/09/15 04:07:41 acassen Exp $
*
* Author: Alexandre Cassen, <acassen@linux-vs.org>
*
*
* Part: Healthcheckrs child process handling.
*
- * Version: $Id: check_daemon.c,v 1.1.14 2007/09/13 21:12:33 acassen Exp $
+ * Version: $Id: check_daemon.c,v 1.1.15 2007/09/15 04:07:41 acassen Exp $
*
* Author: Alexandre Cassen, <acassen@linux-vs.org>
*
*
* Part: Healthcheckers dynamic data structure definition.
*
- * Version: $Id: check_data.c,v 1.1.14 2007/09/13 21:12:33 acassen Exp $
+ * Version: $Id: check_data.c,v 1.1.15 2007/09/15 04:07:41 acassen Exp $
*
* Author: Alexandre Cassen, <acassen@linux-vs.org>
*
*
* Part: WEB CHECK. Common HTTP/SSL checker primitives.
*
- * Version: $Id: check_http.c,v 1.1.14 2007/09/13 21:12:33 acassen Exp $
+ * Version: $Id: check_http.c,v 1.1.15 2007/09/15 04:07:41 acassen Exp $
*
* Authors: Alexandre Cassen, <acassen@linux-vs.org>
* Jan Holmberg, <jan@artech.net>
inet_ntop2(CHECKER_RIP(checker_obj)),
ntohs(addr_port), fetched_url->path,
digest_tmp);
+ smtp_alert(checker_obj->rs, NULL, NULL,
+ "DOWN",
+ "=> CHECK failed on service"
+ " : HTTP MD5SUM mismatch <=");
+ update_svr_checker_state(DOWN, checker_obj->id
+ , checker_obj->vs
+ , checker_obj->rs);
} else {
DBG("MD5SUM to [%s:%d] url(%d) = [%s].",
inet_ntop2(CHECKER_RIP(checker_obj))
r = 0;
}
req->len = r;
- } else {
- /* minimize buffer using no 2*CR/LF found yet */
- if (req->len > 4) {
- memmove(req->buffer,
- req->buffer + req->len - 4, 4);
- req->len = 4;
- }
}
} else if (req->len) {
MD5_Update(&req->context, req->buffer,
ssl_printerr(SSL_get_error
(req->ssl, ret));
#endif
+ if ((http_get_check->proto == PROTO_SSL) &&
+ (svr_checker_up(checker_obj->id, checker_obj->rs))) {
+ syslog(LOG_INFO, "SSL handshake/communication error"
+ " connecting to server"
+ " (openssl errno: %d) [%s:%d]."
+ , SSL_get_error (http_arg_obj->req->ssl, ret)
+ , inet_ntop2(CHECKER_RIP(checker_obj))
+ , ntohs(addr_port));
+ smtp_alert(checker_obj->rs, NULL, NULL,
+ "DOWN",
+ "=> CHECK failed on service"
+ " : SSL connection error <=");
+ update_svr_checker_state(DOWN, checker_obj->id
+ , checker_obj->vs
+ , checker_obj->rs);
+ }
+
return epilog(thread_obj, 1, 0, 0);
}
}
* Part: MISC CHECK. Perform a system call to run an extra
* system prog or script.
*
- * Version: $Id: check_misc.c,v 1.1.14 2007/09/13 21:12:33 acassen Exp $
+ * Version: $Id: check_misc.c,v 1.1.15 2007/09/15 04:07:41 acassen Exp $
*
* Authors: Alexandre Cassen, <acassen@linux-vs.org>
* Eric Jarman, <ehj38230@cmsu2.cmsu.edu>
* data structure representation the conf file representing
* the loadbalanced server pool.
*
- * Version: $Id: check_parser.c,v 1.1.14 2007/09/13 21:12:33 acassen Exp $
+ * Version: $Id: check_parser.c,v 1.1.15 2007/09/15 04:07:41 acassen Exp $
*
* Author: Alexandre Cassen, <acassen@linux-vs.org>
*
*
* Part: SMTP CHECK. Check an SMTP-server.
*
- * Version: $Id: check_smtp.c,v 1.1.14 2007/09/13 21:12:33 acassen Exp $
+ * Version: $Id: check_smtp.c,v 1.1.15 2007/09/15 04:07:41 acassen Exp $
*
* Authors: Jeremy Rumpf, <jrumpf@heavyload.net>
* Alexandre Cassen, <acassen@linux-vs.org>
* url, compute a MD5 over this result and match it to the
* expected value.
*
- * Version: $Id: check_ssl.c,v 1.1.14 2007/09/13 21:12:33 acassen Exp $
+ * Version: $Id: check_ssl.c,v 1.1.15 2007/09/15 04:07:41 acassen Exp $
*
* Authors: Alexandre Cassen, <acassen@linux-vs.org>
* Jan Holmberg, <jan@artech.net>
*
* Part: TCP checker.
*
- * Version: $Id: check_tcp.c,v 1.1.14 2007/09/13 21:12:33 acassen Exp $
+ * Version: $Id: check_tcp.c,v 1.1.15 2007/09/15 04:07:41 acassen Exp $
*
* Author: Alexandre Cassen, <acassen@linux-vs.org>
*
* library to add/remove server MASQ rules to the kernel
* firewall framework.
*
- * Version: $Id: ipfwwrapper.c,v 1.1.14 2007/09/13 21:12:33 acassen Exp $
+ * Version: $Id: ipfwwrapper.c,v 1.1.15 2007/09/15 04:07:41 acassen Exp $
*
* Author: Alexandre Cassen, <acassen@linux-vs.org>
*
* Part: IPVS Kernel wrapper. Use setsockopt call to add/remove
* server to/from the loadbalanced server pool.
*
- * Version: $Id: ipvswrapper.c,v 1.1.14 2007/09/13 21:12:33 acassen Exp $
+ * Version: $Id: ipvswrapper.c,v 1.1.15 2007/09/15 04:07:41 acassen Exp $
*
* Author: Alexandre Cassen, <acassen@linux-vs.org>
*
*
* Part: Manipulation functions for IPVS & IPFW wrappers.
*
- * Version: $Id: ipwrapper.c,v 1.1.14 2007/09/13 21:12:33 acassen Exp $
+ * Version: $Id: ipwrapper.c,v 1.1.15 2007/09/15 04:07:41 acassen Exp $
*
* Author: Alexandre Cassen, <acassen@linux-vs.org>
*
*
* Part: Main program structure.
*
- * Version: $Id: main.c,v 1.1.13 2006/10/11 05:22:13 acassen Exp $
+ * Version: $Id: main.c,v 1.1.15 2007/09/15 04:07:41 acassen Exp $
*
* Author: Alexandre Cassen, <acassen@linux-vs.org>
*
*
* Part: Dynamic data structure definition.
*
- * Version: $Id: global_data.c,v 1.1.13 2006/10/11 05:22:13 acassen Exp $
+ * Version: $Id: global_data.c,v 1.1.15 2007/09/15 04:07:41 acassen Exp $
*
* Author: Alexandre Cassen, <acassen@linux-vs.org>
*
* data structure representation the conf file representing
* the loadbalanced server pool.
*
- * Version: $Id: global_parser.c,v 1.1.13 2006/10/11 05:22:13 acassen Exp $
+ * Version: $Id: global_parser.c,v 1.1.15 2007/09/15 04:07:41 acassen Exp $
*
* Author: Alexandre Cassen, <acassen@linux-vs.org>
*
* Part: Layer4 checkers handling. Register worker threads &
* upper layer checkers.
*
- * Version: $Id: layer4.c,v 1.1.13 2006/10/11 05:22:13 acassen Exp $
+ * Version: $Id: layer4.c,v 1.1.15 2007/09/15 04:07:41 acassen Exp $
*
* Author: Alexandre Cassen, <acassen@linux-vs.org>
*
*
* Part: Main program structure.
*
- * Version: $Id: main.c,v 1.1.13 2006/10/11 05:22:13 acassen Exp $
+ * Version: $Id: main.c,v 1.1.15 2007/09/15 04:07:41 acassen Exp $
*
* Author: Alexandre Cassen, <acassen@linux-vs.org>
*
*
* Part: pidfile utility.
*
- * Version: $Id: pidfile.c,v 1.1.13 2006/10/11 05:22:13 acassen Exp $
+ * Version: $Id: pidfile.c,v 1.1.15 2007/09/15 04:07:41 acassen Exp $
*
* Author: Alexandre Cassen, <acassen@linux-vs.org>
*
* using the smtp protocol according to the RFC 821. A non blocking
* timeouted connection is used to handle smtp protocol.
*
- * Version: $Id: smtp.c,v 1.1.13 2006/10/11 05:22:13 acassen Exp $
+ * Version: $Id: smtp.c,v 1.1.15 2007/09/15 04:07:41 acassen Exp $
*
* Author: Alexandre Cassen, <acassen@linux-vs.org>
*
*
* Part: Checkers arguments structures definitions.
*
- * Version: $Id: check_api.h,v 1.1.14 2007/09/13 21:12:33 acassen Exp $
+ * Version: $Id: check_api.h,v 1.1.15 2007/09/15 04:07:41 acassen Exp $
*
* Author: Alexandre Cassen, <acassen@linux-vs.org>
*
*
* Part: check_daemon.c include file.
*
- * Version: $Id: check_daemon.h,v 1.1.14 2007/09/13 21:12:33 acassen Exp $
+ * Version: $Id: check_daemon.h,v 1.1.15 2007/09/15 04:07:41 acassen Exp $
*
* Author: Alexandre Cassen, <acassen@linux-vs.org>
*
*
* Part: Healthcheckers dynamic data structure definition.
*
- * Version: $Id: check_data.h,v 1.1.14 2007/09/13 21:12:33 acassen Exp $
+ * Version: $Id: check_data.h,v 1.1.15 2007/09/15 04:07:41 acassen Exp $
*
* Author: Alexandre Cassen, <acassen@linux-vs.org>
*
*
* Part: check_http.c include file.
*
- * Version: $Id: check_http.h,v 1.1.14 2007/09/13 21:12:33 acassen Exp $
+ * Version: $Id: check_http.h,v 1.1.15 2007/09/15 04:07:41 acassen Exp $
*
* Authors: Alexandre Cassen, <acassen@linux-vs.org>
* Jan Holmberg, <jan@artech.net>
*
* Part: check_misc.c include file.
*
- * Version: $Id: check_misc.h,v 1.1.14 2007/09/13 21:12:33 acassen Exp $
+ * Version: $Id: check_misc.h,v 1.1.15 2007/09/15 04:07:41 acassen Exp $
*
* Author: Alexandre Cassen, <acassen@linux-vs.org>
* Eric Jarman, <ehj38230@cmsu2.cmsu.edu>
*
* Part: check_parser.c include file.
*
- * Version: $Id: check_parser.h,v 1.1.14 2007/09/13 21:12:33 acassen Exp $
+ * Version: $Id: check_parser.h,v 1.1.15 2007/09/15 04:07:41 acassen Exp $
*
* Author: Alexandre Cassen, <acassen@linux-vs.org>
*
*
* Part: check_smtp.c include file.
*
- * Version: $Id: check_smtp.h,v 1.1.14 2007/09/13 21:12:33 acassen Exp $
+ * Version: $Id: check_smtp.h,v 1.1.15 2007/09/15 04:07:41 acassen Exp $
*
* Author: Alexandre Cassen, <acassen@linux-vs.org>
* Jeremy Rumpf, <jrumpf@heavyload.net>
*
* Part: check_http.c include file.
*
- * Version: $Id: check_http.h,v 1.1.14 2007/09/13 21:12:33 acassen Exp $
+ * Version: $Id: check_http.h,v 1.1.15 2007/09/15 04:07:41 acassen Exp $
*
* Authors: Alexandre Cassen, <acassen@linux-vs.org>
* Jan Holmberg, <jan@artech.net>
*
* Part: check_tcp.c include file.
*
- * Version: $Id: check_tcp.h,v 1.1.14 2007/09/13 21:12:33 acassen Exp $
+ * Version: $Id: check_tcp.h,v 1.1.15 2007/09/15 04:07:41 acassen Exp $
*
* Author: Alexandre Cassen, <acassen@linux-vs.org>
*
*
* Part: Configuration include file.
*
- * Version: $Id: config.h.in,v 1.1.14 2007/09/13 21:12:33 acassen Exp $
+ * Version: $Id: config.h.in,v 1.1.15 2007/09/15 04:07:41 acassen Exp $
*
* Author: Jacob Rief, <jacob.rief@tiscover.com>
*
*
* Part: Daemon process handling.
*
- * Version: $Id: daemon.h,v 1.1.14 2007/09/13 21:12:33 acassen Exp $
+ * Version: $Id: daemon.h,v 1.1.15 2007/09/15 04:07:41 acassen Exp $
*
* Author: Alexandre Cassen, <acassen@linux-vs.org>
*
*
* Part: Dynamic data structure definition.
*
- * Version: $Id: global_data.h,v 1.1.14 2007/09/13 21:12:33 acassen Exp $
+ * Version: $Id: global_data.h,v 1.1.15 2007/09/15 04:07:41 acassen Exp $
*
* Author: Alexandre Cassen, <acassen@linux-vs.org>
*
*
* Part: vrrp_parser.c include file.
*
- * Version: $Id: global_parser.h,v 1.1.14 2007/09/13 21:12:33 acassen Exp $
+ * Version: $Id: global_parser.h,v 1.1.15 2007/09/15 04:07:41 acassen Exp $
*
* Author: Alexandre Cassen, <acassen@linux-vs.org>
*
*
* Part: ipfwwrapper.c include file.
*
- * Version: $Id: ipfwwrapper.h,v 1.1.14 2007/09/13 21:12:33 acassen Exp $
+ * Version: $Id: ipfwwrapper.h,v 1.1.15 2007/09/15 04:07:41 acassen Exp $
*
* Author: Alexandre Cassen, <acassen@linux-vs.org>
*
*
* Part: ipvswrapper.c include file.
*
- * Version: $Id: ipvswrapper.h,v 1.1.14 2007/09/13 21:12:33 acassen Exp $
+ * Version: $Id: ipvswrapper.h,v 1.1.15 2007/09/15 04:07:41 acassen Exp $
*
* Author: Alexandre Cassen, <acassen@linux-vs.org>
*
*
* Part: ipwrapper.c include file.
*
- * Version: $Id: ipwrapper.h,v 1.1.14 2007/09/13 21:12:33 acassen Exp $
+ * Version: $Id: ipwrapper.h,v 1.1.15 2007/09/15 04:07:41 acassen Exp $
*
* Author: Alexandre Cassen, <acassen@linux-vs.org>
*
*
* Part: layer4.c include file.
*
- * Version: $Id: layer4.h,v 1.1.14 2007/09/13 21:12:33 acassen Exp $
+ * Version: $Id: layer4.h,v 1.1.15 2007/09/15 04:07:41 acassen Exp $
*
* Author: Alexandre Cassen, <acassen@linux-vs.org>
*
*
* Part: Main program include file.
*
- * Version: $Id: main.h,v 1.1.14 2007/09/13 21:12:33 acassen Exp $
+ * Version: $Id: main.h,v 1.1.15 2007/09/15 04:07:41 acassen Exp $
*
* Author: Alexandre Cassen, <acassen@linux-vs.org>
*
*
* Part: pidfile.c include file.
*
- * Version: $Id: pidfile.h,v 1.1.14 2007/09/13 21:12:33 acassen Exp $
+ * Version: $Id: pidfile.h,v 1.1.15 2007/09/15 04:07:41 acassen Exp $
*
* Author: Alexandre Cassen, <acassen@linux-vs.org>
*
*
* Part: smtp.c include file.
*
- * Version: $Id: smtp.h,v 1.1.14 2007/09/13 21:12:33 acassen Exp $
+ * Version: $Id: smtp.h,v 1.1.15 2007/09/15 04:07:41 acassen Exp $
*
* Author: Alexandre Cassen, <acassen@linux-vs.org>
*
*
* Part: vrrp.c program include file.
*
- * Version: $Id: vrrp.h,v 1.1.14 2007/09/13 21:12:33 acassen Exp $
+ * Version: $Id: vrrp.h,v 1.1.15 2007/09/15 04:07:41 acassen Exp $
*
* Author: Alexandre Cassen, <acassen@linux-vs.org>
*
*
* Part: vrrp_arp.c include file.
*
- * Version: $Id: vrrp_arp.h,v 1.1.14 2007/09/13 21:12:33 acassen Exp $
+ * Version: $Id: vrrp_arp.h,v 1.1.15 2007/09/15 04:07:41 acassen Exp $
*
* Author: Alexandre Cassen, <acassen@linux-vs.org>
*
*
* Part: vrrp_daemon.c include file.
*
- * Version: $Id: vrrp_daemon.h,v 1.1.14 2007/09/13 21:12:33 acassen Exp $
+ * Version: $Id: vrrp_daemon.h,v 1.1.15 2007/09/15 04:07:41 acassen Exp $
*
* Author: Alexandre Cassen, <acassen@linux-vs.org>
*
*
* Part: Dynamic data structure definition.
*
- * Version: $Id: vrrp_data.h,v 1.1.14 2007/09/13 21:12:33 acassen Exp $
+ * Version: $Id: vrrp_data.h,v 1.1.15 2007/09/15 04:07:41 acassen Exp $
*
* Author: Alexandre Cassen, <acassen@linux-vs.org>
*
*
* Part: vrrp_if.c include file.
*
- * Version: $Id: vrrp_if.h,v 1.1.14 2007/09/13 21:12:33 acassen Exp $
+ * Version: $Id: vrrp_if.h,v 1.1.15 2007/09/15 04:07:41 acassen Exp $
*
* Author: Alexandre Cassen, <acassen@linux-vs.org>
*
*
* Part: vrrp_index.c include file.
*
- * Version: $Id: vrrp_index.h,v 1.1.14 2007/09/13 21:12:33 acassen Exp $
+ * Version: $Id: vrrp_index.h,v 1.1.15 2007/09/15 04:07:41 acassen Exp $
*
* Author: Alexandre Cassen, <acassen@linux-vs.org>
*
*
* Part: vrrp_ipaddress.c include file.
*
- * Version: $Id: vrrp_ipaddress.h,v 1.1.14 2007/09/13 21:12:33 acassen Exp $
+ * Version: $Id: vrrp_ipaddress.h,v 1.1.15 2007/09/15 04:07:41 acassen Exp $
*
* Author: Alexandre Cassen, <acassen@linux-vs.org>
*
*
* Part: vrrp_iproute.c include file.
*
- * Version: $Id: vrrp_iproute.h,v 1.1.14 2007/09/13 21:12:33 acassen Exp $
+ * Version: $Id: vrrp_iproute.h,v 1.1.15 2007/09/15 04:07:41 acassen Exp $
*
* Author: Alexandre Cassen, <acassen@linux-vs.org>
*
/* types definition */
typedef struct _ip_route {
- uint32_t dst; /* RTA_DST */
+ uint32_t dst; /* RTA_DST */
uint8_t dmask;
- uint32_t gw; /* RTA_GATEWAY */
- uint32_t src; /* RTA_PREFSRC */
- int index; /* RTA_OIF */
+ uint32_t gw; /* RTA_GATEWAY */
+ uint32_t src; /* RTA_PREFSRC */
+ uint32_t metric; /* RTA_PRIORITY */
+ int index; /* RTA_OIF */
int scope;
int table;
int set;
*
* Part: vrrp_ipsecah.c include file.
*
- * Version: $Id: vrrp_ipsecah.h,v 1.1.14 2007/09/13 21:12:33 acassen Exp $
+ * Version: $Id: vrrp_ipsecah.h,v 1.1.15 2007/09/15 04:07:41 acassen Exp $
*
* Author: Alexandre Cassen, <acassen@linux-vs.org>
*
*
* Part: vrrp_netlink.c include file.
*
- * Version: $Id: vrrp_netlink.h,v 1.1.14 2007/09/13 21:12:33 acassen Exp $
+ * Version: $Id: vrrp_netlink.h,v 1.1.15 2007/09/15 04:07:41 acassen Exp $
*
* Author: Alexandre Cassen, <acassen@linux-vs.org>
*
*
* Part: vrrp_notify.c include file.
*
- * Version: $Id: vrrp_notify.h,v 1.1.14 2007/09/13 21:12:33 acassen Exp $
+ * Version: $Id: vrrp_notify.h,v 1.1.15 2007/09/15 04:07:41 acassen Exp $
*
* Author: Alexandre Cassen, <acassen@linux-vs.org>
*
*
* Part: vrrp_parser.c include file.
*
- * Version: $Id: vrrp_parser.h,v 1.1.14 2007/09/13 21:12:33 acassen Exp $
+ * Version: $Id: vrrp_parser.h,v 1.1.15 2007/09/15 04:07:41 acassen Exp $
*
* Author: Alexandre Cassen, <acassen@linux-vs.org>
*
*
* Part: vrrp_scheduler.c include file.
*
- * Version: $Id: vrrp_scheduler.h,v 1.1.14 2007/09/13 21:12:33 acassen Exp $
+ * Version: $Id: vrrp_scheduler.h,v 1.1.15 2007/09/15 04:07:41 acassen Exp $
*
* Author: Alexandre Cassen, <acassen@linux-vs.org>
*
*
* Part: vrrp_sync.c include file.
*
- * Version: $Id: vrrp_sync.h,v 1.1.14 2007/09/13 21:12:33 acassen Exp $
+ * Version: $Id: vrrp_sync.h,v 1.1.15 2007/09/15 04:07:41 acassen Exp $
*
* Author: Alexandre Cassen, <acassen@linux-vs.org>
*
*
* Part: vrrp_track.c include file.
*
- * Version: $Id: vrrp_track.h,v 1.1.14 2007/09/13 21:12:33 acassen Exp $
+ * Version: $Id: vrrp_track.h,v 1.1.15 2007/09/15 04:07:41 acassen Exp $
*
* Author: Alexandre Cassen, <acassen@linux-vs.org>
*
* master fails, a backup server takes over.
* The original implementation has been made by jerome etienne.
*
- * Version: $Id: vrrp.c,v 1.1.14 2007/09/13 21:12:33 acassen Exp $
+ * Version: $Id: vrrp.c,v 1.1.15 2007/09/15 04:07:41 acassen Exp $
*
* Author: Alexandre Cassen, <acassen@linux-vs.org>
*
*
* Part: ARP primitives.
*
- * Version: $Id: vrrp_arp.c,v 1.1.14 2007/09/13 21:12:33 acassen Exp $
+ * Version: $Id: vrrp_arp.c,v 1.1.15 2007/09/15 04:07:41 acassen Exp $
*
* Author: Alexandre Cassen, <acassen@linux-vs.org>
*
*
* Part: VRRP child process handling.
*
- * Version: $Id: vrrp_daemon.c,v 1.1.14 2007/09/13 21:12:33 acassen Exp $
+ * Version: $Id: vrrp_daemon.c,v 1.1.15 2007/09/15 04:07:41 acassen Exp $
*
* Author: Alexandre Cassen, <acassen@linux-vs.org>
*
*
* Part: Dynamic data structure definition.
*
- * Version: $Id: vrrp_data.c,v 1.1.14 2007/09/13 21:12:33 acassen Exp $
+ * Version: $Id: vrrp_data.c,v 1.1.15 2007/09/15 04:07:41 acassen Exp $
*
* Author: Alexandre Cassen, <acassen@linux-vs.org>
*
*
* Part: Interfaces manipulation.
*
- * Version: $Id: vrrp_if.c,v 1.1.14 2007/09/13 21:12:33 acassen Exp $
+ * Version: $Id: vrrp_if.c,v 1.1.15 2007/09/15 04:07:41 acassen Exp $
*
* Author: Alexandre Cassen, <acassen@linux-vs.org>
*
*
* Part: VRRP instance index table.
*
- * Version: $Id: vrrp_index.c,v 1.1.14 2007/09/13 21:12:33 acassen Exp $
+ * Version: $Id: vrrp_index.c,v 1.1.15 2007/09/15 04:07:41 acassen Exp $
*
* Author: Alexandre Cassen, <acassen@linux-vs.org>
*
*
* Part: NETLINK IPv4 address manipulation.
*
- * Version: $Id: vrrp_ipaddress.c,v 1.1.14 2007/09/13 21:12:33 acassen Exp $
+ * Version: $Id: vrrp_ipaddress.c,v 1.1.15 2007/09/15 04:07:41 acassen Exp $
*
* Author: Alexandre Cassen, <acassen@linux-vs.org>
*
*
* Part: NETLINK IPv4 routes manipulation.
*
- * Version: $Id: vrrp_iproute.c,v 1.1.14 2007/09/13 21:12:33 acassen Exp $
+ * Version: $Id: vrrp_iproute.c,v 1.1.15 2007/09/15 04:07:41 acassen Exp $
*
* Author: Alexandre Cassen, <acassen@linux-vs.org>
*
addattr32(&req.n, sizeof(req), RTA_OIF, iproute->index);
if (iproute->src)
addattr_l(&req.n, sizeof(req), RTA_PREFSRC, &iproute->src, 4);
+ if (iproute->metric)
+ addattr32(&req.n, sizeof(req), RTA_PRIORITY, iproute->metric);
if (netlink_talk(&nl_cmd, &req.n) < 0)
status = -1;
dump_iproute(void *rt_data_obj)
{
ip_route *route = rt_data_obj;
- char *log_msg = MALLOC(100);
+ char *log_msg = MALLOC(150);
char *tmp = MALLOC(30);
if (route->dst) {
netlink_scope_n2a(route->scope));
strncat(log_msg, tmp, 30);
}
+ if (route->metric) {
+ snprintf(tmp, 30, " metric %d", route->metric);
+ strncat(log_msg, tmp, 30);
+ }
syslog(LOG_INFO, " %s", log_msg);
new->index = IF_INDEX(ifp);
} else if (!strcmp(str, "table")) {
new->table = atoi(VECTOR_SLOT(strvec, ++i));
+ } else if (!strcmp(str, "metric")) {
+ new->metric = atoi(VECTOR_SLOT(strvec, ++i));
} else if (!strcmp(str, "scope")) {
new->scope = netlink_scope_a2n(VECTOR_SLOT(strvec, ++i));
} else {
* authentication data encryption using HMAC MD5 according to
* RFCs 2085 & 2104.
*
- * Version: $Id: vrrp_ipsecah.c,v 1.1.14 2007/09/13 21:12:33 acassen Exp $
+ * Version: $Id: vrrp_ipsecah.c,v 1.1.15 2007/09/15 04:07:41 acassen Exp $
*
* Author: Alexandre Cassen, <acassen@linux-vs.org>
*
*
* Part: NETLINK kernel command channel.
*
- * Version: $Id: vrrp_netlink.c,v 1.1.14 2007/09/13 21:12:33 acassen Exp $
+ * Version: $Id: vrrp_netlink.c,v 1.1.15 2007/09/15 04:07:41 acassen Exp $
*
* Author: Alexandre Cassen, <acassen@linux-vs.org>
*
*
* Part: VRRP state transition notification scripts handling.
*
- * Version: $Id: vrrp_notify.c,v 1.1.14 2007/09/13 21:12:33 acassen Exp $
+ * Version: $Id: vrrp_notify.c,v 1.1.15 2007/09/15 04:07:41 acassen Exp $
*
* Author: Alexandre Cassen, <acassen@linux-vs.org>
*
* data structure representation the conf file representing
* the loadbalanced server pool.
*
- * Version: $Id: vrrp_parser.c,v 1.1.14 2007/09/13 21:12:33 acassen Exp $
+ * Version: $Id: vrrp_parser.c,v 1.1.15 2007/09/15 04:07:41 acassen Exp $
*
* Author: Alexandre Cassen, <acassen@linux-vs.org>
*
*
* Part: Sheduling framework for vrrp code.
*
- * Version: $Id: vrrp_scheduler.c,v 1.1.14 2007/09/13 21:12:33 acassen Exp $
+ * Version: $Id: vrrp_scheduler.c,v 1.1.15 2007/09/15 04:07:41 acassen Exp $
*
* Author: Alexandre Cassen, <acassen@linux-vs.org>
*
syslog(LOG_INFO, "VRRP_Instance(%s) Now in FAULT state",
vrrp->iname);
vrrp->state = VRRP_STATE_FAULT;
- vrrp->ms_down_timer =
- 3 * vrrp->adver_int + VRRP_TIMER_SKEW(vrrp);
+ vrrp->ms_down_timer = 3 * vrrp->adver_int + VRRP_TIMER_SKEW(vrrp);
+ notify_instance_exec(vrrp, VRRP_STATE_FAULT);
} else {
/* If becoming MASTER in IPSEC AH AUTH, we reset the anti-replay */
if (vrrp->ipsecah_counter->cycle) {
vrrp_ah_sync(vrrp);
} else {
/* Otherwise, we transit to init state */
- if (vrrp->init_state == VRRP_STATE_BACK)
+ if (vrrp->init_state == VRRP_STATE_BACK) {
vrrp->state = VRRP_STATE_BACK;
- else
+ notify_instance_exec(vrrp, VRRP_STATE_BACK);
+ } else {
vrrp_goto_master(vrrp);
+ }
}
}
*
* Part: VRRP synchronization framework.
*
- * Version: $Id: vrrp_sync.c,v 1.1.14 2007/09/13 21:12:33 acassen Exp $
+ * Version: $Id: vrrp_sync.c,v 1.1.15 2007/09/15 04:07:41 acassen Exp $
*
* Author: Alexandre Cassen, <acassen@linux-vs.org>
*
*
* Part: Interface tracking framework.
*
- * Version: $Id: vrrp_track.c,v 1.1.14 2007/09/13 21:12:33 acassen Exp $
+ * Version: $Id: vrrp_track.c,v 1.1.15 2007/09/15 04:07:41 acassen Exp $
*
* Author: Alexandre Cassen, <acassen@linux-vs.org>
*
*
* Part: HTML stream parser utility functions.
*
- * Version: $Id: html.c,v 1.1.14 2007/09/13 21:12:33 acassen Exp $
+ * Version: $Id: html.c,v 1.1.15 2007/09/15 04:07:41 acassen Exp $
*
* Authors: Alexandre Cassen, <acassen@linux-vs.org>
*
*
* Part: parser.c include file.
*
- * Version: $Id: html.h,v 1.1.14 2007/09/13 21:12:33 acassen Exp $
+ * Version: $Id: html.h,v 1.1.15 2007/09/15 04:07:41 acassen Exp $
*
* Authors: Alexandre Cassen, <acassen@linux-vs.org>
*
*
* Part: List structure manipulation.
*
- * Version: $Id: list.c,v 1.1.14 2007/09/13 21:12:33 acassen Exp $
+ * Version: $Id: list.c,v 1.1.15 2007/09/15 04:07:41 acassen Exp $
*
* Author: Alexandre Cassen, <acassen@linux-vs.org>
*
*
* Part: list.c include file.
*
- * Version: $Id: list.h,v 1.1.14 2007/09/13 21:12:33 acassen Exp $
+ * Version: $Id: list.h,v 1.1.15 2007/09/15 04:07:41 acassen Exp $
*
* Author: Alexandre Cassen, <acassen@linux-vs.org>
*
* Part: Memory management framework. This framework is used to
* find any memory leak.
*
- * Version: $Id: memory.c,v 1.1.14 2007/09/13 21:12:33 acassen Exp $
+ * Version: $Id: memory.c,v 1.1.15 2007/09/15 04:07:41 acassen Exp $
*
* Authors: Alexandre Cassen, <acassen@linux-vs.org>
* Jan Holmberg, <jan@artech.net>
*
* Part: memory.c include file.
*
- * Version: $Id: memory.h,v 1.1.14 2007/09/13 21:12:33 acassen Exp $
+ * Version: $Id: memory.h,v 1.1.15 2007/09/15 04:07:41 acassen Exp $
*
* Authors: Alexandre Cassen, <acassen@linux-vs.org>
* Jan Holmberg, <jan@artech.net>
*
* Part: Forked system call to launch an extra script.
*
- * Version: $Id: notify.c,v 1.1.14 2007/09/13 21:12:33 acassen Exp $
+ * Version: $Id: notify.c,v 1.1.15 2007/09/15 04:07:41 acassen Exp $
*
* Author: Alexandre Cassen, <acassen@linux-vs.org>
*
*
* Part: notify.c include file.
*
- * Version: $Id: notify.h,v 1.1.14 2007/09/13 21:12:33 acassen Exp $
+ * Version: $Id: notify.h,v 1.1.15 2007/09/15 04:07:41 acassen Exp $
*
* Author: Alexandre Cassen, <acassen@linux-vs.org>
*
* data structure representation the conf file representing
* the loadbalanced server pool.
*
- * Version: $Id: parser.c,v 1.1.14 2007/09/13 21:12:33 acassen Exp $
+ * Version: $Id: parser.c,v 1.1.15 2007/09/15 04:07:41 acassen Exp $
*
* Author: Alexandre Cassen, <acassen@linux-vs.org>
*
/* global vars */
vector keywords;
+vector current_keywords;
FILE *current_stream;
char *current_conf_file;
int reload = 0;
char *confpath = strdup(globbuf.gl_pathv[i]);
dirname(confpath);
chdir(confpath);
- process_stream(keywords);
+ process_stream(current_keywords);
fclose(stream);
chdir(prev_path);
char *str;
char *buf;
vector strvec;
+ vector prev_keywords = current_keywords;
+ current_keywords = keywords_vec;
buf = zalloc(MAXBUF);
while (read_line(buf, MAXBUF)) {
free_strvec(strvec);
}
+ current_keywords = prev_keywords;
free(buf);
return;
}
#endif
/* Stream handling */
+ current_keywords = keywords;
read_conf_file((conf_file) ? conf_file : CONF);
free_keywords(keywords);
}
*
* Part: cfreader.c include file.
*
- * Version: $Id: parser.h,v 1.1.14 2007/09/13 21:12:33 acassen Exp $
+ * Version: $Id: parser.h,v 1.1.15 2007/09/15 04:07:41 acassen Exp $
*
* Author: Alexandre Cassen, <acassen@linux-vs.org>
*
* the thread management routine (thread.c) present in the
* very nice zebra project (http://www.zebra.org).
*
- * Version: $Id: scheduler.c,v 1.1.14 2007/09/13 21:12:33 acassen Exp $
+ * Version: $Id: scheduler.c,v 1.1.15 2007/09/15 04:07:41 acassen Exp $
*
* Author: Alexandre Cassen, <acassen@linux-vs.org>
*
*
* Part: scheduler.c include file.
*
- * Version: $Id: scheduler.h,v 1.1.14 2007/09/13 21:12:33 acassen Exp $
+ * Version: $Id: scheduler.h,v 1.1.15 2007/09/15 04:07:41 acassen Exp $
*
* Author: Alexandre Cassen, <acassen@linux-vs.org>
*
*
* Part: Signals framework.
*
- * Version: $Id: signals.c,v 1.1.14 2007/09/13 21:12:33 acassen Exp $
+ * Version: $Id: signals.c,v 1.1.15 2007/09/15 04:07:41 acassen Exp $
*
* Author: Kevin Lindsay, <kevinl@netnation.com>
* Alexandre Cassen, <acassen@linux-vs.org>
*
* Part: signals.c include file.
*
- * Version: $Id: signals.h,v 1.1.14 2007/09/13 21:12:33 acassen Exp $
+ * Version: $Id: signals.h,v 1.1.15 2007/09/15 04:07:41 acassen Exp $
*
* Author: Kevin Lindsay, <kevinl@netnation.com>
* Alexandre Cassen, <acassen@linux-vs.org>
*
* Part: Timer manipulations.
*
- * Version: $Id: timer.c,v 1.1.14 2007/09/13 21:12:33 acassen Exp $
+ * Version: $Id: timer.c,v 1.1.15 2007/09/15 04:07:41 acassen Exp $
*
* Author: Alexandre Cassen, <acassen@linux-vs.org>
*
*
* Part: timer.c include file.
*
- * Version: $Id: timer.h,v 1.1.14 2007/09/13 21:12:33 acassen Exp $
+ * Version: $Id: timer.h,v 1.1.15 2007/09/15 04:07:41 acassen Exp $
*
* Author: Alexandre Cassen, <acassen@linux-vs.org>
*
*
* Part: General program utils.
*
- * Version: $Id: utils.c,v 1.1.14 2007/09/13 21:12:33 acassen Exp $
+ * Version: $Id: utils.c,v 1.1.15 2007/09/15 04:07:41 acassen Exp $
*
* Author: Alexandre Cassen, <acassen@linux-vs.org>
*
*
* Part: utils.h include file.
*
- * Version: $Id: utils.h,v 1.1.14 2007/09/13 21:12:33 acassen Exp $
+ * Version: $Id: utils.h,v 1.1.15 2007/09/15 04:07:41 acassen Exp $
*
* Author: Alexandre Cassen, <acassen@linux-vs.org>
*
*
* Part: Vector structure manipulation.
*
- * Version: $Id: vector.c,v 1.1.14 2007/09/13 21:12:33 acassen Exp $
+ * Version: $Id: vector.c,v 1.1.15 2007/09/15 04:07:41 acassen Exp $
*
* Author: Alexandre Cassen, <acassen@linux-vs.org>
*
*
* Part: vector.c include file.
*
- * Version: $Id: vector.h,v 1.1.14 2007/09/13 21:12:33 acassen Exp $
+ * Version: $Id: vector.h,v 1.1.15 2007/09/15 04:07:41 acassen Exp $
*
* Author: Alexandre Cassen, <acassen@linux-vs.org>
*