From 17a3dac64525d65ea3aa510ea78563fd0902561b Mon Sep 17 00:00:00 2001 From: cresh Date: Mon, 8 Jul 2002 09:13:56 +0000 Subject: [PATCH] minor bugfixes in concurrent lookup & error handling --- scheme/lib/dns.scm | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/scheme/lib/dns.scm b/scheme/lib/dns.scm index f006e06..9a918ce 100644 --- a/scheme/lib/dns.scm +++ b/scheme/lib/dns.scm @@ -132,6 +132,7 @@ ;; called by the error-handlers, prints out error descriptions (define (dns-error-messages condition more) + (display "dns-error: ") (cond ((invalid-type? condition) (display "make-octet-question: invalid DNS query type\n")) @@ -1015,12 +1016,13 @@ (release-lock lock))))) (map (lambda (adr32) (address32->ip-string adr32)) (dns-find-nameserver-list))))) + (obtain-lock lock) (let loop ((count (length nameserver-list))) - (obtain-lock lock) - (let ((result (dequeue! queue))) - (if (or result (= 1 (length nameserver-list))) - result - (loop (- count 1))))))) + (if (not (queue-empty? queue)) + (let ((result (dequeue! queue))) + (if (or result (= 1 (length nameserver-list))) + result + (loop (- count 1)))))))) ;; checks the arguments of the simple lookup functions. ;; if a nameserver-name is given and not a nameserver-ip