mirror of
https://git.hardenedbsd.org/hardenedbsd/HardenedBSD.git
synced 2025-01-11 17:04:19 +01:00
If we receive no answer from the server when sending PAP
requests, give up (don't sit there indefinitely).
This commit is contained in:
parent
4a735ee8b0
commit
8db502bbfd
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=43500
@ -17,7 +17,7 @@
|
||||
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||
*
|
||||
* $Id: auth.c,v 1.34 1998/12/17 00:28:12 brian Exp $
|
||||
* $Id: auth.c,v 1.35 1999/01/28 01:56:30 brian Exp $
|
||||
*
|
||||
* TODO:
|
||||
* o Implement check against with registered IP addresses.
|
||||
@ -273,7 +273,8 @@ AuthTimeout(void *vauthp)
|
||||
if (--authp->retry > 0) {
|
||||
timer_Start(&authp->authtimer);
|
||||
(*authp->ChallengeFunc)(authp, ++authp->id, authp->physical);
|
||||
}
|
||||
} else if (authp->FailedFunc)
|
||||
(*authp->FailedFunc)(authp->physical);
|
||||
}
|
||||
|
||||
void
|
||||
@ -285,9 +286,11 @@ auth_Init(struct authinfo *authinfo)
|
||||
|
||||
void
|
||||
auth_StartChallenge(struct authinfo *authp, struct physical *physical,
|
||||
void (*fn)(struct authinfo *, int, struct physical *))
|
||||
void (*chal)(struct authinfo *, int, struct physical *),
|
||||
void (*fail)(struct physical *))
|
||||
{
|
||||
authp->ChallengeFunc = fn;
|
||||
authp->ChallengeFunc = chal;
|
||||
authp->FailedFunc = fail;
|
||||
authp->physical = physical;
|
||||
timer_Stop(&authp->authtimer);
|
||||
authp->authtimer.func = AuthTimeout;
|
||||
|
@ -15,7 +15,7 @@
|
||||
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||
*
|
||||
* $Id: auth.h,v 1.11 1998/05/21 21:44:03 brian Exp $
|
||||
* $Id: auth.h,v 1.12 1998/08/07 18:42:47 brian Exp $
|
||||
*
|
||||
* TODO:
|
||||
*/
|
||||
@ -25,6 +25,7 @@ struct bundle;
|
||||
|
||||
struct authinfo {
|
||||
void (*ChallengeFunc)(struct authinfo *, int, struct physical *);
|
||||
void (*FailedFunc)(struct physical *);
|
||||
struct pppTimer authtimer;
|
||||
int retry;
|
||||
int id;
|
||||
@ -39,8 +40,9 @@ extern const char *Auth2Nam(u_short);
|
||||
extern void auth_Init(struct authinfo *);
|
||||
extern void auth_StopTimer(struct authinfo *);
|
||||
extern void auth_StartChallenge(struct authinfo *, struct physical *,
|
||||
void (*fn)(struct authinfo *, int,
|
||||
struct physical *));
|
||||
void (*)(struct authinfo *, int,
|
||||
struct physical *),
|
||||
void (*)(struct physical *));
|
||||
extern int auth_Validate(struct bundle *, const char *, const char *,
|
||||
struct physical *);
|
||||
extern char *auth_GetSecret(struct bundle *, const char *, int,
|
||||
|
@ -23,7 +23,7 @@
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* $Id: datalink.c,v 1.25 1999/01/20 18:06:52 brian Exp $
|
||||
* $Id: datalink.c,v 1.26 1999/01/28 01:56:31 brian Exp $
|
||||
*/
|
||||
|
||||
#include <sys/param.h>
|
||||
@ -479,9 +479,11 @@ datalink_LayerUp(void *v, struct fsm *fp)
|
||||
Auth2Nam(dl->physical->link.lcp.his_auth),
|
||||
Auth2Nam(dl->physical->link.lcp.want_auth));
|
||||
if (dl->physical->link.lcp.his_auth == PROTO_PAP)
|
||||
auth_StartChallenge(&dl->pap, dl->physical, pap_SendChallenge);
|
||||
auth_StartChallenge(&dl->pap, dl->physical, pap_SendChallenge,
|
||||
pap_Failed);
|
||||
if (dl->physical->link.lcp.want_auth == PROTO_CHAP)
|
||||
auth_StartChallenge(&dl->chap.auth, dl->physical, chap_SendChallenge);
|
||||
auth_StartChallenge(&dl->chap.auth, dl->physical, chap_SendChallenge,
|
||||
NULL);
|
||||
} else
|
||||
datalink_AuthOk(dl);
|
||||
}
|
||||
|
@ -18,7 +18,7 @@
|
||||
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||
*
|
||||
* $Id: pap.c,v 1.27 1998/08/26 18:07:57 brian Exp $
|
||||
* $Id: pap.c,v 1.28 1999/01/28 01:56:33 brian Exp $
|
||||
*
|
||||
* TODO:
|
||||
*/
|
||||
@ -137,6 +137,14 @@ PapValidate(struct bundle *bundle, u_char *name, u_char *key,
|
||||
return auth_Validate(bundle, name, key, physical);
|
||||
}
|
||||
|
||||
void
|
||||
pap_Failed(struct physical *p)
|
||||
{
|
||||
auth_StopTimer(&p->dl->pap);
|
||||
log_Printf(LogPHASE, "Pap: No response from server\n");
|
||||
datalink_AuthNotOk(p->dl);
|
||||
}
|
||||
|
||||
void
|
||||
pap_Input(struct bundle *bundle, struct mbuf *bp, struct physical *physical)
|
||||
{
|
||||
@ -167,7 +175,6 @@ pap_Input(struct bundle *bundle, struct mbuf *bp, struct physical *physical)
|
||||
* told that I got the answer right.
|
||||
*/
|
||||
datalink_AuthOk(physical->dl);
|
||||
|
||||
} else {
|
||||
SendPapCode(php->id, PAP_NAK, "Login incorrect", physical);
|
||||
datalink_AuthNotOk(physical->dl);
|
||||
|
@ -15,7 +15,7 @@
|
||||
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||
*
|
||||
* $Id: pap.h,v 1.5.2.5 1998/05/01 19:25:32 brian Exp $
|
||||
* $Id: pap.h,v 1.6 1998/05/21 21:47:21 brian Exp $
|
||||
*
|
||||
* TODO:
|
||||
*/
|
||||
@ -29,5 +29,6 @@ struct physical;
|
||||
struct authinfo;
|
||||
struct bundle;
|
||||
|
||||
extern void pap_Failed(struct physical *);
|
||||
extern void pap_Input(struct bundle *, struct mbuf *, struct physical *);
|
||||
extern void pap_SendChallenge(struct authinfo *, int, struct physical *);
|
||||
|
Loading…
Reference in New Issue
Block a user