diff --git a/src/ssh.c b/src/ssh.c index 57089ec95..81627fe8b 100644 --- a/src/ssh.c +++ b/src/ssh.c @@ -258,10 +258,13 @@ WS_SOCKET_T wolfSSH_get_fd(const WOLFSSH* ssh) if (ssh) return ssh->rfd; + /* Return the same invalid-socket sentinel wolfSSH_new() initializes + * rfd/wfd to, rather than an error enum, so callers get a value of the + * socket type they can compare against. */ #ifdef USE_WINDOWS_API return INVALID_SOCKET; #else - return WS_BAD_ARGUMENT; + return -1; #endif } diff --git a/tests/api.c b/tests/api.c index 55009434c..5635e2a5a 100644 --- a/tests/api.c +++ b/tests/api.c @@ -238,7 +238,11 @@ static void test_wolfSSH_set_fd(void) AssertIntNE(WS_SUCCESS, wolfSSH_set_fd(NULL, fd)); check = wolfSSH_get_fd(NULL); - AssertFalse(WS_SUCCESS == check); +#ifdef USE_WINDOWS_API + AssertTrue(INVALID_SOCKET == check); +#else + AssertTrue(-1 == check); +#endif AssertIntEQ(WS_SUCCESS, wolfSSH_set_fd(ssh, fd)); check = wolfSSH_get_fd(ssh);