added interface for dnsd
This commit is contained in:
parent
c2c01e9f4c
commit
d465ef05b7
|
@ -7,6 +7,7 @@
|
|||
;;; Copyright (c) 1996-2002 by Mike Sperber.
|
||||
;;; Copyright (c) 2000-2002 by Martin Gasbichler.
|
||||
;;; Copyright (c) 1998-2001 by Eric Marsden.
|
||||
;;; Copyright (c) 2005-2006 by Norbert Freudemann.
|
||||
;;; For copyright information, see the file COPYING which comes with
|
||||
;;; the distribution.
|
||||
|
||||
|
@ -147,7 +148,7 @@
|
|||
dns-inverse-lookup ; obsolete, use dns-lookup-ip
|
||||
dns-lookup-ip ; simple lookup function
|
||||
dns-lookup-nameserver ; simple lookup function
|
||||
dns-lookup-mail-exchanger ; simple lookpu function
|
||||
dns-lookup-mail-exchanger ; simple lookup function
|
||||
pretty-print-dns-message ; prints a human readable dns-msg
|
||||
force-ip ; reruns a lookup until a ip is resolved
|
||||
force-ip-list ; reruns a lookup until a list of ips is resolved
|
||||
|
@ -160,7 +161,25 @@
|
|||
host-fqdn
|
||||
system-fqdn
|
||||
|
||||
dns-get-information
|
||||
address32? ; for dnsd.scm
|
||||
octet-pair->number ; -"-
|
||||
number->octet-pair ; -"-
|
||||
parse ; -"- produces a message-record-type
|
||||
mc-message->octets ; -"- produces a byte-encoded (compressed) message
|
||||
make-fqdn-name ; -"- maybe adds an ending dot to a string
|
||||
fqdn? ; -"- checks for fully quallified domain names
|
||||
cut-name ; -"- domain name split tool
|
||||
dn-split? ; -"- domain name split tool
|
||||
dns-server-error? ; -"- error condition predicate
|
||||
dns-format-error? ; -"-
|
||||
dns-server-failure? ; -"-
|
||||
dns-name-error? ; -"-
|
||||
dns-not-implemented? ; -"-
|
||||
dns-refused? ; -"-
|
||||
dns-error? ; -"-
|
||||
bad-nameserver? ; -"-
|
||||
dns-query/cache ; -"-
|
||||
add-size-tag
|
||||
|
||||
(network-protocol :syntax)
|
||||
network-protocol?
|
||||
|
@ -171,38 +190,67 @@
|
|||
|
||||
pretty-print-dns-message
|
||||
|
||||
message? message-header message-questions message-answers
|
||||
make-message message? message-header message-questions message-answers
|
||||
message-nameservers message-additionals message-source
|
||||
set-message-source!
|
||||
|
||||
make-query-message make-simple-query-message
|
||||
|
||||
header? header-flags header-question-count header-answer-count
|
||||
header-nameserver-count header-additional-count
|
||||
make-header header? header-id header-flags header-question-count
|
||||
header-answer-count header-nameserver-count header-additional-count
|
||||
|
||||
flags? flags-query-type flags-opcode flags-authoritative?
|
||||
make-flags flags? flags-query-type flags-opcode flags-authoritative?
|
||||
flags-truncated? flags-recursion-desired? flags-recursion-available?
|
||||
flags-zero flags-response-code
|
||||
flags-zero flags-response-code set-flags-response-code!
|
||||
set-flags-authoritative! set-flags-recursion-available!
|
||||
set-flags-truncated!
|
||||
|
||||
question? question-name question-type question-class
|
||||
make-question question? question-name question-type question-class
|
||||
|
||||
(message-class :syntax)
|
||||
message-class? message-class-name message-class-number
|
||||
|
||||
the-message-class
|
||||
message-class-number->type
|
||||
message-class-symbol->type
|
||||
|
||||
(message-type :syntax)
|
||||
message-type? message-type-name message-type-number
|
||||
|
||||
the-message-type
|
||||
message-type-number->type
|
||||
message-type-symbol->type
|
||||
|
||||
make-resource-record
|
||||
resource-record?
|
||||
resource-record-name resource-record-type
|
||||
resource-record-class resource-record-ttl
|
||||
resource-record-name
|
||||
resource-record-type
|
||||
resource-record-class
|
||||
resource-record-ttl
|
||||
resource-record-data
|
||||
|
||||
resource-record-data-a? resource-record-data-a-ip
|
||||
resource-record-data-ns? resource-record-data-ns-name
|
||||
resource-record-data-cname? resource-record-data-cname-name
|
||||
resource-record-data-mx? resource-record-data-mx-preference
|
||||
resource-record-data-mx-exchanger resource-record-data-ptr?
|
||||
resource-record-data-ptr-name
|
||||
make-resource-record-data-a
|
||||
resource-record-data-a?
|
||||
resource-record-data-a-ip
|
||||
|
||||
make-resource-record-data-ns
|
||||
resource-record-data-ns?
|
||||
resource-record-data-ns-name
|
||||
|
||||
make-resource-record-data-cname
|
||||
resource-record-data-cname?
|
||||
resource-record-data-cname-name
|
||||
|
||||
make-resource-record-data-mx
|
||||
resource-record-data-mx?
|
||||
resource-record-data-mx-preference
|
||||
resource-record-data-mx-exchanger
|
||||
|
||||
make-resource-record-data-ptr
|
||||
resource-record-data-ptr?
|
||||
resource-record-data-ptr-name
|
||||
|
||||
make-resource-record-data-soa
|
||||
resource-record-data-soa?
|
||||
resource-record-data-soa-mname
|
||||
resource-record-data-soa-rname
|
||||
|
@ -212,6 +260,18 @@
|
|||
resource-record-data-soa-expire
|
||||
resource-record-data-soa-minimum
|
||||
|
||||
make-resource-record-data-aaaa
|
||||
resource-record-data-aaaa?
|
||||
resource-record-data-aaaa-ipv6
|
||||
|
||||
make-resource-record-data-hinfo
|
||||
resource-record-data-hinfo?
|
||||
resource-record-data-hinfo-data
|
||||
|
||||
make-resource-record-data-txt
|
||||
resource-record-data-txt?
|
||||
resource-record-data-txt-text
|
||||
|
||||
cache? cache-answer cache-ttl cache-time
|
||||
|
||||
resolv.conf-parse-error?
|
||||
|
@ -224,6 +284,7 @@
|
|||
ip-string->address32
|
||||
ip-string->in-addr.arpa-string
|
||||
octet-ip->address32 ;for dns.scm
|
||||
address32->octet-ip ;for dns.scm
|
||||
ip-string?))
|
||||
|
||||
(define-interface cgi-scripts-interface
|
||||
|
@ -266,6 +327,150 @@
|
|||
(export with-fatal-error-handler*
|
||||
(with-fatal-error-handler :syntax)))
|
||||
|
||||
;; DNS server
|
||||
|
||||
(define-interface dnsd-silex-interface
|
||||
(export lexer
|
||||
lexer-getc
|
||||
lexer-ungetc
|
||||
lexer-init))
|
||||
|
||||
(define-interface dnsd-rw-locks-interface
|
||||
(export make-r/w-lock
|
||||
obtain-R/w-lock
|
||||
obtain-r/W-lock
|
||||
release-R/w-lock
|
||||
release-r/W-lock
|
||||
with-R/w-lock
|
||||
with-r/W-lock))
|
||||
|
||||
(define-interface dnsd-semaphores-interface
|
||||
(export make-semaphore
|
||||
set-semaphore!
|
||||
semaphore-post
|
||||
semaphore-wait))
|
||||
|
||||
(define-interface dnsd-mf-parser-interface
|
||||
(export parse-mf))
|
||||
|
||||
(define-interface dnsd-logging-interface
|
||||
(export display-debug
|
||||
apply-w/debug
|
||||
dnsd-log))
|
||||
|
||||
(define-interface dnsd-rr-def-interface
|
||||
(export dns-rr-a
|
||||
dns-rr-ns
|
||||
dns-rr-cname
|
||||
dns-rr-soa
|
||||
dns-rr-ptr
|
||||
dns-rr-hinfo
|
||||
dns-rr-mx
|
||||
dns-rr-txt
|
||||
dns-rr-aaaa))
|
||||
|
||||
(define-interface dnsd-options-interface
|
||||
(export make-default-dnsd-options
|
||||
make-options-from-list
|
||||
dnsd-options?
|
||||
dnsd-options-port
|
||||
dnsd-options-dir
|
||||
dnsd-options-nameservers
|
||||
dnsd-options-use-axfr?
|
||||
dnsd-options-use-cache?
|
||||
dnsd-options-cleanup-interval
|
||||
dnsd-options-retry-interval
|
||||
dnsd-options-use-db?
|
||||
dnsd-options-use-recursion?
|
||||
dnsd-options-rec-timeout
|
||||
dnsd-options-socket-timeout
|
||||
dnsd-options-socket-max-tries
|
||||
dnsd-options-max-connections
|
||||
dnsd-options-blacklist-time
|
||||
dnsd-options-blacklist-value
|
||||
dnsd-options-use-pre/post
|
||||
dnsd-options-debug-mode
|
||||
with-port
|
||||
with-dir
|
||||
with-nameservers
|
||||
with-axfr
|
||||
with-cache
|
||||
with-cleanup-interval
|
||||
with-retry-interval
|
||||
with-db
|
||||
with-recursion
|
||||
with-rec-timeout
|
||||
with-socket-timeout
|
||||
with-socket-max-tries
|
||||
with-max-connections
|
||||
with-blacklist-time
|
||||
with-blacklist-value
|
||||
with-use-pre/post
|
||||
with-debug-mode))
|
||||
|
||||
(define-interface dnsd-database-interface
|
||||
(export maybe-get-soa-rr-name
|
||||
db-clear-database
|
||||
db-clear-zone
|
||||
db-update-zone
|
||||
db-get-zone
|
||||
db-get-zone-for-axfr
|
||||
db-get-zone-soa-rr
|
||||
db-pretty-print
|
||||
db-lookup-rec))
|
||||
|
||||
(define-interface dnsddb-options-interface
|
||||
(export make-default-dnsddb-options
|
||||
make-db-options-from-list
|
||||
dnsddb-options?
|
||||
dnsddb-options-name
|
||||
dnsddb-options-class
|
||||
dnsddb-options-type
|
||||
dnsddb-options-primary? ;; depreached
|
||||
dnsddb-options-file
|
||||
dnsddb-options-filetype
|
||||
dnsddb-options-master-name
|
||||
dnsddb-options-master-ip
|
||||
with-name
|
||||
with-class
|
||||
with-type
|
||||
with-primary?
|
||||
with-file
|
||||
with-filetype
|
||||
with-master-name
|
||||
with-master-ip))
|
||||
|
||||
(define-interface dnsd-cache-interface
|
||||
(export dnsd-cache-clear!
|
||||
dnsd-cache-clean!
|
||||
dnsd-cache-lookup?
|
||||
dnsd-cache-update!
|
||||
dnsd-cache-pretty-print))
|
||||
|
||||
(define-interface dnsd-slist-interface
|
||||
(export dnsd-slist-clear!
|
||||
dnsd-slist-clean!
|
||||
dnsd-slist-lookup
|
||||
dnsd-slist-update!
|
||||
dnsd-slist-pretty-print
|
||||
|
||||
dnsd-blacklist-clear!
|
||||
;deprecated dnsd-blacklist-clean!
|
||||
dnsd-blacklist!
|
||||
dnsd-blacklist-unlist!
|
||||
dnsd-blacklist-print))
|
||||
|
||||
(define-interface dnsd-resolver-interface
|
||||
(export dnsd-ask-resolver-rec
|
||||
dnsd-ask-resolver-direct
|
||||
;; Some stuff needed in dnsd.scm:
|
||||
msg-set-rcode!
|
||||
make-response))
|
||||
|
||||
(define-interface dnsd-interface
|
||||
(export))
|
||||
|
||||
|
||||
;; FTP server
|
||||
|
||||
(define-interface ftpd-interface
|
||||
|
@ -536,21 +741,22 @@
|
|||
|
||||
(define-structure dns dns-interface
|
||||
(open scheme-with-scsh
|
||||
(subset srfi-1 (filter reverse! delete lset-difference lset-union))
|
||||
(subset srfi-1 (filter reverse! delete lset-difference lset-union
|
||||
fold fold-right concatenate))
|
||||
tables
|
||||
ascii
|
||||
formats
|
||||
signals
|
||||
finite-types
|
||||
define-record-types
|
||||
random
|
||||
queues
|
||||
conditions
|
||||
handle
|
||||
sort
|
||||
threads
|
||||
locks
|
||||
ips)
|
||||
ips
|
||||
srfi-27)
|
||||
(files (lib dns)))
|
||||
|
||||
(define-structure ips ips-interface
|
||||
|
@ -610,6 +816,159 @@
|
|||
(open scheme conditions handle)
|
||||
(files (lib handle-fatal-error)))
|
||||
|
||||
;; DNS server ******************************************************************
|
||||
|
||||
(define-structure dnsd dnsd-interface
|
||||
(open scheme-with-scsh
|
||||
(subset srfi-1 (fold-right take drop filter lset-difference lset-union))
|
||||
srfi-2
|
||||
(subset srfi-13 (string-downcase))
|
||||
|
||||
threads
|
||||
thread-fluids ;; fork-thread
|
||||
rendezvous ; Needs SUnterlib
|
||||
rendezvous-channels ; Needs SUnterlib
|
||||
|
||||
tables
|
||||
ascii
|
||||
finite-types
|
||||
define-record-types
|
||||
handle-fatal-error
|
||||
ips ;???
|
||||
dns
|
||||
|
||||
dnsd-options
|
||||
dnsd-logging
|
||||
dnsddb-options
|
||||
;; dnsd-rw-locks
|
||||
dnsd-semaphores
|
||||
dnsd-rr-def
|
||||
dnsd-mf-parser
|
||||
dnsd-database
|
||||
dnsd-cache
|
||||
dnsd-slist
|
||||
dnsd-resolver)
|
||||
|
||||
(files (dnsd dnsd)))
|
||||
|
||||
(define-structure dnsd-resolver dnsd-resolver-interface
|
||||
(open scheme-with-scsh
|
||||
(subset srfi-1 (fold-right delete filter take drop))
|
||||
srfi-2
|
||||
srfi-27 ; for shake-list
|
||||
|
||||
|
||||
threads
|
||||
thread-fluids ;; fork-thread
|
||||
rendezvous ; Needs SUnterlib
|
||||
rendezvous-channels ; Needs SUnterlib
|
||||
|
||||
define-record-types
|
||||
handle-fatal-error
|
||||
dns
|
||||
|
||||
dnsd-cache
|
||||
dnsd-logging
|
||||
dnsd-slist
|
||||
dnsd-options)
|
||||
|
||||
(files (dnsd resolver)))
|
||||
|
||||
(define-structure dnsd-logging dnsd-logging-interface
|
||||
(open scheme-with-scsh)
|
||||
(files (dnsd logging)))
|
||||
|
||||
|
||||
(define-structure dnsddb-options dnsddb-options-interface
|
||||
(open scheme-with-scsh
|
||||
define-record-types
|
||||
dns)
|
||||
(files (dnsd db-options)))
|
||||
|
||||
(define-structure dnsd-database dnsd-database-interface
|
||||
(open scheme-with-scsh
|
||||
(subset srfi-1 (fold-right))
|
||||
srfi-2
|
||||
(subset srfi-13 (string-downcase))
|
||||
|
||||
define-record-types
|
||||
tables
|
||||
dns
|
||||
|
||||
dnsd-rw-locks
|
||||
dnsd-logging)
|
||||
|
||||
(files (dnsd database)))
|
||||
|
||||
(define-structure dnsd-cache dnsd-cache-interface
|
||||
(open scheme-with-scsh
|
||||
define-record-types
|
||||
(subset srfi-1 (fold-right))
|
||||
(subset srfi-13 (string-downcase))
|
||||
tables
|
||||
dns
|
||||
|
||||
dnsd-rw-locks)
|
||||
(files (dnsd cache)))
|
||||
|
||||
(define-structure dnsd-slist dnsd-slist-interface
|
||||
(open scheme-with-scsh
|
||||
define-record-types
|
||||
(subset srfi-1 (fold-right filter))
|
||||
srfi-2
|
||||
(subset srfi-13 (string-downcase))
|
||||
tables
|
||||
dns
|
||||
|
||||
dnsd-options
|
||||
dnsd-rw-locks)
|
||||
(files (dnsd slist)))
|
||||
|
||||
(define-structure dnsd-options dnsd-options-interface
|
||||
(open scheme-with-scsh
|
||||
define-record-types)
|
||||
(files (dnsd options)))
|
||||
|
||||
(define-structure dnsd-rw-locks dnsd-rw-locks-interface
|
||||
(open scheme-with-scsh
|
||||
locks
|
||||
threads
|
||||
define-record-types)
|
||||
(files (dnsd rw-locks)))
|
||||
|
||||
(define-structure dnsd-semaphores dnsd-semaphores-interface
|
||||
(open scheme-with-scsh
|
||||
define-record-types
|
||||
locks)
|
||||
(files (dnsd semaphores)))
|
||||
|
||||
(define-structure dnsd-rr-def dnsd-rr-def-interface
|
||||
(open scheme-with-scsh
|
||||
ips
|
||||
dns
|
||||
srfi-2)
|
||||
(files (dnsd rr-def)))
|
||||
|
||||
(define-structure dnsd-mf-parser dnsd-mf-parser-interface
|
||||
(open scheme-with-scsh
|
||||
(subset srfi-1 (fold-right))
|
||||
srfi-2
|
||||
(subset srfi-13 (string-downcase))
|
||||
|
||||
handle-fatal-error
|
||||
dns
|
||||
|
||||
dnsd-options
|
||||
dnsd-logging
|
||||
dnsd-silex
|
||||
dnsd-rr-def)
|
||||
(files (dnsd masterfile-parser)))
|
||||
|
||||
(define-structure dnsd-silex dnsd-silex-interface
|
||||
(open scheme-with-scsh)
|
||||
(files (dnsd masterfile.l)))
|
||||
|
||||
|
||||
;; FTP server
|
||||
|
||||
(define-structure ftpd ftpd-interface
|
||||
|
|
Loading…
Reference in New Issue