[MacRuby] #944: MacRuby should throw an IOError exception when calls Socket#listen #setsockopt with closed socket.

MacRuby ruby-noreply at macosforge.org
Fri Oct 8 06:48:02 PDT 2010


#944: MacRuby should throw an IOError exception when calls Socket#listen
#setsockopt with closed socket.
----------------------------------+-----------------------------------------
 Reporter:  watson1978@…          |       Owner:  lsansonetti@…        
     Type:  defect                |      Status:  new                  
 Priority:  minor                 |   Milestone:                       
Component:  MacRuby               |    Keywords:                       
----------------------------------+-----------------------------------------
 Test Script:
 {{{
 #!ruby
 require 'socket'

 p "** listen"
 sock = Socket.new(Socket::AF_INET, Socket::SOCK_STREAM, 0)
 sock.close
 begin
   sock.listen(5)
 rescue IOError => err
   p err
 end

 p "** setsockopt"
 sock = Socket.new(Socket::AF_INET, Socket::SOCK_STREAM, 0)
 sock.close
 linger = [0, 0].pack("ii")
 begin
   sock.setsockopt(Socket::SOL_SOCKET, Socket::SO_LINGER, linger)
 rescue IOError => err
   p err
 end
 }}}

 Result:
 {{{
 $ ruby -v test_socket.rb
 ruby 1.8.7 (2009-06-12 patchlevel 174) [universal-darwin10.0]
 "** listen"
 #<IOError: closed stream>
 "** setsockopt"
 #<IOError: closed stream>

 $ ruby19 -v test_socket.rb
 ruby 1.9.2p0 (2010-08-18 revision 29036) [x86_64-darwin10.4.0]
 "** listen"
 #<IOError: closed stream>
 "** setsockopt"
 #<IOError: closed stream>

 $ macruby -v test_socket.rb
 MacRuby 0.8 (ruby 1.9.2) [universal-darwin10.0, x86_64]
 "** listen"
 /Users/watson/tmp/test_socket.rb:12:in `<main>': Bad file descriptor -
 listen(2) (Errno::EBADF)
 }}}

-- 
Ticket URL: <http://www.macruby.org/trac/ticket/944>
MacRuby <http://macruby.org/>



More information about the macruby-tickets mailing list