Actually return an error, and set fLastError.
ErrorString() now returns the correct error string.
Use h_errno where is the case.