Send Linux-ha-cvs mailing list submissions to
        linux-ha-cvs@lists.linux-ha.org

To subscribe or unsubscribe via the World Wide Web, visit
        http://lists.community.tummy.com/mailman/listinfo/linux-ha-cvs
or, via email, send a message with subject or body 'help' to
        [EMAIL PROTECTED]

You can reach the person managing the list at
        [EMAIL PROTECTED]

When replying, please edit your Subject line so it is more specific
than "Re: Contents of Linux-ha-cvs digest..."


Today's Topics:

   1. Linux-HA CVS: debian by horms from 
      (linux-ha-cvs@lists.linux-ha.org)
   2. Linux-HA CVS: debian by horms from 
      (linux-ha-cvs@lists.linux-ha.org)
   3. Linux-HA CVS: ldirectord by horms from 
      (linux-ha-cvs@lists.linux-ha.org)
   4. Linux-HA CVS: ldirectord by horms from 
      (linux-ha-cvs@lists.linux-ha.org)


----------------------------------------------------------------------

Message: 1
Date: Tue, 15 Aug 2006 01:52:36 -0600 (MDT)
From: linux-ha-cvs@lists.linux-ha.org
Subject: [Linux-ha-cvs] Linux-HA CVS: debian by horms from 
To: [EMAIL PROTECTED]
Message-ID: <[EMAIL PROTECTED]>

linux-ha CVS committal

Author  : horms
Host    : 
Project : linux-ha
Module  : debian

Dir     : linux-ha/debian


Modified Files:
        changelog 


Log Message:
debian: changelog for 2.0.7-1 (released)
===================================================================
RCS file: /home/cvs/linux-ha/linux-ha/debian/changelog,v
retrieving revision 1.70
retrieving revision 1.71
diff -u -3 -r1.70 -r1.71
--- changelog   15 Aug 2006 07:52:13 -0000      1.70
+++ changelog   15 Aug 2006 07:52:35 -0000      1.71
@@ -1,3 +1,13 @@
+heartbeat-2 (2.0.7-1) unstable; urgency=low
+
+  * New Upstream
+  * Dropped the following patches as they are now upstream
+    - ldirectord-1.141-emailalert-1-quiet.patch  (introduced in 2.0.6-2)
+    - ldirectord-1.141-readline_workaround.patch (introduced in 2.0.6-2)
+    - CVE-2006-3821.patch                        (introduced in 2.0.6-2)
+
+ -- Simon Horman <[EMAIL PROTECTED]>  Mon, 14 Aug 2006 19:00:13 +0900
+
 heartbeat-2 (2.0.6-2) unstable; urgency=high
 
   * ldirectord-1.141-emailalert-1-quiet.patch




------------------------------

Message: 2
Date: Tue, 15 Aug 2006 01:53:09 -0600 (MDT)
From: linux-ha-cvs@lists.linux-ha.org
Subject: [Linux-ha-cvs] Linux-HA CVS: debian by horms from 
To: [EMAIL PROTECTED]
Message-ID: <[EMAIL PROTECTED]>

linux-ha CVS committal

Author  : horms
Host    : 
Project : linux-ha
Module  : debian

Dir     : linux-ha/debian


Modified Files:
        changelog 


Log Message:
debian: changelog for 2.0.8-1 (unreleased)
===================================================================
RCS file: /home/cvs/linux-ha/linux-ha/debian/changelog,v
retrieving revision 1.71
retrieving revision 1.72
diff -u -3 -r1.71 -r1.72
--- changelog   15 Aug 2006 07:52:35 -0000      1.71
+++ changelog   15 Aug 2006 07:53:08 -0000      1.72
@@ -1,3 +1,13 @@
+heartbeat-2 (2.0.8-1) unstable; urgency=low
+
+  * New Upstream
+  * errata: CVE-2006-3121 was incorrectly refered to as CVE-2006-3821 in
+    the changelog for 2.0.6-2 and 2.0.7-1
+  * Dropped the following patches as they are now upstream
+    - ldirectord-1.141-emailalert-2-global.patch (introduced in 2.0.6-2)
+
+ -- Simon Horman <[EMAIL PROTECTED]>  Mon, 14 Aug 2006 19:09:23 +0900
+
 heartbeat-2 (2.0.7-1) unstable; urgency=low
 
   * New Upstream




------------------------------

Message: 3
Date: Tue, 15 Aug 2006 01:58:20 -0600 (MDT)
From: linux-ha-cvs@lists.linux-ha.org
Subject: [Linux-ha-cvs] Linux-HA CVS: ldirectord by horms from 
To: [EMAIL PROTECTED]
Message-ID: <[EMAIL PROTECTED]>

linux-ha CVS committal

Author  : horms
Host    : 
Project : linux-ha
Module  : ldirectord

Dir     : linux-ha/ldirectord


Modified Files:
      Tag: STABLE_1_2
        ldirectord 


Log Message:
Don't send email alerts if emailalert is not set

The existing code always tries to send alerts, which is silly at best.
This patch also cleans up the email handling code a bit to isolate
the logic if to send or not.

Backport of 1.142

Signed-off-by: Simon Horman <[EMAIL PROTECTED]>

===================================================================
RCS file: /home/cvs/linux-ha/linux-ha/ldirectord/Attic/ldirectord,v
retrieving revision 1.77.2.51
retrieving revision 1.77.2.52
diff -u -3 -r1.77.2.51 -r1.77.2.52
--- ldirectord  6 Jul 2006 04:52:09 -0000       1.77.2.51
+++ ldirectord  15 Aug 2006 07:58:20 -0000      1.77.2.52
@@ -1,5 +1,5 @@
 #!/usr/bin/perl
-my($VERSION)=(qw$Id: ldirectord,v 1.77.2.51 2006/07/06 04:52:09 horms Exp 
$)[2];
+my($VERSION)=(qw$Id: ldirectord,v 1.77.2.52 2006/08/15 07:58:20 horms Exp 
$)[2];
 
 ######################################################################
 # ldirectord                 http://www.vergenet.net/linux/ldirectord/
@@ -1789,13 +1789,7 @@
                        sleep $CHECKINTERVAL;
                }
                        
-               my $currenttime=time();
-               foreach my $es (@EMAILSTATUS){
-                       if (($es->{alerttime} > 0 ) && ($currenttime - 
$es->{alerttime} >= $es->{emailalertfreq})){
-                               &ld_emailalert("Inaccessible real server: 
$es->{server}", $es->{emailalert});
-                               &ld_set_email_status($es->{server}, 
$currenttime);
-                       }
-               }
+               ld_emailalert_resend();
        }
 }
 
@@ -2594,18 +2588,14 @@
                                        . "$ipvsadm_args $rforw -w 0");
                        &ld_log("Quiescent $log_args (Weight set to 0)");
                }
-               if(defined($$v{emailalert})) {
-                       &ld_emailalert("Quiescent $log_args (Weight set to 
0)",$$v{emailalert});
-                       &ld_set_email_status($currentserver, $currenttime);
-               }
+               &ld_emailalert("Quiescent $log_args (Weight set to 0)",
+                              $$v{emailalert}, $currentserver, $currenttime);
         }
        else {
                 &system_wrapper("$IPVSADM -d $ipvsadm_args");
                &ld_log("Deleted $log_args");
-               if(defined($$v{emailalert})) {
-                       &ld_emailalert("Deleted $log_args",$$v{emailalert});
-                       &ld_set_email_status($currentserver, $currenttime);
-               }
+               &ld_emailalert("Deleted $log_args",$$v{emailalert},
+                              $currentserver, $currenttime);
        }
 }
 
@@ -2659,19 +2649,16 @@
                        get_forward_flag($or->{"forward"}) eq $rforw){
                         &system_wrapper("$IPVSADM -e $ipvsadm_args");
                        &ld_log("Restored $log_args (Weight set to $rwght)");
-                       if(defined($$v{emailalert})) { 
-                               &ld_emailalert("Restored $log_args (Weight set 
to $rwght)",$$v{emailalert});
-                               &ld_set_email_status($currentserver, "0");
-                       }
+                       &ld_emailalert("Restored $log_args " .
+                                      "(Weight set to $rwght)",
+                                      $$v{emailalert}, $currentserver, 0);
                 }
         }
         else {
                 &system_wrapper("$IPVSADM -a $ipvsadm_args");
                &ld_log("Added $log_args (Weight set to $rwght)");
-               if(defined($$v{emailalert})) {
-                       &ld_emailalert("Added $log_args (Weight set to 
$rwght)",$$v{emailalert});
-                       &ld_set_email_status($currentserver, "0");
-               }
+               &ld_emailalert("Added $log_args (Weight set to $rwght)",
+                              $$v{emailalert}, $currentserver, 0);
         }
 }
 
