aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/messages.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/messages.c b/src/messages.c
index 73f39974..c8e0e094 100644
--- a/src/messages.c
+++ b/src/messages.c
@@ -120,10 +120,18 @@ static int ssh_execute_server_request(ssh_session session, ssh_message msg)
msg->auth_request.username, msg->auth_request.pubkey,
msg->auth_request.signature_state,
session->server_callbacks->userdata);
- if (rc == SSH_AUTH_SUCCESS || rc == SSH_AUTH_PARTIAL){
+ if (msg->auth_request.signature_state != SSH_PUBLICKEY_STATE_NONE) {
+ if (rc == SSH_AUTH_SUCCESS || rc == SSH_AUTH_PARTIAL) {
ssh_message_auth_reply_success(msg, rc == SSH_AUTH_PARTIAL);
+ } else {
+ ssh_message_reply_default(msg);
+ }
} else {
+ if (rc == SSH_AUTH_SUCCESS) {
+ ssh_message_auth_reply_pk_ok_simple(msg);
+ } else {
ssh_message_reply_default(msg);
+ }
}
return SSH_OK;