vici: Handle closed sockets in the Ruby gem
authorEvan Broder <evan@stripe.com>
Sat, 22 Aug 2015 23:20:40 +0000 (19:20 -0400)
committerTobias Brunner <tobias@strongswan.org>
Mon, 24 Aug 2015 09:24:05 +0000 (11:24 +0200)
commit78ed3300997bca2a65406f74e6b044dc1698ed55
tree659f9a6760803fc691da8f2a5d46b62023e325b3
parentba3298fa8da4c5576d73ee2029a18ecf993d3d12
vici: Handle closed sockets in the Ruby gem

From recvfrom(2) (which UDPSocket#recv backs into):

  The return value will be 0 when the peer has performed an orderly
  shutdown.

(i.e. it will return an empty string)

Previously in this scenario, Vici::Transport#recv_all would spin
forever trying to pull more data off the socket. I'm not entirely
clear what happened that caused strongSwan to shutdown the socket, but
it probably should not cause vici Ruby apps to spin.

Closes strongswan/strongswan#13.
src/libcharon/plugins/vici/ruby/lib/vici.rb