[ANNOUNCE] keepalived-1.2.13

Alexandre Cassen <[email protected]> Tue, 13 May 2014 15:48:17 +0200
Newsgroups gmane.linux.keepalived.announce
Message-ID <CAONz4a2mWO+hz0bVk8Nw8k_AShD4r05DoxEpe6nroF4qRn2fdA__23797.7792196491$1399989113$gmane$org@mail.gmail.com>
--===============8231880176352396449==
Content-Type: multipart/alternative; boundary=001a113a6be4ecc6f904f94850bc

--001a113a6be4ecc6f904f94850bc
Content-Type: text/plain; charset=UTF-8

Hi,

Just quickly push new release extending and fixing pending stuff. Thanks
for your contrib.

ChangeLog for this release is :

2014-05-13  Alexandre Cassen  <[email protected]>
        * keepalived-1.2.13 released.
        * vrrp : Use the standard unsigned int types. This fixes
          building with musl libc, which does not expose the internal
          __uint* defines. (Natanael Copa)
        * check : Fix template issue in IPv6 host header.
          (Jan Hugo Prins)
        * ipvs : ipvs_syncd_cmd uses memset() to zero the daemonrule
          buffer before populating it and sending it up. daemonrule is
          malloc()ed by ipvs_start(). ipvs_start() can bail early if it
          can't communicate with ipvs. Neither place which call
          ipvs_start() check the return value, allowing them to walk
          straight into a NULL pointer deref. (jsgh)
        * check : Without inhibit_on_failure on a real_server, when the
          server is marked down existing TCP connections to it are simply
          blackholed. Hence inhibit_on_failure: by setting the weight to
          zero no new connections are sent to that server, but because the
          server isn't completely removed from the table existing
          connections are allowed to continue. The same problem exists
          with sorry_server. When a real_server comes back up the
          sorry_server is removed from the pool and existing connections
          are blackholed. Instead of continued service, which may usually
          be a fast response indicating overload, the client must engage
          in a lengthy wait for the connection to time out. It would be
          better in many cases to allow the sorry_server connections to
          complete naturally. Luckily the code is structured well enough
          that all is required to get this behaviour is to set the inhibit
          member of the sorry_server structure, which is mostly just a
          change to the config file parser. (jsgh)
        * check : unify logging of RS and VS. This fixes the bug of
          displaying a FWM service as [x.x.x.x]:0, where x.x.x.x is the
          first RS of that service. (Alexey Andriyanov)
        * check : unify connection options among checkers.
          All the remote checkers (TCP, HTTP/SSL, SMTP) now have the
          same set of connection options:
            . connect_ip (new to TCP, HTTP)
            . connect_port
            . bindto
            . bind_port (new)
            . connect_timeout (new to SMTP)
          All of them are optional with reasonable defaults. The patch
          is designed for simplicity in adding a new option. Since the
          connect_ip could be inequal to the RS address and, worse, the
          same for all RSes, the endpoint is now logged as [RS]:rport,
          not the [connect_ip]:connect_port. (Alexey Andriyanov)
        * check : fwmark connection option. (Alexey Andriyanov)
        * check : make SO_MARK a compile-time option.
          (Alexey Andriyanov)
        * check : documentation for generic connection opts.
          (Alexey Andriyanov)
        * check : random delay before doing the first check.
          every RS check is registered with a random delay between 0
          and vs->delay_loop seconds. It helps avoiding multiple
          simultaneous checks to the same RS server.  (Alexey Andriyanov)
        * vrrp : Fix sync of interface status flag when using VMAC
          interface. There is a chance that the VMAC interface status
          flags (up/down) could be different from the base interface flags.
          This patch will only change the VMAC interface status flags when
          the base interface is changed. (Jonas Johansson)
        * vrrp : Let only base interface change the VMAC interface status
          flags. The interface status flags for a VMAC interface shall
          only be changed by the base interface, never by reading the
          actual VMAC interface flags. (Jonas Johansson)
        * vrrp : Fix initial interface status flag value for VMAC
          interface. In commit a05a503, "vrrp: Fix sync of interface
          status flag when using VMAC interface", no inital value for the
          VMAC interface status flag was set. Due to that the VMAC interface
          flags shall follow the base interface, the base interface status
          flags value shall be copied to the VMAC interface status flags
          after the VMAC interface has been created. (Jonas Johansson)
        * vrrp : Proper restore of VMAC interface properties on SIGHUP.
          On SIGHUP the VMAC flag and base ifindex for a VMAC interface was
          lost. (Jonas Johansson)
        * vrrp : Revert "Honor preempt_delay setting on startup.".
          This commit resulted in two individual bugs:

          1) A keepalived instance coming on-line would not transition to
             MASTER state until the preempt_delay duration had passed, even
             though there was no already existing VRRP speaker in MASTER
             state on the link. In other words, it changed the semantics of
             preempt_delay from a delay that only took place before
             *preemption* of another VRRP speaker, to a delay that
             unconditionally took place after Keepalived came online. The
             keepalived.conf manual page has always documented the former
             meaning, which is also IMHO the only one that you would
             intuitively expect.

          2) The preempt_delay was applied when a Keepalived process was
             reloading its configuration following the recipt of SIGHUP.
             If the Keepalived instance was in MASTER state before the
             reload, it would cease transmitting VRRP hellos for the
             duration of preempt_delay, but *not* actually remove the
             virtual addresses from the network interfaces. This in turn
             resulted in any backup VRRP speakers on the links transition
             to the MASTER state while preempt_delay was still in effect
             on the original MASTER that was reloaded, thus creating a
             service-impacting split-brain scenario where the virtual
             addresses are present and active on multiple VRRP speakers
             simultaneously.

          (Tore Anderson)
        * vrrp : fix ip_address comparison. Extend IP_ISEQ() macro to
          take care of NULL addresses. This issue end on SEGV while
          using virtual_route. thanks to Tore Anderson for reporting.
        * vrrp : fix double close issue (DROP_MEMBERSHIP & netlink
          channel). This is a old pending 'bug', not arming at all
          but just frustrating to see again and again this log message :

          "cant do IP_DROP_MEMBERSHIP errno=Bad file descriptor (9)"

          What the hell ! it was due to a double close during reload &
          stop procedure. VRRP fd are stored in a socket pool and use
          the I/O MUX to handle VRRP traffic. While reloading or stopping
          the daemon the I/O MUX was released first and secondly socket
          pool.  The issue spotted here, in thread_destroy_master() all
          pending thread are canceled and read/write fds related are
          close(). Well OK a close on a mcast socket perform kernel side
          the DROP_MEMBERSHIP when needed, but it is much more clean to
          perform proper operations userspace ! This patch sequencely
          cancel pending thread, release socket pool and finally
          destroy master thread. Same 'issue' appear in netlink channel.


