Home | History | Annotate | Line # | Download | only in common
      1 /*	$NetBSD: tzone.c,v 1.5 2002/07/14 00:26:18 wiz Exp $	*/
      2 
      3 #include <sys/cdefs.h>
      4 #ifndef lint
      5 __RCSID("$NetBSD: tzone.c,v 1.5 2002/07/14 00:26:18 wiz Exp $");
      6 #endif
      7 
      8 /*
      9  * tzone.c - get the timezone
     10  *
     11  * This is shared by bootpd and bootpef
     12  */
     13 
     14 #include <sys/types.h>
     15 
     16 #ifdef	SVR4
     17 /* XXX - Is this really SunOS specific? -gwr */
     18 /* This is in <time.h> but only visible if (__STDC__ == 1). */
     19 extern long timezone;
     20 #else /* SVR4 */
     21 /* BSD or SunOS */
     22 # include <sys/time.h>
     23 # include <syslog.h>
     24 #endif /* SVR4 */
     25 
     26 #include "bptypes.h"
     27 #include "report.h"
     28 #include "tzone.h"
     29 
     30 /* This is what other modules use. */
     31 int32 secondswest;
     32 
     33 /*
     34  * Get our timezone offset so we can give it to clients if the
     35  * configuration file doesn't specify one.
     36  */
     37 void
     38 tzone_init(void)
     39 {
     40 #ifdef	SVR4
     41 	/* XXX - Is this really SunOS specific? -gwr */
     42 	secondswest = timezone;
     43 #else /* SVR4 */
     44 	struct timezone tzp;		/* Time zone offset for clients */
     45 	struct timeval tp;			/* Time (extra baggage) */
     46 	if (gettimeofday(&tp, &tzp) < 0) {
     47 		secondswest = 0;		/* Assume GMT for lack of anything better */
     48 		report(LOG_ERR, "gettimeofday: %s", get_errmsg());
     49 	} else {
     50 		secondswest = 60L * tzp.tz_minuteswest;	/* Convert to seconds */
     51 	}
     52 #endif /* SVR4 */
     53 }
     54