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

Comparing cvsroot/AnyEvent-MP/MP/Transport.pm (file contents):
Revision 1.52 by root, Tue Sep 8 01:38:16 2009 UTC vs.
Revision 1.53 by root, Tue Sep 8 01:54:13 2009 UTC

183 $self->{hdl}->push_read (line => sub { 183 $self->{hdl}->push_read (line => sub {
184 my $rgreeting1 = $_[1]; 184 my $rgreeting1 = $_[1];
185 185
186 my ($aemp, $version, $rnode, $auths, $framings, @kv) = split /;/, $rgreeting1; 186 my ($aemp, $version, $rnode, $auths, $framings, @kv) = split /;/, $rgreeting1;
187 187
188 $self->{remote_node} = $rnode;
189
190 $self->{remote_greeting} = {
191 map /^([^=]+)(?:=(.*))?/ ? ($1 => $2) : (),
192 @kv
193 };
194
188 if ($aemp ne "aemp") { 195 if ($aemp ne "aemp") {
189 return $self->error ("unparsable greeting"); 196 return $self->error ("unparsable greeting");
190 } elsif ($version != $PROTOCOL_VERSION) { 197 } elsif ($version != $PROTOCOL_VERSION) {
191 return $self->error ("version mismatch (we: $PROTOCOL_VERSION, they: $version)"); 198 return $self->error ("version mismatch (we: $PROTOCOL_VERSION, they: $version)");
192 } elsif ($rnode eq $self->{local_node}) { 199 } elsif ($rnode eq $AnyEvent::MP::Kernel::NODE) {
193 AnyEvent::MP::Global::avoid_seed ($self->{seed})
194 if exists $self->{seed};
195
196 return $self->error ("I refuse to talk to myself"); 200 return $self->error ("I refuse to talk to myself");
197 } elsif ($AnyEvent::MP::Kernel::NODE{$rnode} && $AnyEvent::MP::Kernel::NODE{$rnode}{transport}) { 201 } elsif ($AnyEvent::MP::Kernel::NODE{$rnode} && $AnyEvent::MP::Kernel::NODE{$rnode}{transport}) {
198 return $self->error ("$rnode already connected, not connecting again."); 202 return $self->error ("$rnode already connected, not connecting again.");
199 } 203 }
200
201 $self->{remote_node} = $rnode;
202
203 $self->{remote_greeting} = {
204 map /^([^=]+)(?:=(.*))?/ ? ($1 => $2) : (),
205 @kv
206 };
207 204
208 # read nonce 205 # read nonce
209 $self->{hdl}->push_read (line => sub { 206 $self->{hdl}->push_read (line => sub {
210 my $rgreeting2 = $_[1]; 207 my $rgreeting2 = $_[1];
211 208

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines