From: Alan T. DeKok Date: Thu, 19 Oct 2017 12:36:45 +0000 (-0400) Subject: add configurable poll_interval X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=da2c8a230d0cd096995419a2a4f67dbf4d9a8cce;p=thirdparty%2Ffreeradius-server.git add configurable poll_interval --- diff --git a/src/modules/proto_detail/proto_detail.h b/src/modules/proto_detail/proto_detail.h index 3e9f89d6e9b..8dfa12cae0c 100644 --- a/src/modules/proto_detail/proto_detail.h +++ b/src/modules/proto_detail/proto_detail.h @@ -79,6 +79,8 @@ typedef struct proto_detail_work_t { char const *filename; //!< file name, usually with wildcards char const *filename_work; //!< work file name + uint32_t poll_interval; //!< interval between polling + bool vnode; //!< are we the vnode instance, //!< or the filename_work instance? bool eof; //!< are we at EOF on reading? diff --git a/src/modules/proto_detail/proto_detail_file.c b/src/modules/proto_detail/proto_detail_file.c index 093dfe1272c..0c5d4781798 100644 --- a/src/modules/proto_detail/proto_detail_file.c +++ b/src/modules/proto_detail/proto_detail_file.c @@ -67,6 +67,8 @@ static const CONF_PARSER file_listen_config[] = { { FR_CONF_OFFSET("track", FR_TYPE_BOOL, proto_detail_file_t, track_progress ) }, + { FR_CONF_OFFSET("poll_interval", FR_TYPE_UINT32, proto_detail_file_t, poll_interval ) }, + CONF_PARSER_TERMINATOR }; @@ -392,11 +394,9 @@ redo: } /* - * Check every 5 seconds. - * - * @todo - make this configurable. + * Check every N seconds. */ - when.tv_sec = 5; + when.tv_sec = inst->poll_interval; when.tv_usec = 0; DEBUG3("Waiting %d.%06ds for new files in %s", @@ -463,6 +463,9 @@ static int mod_bootstrap(void *instance, CONF_SECTION *cs) dl_inst = dl_instance_find(instance); rad_assert(dl_inst); + FR_INTEGER_BOUND_CHECK("poll_interval", inst->poll_interval, >=, 1); + FR_INTEGER_BOUND_CHECK("poll_interval", inst->poll_interval, <=, 3600); + inst->parent = talloc_get_type_abort(dl_inst->parent->data, proto_detail_t); inst->cs = cs; inst->fd = -1;