aboutsummaryrefslogtreecommitdiffstats
path: root/library/cpp/http/misc/httpdate.cpp
diff options
context:
space:
mode:
authorsergey <sergey@yandex-team.ru>2022-02-10 16:47:29 +0300
committerDaniil Cherednik <dcherednik@yandex-team.ru>2022-02-10 16:47:29 +0300
commit5d8d1af4df7f9cd4acc021f069546c30677e7979 (patch)
tree07a39da188e8b418699f992f22d829a37a1411b2 /library/cpp/http/misc/httpdate.cpp
parent32b231c8474a1ade4bdf776ade6a20341691d9d7 (diff)
downloadydb-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.cpp90
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);