@@ -2998,19 +2985,46 @@
 #         1 on error
 sub ld_emailalert
 {
-       my ($emailsubject,$emailto) = (@_);
-       require Mail::Send;
+       my ($emailsubject, $emailto, $currentserver, $currenttime) = (@_);
        my $emailmsg;
        my $emailfh;
-                      
+       my $status = 0;
+
+       if ($emailto eq "") {
+               return 0;
+       }
+
+       use Mail::Send;
+
        unless ($emailmsg = new Mail::Send Subject=>$emailsubject, To=>$emailto
                        and $emailfh = $emailmsg->open
                        and print $emailfh ""
                        and $emailfh->close) {
                &ld_log("failed to send email message\n");
-               return 1;
+               $status = 1;
+       }
+
+       &ld_set_email_status($currentserver, $currenttime);
+
+       return($status);
+}
+
+# ld_emailalert_resend
+# Resend email alerts as neccessary
+# pre: none
+# post: EMAILSTATUS array is updated and alears are sent as neccessary
+# return: none
+sub ld_emailalert_resend
+{
+       my $currenttime=time();
+       foreach my $es (@EMAILSTATUS){
+               if ($es->{alerttime} == 0 or
+                   $currenttime - $es->{alerttime} < $es->{emailalertfreq}){
+                       next;
+               }
+               &ld_emailalert("Inaccessible real server: " . $es->{server}, 
+                              $es->{emailalert}, $es->{server}, $currenttime);
        }
-       return(0);
 }
 
 # ld_set_email_status




------------------------------

Message: 4
Date: Tue, 15 Aug 2006 01:59:41 -0600 (MDT)
From: linux-ha-cvs@lists.linux-ha.org
Subject: [Linux-ha-cvs] Linux-HA CVS: ldirectord by horms from 
To: [EMAIL PROTECTED]
Message-ID: <[EMAIL PROTECTED]>

linux-ha CVS committal

Author  : horms
Host    : 
Project : linux-ha
Module  : ldirectord

Dir     : linux-ha/ldirectord


Modified Files:
      Tag: STABLE_1_2
        ldirectord 


Log Message:
realine wrapper that really returns lines

Net::FTP seems to set the input record separator ($\) to null
putting IO into slurp (whole file at a time, rather than line at a time)
mode. Net::FTP does this using local $\, which should mean
that the change doesn' effect code here, but it does. It also
seems to be imposible to turn it off, by say setting $\ back to '\n'
Perhaps there is more to this than meets the eye. Perhaps its a perl bug.
In any case, this should fix the problem.

This should not affect pid or config file parsing as they are called
before Net::FTP and as this appears to be a bit of a work around,
I'd rather use it in as few places as possible

Observed with perl v5.8.8 (Debian's perl 5.8.8-6)

Backport of 1.143

Signed-off-by: Simon Horman <[EMAIL PROTECTED]>


===================================================================
RCS file: /home/cvs/linux-ha/linux-ha/ldirectord/Attic/ldirectord,v
retrieving revision 1.77.2.52
retrieving revision 1.77.2.53
diff -u -3 -r1.77.2.52 -r1.77.2.53
--- ldirectord  15 Aug 2006 07:58:20 -0000      1.77.2.52
+++ ldirectord  15 Aug 2006 07:59:41 -0000      1.77.2.53
@@ -1,5 +1,5 @@
 #!/usr/bin/perl
-my($VERSION)=(qw$Id: ldirectord,v 1.77.2.52 2006/08/15 07:58:20 horms Exp 
$)[2];
+my($VERSION)=(qw$Id: ldirectord,v 1.77.2.53 2006/08/15 07:59:41 horms Exp 
$)[2];
 
 ######################################################################
 # ldirectord                 http://www.vergenet.net/linux/ldirectord/
@@ -1496,6 +1496,44 @@
        }
 }
 
+# ld_read_ipvsadm
+#
+# Net::FTP seems to set the input record separator ($\) to null
+# putting IO into slurp (whole file at a time, rather than line at a time)
+# mode. Net::FTP does this using local $\, which should mean
+# that the change doesn' effect code here, but it does. It also
+# seems to be imposible to turn it off, by say setting $\ back to '\n'
+# Perhaps there is more to this than meets the eye. Perhaps its a perl bug.
+# In any case, this should fix the problem.
+#
+# This should not affect pid or config file parsing as they are called
+# before Net::FTP and as this appears to be a bit of a work around,
+# I'd rather use it in as few places as possible
+#
+# Observed with perl v5.8.8 (Debian's perl 5.8.8-6)
+# -- Horms, 17th July 2005
+sub ld_readline
+{
+       my ($fd, $buf) = (@_);
+       my $line;
+
+       # Uncomment the following line to turn off this work around
+       # return readline($fd);
+
+       $line = shift @$buf;
+       if (defined $line) {
+               return $line . "\n";
+       }
+
+       push @$buf, split /\n/, readline($fd);
+
+       $line = shift @$buf;
+       if (defined $line) {
+               return $line . "\n";
+       }
+
+       return undef;
+}
 
 # ld_read_ipvsadm
 # Parses the output of "ipvsadm -L -n" and puts into a structure of
@@ -1540,28 +1578,35 @@
        my %oldsrv;
        my $real_service;
        my $fwd;
+       my $buf = [];
+       my $fh;
+       my $line;
 
        # read status of current ipvsadm -L -n
-       unless(open(IPVS, "$IPVSADM -L -n |")){
+       unless(open($fh, "$IPVSADM -L -n 2>&1|")){
           &ld_exit(1, "Could not run $IPVSADM -L -n: $!");
         }
-       $_ = <IPVS>; $_ = <IPVS>; $_ = <IPVS>;
 
-       while (<IPVS>) {
-               if ($_ =~ 
/(\w+)\s+(\d+\.\d+\.\d+\.\d+\:\d+|\d+)\s+(\w+)\s+persistent\s+(\d+)\s+mask\s+(.*)/)
 {
+       # Skip the first three lines
+       $line = ld_readline($fh, $buf); 
+       $line = ld_readline($fh, $buf); 
+       $line = ld_readline($fh, $buf);
+
+       while ($line = ld_readline($fh, $buf)) {
+               if ($line =~ 
/(\w+)\s+(\d+\.\d+\.\d+\.\d+\:\d+|\d+)\s+(\w+)\s+persistent\s+(\d+)\s+mask\s+(.*)/)
 {
                        $real_service = "$2 ".lc($1);
                        $oldsrv{"$real_service"} = {"real"=>{}, 
"scheduler"=>$3, "persistent"=>$4, "netmask"=>$5};
-               } elsif ($_ =~ 
/(\w+)\s+(\d+\.\d+\.\d+\.\d+\:\d+|\d+)\s+(\w+)\s+persistent\s+(\d+)/) {
+               } elsif ($line =~ 
/(\w+)\s+(\d+\.\d+\.\d+\.\d+\:\d+|\d+)\s+(\w+)\s+persistent\s+(\d+)/) {
                        $real_service = "$2 ".lc($1);
                        $oldsrv{"$real_service"} = {"real"=>{}, 
"scheduler"=>$3, "persistent"=>$4};
-               } elsif ($_ =~ /(\w+)\s+(\d+\.\d+\.\d+\.\d+\:\d+|\d+)\s+(\w+)/) 
{
+               } elsif ($line =~ 
/(\w+)\s+(\d+\.\d+\.\d+\.\d+\:\d+|\d+)\s+(\w+)/) {
                        $real_service = "$2 ".lc($1);
                        $oldsrv{"$real_service"} = {"real"=>{}, 
"scheduler"=>$3};
                } else {
                        next;
                }
-               while(<IPVS>) {
-                       last unless $_ =~ / 
->\s+(\d+\.\d+\.\d+\.\d+\:\d+)\s+(\w+)\s+(\d+)/;
+               while ($line = ld_readline($fh, $buf)) {
+                       last unless $line =~ / 
->\s+(\d+\.\d+\.\d+\.\d+\:\d+)\s+(\w+)\s+(\d+)/;
                        if ($2 eq "Route") {
                                $fwd = "gate";
                        } elsif ($2 eq "Tunnel") {
@@ -1573,7 +1618,7 @@
                }
                redo;
        }
-       close(IPVS);
+       close($fh);
 
         return(\%oldsrv);
 }




------------------------------

_______________________________________________
Linux-ha-cvs mailing list
Linux-ha-cvs@lists.linux-ha.org
http://lists.community.tummy.com/mailman/listinfo/linux-ha-cvs


End of Linux-ha-cvs Digest, Vol 33, Issue 47
********************************************

Reply via email to