diff options
author | sergey <sergey@yandex-team.ru> | 2022-02-10 16:47:29 +0300 |
---|---|---|
committer | Daniil Cherednik <dcherednik@yandex-team.ru> | 2022-02-10 16:47:29 +0300 |
commit | 5d8d1af4df7f9cd4acc021f069546c30677e7979 (patch) | |
tree | 07a39da188e8b418699f992f22d829a37a1411b2 /library/cpp/http/misc/httpdate.cpp | |
parent | 32b231c8474a1ade4bdf776ade6a20341691d9d7 (diff) | |
download | ydb-5d8d1af4df7f9cd4acc021f069546c30677e7979.tar.gz |
Restoring authorship annotation for <sergey@yandex-team.ru>. Commit 1 of 2.
Diffstat (limited to 'library/cpp/http/misc/httpdate.cpp')
-rw-r--r-- | library/cpp/http/misc/httpdate.cpp | 90 |
1 files changed, 45 insertions, 45 deletions
diff --git a/library/cpp/http/misc/httpdate.cpp b/library/cpp/http/misc/httpdate.cpp index 4a3031bbf4..1af93b3064 100644 --- a/library/cpp/http/misc/httpdate.cpp +++ b/library/cpp/http/misc/httpdate.cpp @@ -1,69 +1,69 @@ -/*- -* Copyright 1997 Massachusetts Institute of Technology +/*- +* Copyright 1997 Massachusetts Institute of Technology +* +* Permission to use, copy, modify, and distribute this software and +* its documentation for any purpose and without fee is hereby +* granted, provided that both the above copyright notice and this +* permission notice appear in all copies, that both the above +* copyright notice and this permission notice appear in all +* supporting documentation, and that the name of M.I.T. not be used +* in advertising or publicity pertaining to distribution of the +* software without specific, written prior permission. M.I.T. makes +* no representations about the suitability of this software for any +* purpose. It is provided "as is" without express or implied +* warranty. * -* Permission to use, copy, modify, and distribute this software and -* its documentation for any purpose and without fee is hereby -* granted, provided that both the above copyright notice and this -* permission notice appear in all copies, that both the above -* copyright notice and this permission notice appear in all -* supporting documentation, and that the name of M.I.T. not be used -* in advertising or publicity pertaining to distribution of the -* software without specific, written prior permission. M.I.T. makes -* no representations about the suitability of this software for any -* purpose. It is provided "as is" without express or implied -* warranty. -* -* THIS SOFTWARE IS PROVIDED BY M.I.T. ``AS IS''. M.I.T. DISCLAIMS -* ALL EXPRESS OR IMPLIED WARRANTIES WITH REGARD TO THIS SOFTWARE, -* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT -* SHALL M.I.T. BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF -* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT -* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -* SUCH DAMAGE. -*/ +* THIS SOFTWARE IS PROVIDED BY M.I.T. ``AS IS''. M.I.T. DISCLAIMS +* ALL EXPRESS OR IMPLIED WARRANTIES WITH REGARD TO THIS SOFTWARE, +* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT +* SHALL M.I.T. BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF +* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +* SUCH DAMAGE. +*/ #include <util/system/defaults.h> - -#include <sys/types.h> + +#include <sys/types.h> #include <cctype> #include <cstdio> #include <cstdlib> #include <cstring> #include <ctime> - + #include <util/system/compat.h> /* stricmp */ #include <util/system/yassert.h> #include "httpdate.h" #include <util/datetime/base.h> - + static const char *wkdays[] = { - "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" -}; - -static const char *months[] = { - "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", - "Nov", "Dec" -}; + "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" +}; +static const char *months[] = { + "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", + "Nov", "Dec" +}; + int format_http_date(char buf[], size_t size, time_t when) { - struct tm tms; + struct tm tms; GmTimeR(&when, &tms); - -#ifndef HTTP_DATE_ISO_8601 + +#ifndef HTTP_DATE_ISO_8601 return snprintf(buf, size, "%s, %02d %s %04d %02d:%02d:%02d GMT", wkdays[tms.tm_wday], tms.tm_mday, months[tms.tm_mon], tms.tm_year + 1900, tms.tm_hour, tms.tm_min, tms.tm_sec); -#else /* ISO 8601 */ +#else /* ISO 8601 */ return snprintf(buf, size, "%04d%02d%02dT%02d%02d%02d+0000", tms.tm_year + 1900, tms.tm_mon + 1, tms.tm_mday, tms.tm_hour, tms.tm_min, tms.tm_sec); -#endif -} - +#endif +} + char* format_http_date(time_t when, char* buf, size_t buflen) { const int len = format_http_date(buf, buflen, when); |