]>
git.ipfire.org Git - thirdparty/squid.git/blob - lib/iso3307.c
2 * Copyright (C) 1996-2015 The Squid Software Foundation and contributors
4 * Squid software is distributed under GPLv2+ license and includes
5 * contributions from numerous individuals and organizations.
6 * Please see the COPYING and CONTRIBUTORS files for details.
22 #define ASCII_DIGIT(c) ((c)-48)
25 parse_iso3307_time(const char *buf
)
27 /* buf is an ISO 3307 style time: YYYYMMDDHHMMSS or YYYYMMDDHHMMSS.xxx */
30 while (*buf
== ' ' || *buf
== '\t')
32 if ((int) strlen(buf
) < 14)
34 memset(&tms
, '\0', sizeof(struct tm
));
35 tms
.tm_year
= (ASCII_DIGIT(buf
[0]) * 1000) + (ASCII_DIGIT(buf
[1]) * 100) +
36 (ASCII_DIGIT(buf
[2]) * 10) + ASCII_DIGIT(buf
[3]) - 1900;
37 tms
.tm_mon
= (ASCII_DIGIT(buf
[4]) * 10) + ASCII_DIGIT(buf
[5]) - 1;
38 tms
.tm_mday
= (ASCII_DIGIT(buf
[6]) * 10) + ASCII_DIGIT(buf
[7]);
39 tms
.tm_hour
= (ASCII_DIGIT(buf
[8]) * 10) + ASCII_DIGIT(buf
[9]);
40 tms
.tm_min
= (ASCII_DIGIT(buf
[10]) * 10) + ASCII_DIGIT(buf
[11]);
41 tms
.tm_sec
= (ASCII_DIGIT(buf
[12]) * 10) + ASCII_DIGIT(buf
[13]);