1 /*
2 * h_site_idle.c
3 *
4 * (C)2000-2011 by Marc Huber <Marc.Huber@web.de>
5 * All rights reserved.
6 *
7 * $Id: h_site_idle.c,v 1.12 2015/03/14 06:11:26 marc Exp marc $
8 *
9 */
10
11 #include "headers.h"
12
13 static const char rcsid[] __attribute__ ((used)) = "$Id: h_site_idle.c,v 1.12 2015/03/14 06:11:26 marc Exp marc $";
14
h_site_idle(struct context * ctx,char * arg)15 void h_site_idle(struct context *ctx, char *arg)
16 {
17 DebugIn(DEBUG_COMMAND);
18
19 if (arg) {
20 u_long t;
21 if (1 == sscanf(arg, "%lu", &t)) {
22 if ((time_t) t < ctx->idle_timeout_min || (time_t) t > ctx->idle_timeout_max)
23 replyf(ctx, MSG_501_Inactivity_range, ctx->idle_timeout_min, ctx->idle_timeout_max);
24 else {
25 io_sched_del(ctx->io, ctx, (void *) cleanup);
26 ctx->idle_timeout = (time_t) t;
27 if (t)
28 io_sched_app(ctx->io, ctx, (void *) cleanup, (time_t) t, 0);
29 replyf(ctx, MSG_200_Inactivity_set, ctx->idle_timeout);
30 }
31 } else
32 reply(ctx, MSG_500_Inactivity);
33 } else
34 replyf(ctx, MSG_200_Current_inactivity, ctx->idle_timeout);
35
36 DebugOut(DEBUG_COMMAND);
37 }
38