Enjoy,
Alexandre

--001a113a6be4ecc6f904f94850bc
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: base64

PGRpdiBkaXI9Imx0ciI+PGRpdj48ZGl2PjxkaXY+PGRpdj5IaSw8YnI+PGJyPjwvZGl2Pkp1c3Qg
cXVpY2tseSBwdXNoIG5ldyByZWxlYXNlIGV4dGVuZGluZyBhbmQgZml4aW5nIHBlbmRpbmcgc3R1
ZmYuIFRoYW5rcyBmb3IgeW91ciBjb250cmliLjxicj48YnI+PC9kaXY+Q2hhbmdlTG9nIGZvciB0
aGlzIHJlbGVhc2UgaXMgOjxicj48YnI+MjAxNC0wNS0xM8KgIEFsZXhhbmRyZSBDYXNzZW7CoCAm
bHQ7PGEgaHJlZj0ibWFpbHRvOmFjYXNzZW5AbGludXgtdnMub3JnIj5hY2Fzc2VuQGxpbnV4LXZz
Lm9yZzwvYT4mZ3Q7PGJyPg0KwqDCoMKgwqDCoMKgwqAgKiBrZWVwYWxpdmVkLTEuMi4xMyByZWxl
YXNlZC48YnI+wqDCoMKgwqDCoMKgwqAgKiB2cnJwIDogVXNlIHRoZSBzdGFuZGFyZCB1bnNpZ25l
ZCBpbnQgdHlwZXMuIFRoaXMgZml4ZXM8YnI+wqDCoMKgwqDCoMKgwqDCoMKgIGJ1aWxkaW5nIHdp
dGggbXVzbCBsaWJjLCB3aGljaCBkb2VzIG5vdCBleHBvc2UgdGhlIGludGVybmFsPGJyPsKgwqDC
oMKgwqDCoMKgwqDCoCBfX3VpbnQqIGRlZmluZXMuIChOYXRhbmFlbCBDb3BhKTxicj4NCsKgwqDC
oMKgwqDCoMKgICogY2hlY2sgOiBGaXggdGVtcGxhdGUgaXNzdWUgaW4gSVB2NiBob3N0IGhlYWRl
ci48YnI+wqDCoMKgwqDCoMKgwqDCoMKgIChKYW4gSHVnbyBQcmlucyk8YnI+wqDCoMKgwqDCoMKg
wqAgKiBpcHZzIDogaXB2c19zeW5jZF9jbWQgdXNlcyBtZW1zZXQoKSB0byB6ZXJvIHRoZSBkYWVt
b25ydWxlPGJyPsKgwqDCoMKgwqDCoMKgwqDCoCBidWZmZXIgYmVmb3JlIHBvcHVsYXRpbmcgaXQg
YW5kIHNlbmRpbmcgaXQgdXAuIGRhZW1vbnJ1bGUgaXM8YnI+DQrCoMKgwqDCoMKgwqDCoMKgwqAg
bWFsbG9jKCllZCBieSBpcHZzX3N0YXJ0KCkuIGlwdnNfc3RhcnQoKSBjYW4gYmFpbCBlYXJseSBp
ZiBpdDxicj7CoMKgwqDCoMKgwqDCoMKgwqAgY2FuJiMzOTt0IGNvbW11bmljYXRlIHdpdGggaXB2
cy4gTmVpdGhlciBwbGFjZSB3aGljaCBjYWxsPGJyPsKgwqDCoMKgwqDCoMKgwqDCoCBpcHZzX3N0
YXJ0KCkgY2hlY2sgdGhlIHJldHVybiB2YWx1ZSwgYWxsb3dpbmcgdGhlbSB0byB3YWxrPGJyPsKg
wqDCoMKgwqDCoMKgwqDCoCBzdHJhaWdodCBpbnRvIGEgTlVMTCBwb2ludGVyIGRlcmVmLiAoanNn
aCk8YnI+DQrCoMKgwqDCoMKgwqDCoCAqIGNoZWNrIDogV2l0aG91dCBpbmhpYml0X29uX2ZhaWx1
cmUgb24gYSByZWFsX3NlcnZlciwgd2hlbiB0aGU8YnI+wqDCoMKgwqDCoMKgwqDCoMKgIHNlcnZl
ciBpcyBtYXJrZWQgZG93biBleGlzdGluZyBUQ1AgY29ubmVjdGlvbnMgdG8gaXQgYXJlIHNpbXBs
eTxicj7CoMKgwqDCoMKgwqDCoMKgwqAgYmxhY2tob2xlZC4gSGVuY2UgaW5oaWJpdF9vbl9mYWls
dXJlOiBieSBzZXR0aW5nIHRoZSB3ZWlnaHQgdG88YnI+DQrCoMKgwqDCoMKgwqDCoMKgwqAgemVy
byBubyBuZXcgY29ubmVjdGlvbnMgYXJlIHNlbnQgdG8gdGhhdCBzZXJ2ZXIsIGJ1dCBiZWNhdXNl
IHRoZTxicj7CoMKgwqDCoMKgwqDCoMKgwqAgc2VydmVyIGlzbiYjMzk7dCBjb21wbGV0ZWx5IHJl
bW92ZWQgZnJvbSB0aGUgdGFibGUgZXhpc3Rpbmc8YnI+wqDCoMKgwqDCoMKgwqDCoMKgIGNvbm5l
Y3Rpb25zIGFyZSBhbGxvd2VkIHRvIGNvbnRpbnVlLiBUaGUgc2FtZSBwcm9ibGVtIGV4aXN0czxi
cj4NCsKgwqDCoMKgwqDCoMKgwqDCoCB3aXRoIHNvcnJ5X3NlcnZlci4gV2hlbiBhIHJlYWxfc2Vy
dmVyIGNvbWVzIGJhY2sgdXAgdGhlPGJyPsKgwqDCoMKgwqDCoMKgwqDCoCBzb3JyeV9zZXJ2ZXIg
aXMgcmVtb3ZlZCBmcm9tIHRoZSBwb29sIGFuZCBleGlzdGluZyBjb25uZWN0aW9uczxicj7CoMKg
wqDCoMKgwqDCoMKgwqAgYXJlIGJsYWNraG9sZWQuIEluc3RlYWQgb2YgY29udGludWVkIHNlcnZp
Y2UsIHdoaWNoIG1heSB1c3VhbGx5PGJyPg0KwqDCoMKgwqDCoMKgwqDCoMKgIGJlIGEgZmFzdCBy
ZXNwb25zZSBpbmRpY2F0aW5nIG92ZXJsb2FkLCB0aGUgY2xpZW50IG11c3QgZW5nYWdlPGJyPsKg
wqDCoMKgwqDCoMKgwqDCoCBpbiBhIGxlbmd0aHkgd2FpdCBmb3IgdGhlIGNvbm5lY3Rpb24gdG8g
dGltZSBvdXQuIEl0IHdvdWxkIGJlPGJyPsKgwqDCoMKgwqDCoMKgwqDCoCBiZXR0ZXIgaW4gbWFu
eSBjYXNlcyB0byBhbGxvdyB0aGUgc29ycnlfc2VydmVyIGNvbm5lY3Rpb25zIHRvPGJyPg0KwqDC
oMKgwqDCoMKgwqDCoMKgIGNvbXBsZXRlIG5hdHVyYWxseS4gTHVja2lseSB0aGUgY29kZSBpcyBz
dHJ1Y3R1cmVkIHdlbGwgZW5vdWdoPGJyPsKgwqDCoMKgwqDCoMKgwqDCoCB0aGF0IGFsbCBpcyBy
ZXF1aXJlZCB0byBnZXQgdGhpcyBiZWhhdmlvdXIgaXMgdG8gc2V0IHRoZSBpbmhpYml0PGJyPsKg
wqDCoMKgwqDCoMKgwqDCoCBtZW1iZXIgb2YgdGhlIHNvcnJ5X3NlcnZlciBzdHJ1Y3R1cmUsIHdo
aWNoIGlzIG1vc3RseSBqdXN0IGE8YnI+DQrCoMKgwqDCoMKgwqDCoMKgwqAgY2hhbmdlIHRvIHRo
ZSBjb25maWcgZmlsZSBwYXJzZXIuIChqc2doKTxicj7CoMKgwqDCoMKgwqDCoCAqIGNoZWNrIDog
dW5pZnkgbG9nZ2luZyBvZiBSUyBhbmQgVlMuIFRoaXMgZml4ZXMgdGhlIGJ1ZyBvZjxicj7CoMKg
wqDCoMKgwqDCoMKgwqAgZGlzcGxheWluZyBhIEZXTSBzZXJ2aWNlIGFzIFt4LngueC54XTowLCB3
aGVyZSB4LngueC54IGlzIHRoZTxicj7CoMKgwqDCoMKgwqDCoMKgwqAgZmlyc3QgUlMgb2YgdGhh
dCBzZXJ2aWNlLiAoQWxleGV5IEFuZHJpeWFub3YpPGJyPg0KwqDCoMKgwqDCoMKgwqAgKiBjaGVj
ayA6IHVuaWZ5IGNvbm5lY3Rpb24gb3B0aW9ucyBhbW9uZyBjaGVja2Vycy48YnI+wqDCoMKgwqDC
oMKgwqDCoMKgIEFsbCB0aGUgcmVtb3RlIGNoZWNrZXJzIChUQ1AsIEhUVFAvU1NMLCBTTVRQKSBu
b3cgaGF2ZSB0aGU8YnI+wqDCoMKgwqDCoMKgwqDCoMKgIHNhbWUgc2V0IG9mIGNvbm5lY3Rpb24g
b3B0aW9uczo8YnI+wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAuIGNvbm5lY3RfaXAgKG5ldyB0byBU
Q1AsIEhUVFApPGJyPg0KwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAuIGNvbm5lY3RfcG9ydDxicj7C
oMKgwqDCoMKgwqDCoMKgwqDCoMKgIC4gYmluZHRvPGJyPsKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg
LiBiaW5kX3BvcnQgKG5ldyk8YnI+wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAuIGNvbm5lY3RfdGlt
ZW91dCAobmV3IHRvIFNNVFApPGJyPsKgwqDCoMKgwqDCoMKgwqDCoCBBbGwgb2YgdGhlbSBhcmUg
b3B0aW9uYWwgd2l0aCByZWFzb25hYmxlIGRlZmF1bHRzLiBUaGUgcGF0Y2g8YnI+wqDCoMKgwqDC
oMKgwqDCoMKgIGlzIGRlc2lnbmVkIGZvciBzaW1wbGljaXR5IGluIGFkZGluZyBhIG5ldyBvcHRp
b24uIFNpbmNlIHRoZTxicj4NCsKgwqDCoMKgwqDCoMKgwqDCoCBjb25uZWN0X2lwIGNvdWxkIGJl
IGluZXF1YWwgdG8gdGhlIFJTIGFkZHJlc3MgYW5kLCB3b3JzZSwgdGhlPGJyPsKgwqDCoMKgwqDC
oMKgwqDCoCBzYW1lIGZvciBhbGwgUlNlcywgdGhlIGVuZHBvaW50IGlzIG5vdyBsb2dnZWQgYXMg
W1JTXTpycG9ydCw8YnI+wqDCoMKgwqDCoMKgwqDCoMKgIG5vdCB0aGUgW2Nvbm5lY3RfaXBdOmNv
bm5lY3RfcG9ydC4gKEFsZXhleSBBbmRyaXlhbm92KTxicj7CoMKgwqDCoMKgwqDCoCAqIGNoZWNr
IDogZndtYXJrIGNvbm5lY3Rpb24gb3B0aW9uLiAoQWxleGV5IEFuZHJpeWFub3YpPGJyPg0KwqDC
oMKgwqDCoMKgwqAgKiBjaGVjayA6IG1ha2UgU09fTUFSSyBhIGNvbXBpbGUtdGltZSBvcHRpb24u
PGJyPsKgwqDCoMKgwqDCoMKgwqDCoCAoQWxleGV5IEFuZHJpeWFub3YpPGJyPsKgwqDCoMKgwqDC
oMKgICogY2hlY2sgOiBkb2N1bWVudGF0aW9uIGZvciBnZW5lcmljIGNvbm5lY3Rpb24gb3B0cy48
YnI+wqDCoMKgwqDCoMKgwqDCoMKgIChBbGV4ZXkgQW5kcml5YW5vdik8YnI+wqDCoMKgwqDCoMKg
wqAgKiBjaGVjayA6IHJhbmRvbSBkZWxheSBiZWZvcmUgZG9pbmcgdGhlIGZpcnN0IGNoZWNrLjxi
cj4NCsKgwqDCoMKgwqDCoMKgwqDCoCBldmVyeSBSUyBjaGVjayBpcyByZWdpc3RlcmVkIHdpdGgg
YSByYW5kb20gZGVsYXkgYmV0d2VlbiAwPGJyPsKgwqDCoMKgwqDCoMKgwqDCoCBhbmQgdnMtJmd0
O2RlbGF5X2xvb3Agc2Vjb25kcy4gSXQgaGVscHMgYXZvaWRpbmcgbXVsdGlwbGU8YnI+wqDCoMKg
wqDCoMKgwqDCoMKgIHNpbXVsdGFuZW91cyBjaGVja3MgdG8gdGhlIHNhbWUgUlMgc2VydmVyLsKg
IChBbGV4ZXkgQW5kcml5YW5vdik8YnI+wqDCoMKgwqDCoMKgwqAgKiB2cnJwIDogRml4IHN5bmMg
b2YgaW50ZXJmYWNlIHN0YXR1cyBmbGFnIHdoZW4gdXNpbmcgVk1BQzxicj4NCsKgwqDCoMKgwqDC
oMKgwqDCoCBpbnRlcmZhY2UuIFRoZXJlIGlzIGEgY2hhbmNlIHRoYXQgdGhlIFZNQUMgaW50ZXJm
YWNlIHN0YXR1czxicj7CoMKgwqDCoMKgwqDCoMKgwqAgZmxhZ3MgKHVwL2Rvd24pIGNvdWxkIGJl
IGRpZmZlcmVudCBmcm9tIHRoZSBiYXNlIGludGVyZmFjZSBmbGFncy48YnI+wqDCoMKgwqDCoMKg
wqDCoMKgIFRoaXMgcGF0Y2ggd2lsbCBvbmx5IGNoYW5nZSB0aGUgVk1BQyBpbnRlcmZhY2Ugc3Rh
dHVzIGZsYWdzIHdoZW48YnI+DQrCoMKgwqDCoMKgwqDCoMKgwqAgdGhlIGJhc2UgaW50ZXJmYWNl
IGlzIGNoYW5nZWQuIChKb25hcyBKb2hhbnNzb24pPGJyPsKgwqDCoMKgwqDCoMKgICogdnJycCA6
IExldCBvbmx5IGJhc2UgaW50ZXJmYWNlIGNoYW5nZSB0aGUgVk1BQyBpbnRlcmZhY2Ugc3RhdHVz
PGJyPsKgwqDCoMKgwqDCoMKgwqDCoCBmbGFncy4gVGhlIGludGVyZmFjZSBzdGF0dXMgZmxhZ3Mg
Zm9yIGEgVk1BQyBpbnRlcmZhY2Ugc2hhbGw8YnI+wqDCoMKgwqDCoMKgwqDCoMKgIG9ubHkgYmUg
Y2hhbmdlZCBieSB0aGUgYmFzZSBpbnRlcmZhY2UsIG5ldmVyIGJ5IHJlYWRpbmcgdGhlPGJyPg0K
wqDCoMKgwqDCoMKgwqDCoMKgIGFjdHVhbCBWTUFDIGludGVyZmFjZSBmbGFncy4gKEpvbmFzIEpv
aGFuc3Nvbik8YnI+wqDCoMKgwqDCoMKgwqAgKiB2cnJwIDogRml4IGluaXRpYWwgaW50ZXJmYWNl
IHN0YXR1cyBmbGFnIHZhbHVlIGZvciBWTUFDPGJyPsKgwqDCoMKgwqDCoMKgwqDCoCBpbnRlcmZh
Y2UuIEluIGNvbW1pdCBhMDVhNTAzLCAmcXVvdDt2cnJwOiBGaXggc3luYyBvZiBpbnRlcmZhY2U8
YnI+wqDCoMKgwqDCoMKgwqDCoMKgIHN0YXR1cyBmbGFnIHdoZW4gdXNpbmcgVk1BQyBpbnRlcmZh
Y2UmcXVvdDssIG5vIGluaXRhbCB2YWx1ZSBmb3IgdGhlPGJyPg0KwqDCoMKgwqDCoMKgwqDCoMKg
IFZNQUMgaW50ZXJmYWNlIHN0YXR1cyBmbGFnIHdhcyBzZXQuIER1ZSB0byB0aGF0IHRoZSBWTUFD
IGludGVyZmFjZTxicj7CoMKgwqDCoMKgwqDCoMKgwqAgZmxhZ3Mgc2hhbGwgZm9sbG93IHRoZSBi
YXNlIGludGVyZmFjZSwgdGhlIGJhc2UgaW50ZXJmYWNlIHN0YXR1czxicj7CoMKgwqDCoMKgwqDC
oMKgwqAgZmxhZ3MgdmFsdWUgc2hhbGwgYmUgY29waWVkIHRvIHRoZSBWTUFDIGludGVyZmFjZSBz
dGF0dXMgZmxhZ3M8YnI+DQrCoMKgwqDCoMKgwqDCoMKgwqAgYWZ0ZXIgdGhlIFZNQUMgaW50ZXJm
YWNlIGhhcyBiZWVuIGNyZWF0ZWQuIChKb25hcyBKb2hhbnNzb24pPGJyPsKgwqDCoMKgwqDCoMKg
ICogdnJycCA6IFByb3BlciByZXN0b3JlIG9mIFZNQUMgaW50ZXJmYWNlIHByb3BlcnRpZXMgb24g
U0lHSFVQLjxicj7CoMKgwqDCoMKgwqDCoMKgwqAgT24gU0lHSFVQIHRoZSBWTUFDIGZsYWcgYW5k
IGJhc2UgaWZpbmRleCBmb3IgYSBWTUFDIGludGVyZmFjZSB3YXM8YnI+DQrCoMKgwqDCoMKgwqDC
oMKgwqAgbG9zdC4gKEpvbmFzIEpvaGFuc3Nvbik8YnI+wqDCoMKgwqDCoMKgwqAgKiB2cnJwIDog
UmV2ZXJ0ICZxdW90O0hvbm9yIHByZWVtcHRfZGVsYXkgc2V0dGluZyBvbiBzdGFydHVwLiZxdW90
Oy48YnI+wqDCoMKgwqDCoMKgwqDCoMKgIFRoaXMgY29tbWl0IHJlc3VsdGVkIGluIHR3byBpbmRp
dmlkdWFsIGJ1Z3M6PGJyPjxicj7CoMKgwqDCoMKgwqDCoMKgwqAgMSkgQSBrZWVwYWxpdmVkIGlu
c3RhbmNlIGNvbWluZyBvbi1saW5lIHdvdWxkIG5vdCB0cmFuc2l0aW9uIHRvPGJyPg0KwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgIE1BU1RFUiBzdGF0ZSB1bnRpbCB0aGUgcHJlZW1wdF9kZWxheSBk
dXJhdGlvbiBoYWQgcGFzc2VkLCBldmVuPGJyPsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB0aG91
Z2ggdGhlcmUgd2FzIG5vIGFscmVhZHkgZXhpc3RpbmcgVlJSUCBzcGVha2VyIGluIE1BU1RFUjxi
cj7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3RhdGUgb24gdGhlIGxpbmsuIEluIG90aGVyIHdv
cmRzLCBpdCBjaGFuZ2VkIHRoZSBzZW1hbnRpY3Mgb2Y8YnI+DQrCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqAgcHJlZW1wdF9kZWxheSBmcm9tIGEgZGVsYXkgdGhhdCBvbmx5IHRvb2sgcGxhY2UgYmVm
b3JlPGJyPsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAqcHJlZW1wdGlvbiogb2YgYW5vdGhlciBW
UlJQIHNwZWFrZXIsIHRvIGEgZGVsYXkgdGhhdDxicj7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg
dW5jb25kaXRpb25hbGx5IHRvb2sgcGxhY2UgYWZ0ZXIgS2VlcGFsaXZlZCBjYW1lIG9ubGluZS4g
VGhlPGJyPsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBrZWVwYWxpdmVkLmNvbmYgbWFudWFsIHBh
Z2UgaGFzIGFsd2F5cyBkb2N1bWVudGVkIHRoZSBmb3JtZXI8YnI+DQrCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqAgbWVhbmluZywgd2hpY2ggaXMgYWxzbyBJTUhPIHRoZSBvbmx5IG9uZSB0aGF0IHlv
dSB3b3VsZDxicj7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaW50dWl0aXZlbHkgZXhwZWN0Ljxi
cj48YnI+wqDCoMKgwqDCoMKgwqDCoMKgIDIpIFRoZSBwcmVlbXB0X2RlbGF5IHdhcyBhcHBsaWVk
IHdoZW4gYSBLZWVwYWxpdmVkIHByb2Nlc3Mgd2FzPGJyPsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oCByZWxvYWRpbmcgaXRzIGNvbmZpZ3VyYXRpb24gZm9sbG93aW5nIHRoZSByZWNpcHQgb2YgU0lH
SFVQLjxicj4NCsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBJZiB0aGUgS2VlcGFsaXZlZCBpbnN0
YW5jZSB3YXMgaW4gTUFTVEVSIHN0YXRlIGJlZm9yZSB0aGU8YnI+wqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgIHJlbG9hZCwgaXQgd291bGQgY2Vhc2UgdHJhbnNtaXR0aW5nIFZSUlAgaGVsbG9zIGZv
ciB0aGU8YnI+wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGR1cmF0aW9uIG9mIHByZWVtcHRfZGVs
YXksIGJ1dCAqbm90KiBhY3R1YWxseSByZW1vdmUgdGhlPGJyPsKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoCB2aXJ0dWFsIGFkZHJlc3NlcyBmcm9tIHRoZSBuZXR3b3JrIGludGVyZmFjZXMuIFRoaXMg
aW4gdHVybjxicj4NCsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXN1bHRlZCBpbiBhbnkgYmFj
a3VwIFZSUlAgc3BlYWtlcnMgb24gdGhlIGxpbmtzIHRyYW5zaXRpb248YnI+wqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgIHRvIHRoZSBNQVNURVIgc3RhdGUgd2hpbGUgcHJlZW1wdF9kZWxheSB3YXMg
c3RpbGwgaW4gZWZmZWN0PGJyPsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBvbiB0aGUgb3JpZ2lu
YWwgTUFTVEVSIHRoYXQgd2FzIHJlbG9hZGVkLCB0aHVzIGNyZWF0aW5nIGE8YnI+DQrCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqAgc2VydmljZS1pbXBhY3Rpbmcgc3BsaXQtYnJhaW4gc2NlbmFyaW8g
d2hlcmUgdGhlIHZpcnR1YWw8YnI+wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGFkZHJlc3NlcyBh
cmUgcHJlc2VudCBhbmQgYWN0aXZlIG9uIG11bHRpcGxlIFZSUlAgc3BlYWtlcnM8YnI+wqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgIHNpbXVsdGFuZW91c2x5Ljxicj48YnI+wqDCoMKgwqDCoMKgwqDC
oMKgIChUb3JlIEFuZGVyc29uKTxicj7CoMKgwqDCoMKgwqDCoCAqIHZycnAgOiBmaXggaXBfYWRk
cmVzcyBjb21wYXJpc29uLiBFeHRlbmQgSVBfSVNFUSgpIG1hY3JvIHRvPGJyPg0KwqDCoMKgwqDC
oMKgwqDCoMKgIHRha2UgY2FyZSBvZiBOVUxMIGFkZHJlc3Nlcy4gVGhpcyBpc3N1ZSBlbmQgb24g
U0VHViB3aGlsZTxicj7CoMKgwqDCoMKgwqDCoMKgwqAgdXNpbmcgdmlydHVhbF9yb3V0ZS4gdGhh
bmtzIHRvIFRvcmUgQW5kZXJzb24gZm9yIHJlcG9ydGluZy48YnI+wqDCoMKgwqDCoMKgwqAgKiB2
cnJwIDogZml4IGRvdWJsZSBjbG9zZSBpc3N1ZSAoRFJPUF9NRU1CRVJTSElQICZhbXA7IG5ldGxp
bms8YnI+wqDCoMKgwqDCoMKgwqDCoMKgIGNoYW5uZWwpLiBUaGlzIGlzIGEgb2xkIHBlbmRpbmcg
JiMzOTtidWcmIzM5Oywgbm90IGFybWluZyBhdCBhbGw8YnI+DQrCoMKgwqDCoMKgwqDCoMKgwqAg
YnV0IGp1c3QgZnJ1c3RyYXRpbmcgdG8gc2VlIGFnYWluIGFuZCBhZ2FpbiB0aGlzIGxvZyBtZXNz
YWdlIDo8YnI+PGJyPsKgwqDCoMKgwqDCoMKgwqDCoCAmcXVvdDtjYW50IGRvIElQX0RST1BfTUVN
QkVSU0hJUCBlcnJubz1CYWQgZmlsZSBkZXNjcmlwdG9yICg5KSZxdW90Ozxicj48YnI+wqDCoMKg
wqDCoMKgwqDCoMKgIFdoYXQgdGhlIGhlbGwgISBpdCB3YXMgZHVlIHRvIGEgZG91YmxlIGNsb3Nl
IGR1cmluZyByZWxvYWQgJmFtcDs8YnI+DQrCoMKgwqDCoMKgwqDCoMKgwqAgc3RvcCBwcm9jZWR1
cmUuIFZSUlAgZmQgYXJlIHN0b3JlZCBpbiBhIHNvY2tldCBwb29sIGFuZCB1c2U8YnI+wqDCoMKg
wqDCoMKgwqDCoMKgIHRoZSBJL08gTVVYIHRvIGhhbmRsZSBWUlJQIHRyYWZmaWMuIFdoaWxlIHJl
bG9hZGluZyBvciBzdG9wcGluZzxicj7CoMKgwqDCoMKgwqDCoMKgwqAgdGhlIGRhZW1vbiB0aGUg
SS9PIE1VWCB3YXMgcmVsZWFzZWQgZmlyc3QgYW5kIHNlY29uZGx5IHNvY2tldDxicj4NCsKgwqDC
oMKgwqDCoMKgwqDCoCBwb29sLsKgIFRoZSBpc3N1ZSBzcG90dGVkIGhlcmUsIGluIHRocmVhZF9k
ZXN0cm95X21hc3RlcigpIGFsbDxicj7CoMKgwqDCoMKgwqDCoMKgwqAgcGVuZGluZyB0aHJlYWQg
YXJlIGNhbmNlbGVkIGFuZCByZWFkL3dyaXRlIGZkcyByZWxhdGVkIGFyZTxicj7CoMKgwqDCoMKg
wqDCoMKgwqAgY2xvc2UoKS4gV2VsbCBPSyBhIGNsb3NlIG9uIGEgbWNhc3Qgc29ja2V0IHBlcmZv
cm0ga2VybmVsIHNpZGU8YnI+DQrCoMKgwqDCoMKgwqDCoMKgwqAgdGhlIERST1BfTUVNQkVSU0hJ
UCB3aGVuIG5lZWRlZCwgYnV0IGl0IGlzIG11Y2ggbW9yZSBjbGVhbiB0bzxicj7CoMKgwqDCoMKg
wqDCoMKgwqAgcGVyZm9ybSBwcm9wZXIgb3BlcmF0aW9ucyB1c2Vyc3BhY2UgISBUaGlzIHBhdGNo
IHNlcXVlbmNlbHk8YnI+wqDCoMKgwqDCoMKgwqDCoMKgIGNhbmNlbCBwZW5kaW5nIHRocmVhZCwg
cmVsZWFzZSBzb2NrZXQgcG9vbCBhbmQgZmluYWxseTxicj7CoMKgwqDCoMKgwqDCoMKgwqAgZGVz
dHJveSBtYXN0ZXIgdGhyZWFkLiBTYW1lICYjMzk7aXNzdWUmIzM5OyBhcHBlYXIgaW4gbmV0bGlu
ayBjaGFubmVsLjxicj4NCjxicj48YnI+PC9kaXY+RW5qb3ksPGJyPjwvZGl2PkFsZXhhbmRyZTxi
cj48L2Rpdj4NCg==
--001a113a6be4ecc6f904f94850bc--


--===============8231880176352396449==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

------------------------------------------------------------------------------
"Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE
Instantly run your Selenium tests across 300+ browser/OS combos.
Get unparalleled scalability from the best Selenium testing platform available
Simple to use. Nothing to install. Get started now for free."
http://p.sf.net/sfu/SauceLabs
--===============8231880176352396449==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Keepalived-announce mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/keepalived-announce

--===============8231880176352396449==--