#include <config.h>
#include <unistd.h>
#include <isc/app.h>
#include <isc/magic.h>
#include <isc/mutex.h>
#include <isc/once.h>
#include <isc/util.h>
Go to the source code of this file.
Defines | |
#define | ISCAPI_APPMETHODS_VALID(m) ISC_MAGIC_VALID(m, ISCAPI_APPMETHODS_MAGIC) |
Functions | |
static void | initialize (void) |
isc_result_t | isc_app_register (isc_appctxcreatefunc_t createfunc) |
Register a new application implementation and add it to the list of supported implementations. This function must be called when a different event library is used than the one contained in the ISC library. | |
isc_result_t | isc_appctx_create (isc_mem_t *mctx, isc_appctx_t **ctxp) |
Create an application context. | |
void | isc_appctx_destroy (isc_appctx_t **ctxp) |
Destroy an application context. | |
isc_result_t | isc_app_ctxstart (isc_appctx_t *ctx) |
isc_result_t | isc_app_ctxrun (isc_appctx_t *ctx) |
isc_result_t | isc_app_ctxonrun (isc_appctx_t *ctx, isc_mem_t *mctx, isc_task_t *task, isc_taskaction_t action, void *arg) |
isc_result_t | isc_app_ctxsuspend (isc_appctx_t *ctx) |
This has the same behavior as isc_app_ctxsuspend(). | |
isc_result_t | isc_app_ctxshutdown (isc_appctx_t *ctx) |
void | isc_app_ctxfinish (isc_appctx_t *ctx) |
void | isc_appctx_settaskmgr (isc_appctx_t *ctx, isc_taskmgr_t *taskmgr) |
Associate a task manager with an application context. | |
void | isc_appctx_setsocketmgr (isc_appctx_t *ctx, isc_socketmgr_t *socketmgr) |
Associate a socket manager with an application context. | |
void | isc_appctx_settimermgr (isc_appctx_t *ctx, isc_timermgr_t *timermgr) |
Associate a socket timer with an application context. | |
isc_result_t | isc_app_start (void) |
Start an ISC library application. | |
isc_result_t | isc_app_onrun (isc_mem_t *mctx, isc_task_t *task, isc_taskaction_t action, void *arg) |
Request delivery of an event when the application is run. | |
isc_result_t | isc_app_run () |
Run an ISC library application. | |
isc_boolean_t | isc_app_isrunning () |
Return if the ISC library application is running. | |
isc_result_t | isc_app_shutdown (void) |
Request application shutdown. | |
isc_result_t | isc_app_reload (void) |
Request application reload. | |
void | isc_app_finish (void) |
Finish an ISC library application. | |
void | isc_app_block (void) |
Indicate that a blocking operation will be performed. | |
void | isc_app_unblock (void) |
Indicate that a blocking operation is complete. | |
Variables | |
static isc_mutex_t | createlock |
static isc_once_t | once = ISC_ONCE_INIT |
static isc_appctxcreatefunc_t | appctx_createfunc = NULL |
static isc_boolean_t | is_running = ISC_FALSE |
#define ISCAPI_APPMETHODS_VALID | ( | m | ) | ISC_MAGIC_VALID(m, ISCAPI_APPMETHODS_MAGIC) |
static void initialize | ( | void | ) | [static] |
Definition at line 37 of file app_api.c.
References createlock, isc_mutex_init, ISC_R_SUCCESS, and RUNTIME_CHECK.
Referenced by dns_db_create(), dns_db_register(), dns_db_unregister(), dns_lib_init(), dns_result_register(), dns_result_totext(), dst_result_register(), dst_result_totext(), isc_app_register(), isc_net_probeipv4(), isc_net_probeipv6(), isc_net_probeunix(), isc_random_get(), isc_random_seed(), isc_result_register(), isc_result_totext(), isc_socket_register(), isc_task_register(), isc_timer_register(), isccc_result_register(), isccc_result_totext(), pk11_initialize(), pk11_result_register(), and pk11_result_totext().
isc_result_t isc_app_register | ( | isc_appctxcreatefunc_t | createfunc | ) |
Register a new application implementation and add it to the list of supported implementations. This function must be called when a different event library is used than the one contained in the ISC library.
Definition at line 42 of file app_api.c.
References appctx_createfunc, createlock, initialize(), isc_once_do, ISC_R_EXISTS, ISC_R_SUCCESS, LOCK, once, RUNTIME_CHECK, and UNLOCK.
isc_result_t isc_appctx_create | ( | isc_mem_t * | mctx, | |
isc_appctx_t ** | ctxp | |||
) |
Create an application context.
Requires:
Definition at line 58 of file app_api.c.
References appctx_createfunc, createlock, isc__appctx_create(), isc_bind9, LOCK, REQUIRE, and UNLOCK.
Referenced by dns_client_create().
void isc_appctx_destroy | ( | isc_appctx_t ** | ctxp | ) |
Destroy an application context.
Requires:
Definition at line 75 of file app_api.c.
References ENSURE, isc__appctx_destroy(), isc_bind9, ISCAPI_APPCTX_VALID, and REQUIRE.
Referenced by destroyclient(), and dns_client_create().
isc_result_t isc_app_ctxstart | ( | isc_appctx_t * | ctx | ) |
Definition at line 87 of file app_api.c.
References isc_appmethods::ctxstart, isc__app_ctxstart(), isc_bind9, ISCAPI_APPCTX_VALID, isc_appctx::methods, and REQUIRE.
Referenced by dns_client_create().
isc_result_t isc_app_ctxrun | ( | isc_appctx_t * | ctx | ) |
Definition at line 97 of file app_api.c.
References isc_appmethods::ctxrun, isc__app_ctxrun(), isc_bind9, ISCAPI_APPCTX_VALID, isc_appctx::methods, and REQUIRE.
Referenced by dns_client_request(), dns_client_resolve(), and dns_client_update().
isc_result_t isc_app_ctxonrun | ( | isc_appctx_t * | ctx, | |
isc_mem_t * | mctx, | |||
isc_task_t * | task, | |||
isc_taskaction_t | action, | |||
void * | arg | |||
) |
Definition at line 107 of file app_api.c.
References isc_appmethods::ctxonrun, isc__app_ctxonrun(), isc_bind9, ISCAPI_APPCTX_VALID, isc_appctx::methods, and REQUIRE.
Referenced by resolve_done().
isc_result_t isc_app_ctxsuspend | ( | isc_appctx_t * | ctx | ) |
This has the same behavior as isc_app_ctxsuspend().
Definition at line 120 of file app_api.c.
References isc_appmethods::ctxsuspend, isc__app_ctxsuspend(), isc_bind9, ISCAPI_APPCTX_VALID, isc_appctx::methods, and REQUIRE.
Referenced by internal_update_callback(), localrequest_done(), resolve_done(), and suspend().
isc_result_t isc_app_ctxshutdown | ( | isc_appctx_t * | ctx | ) |
Definition at line 130 of file app_api.c.
References isc_appmethods::ctxshutdown, isc__app_ctxshutdown(), isc_bind9, ISCAPI_APPCTX_VALID, isc_appctx::methods, and REQUIRE.
void isc_app_ctxfinish | ( | isc_appctx_t * | ctx | ) |
Definition at line 140 of file app_api.c.
References isc_appmethods::ctxfinish, isc__app_ctxfinish(), isc_bind9, ISCAPI_APPCTX_VALID, isc_appctx::methods, and REQUIRE.
Referenced by destroyclient().
void isc_appctx_settaskmgr | ( | isc_appctx_t * | ctx, | |
isc_taskmgr_t * | taskmgr | |||
) |
Associate a task manager with an application context.
This must be done before running tasks within the application context.
Requires:
Definition at line 150 of file app_api.c.
References isc__appctx_settaskmgr(), isc_bind9, ISCAPI_APPCTX_VALID, isc_appctx::methods, REQUIRE, and isc_appmethods::settaskmgr.
Referenced by isc_taskmgr_createinctx().
void isc_appctx_setsocketmgr | ( | isc_appctx_t * | ctx, | |
isc_socketmgr_t * | socketmgr | |||
) |
Associate a socket manager with an application context.
This must be done before handling socket events within the application context.
Requires:
Definition at line 161 of file app_api.c.
References isc__appctx_setsocketmgr(), isc_bind9, ISCAPI_APPCTX_VALID, isc_appctx::methods, REQUIRE, and isc_appmethods::setsocketmgr.
Referenced by isc_socketmgr_createinctx().
void isc_appctx_settimermgr | ( | isc_appctx_t * | ctx, | |
isc_timermgr_t * | timermgr | |||
) |
Associate a socket timer with an application context.
This must be done before handling timer events within the application context.
Requires:
Definition at line 172 of file app_api.c.
References isc__appctx_settimermgr(), isc_bind9, ISCAPI_APPCTX_VALID, isc_appctx::methods, REQUIRE, and isc_appmethods::settimermgr.
Referenced by isc_timermgr_createinctx().
isc_result_t isc_app_start | ( | void | ) |
Start an ISC library application.
Notes: This call should be made before any other ISC library call, and as close to the beginning of the application as possible.
Requires:
Definition at line 183 of file app_api.c.
References isc__app_start(), isc_bind9, and ISC_R_NOTIMPLEMENTED.
Referenced by dns_test_begin(), main(), and setup().
isc_result_t isc_app_onrun | ( | isc_mem_t * | mctx, | |
isc_task_t * | task, | |||
isc_taskaction_t | action, | |||
void * | arg | |||
) |
Request delivery of an event when the application is run.
Requires:
Definition at line 191 of file app_api.c.
References isc__app_onrun(), isc_bind9, and ISC_R_NOTIMPLEMENTED.
Referenced by ATF_TC_BODY(), main(), and ns_server_create().
isc_result_t isc_app_run | ( | void | ) |
Run an ISC library application.
Notes:
Definition at line 201 of file app_api.c.
References is_running, isc__app_run(), isc_bind9, ISC_FALSE, ISC_R_NOTIMPLEMENTED, and ISC_TRUE.
Referenced by ATF_TC_BODY(), and main().
isc_boolean_t isc_app_isrunning | ( | void | ) |
Return if the ISC library application is running.
Returns:
Definition at line 216 of file app_api.c.
References is_running.
Referenced by get_address().
isc_result_t isc_app_shutdown | ( | void | ) |
Request application shutdown.
Notes:
Definition at line 221 of file app_api.c.
References isc__app_shutdown(), isc_bind9, and ISC_R_NOTIMPLEMENTED.
Referenced by all_done(), assignwork(), dighost_shutdown(), getinput(), load_done(), ns_control_docommand(), rndc_recvdone(), and rndc_senddone().
isc_result_t isc_app_reload | ( | void | ) |
Request application reload.
Requires:
Definition at line 229 of file app_api.c.
References isc__app_reload(), isc_bind9, and ISC_R_NOTIMPLEMENTED.
void isc_app_finish | ( | void | ) |
Finish an ISC library application.
Notes:
Definition at line 237 of file app_api.c.
References isc__app_finish(), and isc_bind9.
Referenced by cleanup_managers(), and main().
void isc_app_block | ( | void | ) |
Indicate that a blocking operation will be performed.
Notes:
Definition at line 245 of file app_api.c.
References isc__app_block(), and isc_bind9.
Referenced by do_next_command(), get_address(), get_addresses(), and get_next_command().
void isc_app_unblock | ( | void | ) |
Indicate that a blocking operation is complete.
Notes:
Definition at line 253 of file app_api.c.
References isc__app_unblock(), and isc_bind9.
Referenced by do_next_command(), get_address(), get_addresses(), and get_next_command().
isc_mutex_t createlock [static] |
Definition at line 29 of file app_api.c.
Referenced by initialize(), initialize_lock(), isc_app_register(), isc_appctx_create(), isc_hash_create(), isc_mem_register(), isc_socket_register(), isc_socketmgr_create(), and isc_socketmgr_createinctx().
isc_once_t once = ISC_ONCE_INIT [static] |
Definition at line 30 of file app_api.c.
Referenced by dns_db_create(), dns_db_register(), dns_db_unregister(), dns_dlzcreate(), dns_dlzregister(), dns_dlzunregister(), dns_name_destroy(), fromtext_in_wks(), initialize(), isc__strerror(), isc_app_register(), isc_hash_create(), isc_mem_register(), isc_socket_register(), ns_lwresd_configure(), ns_lwresd_shutdown(), ns_stats_dump(), ns_statschannels_configure(), pk11_initialize(), and rbtdb_write_header().
isc_appctxcreatefunc_t appctx_createfunc = NULL [static] |
isc_boolean_t is_running = ISC_FALSE [static] |
Definition at line 32 of file app_api.c.
Referenced by get_address(), isc_app_isrunning(), and isc_app_run().