diff options
author | Theo de Raadt <deraadt@cvs.openbsd.org> | 2004-01-25 20:45:14 +0000 |
---|---|---|
committer | Theo de Raadt <deraadt@cvs.openbsd.org> | 2004-01-25 20:45:14 +0000 |
commit | 3d344bdf6a3d16b09f728b68e3bd97751fec37bb (patch) | |
tree | 7bb8eb169a5a3b29a72c246db9fbfe34690a5bc1 /usr.sbin | |
parent | d49c5d0340dcfe1e3c4782c52d9d287373db04cc (diff) |
private copy of gmt2local from tcpdump, since tcpdump is about to start
mutating
Diffstat (limited to 'usr.sbin')
-rw-r--r-- | usr.sbin/ndp/Makefile | 7 | ||||
-rw-r--r-- | usr.sbin/ndp/gmt2local.c | 74 | ||||
-rw-r--r-- | usr.sbin/ndp/gmt2local.h | 29 |
3 files changed, 105 insertions, 5 deletions
diff --git a/usr.sbin/ndp/Makefile b/usr.sbin/ndp/Makefile index 6345ca9e9bb..e144e5a9941 100644 --- a/usr.sbin/ndp/Makefile +++ b/usr.sbin/ndp/Makefile @@ -1,12 +1,9 @@ -# $OpenBSD: Makefile,v 1.1 1999/12/10 07:26:56 itojun Exp $ - -.PATH: ${.CURDIR}/../tcpdump +# $OpenBSD: Makefile,v 1.2 2004/01/25 20:45:13 deraadt Exp $ PROG= ndp SRCS= ndp.c gmt2local.c MAN= ndp.8 # ndp.4 -CPPFLAGS+=-DINET6 -CPPFLAGS+=-I${.CURDIR} -I${.CURDIR}/../tcpdump +CPPFLAGS+=-DINET6 -I${.CURDIR} .include <bsd.prog.mk> diff --git a/usr.sbin/ndp/gmt2local.c b/usr.sbin/ndp/gmt2local.c new file mode 100644 index 00000000000..b8a3af3abe0 --- /dev/null +++ b/usr.sbin/ndp/gmt2local.c @@ -0,0 +1,74 @@ +/* $OpenBSD: gmt2local.c,v 1.1 2004/01/25 20:45:13 deraadt Exp $ */ + +/* + * Copyright (c) 1997 + * The Regents of the University of California. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that: (1) source code distributions + * retain the above copyright notice and this paragraph in its entirety, (2) + * distributions including binary code include the above copyright notice and + * this paragraph in its entirety in the documentation or other materials + * provided with the distribution, and (3) all advertising materials mentioning + * features or use of this software display the following acknowledgement: + * ``This product includes software developed by the University of California, + * Lawrence Berkeley Laboratory and its contributors.'' Neither the name of + * the University nor the names of its contributors may 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 + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + */ + +#ifndef lint +static const char rcsid[] = + "@(#) $Header: /cvs/OpenBSD/src/usr.sbin/ndp/gmt2local.c,v 1.1 2004/01/25 20:45:13 deraadt Exp $ (LBL)"; +#endif + +#include <sys/types.h> +#include <sys/time.h> + +#include <stdio.h> +#ifdef TIME_WITH_SYS_TIME +#include <time.h> +#endif + +#include "gnuc.h" +#ifdef HAVE_OS_PROTO_H +#include "os-proto.h" +#endif + +#include "gmt2local.h" + +/* + * Returns the difference between gmt and local time in seconds. + * Use gmtime() and localtime() to keep things simple. + */ +int32_t +gmt2local(time_t t) +{ + register int dt, dir; + register struct tm *gmt, *loc; + struct tm sgmt; + + if (t == 0) + t = time(NULL); + gmt = &sgmt; + *gmt = *gmtime(&t); + loc = localtime(&t); + dt = (loc->tm_hour - gmt->tm_hour) * 60 * 60 + + (loc->tm_min - gmt->tm_min) * 60; + + /* + * If the year or julian day is different, we span 00:00 GMT + * and must add or subtract a day. Check the year first to + * avoid problems when the julian day wraps. + */ + dir = loc->tm_year - gmt->tm_year; + if (dir == 0) + dir = loc->tm_yday - gmt->tm_yday; + dt += dir * 24 * 60 * 60; + + return (dt); +} diff --git a/usr.sbin/ndp/gmt2local.h b/usr.sbin/ndp/gmt2local.h new file mode 100644 index 00000000000..8685b51629f --- /dev/null +++ b/usr.sbin/ndp/gmt2local.h @@ -0,0 +1,29 @@ +/* $OpenBSD: gmt2local.h,v 1.1 2004/01/25 20:45:13 deraadt Exp $ */ + +/* + * Copyright (c) 1997 + * The Regents of the University of California. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that: (1) source code distributions + * retain the above copyright notice and this paragraph in its entirety, (2) + * distributions including binary code include the above copyright notice and + * this paragraph in its entirety in the documentation or other materials + * provided with the distribution, and (3) all advertising materials mentioning + * features or use of this software display the following acknowledgement: + * ``This product includes software developed by the University of California, + * Lawrence Berkeley Laboratory and its contributors.'' Neither the name of + * the University nor the names of its contributors may 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 + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + * + * @(#) $Header: /cvs/OpenBSD/src/usr.sbin/ndp/gmt2local.h,v 1.1 2004/01/25 20:45:13 deraadt Exp $ (LBL) + */ +#ifndef gmt2local_h +#define gmt2local_h + +int32_t gmt2local(time_t); +#endif |