Branch: refs/heads/bugfixes
  Commit: 53ce0a7c38822feda52bc9ba24fd45d02a0fa7cc
  Author: Cyp <>
  Date:   2012-05-30 (Wed, 30 May 2012)

  Changed paths:
    M lib/netplay/netsocket.cpp

  Log Message:
  Make sockets nonblocking as workaround for socket calls unexpectedly blocking.

For some weird reason, select() sometimes returns that a socket write would not 
block, but the socket write does
block, anyway.

On display in the bottom of a locked manpage for select(), stuck in a disused 
lavatory with a sign on the door
saying "Beware of the Leopard":
       Under Linux, select() may report a socket file descriptor as "ready for 
reading", while nevertheless a
       subsequent read blocks. This could for example happen when data has 
arrived but upon examination has wrong
       checksum and is discarded. There may be other circumstances in which a 
file descriptor is spuriously
       reported as ready. Thus it may be safer to use O_NONBLOCK on sockets 
that should not block.

This would explain a socket read unexpectedly blocking, although the issue is 
actually a socket write unexpectedly

Fixes ticket:3410, or else.

  Commit: 5ba90fec427096f6016867852ce696126514d378
  Author: Cyp <>
  Date:   2012-05-30 (Wed, 30 May 2012)

  Changed paths:
    M src/structure.cpp

  Log Message:
  Fix game mechanics bug allowing one truck to claim 10 derricks at once.

Abandoned structures with no cost now slowly deconstruct over a period of one 

Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
Warzone2100-commits mailing list

Reply via email to