www.pudn.com > vxworks_tcpip_code.rar > magic.c
/* magic.c - PPP Magic Number routines */
/* Copyright 1995 Wind River Systems, Inc. */
#include "copyright_wrs.h"
/*
* Copyright (c) 1989 Carnegie Mellon University.
* All rights reserved.
*
* Redistribution and use in source and binary forms are permitted
* provided that the above copyright notice and this paragraph are
* duplicated in all such forms and that any documentation,
* advertising materials, and other materials related to such
* distribution and use acknowledge that the software was developed
* by Carnegie Mellon University. The name of the
* University may not be used to endorse or promote products derived
* from this software without specific prior written permission.
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*/
/*
modification history
--------------------
01b,16jun95,dzb header file consolidation.
01a,21dec94,dab VxWorks port - first WRS version.
+dzb added: path for ppp header files, WRS copyright, tickLib.h.
*/
#include "vxWorks.h"
#include "tickLib.h"
#include "sys/types.h"
#include "sys/times.h"
#include "pppLib.h"
static u_long next; /* Next value to return */
extern u_long gethostid __ARGS((void));
/*
* magic_init - Initialize the magic number generator.
*
* Computes first magic number and seed for random number generator.
* Attempts to compute a random number seed which will not repeat.
* The current method uses the current hostid and current time.
*/
void magic_init()
{
next = tickGet();
srandom((int) next);
}
/*
* magic - Returns the next magic number.
*/
u_long magic()
{
u_long m;
m = next;
next = (u_long) random();
return (m);
}