Skip to content

Commit

Permalink
keepalived-1.1.2
Browse files Browse the repository at this point in the history
* keepalived-1.1.2 released.
* Dominik Vogt, <dominik.vogt@gmx.de> and I extended checker
  framework to support multiple checkers per realserver.
  Each checker own a uniq id, each realserver own a list
  of checkers id. Realserver is considered down if one of the
  checkers fails.
* Dominik Vogt, <dominik.vogt@gmx.de> extended list library to
  support free_list_element.
* Dominik Vogt, <dominik.vogt@gmx.de> and I extended ipwrapper
  to support multiple checkers test. Created a checker state
  updater helper function to perform realserver state according
  to checker state.
* Dominik Vogt, <dominik.vogt@gmx.de> extended all checkers
  code to support multiple checker design (to not perform
  server state according a single checkers test).
* Tobias Klausmann, <klausman@schwarzvogel.de> and I extended
  layer4 framework to support socket binding to a specific
  ip address before calling connect(). Extended the TCP, HTTP
  and SSL checker to support binding selection, creating
  a new checker keyword named "bindto".
  look at doc/keepalived.conf.SYNOPSIS for more informations.
* VRRP : Extended the ethtool code to be selected only if
  ETHTOOL_GLINK is available. This is useful for s/390 zSeries
  users :) since zSerie 2.4 kernel doesn't support ethtool
  extension.
* VRRP : Gatis Peisenieks, <gatis@mt.lv> fixed IPSEC-AH
  code to exclude ip header id filed while computing AH digest.
  Fixed AH sequence number to be set in network byte order.
* VRRP : Fixed a bug in the static_ipaddress block that caused
  a noisy crashing startup.
* VRRP : Kjetil Torgrim Homme, <kjetilho@ifi.uio.no> and I
  fixed a daemon crash while reloading configuration due to a
  vrrp_buffer not freed.
* VRRP : Review the watchdog calling location. watchdog listener
  is reinitialized during a daemon reload.
* VRRP : Diego Rivera, <lrivera@racsa.co.cr> extended notify
  framework to support simple notify script call. Created a new
  keyword "notify", for both vrrp_instance and vrrp_sync_group.
  If configured, this notify script is called after FSM state
  transition notify scripts.
  look at doc/keepalived.conf.SYNOPSIS for more informations.
* Review the checker watchdog calling location like VRRP.
* Fixed code selection to exclude VRRP dependencies if code is
  configured without VRRP framework.
* Extended memory lib free function to reset memory location to
  NULL.
* Diego Rivera, <lrivera@racsa.co.cr> extended global parser
  to support default handlers for lvs_id, smtp_server,
  smtp_connection_timeout and email_from. default values are :
   o lvs_id : box local name
   o smtp_server : localhost
   o email_from : uid@box_local_name
   o smtp_connection_timeout : 30s
  • Loading branch information
Alexandre Cassen committed Sep 28, 2009
1 parent 5de330a commit 6b2cf7c
Show file tree
Hide file tree
Showing 102 changed files with 817 additions and 195 deletions.
55 changes: 55 additions & 0 deletions ChangeLog
@@ -1,3 +1,58 @@
2003-09-07 Alexandre Cassen <acassen@linux-vs.org>
* keepalived-1.1.2 released.
* Dominik Vogt, <dominik.vogt@gmx.de> and I extended checker
framework to support multiple checkers per realserver.
Each checker own a uniq id, each realserver own a list
of checkers id. Realserver is considered down if one of the
checkers fails.
* Dominik Vogt, <dominik.vogt@gmx.de> extended list library to
support free_list_element.
* Dominik Vogt, <dominik.vogt@gmx.de> and I extended ipwrapper
to support multiple checkers test. Created a checker state
updater helper function to perform realserver state according
to checker state.
* Dominik Vogt, <dominik.vogt@gmx.de> extended all checkers
code to support multiple checker design (to not perform
server state according a single checkers test).
* Tobias Klausmann, <klausman@schwarzvogel.de> and I extended
layer4 framework to support socket binding to a specific
ip address before calling connect(). Extended the TCP, HTTP
and SSL checker to support binding selection, creating
a new checker keyword named "bindto".
look at doc/keepalived.conf.SYNOPSIS for more informations.
* VRRP : Extended the ethtool code to be selected only if
ETHTOOL_GLINK is available. This is useful for s/390 zSeries
users :) since zSerie 2.4 kernel doesn't support ethtool
extension.
* VRRP : Gatis Peisenieks, <gatis@mt.lv> fixed IPSEC-AH
code to exclude ip header id filed while computing AH digest.
Fixed AH sequence number to be set in network byte order.
* VRRP : Fixed a bug in the static_ipaddress block that caused
a noisy crashing startup.
* VRRP : Kjetil Torgrim Homme, <kjetilho@ifi.uio.no> and I
fixed a daemon crash while reloading configuration due to a
vrrp_buffer not freed.
* VRRP : Review the watchdog calling location. watchdog listener
is reinitialized during a daemon reload.
* VRRP : Diego Rivera, <lrivera@racsa.co.cr> extended notify
framework to support simple notify script call. Created a new
keyword "notify", for both vrrp_instance and vrrp_sync_group.
If configured, this notify script is called after FSM state
transition notify scripts.
look at doc/keepalived.conf.SYNOPSIS for more informations.
* Review the checker watchdog calling location like VRRP.
* Fixed code selection to exclude VRRP dependencies if code is
configured without VRRP framework.
* Extended memory lib free function to reset memory location to
NULL.
* Diego Rivera, <lrivera@racsa.co.cr> extended global parser
to support default handlers for lvs_id, smtp_server,
smtp_connection_timeout and email_from. default values are :
o lvs_id : box local name
o smtp_server : localhost
o email_from : uid@box_local_name
o smtp_connection_timeout : 30s

