Lines Matching refs:ss
121 static void chap_generate_challenge(struct chap_server_state *ss);
122 static void chap_handle_response(struct chap_server_state *ss, int code,
172 struct chap_server_state *ss = &server; in chap_lowerup() local
175 ss->flags |= LOWERUP; in chap_lowerup()
176 if (ss->flags & AUTH_STARTED) in chap_lowerup()
177 chap_timeout(ss); in chap_lowerup()
184 struct chap_server_state *ss = &server; in chap_lowerdown() local
187 if (ss->flags & TIMEOUT_PENDING) in chap_lowerdown()
188 UNTIMEOUT(chap_timeout, ss); in chap_lowerdown()
189 ss->flags = 0; in chap_lowerdown()
200 struct chap_server_state *ss = &server; in chap_auth_peer() local
203 if (ss->flags & AUTH_STARTED) { in chap_auth_peer()
214 ss->digest = dp; in chap_auth_peer()
215 ss->name = our_name; in chap_auth_peer()
217 ss->id = (unsigned char)(drand48() * 256); in chap_auth_peer()
218 ss->flags |= AUTH_STARTED; in chap_auth_peer()
219 if (ss->flags & LOWERUP) in chap_auth_peer()
220 chap_timeout(ss); in chap_auth_peer()
257 struct chap_server_state *ss = arg; in chap_timeout() local
259 ss->flags &= ~TIMEOUT_PENDING; in chap_timeout()
260 if ((ss->flags & CHALLENGE_VALID) == 0) { in chap_timeout()
261 ss->challenge_xmits = 0; in chap_timeout()
262 chap_generate_challenge(ss); in chap_timeout()
263 ss->flags |= CHALLENGE_VALID; in chap_timeout()
264 } else if (ss->challenge_xmits >= chap_max_transmits) { in chap_timeout()
265 ss->flags &= ~CHALLENGE_VALID; in chap_timeout()
266 ss->flags |= AUTH_DONE | AUTH_FAILED; in chap_timeout()
271 output(0, ss->challenge, ss->challenge_pktlen); in chap_timeout()
272 ++ss->challenge_xmits; in chap_timeout()
273 ss->flags |= TIMEOUT_PENDING; in chap_timeout()
282 chap_generate_challenge(struct chap_server_state *ss) in chap_generate_challenge() argument
287 p = ss->challenge; in chap_generate_challenge()
290 ss->digest->generate_challenge(p); in chap_generate_challenge()
292 nlen = strlen(ss->name); in chap_generate_challenge()
293 memcpy(p + 1 + clen, ss->name, nlen); in chap_generate_challenge()
296 ss->challenge_pktlen = PPP_HDRLEN + len; in chap_generate_challenge()
298 p = ss->challenge + PPP_HDRLEN; in chap_generate_challenge()
300 p[1] = ++ss->id; in chap_generate_challenge()
309 chap_handle_response(struct chap_server_state *ss, int id, in chap_handle_response() argument
319 if ((ss->flags & LOWERUP) == 0) in chap_handle_response()
321 if (id != ss->challenge[PPP_HDRLEN+1] || len < 2) in chap_handle_response()
323 if (ss->flags & CHALLENGE_VALID) { in chap_handle_response()
331 if (ss->flags & TIMEOUT_PENDING) { in chap_handle_response()
332 ss->flags &= ~TIMEOUT_PENDING; in chap_handle_response()
333 UNTIMEOUT(chap_timeout, ss); in chap_handle_response()
348 ok = (*verifier)(name, ss->name, id, ss->digest, in chap_handle_response()
349 ss->challenge + PPP_HDRLEN + CHAP_HDRLEN, in chap_handle_response()
350 response, ss->message, sizeof(ss->message)); in chap_handle_response()
352 ss->flags |= AUTH_FAILED; in chap_handle_response()
355 } else if ((ss->flags & AUTH_DONE) == 0) in chap_handle_response()
361 mlen = strlen(ss->message); in chap_handle_response()
363 p[0] = (ss->flags & AUTH_FAILED)? CHAP_FAILURE: CHAP_SUCCESS; in chap_handle_response()
368 memcpy(p + CHAP_HDRLEN, ss->message, mlen); in chap_handle_response()
371 if (ss->flags & CHALLENGE_VALID) { in chap_handle_response()
372 ss->flags &= ~CHALLENGE_VALID; in chap_handle_response()
373 if (!(ss->flags & AUTH_DONE) && !(ss->flags & AUTH_FAILED)) { in chap_handle_response()
385 ss->flags |= AUTH_FAILED; in chap_handle_response()
389 if (ss->flags & AUTH_FAILED) { in chap_handle_response()
392 if ((ss->flags & AUTH_DONE) == 0) in chap_handle_response()
394 ss->digest->code, in chap_handle_response()
397 ss->flags |= TIMEOUT_PENDING; in chap_handle_response()
398 TIMEOUT(chap_timeout, ss, in chap_handle_response()
402 ss->flags |= AUTH_DONE; in chap_handle_response()
533 struct chap_server_state *ss = &server; in chap_input() local
551 chap_handle_response(ss, id, pkt, len); in chap_input()
564 struct chap_server_state *ss = &server; in chap_protrej() local
566 if (ss->flags & TIMEOUT_PENDING) { in chap_protrej()
567 ss->flags &= ~TIMEOUT_PENDING; in chap_protrej()
568 UNTIMEOUT(chap_timeout, ss); in chap_protrej()
570 if (ss->flags & AUTH_STARTED) { in chap_protrej()
571 ss->flags = 0; in chap_protrej()