diff options
author | brian <brian@FreeBSD.org> | 2002-06-12 00:33:17 +0000 |
---|---|---|
committer | brian <brian@FreeBSD.org> | 2002-06-12 00:33:17 +0000 |
commit | 64df5969679c3ad7b7f9452c2dcaee6a0621e26a (patch) | |
tree | d492060e826fff36baae2f94497a23630e59bb9e /usr.sbin/ppp/ccp.c | |
parent | 900ca326699fe7cba94c534173fd85d67cf1cef7 (diff) | |
download | FreeBSD-src-64df5969679c3ad7b7f9452c2dcaee6a0621e26a.zip FreeBSD-src-64df5969679c3ad7b7f9452c2dcaee6a0621e26a.tar.gz |
Understand the following Microsoft Vendor Specific RADIUS attributes:
RAD_MICROSOFT_MS_MPPE_ENCRYPTION_POLICY
RAD_MICROSOFT_MS_MPPE_ENCRYPTION_TYPES
RAD_MICROSOFT_MS_MPPE_RECV_KEY
RAD_MICROSOFT_MS_MPPE_SEND_KEY
These attributes may be supplied by a RADIUS server when MSCHAPv2 is
used to authenticate.
It *should* now be possible to build ppp with -DNODES and still support
CHAP/MSCHAP/MSCHAPv2/MPPE via a RADIUS server, but the code isn't yet
smart enough to do that (building with -DNODES just looses these
facilities).
Sponsored by: Monzoon
Diffstat (limited to 'usr.sbin/ppp/ccp.c')
-rw-r--r-- | usr.sbin/ppp/ccp.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/usr.sbin/ppp/ccp.c b/usr.sbin/ppp/ccp.c index a0f6490..aef3a51 100644 --- a/usr.sbin/ppp/ccp.c +++ b/usr.sbin/ppp/ccp.c @@ -369,7 +369,7 @@ CcpSendConfigReq(struct fsm *fp) (*o)->val.hdr.len = 2; (*o)->next = NULL; (*o)->algorithm = f; - (*algorithm[f]->o.OptInit)(&(*o)->val, &ccp->cfg); + (*algorithm[f]->o.OptInit)(fp->bundle, &(*o)->val, &ccp->cfg); } if (cp + (*o)->val.hdr.len > buff + sizeof buff) { @@ -517,7 +517,8 @@ CcpLayerUp(struct fsm *fp) if (ccp->in.state == NULL && ccp->in.algorithm >= 0 && ccp->in.algorithm < NALGORITHMS) { - ccp->in.state = (*algorithm[ccp->in.algorithm]->i.Init)(&ccp->in.opt); + ccp->in.state = (*algorithm[ccp->in.algorithm]->i.Init) + (fp->bundle, &ccp->in.opt); if (ccp->in.state == NULL) { log_Printf(LogERROR, "%s: %s (in) initialisation failure\n", fp->link->name, protoname(ccp->his_proto)); @@ -534,7 +535,8 @@ CcpLayerUp(struct fsm *fp) if (ccp->out.state == NULL && ccp->out.algorithm >= 0 && ccp->out.algorithm < NALGORITHMS) { - ccp->out.state = (*algorithm[ccp->out.algorithm]->o.Init)(&(*o)->val); + ccp->out.state = (*algorithm[ccp->out.algorithm]->o.Init) + (fp->bundle, &(*o)->val); if (ccp->out.state == NULL) { log_Printf(LogERROR, "%s: %s (out) initialisation failure\n", fp->link->name, protoname(ccp->my_proto)); @@ -596,7 +598,7 @@ CcpDecodeConfig(struct fsm *fp, u_char *cp, u_char *end, int mode_type, (*algorithm[f]->Usable)(fp) && ccp->in.algorithm == -1) { memcpy(&ccp->in.opt, opt, opt->hdr.len); - switch ((*algorithm[f]->i.Set)(&ccp->in.opt, &ccp->cfg)) { + switch ((*algorithm[f]->i.Set)(fp->bundle, &ccp->in.opt, &ccp->cfg)) { case MODE_REJ: fsm_rej(dec, &ccp->in.opt); break; @@ -622,7 +624,8 @@ CcpDecodeConfig(struct fsm *fp, u_char *cp, u_char *end, int mode_type, " option\n", fp->link->name); else { memcpy(&o->val, opt, opt->hdr.len); - if ((*algorithm[f]->o.Set)(&o->val, &ccp->cfg) == MODE_ACK) + if ((*algorithm[f]->o.Set)(fp->bundle, &o->val, &ccp->cfg) == + MODE_ACK) ccp->my_proto = algorithm[f]->id; else { ccp->his_reject |= (1 << opt->hdr.id); |