From 66170ef8b36b499aa5b44ef10c1bd362a50f2636 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Thu, 3 Feb 2005 02:35:52 +0000 Subject: 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) --- source4/nbt_server/register.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) (limited to 'source4/nbt_server/register.c') diff --git a/source4/nbt_server/register.c b/source4/nbt_server/register.c index 6b75c992a99..6f308a0ba93 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); } -- cgit