diff --git a/usr.sbin/ppp/chap.c b/usr.sbin/ppp/chap.c index 39f4c7c9ea6..0e30cce426c 100644 --- a/usr.sbin/ppp/chap.c +++ b/usr.sbin/ppp/chap.c @@ -17,7 +17,7 @@ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. * - * $Id$ + * $Id: chap.c,v 1.10 1997/02/22 16:10:05 peter Exp $ * * TODO: */ @@ -41,6 +41,7 @@ struct authinfo AuthChapInfo = { }; extern char *AuthGetSecret(); +extern int randinit; void ChapOutput(code, id, ptr, count) @@ -78,7 +79,10 @@ int chapid; int len, i; char *cp; - srandom(time(NULL)); + if (!randinit) { + srandom((unsigned)(time(NULL) ^ getpid())); + randinit = 1; + } cp = challenge_data; *cp++ = challenge_len = random() % 32 + 16; diff --git a/usr.sbin/ppp/command.c b/usr.sbin/ppp/command.c index c15d94dd887..6feed20691c 100644 --- a/usr.sbin/ppp/command.c +++ b/usr.sbin/ppp/command.c @@ -17,7 +17,7 @@ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. * - * $Id: command.c,v 1.32 1997/02/22 16:10:08 peter Exp $ + * $Id: command.c,v 1.33 1997/03/10 06:21:00 ache Exp $ * */ #include @@ -58,6 +58,7 @@ extern struct cmdtab const SetCommands[]; extern char *IfDevName; struct in_addr ifnetmask; +int randinit; static int ShowCommand(), TerminalCommand(), QuitCommand(); static int CloseCommand(), DialCommand(), DownCommand(); @@ -653,7 +654,10 @@ char **argv; if (strcasecmp(argv[0], "random") == 0) { VarRedialTimeout = -1; printf("Using random redial timeout.\n"); - srandom(time(0)); + if (!randinit) { + srandom((unsigned)(time(NULL) ^ getpid())); + randinit = 1; + } } else { timeout = atoi(argv[0]);