1
0
mirror of https://github.com/libssh2/libssh2.git synced 2025-08-08 19:02:07 +03:00

libssh2_userauth_list has return code

This commit is contained in:
Anders Borum
2020-02-06 14:50:33 +01:00
parent 7b11cadccc
commit 1483300a63
2 changed files with 15 additions and 13 deletions

View File

@@ -503,6 +503,7 @@ typedef struct _LIBSSH2_POLLFD {
#define LIBSSH2_ERROR_KNOWN_HOSTS -46
#define LIBSSH2_ERROR_CHANNEL_WINDOW_FULL -47
#define LIBSSH2_ERROR_KEYFILE_AUTH_FAILED -48
#define LIBSSH2_ERROR_MISSING_AUTH_BANNER -49
/* this is a define to provide the old (<= 1.2.7) name */
#define LIBSSH2_ERROR_BANNER_NONE LIBSSH2_ERROR_BANNER_RECV
@@ -611,8 +612,8 @@ LIBSSH2_API const char *libssh2_session_banner_get(LIBSSH2_SESSION *session);
LIBSSH2_API char *libssh2_userauth_list(LIBSSH2_SESSION *session,
const char *username,
unsigned int username_len);
LIBSSH2_API char *libssh2_userauth_banner(LIBSSH2_SESSION * session,
size_t *banner_len_out);
LIBSSH2_API int libssh2_userauth_banner(LIBSSH2_SESSION* session,
char **banner_out);
LIBSSH2_API int libssh2_userauth_authenticated(LIBSSH2_SESSION *session);
LIBSSH2_API int

View File

@@ -237,24 +237,25 @@ libssh2_userauth_list(LIBSSH2_SESSION * session, const char *user,
*
* Retrieve banner message from server, if available.
* If no such message is sent by the server or if no authentication attempt has
* been made, this function returns NULL.
* been made, this function returns LIBSSH2_ERROR_MISSING_AUTH_BANNER.
* libssh2_userauth_list makes a "none" authentication attempt and is
* sufficient to collect the pre-auth banner message.
*
* Banner ought to be UTF-8 encoded, and will be truncated to
* LIBSSH2_USERAUTH_MAX_BANNER bytes. Length will be returned in
* banner_len_out.
* LIBSSH2_USERAUTH_MAX_BANNER bytes.
*/
LIBSSH2_API char *
libssh2_userauth_banner(LIBSSH2_SESSION * session,
size_t *banner_len_out)
LIBSSH2_API int
libssh2_userauth_banner(LIBSSH2_SESSION* session,
char **banner_out)
{
char *ptr = NULL;
if(session->userauth_banner) {
ptr = session->userauth_banner;
*banner_len_out = session->userauth_banner_len;
if(!session->userauth_banner) {
return _libssh2_error(session,
LIBSSH2_ERROR_MISSING_AUTH_BANNER,
"Missing authentication banner");
}
return ptr;
*banner_out = session->userauth_banner;
return LIBSSH2_ERROR_NONE;
}
/*