version 1.137, 2017/02/03 23:05:57 |
version 1.138, 2017/05/30 14:18:15 |
|
|
void |
void |
do_authentication2(Authctxt *authctxt) |
do_authentication2(Authctxt *authctxt) |
{ |
{ |
|
struct ssh *ssh = active_state; /* XXX */ |
|
ssh->authctxt = authctxt; /* XXX move to caller */ |
dispatch_init(&dispatch_protocol_error); |
dispatch_init(&dispatch_protocol_error); |
dispatch_set(SSH2_MSG_SERVICE_REQUEST, &input_service_request); |
dispatch_set(SSH2_MSG_SERVICE_REQUEST, &input_service_request); |
dispatch_run(DISPATCH_BLOCK, &authctxt->success, authctxt); |
dispatch_run(DISPATCH_BLOCK, &authctxt->success, ssh); |
|
ssh->authctxt = NULL; |
} |
} |
|
|
/*ARGSUSED*/ |
/*ARGSUSED*/ |
static int |
static int |
input_service_request(int type, u_int32_t seq, void *ctxt) |
input_service_request(int type, u_int32_t seq, void *ctxt) |
{ |
{ |
Authctxt *authctxt = ctxt; |
struct ssh *ssh = ctxt; |
|
Authctxt *authctxt = ssh->authctxt; |
u_int len; |
u_int len; |
int acceptit = 0; |
int acceptit = 0; |
char *service = packet_get_cstring(&len); |
char *service = packet_get_cstring(&len); |
|
|
static int |
static int |
input_userauth_request(int type, u_int32_t seq, void *ctxt) |
input_userauth_request(int type, u_int32_t seq, void *ctxt) |
{ |
{ |
struct ssh *ssh = active_state; /* XXX */ |
struct ssh *ssh = ctxt; |
Authctxt *authctxt = ctxt; |
Authctxt *authctxt = ssh->authctxt; |
Authmethod *m = NULL; |
Authmethod *m = NULL; |
char *user, *service, *method, *style = NULL; |
char *user, *service, *method, *style = NULL; |
int authenticated = 0; |
int authenticated = 0; |