Segfault under Cygwin
As referenced in #215, fwknop segfaults under cygwin 64 bit. The segfault happens in lib/fko_user.c when trying to perform an strnlen on the username pointer. After a few tests, I've determined that username is being set via the cuserid(NULL) call on line 84 of that file. The bad pointer is 0xffffffff802dbe20.
Commenting that call out and forcing a call to getlogin() results in the program running correctly, with the correct username, and the pointer is 0x1802dbe20 on this system.
It's unclear whether the cygwin cuserid() function is to blame, or whether _XOPEN_SOURCE is being set incorrectly (Or both, for that matter).
A temporary workaround is to set the SPOOF_USER environment variable (Not via the -U switch, but as a true env variable) on the command line.
According to http://pubs.opengroup.org/onlinepubs/7908799/xsh/cuserid.html cuserid() is considered legacy. For now, perhaps we remove the ifdefs, and simply use getlogin()?