xref: /lighttpd1.4/src/http_date.h (revision 309c1693)
1f8cc9fb9SGlenn Strauss /*
2f8cc9fb9SGlenn Strauss  * http_date - HTTP date manipulation
3f8cc9fb9SGlenn Strauss  *
4f8cc9fb9SGlenn Strauss  * Copyright(c) 2015 Glenn Strauss gstrauss()gluelogic.com  All rights reserved
5f8cc9fb9SGlenn Strauss  * License: BSD 3-clause (same as lighttpd)
6f8cc9fb9SGlenn Strauss  */
7f8cc9fb9SGlenn Strauss #ifndef INCLUDED_HTTP_DATE_H
8f8cc9fb9SGlenn Strauss #define INCLUDED_HTTP_DATE_H
9f8cc9fb9SGlenn Strauss #include "first.h"
10f8cc9fb9SGlenn Strauss 
11a0b615acSGlenn Strauss #include "sys-time.h"
12a0b615acSGlenn Strauss 
13f8cc9fb9SGlenn Strauss 
14f8cc9fb9SGlenn Strauss #ifdef __cplusplus
15f8cc9fb9SGlenn Strauss extern "C" {
16f8cc9fb9SGlenn Strauss #endif
17f8cc9fb9SGlenn Strauss 
18f8cc9fb9SGlenn Strauss 
19f8cc9fb9SGlenn Strauss #define HTTP_DATE_SZ 30  /* (IMF-fixdate is 29 chars + '\0') */
20f8cc9fb9SGlenn Strauss 
21*309c1693SGlenn Strauss uint32_t http_date_time_to_str (char *s, size_t sz, unix_time64_t t);
22f8cc9fb9SGlenn Strauss 
23*309c1693SGlenn Strauss int http_date_if_modified_since (const char *ifmod, uint32_t ifmodlen, unix_time64_t lmtime);
24f8cc9fb9SGlenn Strauss 
253a568c63SGlenn Strauss /*(convenience macro to append IMF-fixdate to (buffer *))*/
263a568c63SGlenn Strauss #define http_date_time_append(b, t)                                           \
273a568c63SGlenn Strauss   do {                                                                        \
283a568c63SGlenn Strauss     if (!http_date_time_to_str(buffer_extend((b), HTTP_DATE_SZ-1),            \
293a568c63SGlenn Strauss                                HTTP_DATE_SZ, (t)))                            \
303a568c63SGlenn Strauss         buffer_truncate((b), (b)->used - HTTP_DATE_SZ); /*(truncate if err)*/ \
313a568c63SGlenn Strauss   } while (0)
32f8cc9fb9SGlenn Strauss 
33f8cc9fb9SGlenn Strauss #ifdef __cplusplus
34f8cc9fb9SGlenn Strauss }
35f8cc9fb9SGlenn Strauss #endif
36f8cc9fb9SGlenn Strauss 
37f8cc9fb9SGlenn Strauss 
38f8cc9fb9SGlenn Strauss #endif
39