summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--usr.sbin/ppp/auth.c11
-rw-r--r--usr.sbin/ppp/auth.h8
-rw-r--r--usr.sbin/ppp/datalink.c8
-rw-r--r--usr.sbin/ppp/pap.c11
-rw-r--r--usr.sbin/ppp/pap.h3
5 files changed, 28 insertions, 13 deletions
diff --git a/usr.sbin/ppp/auth.c b/usr.sbin/ppp/auth.c
index f9cc803..c857e02 100644
--- a/usr.sbin/ppp/auth.c
+++ b/usr.sbin/ppp/auth.c
@@ -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;
diff --git a/usr.sbin/ppp/auth.h b/usr.sbin/ppp/auth.h
index 3766f03..7ac577d 100644
--- a/usr.sbin/ppp/auth.h
+++ b/usr.sbin/ppp/auth.h
@@ -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,
diff --git a/usr.sbin/ppp/datalink.c b/usr.sbin/ppp/datalink.c
index 6fe60de..617cc1d2 100644
--- a/usr.sbin/ppp/datalink.c
+++ b/usr.sbin/ppp/datalink.c
@@ -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);
}
diff --git a/usr.sbin/ppp/pap.c b/usr.sbin/ppp/pap.c
index 9bdbb93..02fb329 100644
--- a/usr.sbin/ppp/pap.c
+++ b/usr.sbin/ppp/pap.c
@@ -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:
*/
@@ -138,6 +138,14 @@ PapValidate(struct bundle *bundle, u_char *name, u_char *key,
}
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)
{
int len = mbuf_Length(bp);
@@ -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);
diff --git a/usr.sbin/ppp/pap.h b/usr.sbin/ppp/pap.h
index b4b63af..f0cd5e8 100644
--- a/usr.sbin/ppp/pap.h
+++ b/usr.sbin/ppp/pap.h
@@ -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 *);
OpenPOWER on IntegriCloud