2003-07-24 Alexandre Cassen <acassen@linux-vs.org>
* keepalived-1.1.1 released.
* VRRP : Fixed an issue while reloading configuration. Fixed
Expand Down
2 changes: 1 addition & 1 deletion VERSION
@@ -1 +1 @@
1.1.1
1.1.2
15 changes: 15 additions & 0 deletions doc/keepalived.conf.SYNOPSIS
Expand Up @@ -88,9 +88,21 @@ vrrp_sync_group <STRING> { # VRRP sync group declaration
notify_master <STRING>|<QUOTED-STRING> # Script to run during MASTER transit
notify_backup <STRING>|<QUOTED-STRING> # Script to run during BACKUP transit
notify_fault <STRING>|<QUOTED-STRING> # Script to run during FAULT transit
notify <STRING>|<QUOTED-STRING> # Script to run during ANY state transit (1)
smtp_alert # Send email notif during state transit
}

(1) The "notify" script is called AFTER the corresponding notify_* script has
been called, and is given exactly 3 arguments (the whole string is interpreted
as a litteral filename so don't add parameters!):

$1 = A string indicating whether it's a "GROUP" or an "INSTANCE"
$2 = The name of said group or instance
$3 = The state it's transitioning to ("MASTER", "BACKUP" or "FAULT")

$1 and $3 are ALWAYS sent in uppercase, and the possible strings sent are the
same ones listed above ("GROUP"/"INSTANCE", "MASTER"/"BACKUP"/"FAULT").

2.2. VRRP instance

The configuration block looks like :
Expand Down Expand Up @@ -134,6 +146,7 @@ vrrp_instance <STRING> { # VRRP instance declaration
notify_master <STRING>|<QUOTED-STRING> # Same as vrrp_sync_group
notify_backup <STRING>|<QUOTED-STRING> # Same as vrrp_sync_group
notify_fault <STRING>|<QUOTED-STRING> # Same as vrrp_sync_group
notify <STRING>|<QUOTED-STRING> # Same as vrrp_sync_group
smtp_alert # Same as vrrp_sync_group
}

Expand Down Expand Up @@ -221,6 +234,7 @@ virtual_server group <STRING> { # VS group declaration
}
...
connect_port <PORT> # TCP port to connect
bindto <IP ADDRESS> # IP address to bind to
connect_timeout <INTEGER> # Timeout connection
nb_get_retry <INTEGER> # number of get retry
delay_before_retry <INTEGER> # delay before retry
Expand All @@ -235,6 +249,7 @@ virtual_server group <STRING> { # VS group declaration

TCP_CHECK { # TCP healthchecker
connect_port <PORT> # TCP port to connect
bindto <IP ADDRESS> # IP address to bind to
connect_timeout <INTEGER> # Timeout connection
}
}
Expand Down
2 changes: 2 additions & 0 deletions genhash/http.c
Expand Up @@ -18,6 +18,8 @@
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version
* 2 of the License, or (at your option) any later version.
*
* Copyright (C) 2001, 2002, 2003 Alexandre Cassen, <acassen@linux-vs.org>
*/

#include <errno.h>
Expand Down
2 changes: 2 additions & 0 deletions genhash/http.h
Expand Up @@ -18,6 +18,8 @@
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version
* 2 of the License, or (at your option) any later version.
*
* Copyright (C) 2001, 2002, 2003 Alexandre Cassen, <acassen@linux-vs.org>
*/

#ifndef _HTTP_H
Expand Down
2 changes: 2 additions & 0 deletions genhash/layer4.c
Expand Up @@ -18,6 +18,8 @@
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version
* 2 of the License, or (at your option) any later version.
*
* Copyright (C) 2001, 2002, 2003 Alexandre Cassen, <acassen@linux-vs.org>
*/

#include "layer4.h"
Expand Down
2 changes: 2 additions & 0 deletions genhash/layer4.h
Expand Up @@ -18,6 +18,8 @@
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version
* 2 of the License, or (at your option) any later version.
*
* Copyright (C) 2001, 2002, 2003 Alexandre Cassen, <acassen@linux-vs.org>
*/

#ifndef _LAYER4_H
Expand Down
2 changes: 2 additions & 0 deletions genhash/main.c
Expand Up @@ -18,6 +18,8 @@
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version
* 2 of the License, or (at your option) any later version.
*
* Copyright (C) 2001, 2002, 2003 Alexandre Cassen, <acassen@linux-vs.org>
*/

#include <signal.h>
Expand Down
2 changes: 2 additions & 0 deletions genhash/main.h
Expand Up @@ -18,6 +18,8 @@
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version
* 2 of the License, or (at your option) any later version.
*
* Copyright (C) 2001, 2002, 2003 Alexandre Cassen, <acassen@linux-vs.org>
*/

#ifndef _MAIN_H
Expand Down
2 changes: 2 additions & 0 deletions genhash/sock.c
Expand Up @@ -18,6 +18,8 @@
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version
* 2 of the License, or (at your option) any later version.
*
* Copyright (C) 2001, 2002, 2003 Alexandre Cassen, <acassen@linux-vs.org>
*/

#include <string.h>
Expand Down
2 changes: 2 additions & 0 deletions genhash/sock.h
Expand Up @@ -18,6 +18,8 @@
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version
* 2 of the License, or (at your option) any later version.
*
* Copyright (C) 2001, 2002, 2003 Alexandre Cassen, <acassen@linux-vs.org>
*/

#ifndef _SOCK_H
Expand Down
2 changes: 2 additions & 0 deletions genhash/ssl.c
Expand Up @@ -18,6 +18,8 @@
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version
* 2 of the License, or (at your option) any later version.
*
* Copyright (C) 2001, 2002, 2003 Alexandre Cassen, <acassen@linux-vs.org>
*/

#include <openssl/err.h>
Expand Down
2 changes: 2 additions & 0 deletions genhash/ssl.h
Expand Up @@ -18,6 +18,8 @@
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version
* 2 of the License, or (at your option) any later version.
*
* Copyright (C) 2001, 2002, 2003 Alexandre Cassen, <acassen@linux-vs.org>
*/

#ifndef _SSL_H
Expand Down
4 changes: 2 additions & 2 deletions keepalived/check/Makefile.in
Expand Up @@ -66,7 +66,7 @@ check_ssl.o: check_ssl.c ../include/check_ssl.h ../include/check_api.h \
check_misc.o: check_misc.c ../include/check_misc.h ../include/check_api.h \
../../lib/memory.h ../include/ipwrapper.h ../include/smtp.h \
../../lib/utils.h ../../lib/notify.h ../../lib/parser.h ../include/daemon.h
ipwrapper.o: ipwrapper.c ../include/ipwrapper.h ../../lib/utils.h \
../../lib/notify.h
ipwrapper.o: ipwrapper.c ../include/ipwrapper.h ../../lib/memory.h \
../../lib/utils.h ../../lib/notify.h
ipvswrapper.o: ipvswrapper.c ../include/ipvswrapper.h ../../lib/utils.h \
../../lib/memory.h
9 changes: 8 additions & 1 deletion keepalived/check/check_api.c
Expand Up @@ -5,7 +5,7 @@
*
* Part: Checkers registration.
*
* Version: $Id: check_api.c,v 1.1.1 2003/07/24 22:36:16 acassen Exp $
* Version: $Id: check_api.c,v 1.1.2 2003/09/08 01:18:41 acassen Exp $
*
* Author: Alexandre Cassen, <acassen@linux-vs.org>
*
Expand All @@ -18,6 +18,8 @@
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version
* 2 of the License, or (at your option) any later version.
*
* Copyright (C) 2001, 2002, 2003 Alexandre Cassen, <acassen@linux-vs.org>
*/

#include "check_api.h"
Expand All @@ -37,6 +39,9 @@ extern thread_master *master;
extern check_conf_data *check_data;
extern unsigned int debug;

/* Global vars */
static checker_id_t ncheckers = 0;

/* free checker data */
static void
free_checker(void *data)
Expand Down Expand Up @@ -71,6 +76,7 @@ queue_checker(void (*free) (void *), void (*dump) (void *)
chk->vs = vs;
chk->rs = rs;
chk->data = data;
chk->id = ncheckers++;
chk->enabled = (vs->vfwmark) ? 1 : 0;
#ifdef _WITHOUT_VRRP_
chk->enabled = 1;
Expand Down Expand Up @@ -102,6 +108,7 @@ void
free_checkers_queue(void)
{
free_list(checkers_queue);
ncheckers = 0;
}

/* register the checker to the global I/O scheduler */
Expand Down
16 changes: 11 additions & 5 deletions keepalived/check/check_ci.c
Expand Up @@ -5,7 +5,7 @@
*
* Part: CI-LINUX checker. Integration to Compaq Cluster Infrastructure.
*
* Version: $Id: check_ci.c,v 1.1.1 2003/07/24 22:36:16 acassen Exp $
* Version: $Id: check_ci.c,v 1.1.2 2003/09/08 01:18:41 acassen Exp $
*
* Authors: Alexandre Cassen, <acassen@linux-vs.org>
* Aneesh Kumar K.V, <aneesh.kumar@digital.com>
Expand All @@ -19,6 +19,8 @@
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version
* 2 of the License, or (at your option) any later version.
*
* Copyright (C) 2001, 2002, 2003 Alexandre Cassen, <acassen@linux-vs.org>
*/

#include "check_ci.h"
Expand Down Expand Up @@ -174,17 +176,21 @@ ci_check_thread(thread * thread)

switch (status) {
case UP:
if (!ISALIVE(checker->rs)) {
if (!svr_checker_up(checker->id, checker->rs)) {
smtp_alert(thread->master, checker->rs, NULL, NULL, "UP",
"=> CI-Linux CHECK succeed on service <=");
perform_svr_state(UP, checker->vs, checker->rs);
update_svr_checker_state(UP, checker->id
, checker->vs
, checker->rs);
}
break;
case DOWN:
if (ISALIVE(checker->rs)) {
if (svr_checker_up(checker->id, checker->rs)) {
smtp_alert(thread->master, checker->rs, NULL, NULL, "DOWN",
"=> CI-Linux CHECK failed on service <=");
perform_svr_state(DOWN, checker->vs, checker->rs);
update_svr_checker_state(DOWN, checker->id
, checker->vs
, checker->rs);
}
break;
default:
Expand Down
20 changes: 15 additions & 5 deletions keepalived/check/check_daemon.c
Expand Up @@ -5,7 +5,7 @@
*
* Part: Healthcheckrs child process handling.
*
* Version: $Id: check_daemon.c,v 1.1.1 2003/07/24 22:36:16 acassen Exp $
* Version: $Id: check_daemon.c,v 1.1.2 2003/09/08 01:18:41 acassen Exp $
*
* Author: Alexandre Cassen, <acassen@linux-vs.org>
*
Expand All @@ -18,6 +18,8 @@
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version
* 2 of the License, or (at your option) any later version.
*
* Copyright (C) 2001, 2002, 2003 Alexandre Cassen, <acassen@linux-vs.org>
*/

#include "check_daemon.h"
Expand Down Expand Up @@ -76,7 +78,9 @@ stop_check(void)
/* Clean data */
free_global_data(data);
free_check_data(check_data);
#ifdef _WITH_VRRP_
free_interface_queue();
#endif

#ifdef _DEBUG_
keepalived_free_final("Healthcheck child process");
Expand All @@ -99,8 +103,10 @@ start_check(void)
{
/* Initialize sub-system */
init_checkers_queue();
#ifdef _WITH_VRRP_
init_interface_queue();
kernel_netlink_init();
#endif

/* Parse configuration file */
data = alloc_global_data();
Expand Down Expand Up @@ -136,6 +142,9 @@ start_check(void)
dump_check_data(check_data);
}

/* Register healthcheckers software watchdog */
check_wdog_sd = wdog_init(WDOG_CHECK);

/* Register checkers thread */
register_checkers_thread();
}
Expand All @@ -154,6 +163,9 @@ reload_check_thread(thread * thread)
free_checkers_queue();
free_ssl();

/* free watchdog sd */
wdog_close(check_wdog_sd, WDOG_CHECK);

/* Save previous conf data */
old_check_data = check_data;
check_data = NULL;
Expand Down Expand Up @@ -182,7 +194,8 @@ void
sigend_check(int sig)
{
syslog(LOG_INFO, "Terminating Healthchecker child process on signal");
thread_add_terminate_event(master);
if (master)
thread_add_terminate_event(master);
}

/* VRRP Child signal handling */
Expand Down Expand Up @@ -252,9 +265,6 @@ start_check_child(void)
/* Start Healthcheck daemon */
start_check();

/* Register healthcheckers software watchdog */
check_wdog_sd = wdog_init(WDOG_CHECK);

/* Launch the scheduling I/O multiplexer */
launch_scheduler();

Expand Down

0 comments on commit 6b2cf7c

Please sign in to comment.