summaryrefslogtreecommitdiff
path: root/source4/nbt_server/register.c
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2005-02-03 02:35:52 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 13:09:29 -0500
commit66170ef8b36b499aa5b44ef10c1bd362a50f2636 (patch)
tree5bfb3d759ad397a6a42588b97802e237781c35e8 /source4/nbt_server/register.c
parent1774b36c1464e1f04f982b83577e62fa31cbeef9 (diff)
downloadsamba-66170ef8b36b499aa5b44ef10c1bd362a50f2636.tar.gz
samba-66170ef8b36b499aa5b44ef10c1bd362a50f2636.tar.bz2
samba-66170ef8b36b499aa5b44ef10c1bd362a50f2636.zip
r5185: make all the events data structures private to events.c. This will
make it possible to add optimisations to the events code such as keeping the next timed event in a sorted list, and using epoll for file descriptor events. I also removed the loop events code, as it wasn't being used anywhere, and changed timed events to always be one-shot (as adding a new timed event in the event handler is so easy to do if needed) (This used to be commit d7b4b6de51342a65bf46fce772d313f92f8d73d3)
Diffstat (limited to 'source4/nbt_server/register.c')
-rw-r--r--source4/nbt_server/register.c14
1 files changed, 6 insertions, 8 deletions
diff --git a/source4/nbt_server/register.c b/source4/nbt_server/register.c
index 6b75c992a9..6f308a0ba9 100644
--- a/source4/nbt_server/register.c
+++ b/source4/nbt_server/register.c
@@ -72,9 +72,9 @@ static void refresh_completion_handler(struct nbt_name_request *req)
handle name refresh timer events
*/
static void name_refresh_handler(struct event_context *ev, struct timed_event *te,
- struct timeval t)
+ struct timeval t, void *private)
{
- struct nbt_iface_name *iname = talloc_get_type(te->private, struct nbt_iface_name);
+ struct nbt_iface_name *iname = talloc_get_type(private, struct nbt_iface_name);
struct nbt_interface *iface = iname->iface;
struct nbt_name_refresh io;
struct nbt_name_request *req;
@@ -101,17 +101,15 @@ static void name_refresh_handler(struct event_context *ev, struct timed_event *t
*/
static void nbt_start_refresh_timer(struct nbt_iface_name *iname)
{
- struct timed_event te;
uint32_t refresh_time;
uint32_t max_refresh_time = lp_parm_int(-1, "nbtd", "max_refresh_time", 7200);
refresh_time = MIN(max_refresh_time, iname->ttl/2);
- te.next_event = timeval_current_ofs(refresh_time, 0);
- te.handler = name_refresh_handler;
- te.private = iname;
-
- event_add_timed(iname->iface->nbtsrv->task->event_ctx, &te, iname);
+ event_add_timed(iname->iface->nbtsrv->task->event_ctx,
+ iname,
+ timeval_current_ofs(refresh_time, 0),
+ name_refresh_handler, iname);
}