diff options
author | Ken Raeburn <raeburn@mit.edu> | 2006-04-14 22:38:00 +0000 |
---|---|---|
committer | Ken Raeburn <raeburn@mit.edu> | 2006-04-14 22:38:00 +0000 |
commit | 69ff87b7502fe2edb5ca04b3050b8bf9903e5332 (patch) | |
tree | 2722093a7244c5df8c54bb30a874669a4b815d25 /src/lib/krb5/os | |
parent | 6ca528fbea27b0d8d42c5f2802e15b507c4da945 (diff) | |
download | krb5-69ff87b7502fe2edb5ca04b3050b8bf9903e5332.tar.gz krb5-69ff87b7502fe2edb5ca04b3050b8bf9903e5332.tar.xz krb5-69ff87b7502fe2edb5ca04b3050b8bf9903e5332.zip |
Move gmt_mktime.c from lib/krb5/os to util/support, and rename the function.
Stop exporting gmt_mktime from libkrb5, and export krb5int_gmt_mktime from
libkrb5support. Updated the one caller, asn1_decode.c.
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@17921 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/lib/krb5/os')
-rw-r--r-- | src/lib/krb5/os/Makefile.in | 14 | ||||
-rw-r--r-- | src/lib/krb5/os/gmt_mktime.c | 127 |
2 files changed, 0 insertions, 141 deletions
diff --git a/src/lib/krb5/os/Makefile.in b/src/lib/krb5/os/Makefile.in index 55ea53a029..eab550d551 100644 --- a/src/lib/krb5/os/Makefile.in +++ b/src/lib/krb5/os/Makefile.in @@ -28,7 +28,6 @@ STLIBOBJS= \ gen_port.o \ genaddrs.o \ gen_rname.o \ - gmt_mktime.o \ hostaddr.o \ hst_realm.o \ init_os_ctx.o \ @@ -74,7 +73,6 @@ OBJS= \ $(OUTPRE)gen_port.$(OBJEXT) \ $(OUTPRE)genaddrs.$(OBJEXT) \ $(OUTPRE)gen_rname.$(OBJEXT) \ - $(OUTPRE)gmt_mktime.$(OBJEXT) \ $(OUTPRE)hostaddr.$(OBJEXT) \ $(OUTPRE)hst_realm.$(OBJEXT) \ $(OUTPRE)init_os_ctx.$(OBJEXT) \ @@ -120,7 +118,6 @@ SRCS= \ $(srcdir)/gen_port.c \ $(srcdir)/genaddrs.c \ $(srcdir)/gen_rname.c \ - $(srcdir)/gmt_mktime.c \ $(srcdir)/hostaddr.c \ $(srcdir)/hst_realm.c \ $(srcdir)/init_os_ctx.c \ @@ -180,9 +177,6 @@ t_an_to_ln: $(T_AN_TO_LN_OBJS) $(KRB5_BASE_DEPLIBS) t_realm_iter: $(T_REALM_ITER_OBJS) $(KRB5_BASE_DEPLIBS) $(CC_LINK) -o t_realm_iter $(T_REALM_ITER_OBJS) $(KRB5_BASE_LIBS) -t_mktime: gmt_mktime.c - $(CC) $(ALL_CFLAGS) -DTEST_LEAP -o t_mktime $(srcdir)/gmt_mktime.c - t_localaddr: localaddr.c $(CC_LINK) $(ALL_CFLAGS) -DTEST -o t_localaddr $(srcdir)/localaddr.c $(KRB5_BASE_LIBS) $(LIBS) @@ -372,14 +366,6 @@ gen_rname.so gen_rname.po $(OUTPRE)gen_rname.$(OBJEXT): \ $(SRCTOP)/include/k5-plugin.h $(SRCTOP)/include/k5-thread.h \ $(SRCTOP)/include/port-sockets.h $(SRCTOP)/include/socket-utils.h \ gen_rname.c os-proto.h -gmt_mktime.so gmt_mktime.po $(OUTPRE)gmt_mktime.$(OBJEXT): \ - $(BUILDTOP)/include/autoconf.h $(BUILDTOP)/include/krb5.h \ - $(BUILDTOP)/include/osconf.h $(BUILDTOP)/include/profile.h \ - $(COM_ERR_DEPS) $(SRCTOP)/include/k5-err.h $(SRCTOP)/include/k5-int.h \ - $(SRCTOP)/include/k5-locate.h $(SRCTOP)/include/k5-platform.h \ - $(SRCTOP)/include/k5-plugin.h $(SRCTOP)/include/k5-thread.h \ - $(SRCTOP)/include/port-sockets.h $(SRCTOP)/include/socket-utils.h \ - gmt_mktime.c hostaddr.so hostaddr.po $(OUTPRE)hostaddr.$(OBJEXT): \ $(BUILDTOP)/include/autoconf.h $(BUILDTOP)/include/krb5.h \ $(BUILDTOP)/include/osconf.h $(BUILDTOP)/include/profile.h \ diff --git a/src/lib/krb5/os/gmt_mktime.c b/src/lib/krb5/os/gmt_mktime.c deleted file mode 100644 index 3d10e1a4e6..0000000000 --- a/src/lib/krb5/os/gmt_mktime.c +++ /dev/null @@ -1,127 +0,0 @@ -/* This code placed in the public domain by Mark W. Eichin */ - -#include <stdio.h> -#include "k5-int.h" - -#ifdef HAVE_SYS_TYPES_H -#include <sys/types.h> -#endif -#ifdef HAVE_SYS_TIME_H -#include <sys/time.h> -#ifdef TIME_WITH_SYS_TIME -#include <time.h> -#endif -#else -#include <time.h> -#endif - -/* take a struct tm, return seconds from GMT epoch */ -/* like mktime, this ignores tm_wday and tm_yday. */ -/* unlike mktime, this does not set them... it only passes a return value. */ - -static const int days_in_month[12] = { -0, /* jan 31 */ -31, /* feb 28 */ -59, /* mar 31 */ -90, /* apr 30 */ -120, /* may 31 */ -151, /* jun 30 */ -181, /* jul 31 */ -212, /* aug 31 */ -243, /* sep 30 */ -273, /* oct 31 */ -304, /* nov 30 */ -334 /* dec 31 */ -}; - -#define hasleapday(year) (year%400?(year%100?(year%4?0:1):0):1) - -time_t gmt_mktime(struct tm *t) -{ - time_t accum; - -#define assert_time(cnd) if(!(cnd)) return (time_t) -1 - - /* - * For 32-bit signed time_t centered on 1/1/1970, the range is: - * time 0x80000000 -> Fri Dec 13 16:45:52 1901 - * time 0x7fffffff -> Mon Jan 18 22:14:07 2038 - * - * So years 1901 and 2038 are allowable, but we can't encode all - * dates in those years, and we're not doing overflow/underflow - * checking for such cases. - */ - assert_time(t->tm_year>=1); - assert_time(t->tm_year<=138); - - assert_time(t->tm_mon>=0); - assert_time(t->tm_mon<=11); - assert_time(t->tm_mday>=1); - assert_time(t->tm_mday<=31); - assert_time(t->tm_hour>=0); - assert_time(t->tm_hour<=23); - assert_time(t->tm_min>=0); - assert_time(t->tm_min<=59); - assert_time(t->tm_sec>=0); - assert_time(t->tm_sec<=62); - -#undef assert_time - - - accum = t->tm_year - 70; - accum *= 365; /* 365 days/normal year */ - - /* add in leap day for all previous years */ - if (t->tm_year >= 70) - accum += (t->tm_year - 69) / 4; - else - accum -= (72 - t->tm_year) / 4; - /* add in leap day for this year */ - if(t->tm_mon >= 2) /* march or later */ - if(hasleapday((t->tm_year + 1900))) accum += 1; - - accum += days_in_month[t->tm_mon]; - accum += t->tm_mday-1; /* days of month are the only 1-based field */ - accum *= 24; /* 24 hour/day */ - accum += t->tm_hour; - accum *= 60; /* 60 minute/hour */ - accum += t->tm_min; - accum *= 60; /* 60 seconds/minute */ - accum += t->tm_sec; - - return accum; -} - -#ifdef TEST_LEAP -int -main (int argc, char *argv[]) -{ - int yr; - time_t t; - struct tm tm = { - .tm_mon = 0, .tm_mday = 1, - .tm_hour = 0, .tm_min = 0, .tm_sec = 0, - }; - for (yr = 60; yr <= 104; yr++) - { - printf ("1/1/%d%c -> ", 1900 + yr, hasleapday((1900+yr)) ? '*' : ' '); - tm.tm_year = yr; - t = gmt_mktime (&tm); - if (t == (time_t) -1) - printf ("-1\n"); - else - { - long u; - if (t % (24 * 60 * 60)) - printf ("(not integral multiple of days) "); - u = t / (24 * 60 * 60); - printf ("%3ld*365%+ld\t0x%08lx\n", - (long) (u / 365), (long) (u % 365), - (long) t); - } - } - t = 0x80000000, printf ("time 0x%lx -> %s", t, ctime (&t)); - t = 0x7fffffff, printf ("time 0x%lx -> %s", t, ctime (&t)); - return 0; -} -#endif |