added strerror(errno) calls to all error messages to diagnose errors. /dev/net/tun must grant read/write permission to the proxy program. Receiving SIGSEGV from read() in rio_read()
fixed Robust I/O function calls in thread handlers to stop segmentation faults.