|
Lines 244-250
Link Here
|
| 244 |
{ |
244 |
{ |
| 245 |
Authctxt *authctxt = ctxt; |
245 |
Authctxt *authctxt = ctxt; |
| 246 |
KbdintAuthctxt *kbdintctxt; |
246 |
KbdintAuthctxt *kbdintctxt; |
| 247 |
int i, authenticated = 0, res, len; |
247 |
int i, authenticated = 0, postponed, res, len; |
| 248 |
u_int nresp; |
248 |
u_int nresp; |
| 249 |
char **response = NULL, *method; |
249 |
char **response = NULL, *method; |
| 250 |
|
250 |
|
|
Lines 304-319
Link Here
|
| 304 |
snprintf(method, len, "keyboard-interactive/%s", |
304 |
snprintf(method, len, "keyboard-interactive/%s", |
| 305 |
kbdintctxt->device->name); |
305 |
kbdintctxt->device->name); |
| 306 |
|
306 |
|
| 307 |
if (!authctxt->postponed) { |
307 |
/* |
| 308 |
if (authenticated) { |
308 |
* Save authctxt->postponed, because auth2_challenge_start |
| 309 |
auth2_challenge_stop(authctxt); |
309 |
* may modify this value. |
| 310 |
} else { |
310 |
*/ |
| 311 |
/* start next device */ |
311 |
postponed = authctxt->postponed; |
| 312 |
/* may set authctxt->postponed */ |
312 |
if (!postponed && !authenticated) |
| 313 |
auth2_challenge_start(authctxt); |
313 |
auth2_challenge_start(authctxt); /* start next device */ |
| 314 |
} |
|
|
| 315 |
} |
| 316 |
userauth_finish(authctxt, authenticated, method); |
314 |
userauth_finish(authctxt, authenticated, method); |
|
|
315 |
if (!postponed && authenticated) |
| 316 |
auth2_challenge_stop(authctxt); |
| 317 |
xfree(method); |
317 |
xfree(method); |
| 318 |
} |
318 |
} |
| 319 |
|
319 |
|