/src/h2o/include/h2o/time_.h
Line | Count | Source (jump to first uncovered line) |
1 | | /* |
2 | | * Copyright (c) 2015 DeNA Co., Ltd. |
3 | | * |
4 | | * Permission is hereby granted, free of charge, to any person obtaining a copy |
5 | | * of this software and associated documentation files (the "Software"), to |
6 | | * deal in the Software without restriction, including without limitation the |
7 | | * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or |
8 | | * sell copies of the Software, and to permit persons to whom the Software is |
9 | | * furnished to do so, subject to the following conditions: |
10 | | * |
11 | | * The above copyright notice and this permission notice shall be included in |
12 | | * all copies or substantial portions of the Software. |
13 | | * |
14 | | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
15 | | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
16 | | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
17 | | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
18 | | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING |
19 | | * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS |
20 | | * IN THE SOFTWARE. |
21 | | */ |
22 | | #ifndef h2o__time_h |
23 | | #define h2o__time_h |
24 | | |
25 | | #include <stdint.h> |
26 | | #include <sys/time.h> |
27 | | #include <time.h> |
28 | | |
29 | | #ifdef __cplusplus |
30 | | extern "C" { |
31 | | #endif |
32 | | |
33 | 0 | #define H2O_TIMESTR_RFC1123_LEN (sizeof("Sun, 06 Nov 1994 08:49:37 GMT") - 1) |
34 | 0 | #define H2O_TIMESTR_LOG_LEN (sizeof("29/Aug/2014:15:34:38 +0900") - 1) |
35 | | |
36 | | /** |
37 | | * builds a RFC-1123 style date string |
38 | | */ |
39 | | void h2o_time2str_rfc1123(char *buf, struct tm *gmt); |
40 | | /** |
41 | | * converts HTTP-date to packed format (or returns UINT64_MAX on failure) |
42 | | */ |
43 | | int h2o_time_parse_rfc1123(const char *s, size_t len, struct tm *tm); |
44 | | /** |
45 | | * builds an Apache log-style date string |
46 | | */ |
47 | | void h2o_time2str_log(char *buf, time_t time); |
48 | | |
49 | | static inline int64_t h2o_timeval_subtract(struct timeval *from, struct timeval *until) |
50 | 0 | { |
51 | 0 | int32_t delta_sec = (int32_t)until->tv_sec - (int32_t)from->tv_sec; |
52 | 0 | int32_t delta_usec = (int32_t)until->tv_usec - (int32_t)from->tv_usec; |
53 | 0 | int64_t delta = (int64_t)((int64_t)delta_sec * 1000 * 1000L) + delta_usec; |
54 | |
|
55 | 0 | return delta; |
56 | 0 | } Unexecuted instantiation: driver_h3.cc:h2o_timeval_subtract(timeval*, timeval*) Unexecuted instantiation: driver_common.cc:h2o_timeval_subtract(timeval*, timeval*) Unexecuted instantiation: filecache.c:h2o_timeval_subtract Unexecuted instantiation: http3client.c:h2o_timeval_subtract Unexecuted instantiation: time.c:h2o_timeval_subtract Unexecuted instantiation: absprio.c:h2o_timeval_subtract Unexecuted instantiation: config.c:h2o_timeval_subtract Unexecuted instantiation: configurator.c:h2o_timeval_subtract Unexecuted instantiation: context.c:h2o_timeval_subtract Unexecuted instantiation: headers.c:h2o_timeval_subtract Unexecuted instantiation: logconf.c:h2o_timeval_subtract Unexecuted instantiation: proxy.c:h2o_timeval_subtract Unexecuted instantiation: request.c:h2o_timeval_subtract Unexecuted instantiation: util.c:h2o_timeval_subtract Unexecuted instantiation: access_log.c:h2o_timeval_subtract Unexecuted instantiation: compress.c:h2o_timeval_subtract Unexecuted instantiation: gzip.c:h2o_timeval_subtract Unexecuted instantiation: errordoc.c:h2o_timeval_subtract Unexecuted instantiation: expires.c:h2o_timeval_subtract Unexecuted instantiation: fastcgi.c:h2o_timeval_subtract Unexecuted instantiation: file.c:h2o_timeval_subtract Unexecuted instantiation: h2olog.c:h2o_timeval_subtract Unexecuted instantiation: headers_util.c:h2o_timeval_subtract Unexecuted instantiation: http2_debug_state.c:h2o_timeval_subtract Unexecuted instantiation: mimemap.c:h2o_timeval_subtract Unexecuted instantiation: connect.c:h2o_timeval_subtract Unexecuted instantiation: redirect.c:h2o_timeval_subtract Unexecuted instantiation: reproxy.c:h2o_timeval_subtract Unexecuted instantiation: throttle_resp.c:h2o_timeval_subtract Unexecuted instantiation: self_trace.c:h2o_timeval_subtract Unexecuted instantiation: server_timing.c:h2o_timeval_subtract Unexecuted instantiation: status.c:h2o_timeval_subtract Unexecuted instantiation: events.c:h2o_timeval_subtract Unexecuted instantiation: memory.c:h2o_timeval_subtract Unexecuted instantiation: requests.c:h2o_timeval_subtract Unexecuted instantiation: ssl.c:h2o_timeval_subtract Unexecuted instantiation: durations.c:h2o_timeval_subtract Unexecuted instantiation: http1.c:h2o_timeval_subtract Unexecuted instantiation: connection.c:h2o_timeval_subtract Unexecuted instantiation: scheduler.c:h2o_timeval_subtract Unexecuted instantiation: stream.c:h2o_timeval_subtract Unexecuted instantiation: qpack.c:h2o_timeval_subtract Unexecuted instantiation: common.c:h2o_timeval_subtract Unexecuted instantiation: server.c:h2o_timeval_subtract Unexecuted instantiation: brotli.c:h2o_timeval_subtract |
57 | | |
58 | | static inline int h2o_timeval_is_null(struct timeval *tv) |
59 | 3.21k | { |
60 | 3.21k | return tv->tv_sec == 0; |
61 | 3.21k | } Unexecuted instantiation: driver_h3.cc:h2o_timeval_is_null(timeval*) Unexecuted instantiation: driver_common.cc:h2o_timeval_is_null(timeval*) Unexecuted instantiation: filecache.c:h2o_timeval_is_null Unexecuted instantiation: http3client.c:h2o_timeval_is_null Unexecuted instantiation: time.c:h2o_timeval_is_null Unexecuted instantiation: absprio.c:h2o_timeval_is_null Unexecuted instantiation: config.c:h2o_timeval_is_null Unexecuted instantiation: configurator.c:h2o_timeval_is_null Unexecuted instantiation: context.c:h2o_timeval_is_null Unexecuted instantiation: headers.c:h2o_timeval_is_null Unexecuted instantiation: logconf.c:h2o_timeval_is_null Unexecuted instantiation: proxy.c:h2o_timeval_is_null Unexecuted instantiation: request.c:h2o_timeval_is_null Unexecuted instantiation: util.c:h2o_timeval_is_null Unexecuted instantiation: access_log.c:h2o_timeval_is_null Unexecuted instantiation: compress.c:h2o_timeval_is_null Unexecuted instantiation: gzip.c:h2o_timeval_is_null Unexecuted instantiation: errordoc.c:h2o_timeval_is_null Unexecuted instantiation: expires.c:h2o_timeval_is_null Unexecuted instantiation: fastcgi.c:h2o_timeval_is_null Unexecuted instantiation: file.c:h2o_timeval_is_null Unexecuted instantiation: h2olog.c:h2o_timeval_is_null Unexecuted instantiation: headers_util.c:h2o_timeval_is_null Unexecuted instantiation: http2_debug_state.c:h2o_timeval_is_null Unexecuted instantiation: mimemap.c:h2o_timeval_is_null Unexecuted instantiation: connect.c:h2o_timeval_is_null Unexecuted instantiation: redirect.c:h2o_timeval_is_null Unexecuted instantiation: reproxy.c:h2o_timeval_is_null Unexecuted instantiation: throttle_resp.c:h2o_timeval_is_null Unexecuted instantiation: self_trace.c:h2o_timeval_is_null Unexecuted instantiation: server_timing.c:h2o_timeval_is_null Unexecuted instantiation: status.c:h2o_timeval_is_null Unexecuted instantiation: events.c:h2o_timeval_is_null Unexecuted instantiation: memory.c:h2o_timeval_is_null Unexecuted instantiation: requests.c:h2o_timeval_is_null Unexecuted instantiation: ssl.c:h2o_timeval_is_null Unexecuted instantiation: durations.c:h2o_timeval_is_null Unexecuted instantiation: http1.c:h2o_timeval_is_null Unexecuted instantiation: connection.c:h2o_timeval_is_null Unexecuted instantiation: scheduler.c:h2o_timeval_is_null Unexecuted instantiation: stream.c:h2o_timeval_is_null Unexecuted instantiation: qpack.c:h2o_timeval_is_null Unexecuted instantiation: common.c:h2o_timeval_is_null server.c:h2o_timeval_is_null Line | Count | Source | 59 | 3.21k | { | 60 | 3.21k | return tv->tv_sec == 0; | 61 | 3.21k | } |
Unexecuted instantiation: brotli.c:h2o_timeval_is_null |
62 | | |
63 | | #ifdef __cplusplus |
64 | | } |
65 | | #endif |
66 | | |
67 | | #endif |