MCPcopy Create free account
hub / github.com/apache/httpd / print_time

Function print_time

modules/md/mod_md_status.c:249–296  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

247}
248
249static void print_time(status_ctx *ctx, const char *label, apr_time_t t)
250{
251 apr_bucket_brigade *bb = ctx->bb;
252 apr_time_t now;
253 const char *pre, *post, *sep;
254 char ts[APR_RFC822_DATE_LEN];
255 char ts2[128];
256 apr_time_exp_t texp;
257 apr_size_t len;
258 apr_interval_time_t delta;
259
260 if (t == 0) {
261 /* timestamp is 0, we use that for "not set" */
262 return;
263 }
264 apr_time_exp_gmt(&texp, t);
265 now = apr_time_now();
266 pre = post = "";
267 sep = (label && strlen(label))? " " : "";
268 delta = 0;
269 if (HTML_STATUS(ctx)) {
270 apr_rfc822_date(ts, t);
271 if (t > now) {
272 delta = t - now;
273 pre = "in ";
274 }
275 else {
276 delta = now - t;
277 post = " ago";
278 }
279 if (delta >= (4 * apr_time_from_sec(MD_SECS_PER_DAY))) {
280 apr_strftime(ts2, &len, sizeof(ts2)-1, "%Y-%m-%d", &texp);
281 ts2[len] = '\0';
282 apr_brigade_printf(bb, NULL, NULL, "%s%s<span title='%s' "
283 "style='white-space: nowrap;'>%s</span>",
284 label, sep, ts, ts2);
285 }
286 else {
287 apr_brigade_printf(bb, NULL, NULL, "%s%s<span title='%s'>%s%s%s</span>",
288 label, sep, ts, pre, md_duration_roughly(bb->p, delta), post);
289 }
290 }
291 else {
292 delta = t - now;
293 apr_brigade_printf(bb, NULL, NULL, "%s%s: %" APR_TIME_T_FMT "\n",
294 ctx->prefix, label, apr_time_sec(delta));
295 }
296}
297
298static void si_val_valid_time(status_ctx *ctx, md_json_t *mdj, const status_info *info)
299{

Callers 3

print_job_summaryFunction · 0.85
si_val_activityFunction · 0.85
si_val_ocsp_activityFunction · 0.85

Calls 1

md_duration_roughlyFunction · 0.85

Tested by

no test coverage detected