From: Witold Kręcicki Date: Mon, 22 Oct 2018 11:18:45 +0000 (+0000) Subject: Get rid of isc_taskmgr_setmode, we only use it to set privileged mode X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=32b9631d1a30c5d0b648d0a768c30c64d3fb6846;p=thirdparty%2Fbind9.git Get rid of isc_taskmgr_setmode, we only use it to set privileged mode --- diff --git a/bin/named/server.c b/bin/named/server.c index 1fc81d8991e..991db966828 100644 --- a/bin/named/server.c +++ b/bin/named/server.c @@ -9319,8 +9319,7 @@ load_zones(named_server_t *server, bool init, bool reconfig) { * the initial server setup; it isn't necessary during * a reload.) */ - isc_taskmgr_setmode(named_g_taskmgr, - isc_taskmgrmode_privileged); + isc_taskmgr_setprivilegedmode(named_g_taskmgr); } isc_task_endexclusive(server->task); diff --git a/lib/isc/include/isc/task.h b/lib/isc/include/isc/task.h index 7746f1c12dd..d3146f51a78 100644 --- a/lib/isc/include/isc/task.h +++ b/lib/isc/include/isc/task.h @@ -672,7 +672,7 @@ isc_taskmgr_create(isc_mem_t *mctx, unsigned int workers, */ void -isc_taskmgr_setmode(isc_taskmgr_t *manager, isc_taskmgrmode_t mode); +isc_taskmgr_setprivilegedmode(isc_taskmgr_t *manager); isc_taskmgrmode_t isc_taskmgr_mode(isc_taskmgr_t *manager); diff --git a/lib/isc/task.c b/lib/isc/task.c index f6a4dc003ff..2dd05a4e968 100644 --- a/lib/isc/task.c +++ b/lib/isc/task.c @@ -1450,11 +1450,11 @@ isc_taskmgr_destroy(isc_taskmgr_t **managerp) { } void -isc_taskmgr_setmode(isc_taskmgr_t *manager0, isc_taskmgrmode_t mode) { +isc_taskmgr_setprivilegedmode(isc_taskmgr_t *manager0) { isc__taskmgr_t *manager = (isc__taskmgr_t *)manager0; LOCK(&manager->lock); - manager->mode = mode; + manager->mode = isc_taskmgrmode_privileged; UNLOCK(&manager->lock); } diff --git a/lib/isc/tests/task_test.c b/lib/isc/tests/task_test.c index 2cb299d4de7..fb1ce8499ba 100644 --- a/lib/isc/tests/task_test.c +++ b/lib/isc/tests/task_test.c @@ -67,7 +67,6 @@ set_and_drop(isc_task_t *task, isc_event_t *event) { *value = (int) isc_taskmgr_mode(taskmgr); counter++; UNLOCK(&lock); - isc_taskmgr_setmode(taskmgr, isc_taskmgrmode_normal); } /* @@ -230,7 +229,7 @@ ATF_TC_BODY(privileged_events, tc) { isc_task_send(task2, &event); ATF_CHECK_EQ(isc_taskmgr_mode(taskmgr), isc_taskmgrmode_normal); - isc_taskmgr_setmode(taskmgr, isc_taskmgrmode_privileged); + isc_taskmgr_setprivilegedmode(taskmgr); ATF_CHECK_EQ(isc_taskmgr_mode(taskmgr), isc_taskmgrmode_privileged); isc__taskmgr_resume(taskmgr); @@ -351,7 +350,7 @@ ATF_TC_BODY(privilege_drop, tc) { isc_task_send(task2, &event); ATF_CHECK_EQ(isc_taskmgr_mode(taskmgr), isc_taskmgrmode_normal); - isc_taskmgr_setmode(taskmgr, isc_taskmgrmode_privileged); + isc_taskmgr_setprivilegedmode(taskmgr); ATF_CHECK_EQ(isc_taskmgr_mode(taskmgr), isc_taskmgrmode_privileged); isc__taskmgr_resume(taskmgr); @@ -363,14 +362,12 @@ ATF_TC_BODY(privilege_drop, tc) { } /* - * We can't guarantee what order the events fire, but - * we do know *exactly one* of the privileged tasks will - * have run in privileged mode... + * We need to check that all privilege mode events were fired + * in privileged mode, and non privileged in non-privileged. */ - ATF_CHECK(a == isc_taskmgrmode_privileged || - c == isc_taskmgrmode_privileged || + ATF_CHECK(a == isc_taskmgrmode_privileged && + c == isc_taskmgrmode_privileged && d == isc_taskmgrmode_privileged); - ATF_CHECK(a + c + d == isc_taskmgrmode_privileged); /* ...and neither of the non-privileged tasks did... */ ATF_CHECK(b == isc_taskmgrmode_normal || e == isc_taskmgrmode_normal); diff --git a/lib/isc/win32/libisc.def.in b/lib/isc/win32/libisc.def.in index 2761affad60..e15bdacd2bc 100644 --- a/lib/isc/win32/libisc.def.in +++ b/lib/isc/win32/libisc.def.in @@ -647,7 +647,7 @@ isc_taskmgr_renderjson isc_taskmgr_renderxml @END LIBXML2 isc_taskmgr_setexcltask -isc_taskmgr_setmode +isc_taskmgr_setprivilegedmode isc_taskpool_create isc_taskpool_destroy isc_taskpool_expand