1/* u_miscdebug.c
2 *
3 * Copyright (c) 1996-2005 Mike Gleason, NcFTP Software.
4 * All rights reserved.
5 *
6 */
7
8#include "syshdrs.h"
9#ifdef PRAGMA_HDRSTOP
10#	pragma hdrstop
11#endif
12
13void
14FTPGetDateStr(time_t t, const char *fmt, char *const ltstr1, const size_t ltstr1size, char *const gtstr1, const size_t gtstr1size)
15{
16	char ltstr[64];
17	char gtstr[64];
18	struct tm *ltp;
19	struct tm *gtp;
20
21	if (fmt == NULL) {
22		/* Default to RFC 822 date format, with the
23		 * addition of the textual timezone,
24		 * i.e. RFC822+%Z.
25		 */
26		fmt = "%a, %d %b %Y %H:%M:%S %z %Z";
27	}
28
29	memset(gtstr, 0, sizeof(gtstr));
30	memset(ltstr, 0, sizeof(ltstr));
31	if ((ltstr1 != NULL) && (ltstr1size != 0))
32		memset(ltstr1, 0, ltstr1size);
33	if ((gtstr1 != NULL) && (gtstr1size != 0))
34		memset(gtstr1, 0, gtstr1size);
35
36	if (t == 0) {
37		(void) time(&t);
38		if ((t == 0) || (t == (time_t) -1)) {
39			/* Should never happen */
40			return;
41		}
42	}
43
44	if ((gtp = gmtime(&t)) != NULL) {
45		strftime(gtstr, sizeof(gtstr) - 1, fmt, gtp);
46		if ((gtstr1 != NULL) && (gtstr1size != 0))
47			(void) Strncpy(gtstr1, gtstr, gtstr1size);
48	}
49
50	if ((ltp = localtime(&t)) != NULL) {
51		strftime(ltstr, sizeof(ltstr) - 1, fmt, ltp);
52		if ((ltstr1 != NULL) && (ltstr1size != 0))
53			(void) Strncpy(ltstr1, ltstr, ltstr1size);
54	}
55}	/* FTPGetDateStr */
56