relevant added by milos on Thu Apr 5 11:02:39 2012

(let ((do-sth (prepare *db*
					   "SELECT domains.name, domains.status, domains.ttl, domains.client_hold,
					   COALESCE(host_domain_links.id, -1) AS hd_id,
					   COALESCE(hosts.name, '') AS ho_name,
					   COALESCE(hosts.ipv4, '') AS ho_ipv4,
					   COALESCE(hosts.ipv6, '') AS ho_ipv6,
					   COALESCE(forwardings.url, '') AS fw_url
					   FROM domains
					   LEFT JOIN forwardings ON forwardings.domain_id = domains.id
					   LEFT JOIN host_domain_links ON host_domain_links.domain_id = domains.id
					   LEFT JOIN hosts on host_domain_links.host_id = hosts.id
					   WHERE domains.name LIKE '%.la';")))
  (let loop ([s (step do-sth)])
	(if (not (equal? s 'done))
	  (let* ((row (row-alist do-sth))
			 (status (alist-ref 'status row))
			 (name (string-downcase (alist-ref 'name row)))
			 (prefix (get-prefix name))
			 (client-hold (alist-ref 'client_hold row))
			 (hd-id (alist-ref 'hd_id row))
			 (fw-url (alist-ref 'fw_url row)))
		(begin
		  (display row)
		  (newline)
		  (cond
			((equal? status "B")
			 (hash-table-set! *nxdomains* name "This domain name has been banned by the registry for legal, operational or security reasons."))
			((equal? status "H")
			 (hash-table-set! *nxdomains* name "serverHold"))
			((equal? status "C")
			 (hash-table-set! *nxdomains* name "pendingCreate"))
			((equal? status "P")
			 (hash-table-set! *nxdomains* name "pendingDelete"))
			((equal? status "I")
			 (hash-table-set! *nxdomains* name "pendingDelete"))
			((equal? client-hold "Y")
			 (hash-table-set! *nxdomains* name "clientHold"))
			((< hd-id 1)
			 ((if (equal? fw-url "")
				(hash-table-set! *parked* name 1)
				(hash-table-set! *forwarded* name 1))))
			(else (ns-record row)))
		  (loop (step do-sth)))))))