Project

General

Profile

Actions

Misc #19899

closed

Ruby3.3.0-preview2: Behaviour changes of Socket.recv when the sever closes the connection

Added by jbeschi (jacopo beschi) 8 months ago. Updated 7 months ago.

Status:
Closed
Assignee:
-
[ruby-core:114882]

Description

I noticed that Socket#recv now returns nil instead of "" when the server closes the connection, is it expected? If yes, I suggest mentioning it to the release page.

Example:

# server.rb
require "socket"

port = 3030
server = TCPServer.new("", port)

while(conn = server.accept) #serves forever
  conn.print "hello"
  conn.close
end

# client.rb
require 'socket'

port = 3030
socket = TCPSocket.new("localhost", port)

2.times do
  res = socket.recv(1012)
  puts "received:"
  p res
end
socket.close
jacopo-37s-mb 3.2.0 ~ ruby client.rb
received:
"hello"
received:
""
jacopo-37s-mb 3.2.0 ~ rbenv local 3.3.0-preview2
jacopo-37s-mb 3.3.0-preview2 ~ ruby client.rb
received:
"hello"
received:
nil

Thanks!

Actions #1

Updated by jbeschi (jacopo beschi) 8 months ago

  • Subject changed from Ruby3.3.-preview2: Behaviour changes of Socket.recv when the sever closes the connection to Ruby3.3.0-preview2: Behaviour changes of Socket.recv when the sever closes the connection

Updated by alanwu (Alan Wu) 7 months ago

Looks to be an intentional change from [Bug #19012].
CC @byroot (Jean Boussier)

Updated by byroot (Jean Boussier) 7 months ago

It is intentional yes. I'll add it to NEWS.md.

Updated by alanwu (Alan Wu) 7 months ago

  • Status changed from Open to Closed

NEWS entry added in 2e4e4c82c28. Thanks for the report!

Actions

Also available in: Atom PDF

Like0
Like0Like0Like1Like1