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

Comparing AnyEvent-MP/MP/Transport.pm (file contents):
Revision 1.22 by root, Wed Aug 5 19:55:58 2009 UTC vs.
Revision 1.23 by root, Wed Aug 5 22:40:51 2009 UTC

163 $greeting_kv->{"tls"} = "1.0" 163 $greeting_kv->{"tls"} = "1.0"
164 if $arg{tls_ctx}; 164 if $arg{tls_ctx};
165 $greeting_kv->{provider} = "AE-$VERSION"; 165 $greeting_kv->{provider} = "AE-$VERSION";
166 $greeting_kv->{peeraddr} = AnyEvent::Socket::format_hostport $self->{peerhost}, $self->{peerport}; 166 $greeting_kv->{peeraddr} = AnyEvent::Socket::format_hostport $self->{peerhost}, $self->{peerport};
167 167
168 $self->{local_node} = $AnyEvent::MP::Base::NODE;
169
168 # send greeting 170 # send greeting
169 my $lgreeting1 = "aemp;$PROTOCOL_VERSION" 171 my $lgreeting1 = "aemp;$PROTOCOL_VERSION"
170 . ";$AnyEvent::MP::Base::UNIQ" 172 . ";$AnyEvent::MP::Base::UNIQ"
171 . ";$AnyEvent::MP::Base::NODE" 173 . ";$AnyEvent::MP::Base::NODE"
172 . ";" . (join ",", @AUTH_RCV) 174 . ";" . (join ",", @AUTH_RCV)
267 269
268 $self->connected; 270 $self->connected;
269 271
270 my $src_node = $self->{node}; 272 my $src_node = $self->{node};
271 273
272 $hdl->push_write ($self->{s_framing} => $_) 274 $self->send ($_)
273 for @$queue; 275 for @$queue;
274 276
275 my $rmsg; $rmsg = sub { 277 my $rmsg; $rmsg = sub {
276 $_[0]->push_read ($r_framing => $rmsg); 278 $_[0]->push_read ($r_framing => $rmsg);
277 279
300} 302}
301 303
302sub connected { 304sub connected {
303 my ($self) = @_; 305 my ($self) = @_;
304 306
307 if (ref $AnyEvent::MP::Base::SLAVE) {
308 # first connect with a master node
309 $AnyEvent::MP::Base::NODE .= "\@$self->{remote_node}";
310 $AnyEvent::MP::Base::NODE{$AnyEvent::MP::Base::NODE} = $AnyEvent::MP::Base::NODE{""};
311 $AnyEvent::MP::Base::SLAVE->();
312 }
313
314 if ($self->{local_node} ne $AnyEvent::MP::Base::NODE) {
315 # node changed its name since first greeting
316 $self->send (["", iam => $AnyEvent::MP::Base::NODE]);
317 }
318
305 my $node = AnyEvent::MP::Base::add_node ($self->{remote_node}); 319 my $node = AnyEvent::MP::Base::add_node ($self->{remote_node});
306 Scalar::Util::weaken ($self->{node} = $node); 320 Scalar::Util::weaken ($self->{node} = $node);
307 $node->set_transport ($self); 321 $node->set_transport ($self);
308} 322}
309 323

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines