*/
#ifndef lint
-static char rcsid[] = "$Id: chap.c,v 1.5 1994/10/22 11:54:04 paulus Exp $";
+static char rcsid[] = "$Id: chap.c,v 1.10 1996/01/01 22:55:28 paulus Exp $";
#endif
/*
#include "chap.h"
#include "md5.h"
-chap_state chap[N_PPP]; /* CHAP state; one for each unit */
+struct protent chap_protent = {
+ PPP_CHAP, ChapInit, ChapInput, ChapProtocolReject,
+ ChapLowerUp, ChapLowerDown, NULL, NULL,
+ ChapPrintPkt, NULL, 1, "CHAP", NULL, NULL
+};
+
+chap_state chap[NUM_PPP]; /* CHAP state; one for each unit */
static void ChapChallengeTimeout __P((caddr_t));
static void ChapResponseTimeout __P((caddr_t));
cstate->serverstate = CHAPSS_INITIAL;
cstate->timeouttime = CHAP_DEFTIMEOUT;
cstate->max_transmits = CHAP_DEFTRANSMITS;
- srand48((long) time(NULL)); /* joggle random number generator */
+ /* random number generator is initialized in magic_init */
}
ChapGenChallenge(cstate);
ChapSendChallenge(cstate);
cstate->serverstate = CHAPSS_RECHALLENGE;
-
- if (cstate->chal_interval != 0)
- TIMEOUT(ChapRechallenge, (caddr_t) cstate, cstate->chal_interval);
}
MD5Final(&mdContext);
/* compare local and remote MDs and send the appropriate status */
- if (bcmp (mdContext.digest, remmd, MD5_SIGNATURE_SIZE) == 0)
+ if (memcmp (mdContext.digest, remmd, MD5_SIGNATURE_SIZE) == 0)
code = CHAP_SUCCESS; /* they are the same! */
break;
return len + CHAP_HEADERLEN;
}
-
-#ifdef NO_DRAND48
-
-double drand48()
-{
- return (double)random() / (double)0x7fffffffL; /* 2**31-1 */
-}
-
-void srand48(seedval)
-long seedval;
-{
- srand((int)seedval);
-}
-
-#endif