Don't enable the device if the reachable count is zero.

A logic bug was introduced in bd451cfe1512fa69eac35a60dbe6df17bfc39154
in which running graph() several times with zero reachable nodes had
the effect of calling device_enable() (instead of keeping the device
disabled).

This results in weird behavior when DeviceStandby is enabled, especially
on Windows where calling device_enable() several times in a row corrupts
I/O structures for the device, rendering it unusable.
Fix wrong identifier in SO_NOSIGPIPE call.

f134bd0c9c2213fbbb3967f3d784759cb65e2c76 broke the Mac OS X build by
introducing a reference to an identifier, c, that doesn't exist.