/*
* $Id: util.c,v 1.1 2004/11/14 07:26:26 paulus Exp $
*
* Copyright (C) 1995,1996,1997 Lars Fenneberg
*
* Copyright 1992 Livingston Enterprises, Inc.
*
* Copyright 1992,1993, 1994,1995 The Regents of the University of Michigan
* and Merit Network, Inc. All Rights Reserved
*
* See the file COPYRIGHT for the respective terms and conditions.
* If the file is missing contact me at lf@elemental.net
* and I'll send you a copy.
*
*/
#include <includes.h>
#include <radiusclient.h>
/*
* Function: rc_str2tm
*
* Purpose: Turns printable string into correct tm struct entries.
*
*/
static const char * months[] =
{
"Jan", "Feb", "Mar", "Apr", "May", "Jun",
"Jul", "Aug", "Sep", "Oct", "Nov", "Dec"
};
void rc_str2tm (char *valstr, struct tm *tm)
{
int i;
/* Get the month */
for (i = 0; i < 12; i++)
{
if (strncmp (months[i], valstr, 3) == 0)
{
tm->tm_mon = i;
i = 13;
}
}
/* Get the Day */
tm->tm_mday = atoi (&valstr[4]);
/* Now the year */
tm->tm_year = atoi (&valstr[7]) - 1900;
}
void rc_mdelay(int msecs)
{
struct timeval tv;
tv.tv_sec = (int) msecs / 1000;
tv.tv_usec = (msecs % 1000) * 1000;
select(0,(fd_set *)NULL,(fd_set *)NULL,(fd_set *)NULL, &tv);
}
/*
* Function: rc_mksid
*
* Purpose: generate a quite unique string
*
* Remarks: not that unique at all...
*
*/
char *
rc_mksid (void)
{
static char buf[15];
static unsigned short int cnt = 0;
sprintf (buf, "%08lX%04X%02hX",
(unsigned long int) time (NULL),
(unsigned int) getpid (),
cnt & 0xFF);
cnt++;
return buf;
}