--- googlecode.com/svn/trunk/Meteor/Subscriber.pm 2007/12/20 21:41:25 34 +++ googlecode.com/svn/trunk/Meteor/Subscriber.pm 2008/01/25 17:12:02 35 @@ -89,7 +89,7 @@ my $msg=$::CONF{'PingMessage'}; my @cons=values %PersistentConnections; - map { $_->write($msg) } @cons; + map { $_->write($msg.chr(0)) } @cons; } sub checkPersistentConnectionsForMaxTime { @@ -152,17 +152,15 @@ my $channels={}; my $channelName; my $offset; - foreach my $chandef (@channelData) - { - if($chandef=~/^([a-z0-9]+)(.(r|b|h)([0-9]*))?$/) - { + foreach my $chandef (@channelData) { + if($chandef=~/^([a-z0-9]+)(.(r|b|h)([0-9]*))?$/i) { $channelName = $1; $channels->{$channelName}->{'startIndex'} = undef; - for ($3) { - $offset = $4; - /r/ && do { $channels->{$channelName}->{'startIndex'} = $offset; last; }; - /b/ && do { $channels->{$channelName}->{'startIndex'} = -$offset; last; }; - /h/ && do { $channels->{$channelName}->{'startIndex'} = 0; last; }; + if ($3) { + $offset = $4; + if ($3 eq 'r') { $channels->{$channelName}->{'startIndex'} = $offset; } + if ($3 eq 'b') { $channels->{$channelName}->{'startIndex'} = -$offset; } + if ($3 eq 'h') { $channels->{$channelName}->{'startIndex'} = 0; } } } } @@ -274,7 +272,7 @@ } /gex; - $self->write($header); + $self->write($header.chr(0)); } sub sendMessage { @@ -284,7 +282,7 @@ $numMsgInThisBatch=1 unless(defined($numMsgInThisBatch)); - $self->write($msg); + $self->write($msg.chr(0)); $::Statistics->{'messages_served'}+=$numMsgInThisBatch;