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