celluloid / celluloid-io

UNMAINTAINED: See celluloid/celluloid#779 - Evented sockets for Celluloid actors
https://celluloid.io
MIT License
879 stars 93 forks source link

Missing #getsockname on TCPSockets #103

Closed HoneyryderChuck closed 10 years ago

HoneyryderChuck commented 10 years ago

I'm using celluloid 0.15.0 and net-scp with net-ssh (v2.7.0). When I try to start an SCP connection i get the following stacktrace:

        NameError: undefined local variable or method `getsockname' for #<Celluloid::IO::TCPSocket:0x0000000451dd68>
        /srv/www/rails/viktor/shared/bundle/ruby/1.9.1/gems/net-ssh-2.7.0/lib/net/ssh/transport/packet_stream.rb:41:in `client_name'
        /srv/www/rails/viktor/shared/bundle/ruby/1.9.1/gems/net-ssh-2.7.0/lib/net/ssh/authentication/methods/hostbased.rb:29:in `hostname'
        /srv/www/rails/viktor/shared/bundle/ruby/1.9.1/gems/net-ssh-2.7.0/lib/net/ssh/authentication/methods/hostbased.rb:38:in `authenticate_with'
        /srv/www/rails/viktor/shared/bundle/ruby/1.9.1/gems/net-ssh-2.7.0/lib/net/ssh/authentication/methods/hostbased.rb:18:in `block in authenticate'
        /srv/www/rails/viktor/shared/bundle/ruby/1.9.1/gems/net-ssh-2.7.0/lib/net/ssh/authentication/key_manager.rb:121:in `block in each_identity'
        /srv/www/rails/viktor/shared/bundle/ruby/1.9.1/gems/net-ssh-2.7.0/lib/net/ssh/authentication/key_manager.rb:118:in `each'
        /srv/www/rails/viktor/shared/bundle/ruby/1.9.1/gems/net-ssh-2.7.0/lib/net/ssh/authentication/key_manager.rb:118:in `each_identity'
        /srv/www/rails/viktor/shared/bundle/ruby/1.9.1/gems/net-ssh-2.7.0/lib/net/ssh/authentication/methods/hostbased.rb:17:in `authenticate'
        /srv/www/rails/viktor/shared/bundle/ruby/1.9.1/gems/net-ssh-2.7.0/lib/net/ssh/authentication/session.rb:78:in `block in authenticate'
        /srv/www/rails/viktor/shared/bundle/ruby/1.9.1/gems/net-ssh-2.7.0/lib/net/ssh/authentication/session.rb:65:in `each'
        /srv/www/rails/viktor/shared/bundle/ruby/1.9.1/gems/net-ssh-2.7.0/lib/net/ssh/authentication/session.rb:65:in `authenticate'
        /srv/www/rails/viktor/shared/bundle/ruby/1.9.1/gems/net-ssh-2.7.0/lib/net/ssh.rb:204:in `start'
        /srv/www/rails/viktor/shared/bundle/ruby/1.9.1/gems/net-scp-1.1.2/lib/net/scp.rb:197:in `start'

Apparently what is missing is this method in the Cell IO sockets:

http://ruby-doc.org/stdlib-1.9.3/libdoc/socket/rdoc/BasicSocket.html#method-i-getsockname

tarcieri commented 10 years ago

This should be fixed in b90c3a6