ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/AnyEvent-FCP/FCP.pm
(Generate patch)

Comparing AnyEvent-FCP/FCP.pm (file contents):
Revision 1.18 by root, Thu Dec 3 19:07:57 2015 UTC vs.
Revision 1.19 by root, Tue Jun 7 18:53:23 2016 UTC

135 # we only carve out whole messages here 135 # we only carve out whole messages here
136 while ($hdl->{rbuf} =~ /\012(EndMessage|Data)\012/) { 136 while ($hdl->{rbuf} =~ /\012(EndMessage|Data)\012/) {
137 # remember end marker 137 # remember end marker
138 $rdata = $1 eq "Data" 138 $rdata = $1 eq "Data"
139 or $1 eq "EndMessage" 139 or $1 eq "EndMessage"
140 or die "protocol error, expected message end, got $1\n"; 140 or return $self->fatal ("protocol error, expected message end, got $1\n");
141 141
142 my @lines = split /\012/, substr $hdl->{rbuf}, 0, $-[0]; 142 my @lines = split /\012/, substr $hdl->{rbuf}, 0, $-[0];
143 143
144 substr $hdl->{rbuf}, 0, $+[0], ""; # remove pkg 144 substr $hdl->{rbuf}, 0, $+[0], ""; # remove pkg
145 145
189 }; 189 };
190 190
191 $self->{hdl} = new AnyEvent::Handle 191 $self->{hdl} = new AnyEvent::Handle
192 connect => [$self->{host} => $self->{port}], 192 connect => [$self->{host} => $self->{port}],
193 timeout => $self->{timeout}, 193 timeout => $self->{timeout},
194 on_read => $on_read,
195 on_eof => $self->{on_eof},
194 on_error => sub { 196 on_error => sub {
195 warn "$self->{host}: $_[2]\n";#d# 197 $self->fatal ($_[2]);
196 exit 1;
197 }, 198 },
198 on_read => $on_read,
199 on_eof => $self->{on_eof} || sub { },
200 ; 199 ;
201 200
202 Scalar::Util::weaken ($self->{hdl}{fcp} = $self); 201 Scalar::Util::weaken ($self->{hdl}{fcp} = $self);
203 } 202 }
204 203
206 name => $self->{name}, 205 name => $self->{name},
207 expected_version => "2.0", 206 expected_version => "2.0",
208 ); 207 );
209 208
210 $self 209 $self
210}
211
212sub fatal {
213 my ($self, $msg) = @_;
214
215 $self->{hdl}->shutdown;
216 delete $self->{kw};
217
218 if ($self->{on_error}) {
219 $self->{on_error}->($msg);
220 } else {
221 die $msg;
222 }
211} 223}
212 224
213sub identifier { 225sub identifier {
214 $_[0]{prefix} . ++$_[0]{idseq} 226 $_[0]{prefix} . ++$_[0]{idseq}
215} 227}

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines