use isc_app_block instead of an ugly hack.
This commit is contained in:
@@ -15,7 +15,7 @@
|
||||
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: dighost.c,v 1.183 2001/01/16 23:15:54 bwelling Exp $ */
|
||||
/* $Id: dighost.c,v 1.184 2001/01/17 00:48:18 bwelling Exp $ */
|
||||
|
||||
/*
|
||||
* Notice to programmers: Do not use this code as an example of how to
|
||||
@@ -83,8 +83,7 @@ isc_boolean_t
|
||||
usesearch = ISC_FALSE,
|
||||
qr = ISC_FALSE,
|
||||
is_dst_up = ISC_FALSE,
|
||||
have_domain = ISC_FALSE,
|
||||
is_blocking = ISC_FALSE;
|
||||
have_domain = ISC_FALSE;
|
||||
|
||||
in_port_t port = 53;
|
||||
unsigned int timeout = 0;
|
||||
@@ -2627,9 +2626,9 @@ get_address(char *host, in_port_t port, isc_sockaddr_t *sockaddr) {
|
||||
else {
|
||||
#if defined(HAVE_ADDRINFO) && defined(HAVE_GETADDRINFO)
|
||||
debug ("before getaddrinfo()");
|
||||
is_blocking = ISC_TRUE;
|
||||
isc_app_block();
|
||||
result = getaddrinfo(host, NULL, NULL, &res);
|
||||
is_blocking = ISC_FALSE;
|
||||
isc_app_unblock();
|
||||
if (result != 0) {
|
||||
fatal("Couldn't find server '%s': %s",
|
||||
host, gai_strerror(result));
|
||||
@@ -2640,9 +2639,9 @@ get_address(char *host, in_port_t port, isc_sockaddr_t *sockaddr) {
|
||||
freeaddrinfo(res);
|
||||
#else
|
||||
debug ("before gethostbyname()");
|
||||
is_blocking = ISC_TRUE;
|
||||
isc_app_block();
|
||||
he = gethostbyname(host);
|
||||
is_blocking = ISC_FALSE;
|
||||
isc_app_unblock();
|
||||
if (he == NULL)
|
||||
fatal("Couldn't find server '%s' (h_errno=%d)",
|
||||
host, h_errno);
|
||||
@@ -2694,17 +2693,6 @@ cancel_all(void) {
|
||||
|
||||
debug("cancel_all()");
|
||||
|
||||
if (is_blocking) {
|
||||
/*
|
||||
* If we get here while another thread is blocking, there's
|
||||
* really nothing we can do to make a clean shutdown
|
||||
* without waiting for the block to complete. The only
|
||||
* way to get the system down now is to just exit out,
|
||||
* and trust the OS to clean up for us.
|
||||
*/
|
||||
fputs("Abort.\n", stderr);
|
||||
exit(1);
|
||||
}
|
||||
LOCK_LOOKUP;
|
||||
if (free_now) {
|
||||
UNLOCK_LOOKUP;
|
||||
@@ -2749,17 +2737,6 @@ destroy_libs(void) {
|
||||
dig_searchlist_t *o;
|
||||
|
||||
debug("destroy_libs()");
|
||||
if (is_blocking) {
|
||||
/*
|
||||
* If we get here while another thread is blocking, there's
|
||||
* really nothing we can do to make a clean shutdown
|
||||
* without waiting for the block to complete. The only
|
||||
* way to get the system down now is to just exit out,
|
||||
* and trust the OS to clean up for us.
|
||||
*/
|
||||
fputs("Abort.\n", stderr);
|
||||
exit(1);
|
||||
}
|
||||
if (global_task != NULL) {
|
||||
debug("freeing task");
|
||||
isc_task_detach(&global_task);
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: nslookup.c,v 1.75 2001/01/16 23:15:55 bwelling Exp $ */
|
||||
/* $Id: nslookup.c,v 1.76 2001/01/17 00:48:19 bwelling Exp $ */
|
||||
|
||||
#include <config.h>
|
||||
|
||||
@@ -50,7 +50,7 @@ extern ISC_LIST(dig_server_t) server_list;
|
||||
extern ISC_LIST(dig_searchlist_t) search_list;
|
||||
|
||||
extern isc_boolean_t have_ipv6,
|
||||
usesearch, trace, qr, debugging, is_blocking;
|
||||
usesearch, trace, qr, debugging;
|
||||
extern in_port_t port;
|
||||
extern unsigned int timeout;
|
||||
extern isc_mem_t *mctx;
|
||||
@@ -740,9 +740,9 @@ get_next_command(void) {
|
||||
if (buf == NULL)
|
||||
fatal("Memory allocation failure.");
|
||||
fputs("> ", stderr);
|
||||
is_blocking = ISC_TRUE;
|
||||
isc_app_block();
|
||||
ptr = fgets(buf, COMMSIZE, stdin);
|
||||
is_blocking = ISC_FALSE;
|
||||
isc_app_unblock();
|
||||
if (ptr == NULL) {
|
||||
in_use = ISC_FALSE;
|
||||
goto cleanup;
|
||||
|
||||
Reference in New Issue
Block a user