File: tzone.c

package info (click to toggle)
bootp 2.4.3-21.1
  • links: PTS
  • area: main
  • in suites: trixie
  • size: 900 kB
  • sloc: ansic: 11,242; makefile: 264; sh: 55
file content (44 lines) | stat: -rw-r--r-- 1,045 bytes parent folder | download | duplicates (10)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
/*
 * tzone.c - get the timezone
 *
 * This is shared by bootpd and bootpef
 */

#ifdef	SVR4
/* XXX - Is this really SunOS specific? -gwr */
/* This is in <time.h> but only visible if (__STDC__ == 1). */
extern long timezone;
#else /* SVR4 */
/* BSD or SunOS */
# include <sys/time.h>
# include <syslog.h>
#endif /* SVR4 */
#include <sys/types.h>

#include "report.h"
#include "tzone.h"

/* This is what other modules use. */
int32_t secondswest;

/*
 * Get our timezone offset so we can give it to clients if the
 * configuration file doesn't specify one.
 */
void
tzone_init()
{
#ifdef	SVR4
	/* XXX - Is this really SunOS specific? -gwr */
	secondswest = timezone;
#else /* SVR4 */
	struct timezone tzp;		/* Time zone offset for clients */
	struct timeval tp;			/* Time (extra baggage) */
	if (gettimeofday(&tp, &tzp) < 0) {
		secondswest = 0;		/* Assume GMT for lack of anything better */
		report(LOG_ERR, "gettimeofday: %s", get_errmsg());
	} else {
		secondswest = 60L * tzp.tz_minuteswest;	/* Convert to seconds */
	}
#endif /* SVR4 */
}