ToC | DocOverview | CGDoc | RelNotes | FAQ | Index | PermutedIndex
| Allegro CL version 11.0

# *dns-configured*

variable, acl-socket package

The value of this variable is true after the dns module has been manually configured or has automatically configured itself and as a result knows of at least one nameserver to contact. The variable is automatically set to `nil` after Lisp starts (or an image restarts) so that the dns module will configure itself for the current environment of the process. If you move a portable computer from one network to another or otherwise wish the dns module to autoconfigure itself the next time it is used, you can set this variable to `nil`.

See dns.html for information on the domain naming system utility in Allegro CL and see socket.html for general information on sockets in Allegro CL.

# *dns-domain*

variable, acl-socket package

The value of this variable may be `nil` or a string naming the domain of the current machine (e.g. "franz.com"). Ideally this would be set by `(configure-dns :auto t)` but the information isn't always available. Thus a program shouldn't count on this being non-`nil`. A user program is permitted to set this variable.

See dns.html for information on the domain naming system utility in Allegro CL and see socket.html for general information on sockets in Allegro CL.

# *dns-mode*

variable, acl-socket package

The value of this variable controls whether the C library functions or Allegro CL DNS functionality are used for calls to lookup-hostname and ipaddr-to-hostname. Using Allegro CL DNS functionality means calls are made to dns-lookup-hostname and dns-ipaddr-to-hostname.

This variable can have the value `:clib` or `:acldns` or a list of one or both of those symbols. The initial value is the list `(:acldns :clib)`. If the value of this variable is a list containing both `:clib` and `:acldns` (in any order), then the Allegro CL DNS functionality is used first and then, if that fails, the C library functions are used.

`:acldns` is native in Lisp. `:clib` is performed by the operating system via the C libraries on the system.

If the value of this variable is either `:acldns` or the list `(:acldns)` then lookup-hostname and ipaddr-to-hostname use Allegro CL DNS functionality.

Before calling an Allegro CL DNS function, a check is made to see if the Allegro CL DNS module has been configured. If it hasn't been, then `(configure-dns :auto t)` is done (see configure-dns). If this auto configuration fails to find any nameservers then `*dns-mode*` is set to `:clib` so that there will be no further attempts to use the Allegro CL DNS module.

If the value of this variable is either `:clib` or the list `(:clib)` then lookup-hostname and ipaddr-to-hostname use the C library functions to do the dns lookup.

Two important things to know about DNS lookups and the options presented here:

1. `:clib` mode will block execution of all Lisp threads while in the call to the C library. If it has to do a DNS query to a slow DNS server, this could adversely impact execution times of your application, although typically the operating system is configured to contact a local DNS server which does caching of previous lookups so as to eliminate delays. `:acldns` does lookups without blocking other Lisp threads.
2. `:clib` lookups can be configured to look at a local file, `/etc/hosts`, but this is up to local system configuration. `:acldns` does not consult `/etc/hosts`, by design.

See dns.html for information on the domain naming system utility in Allegro CL and see socket.html for general information on sockets in Allegro CL.

# *domain-search-list*

variable, acl-socket package

The value of this variable is a list of domain names to append to a given host name by dns-lookup-hostname. Ideally this would be set by `(configure-dns :auto t)` but the information isn't always available. Thus a program shouldn't count on this being non-`nil`. A user program is permitted to set this variable.

See dns.html for information on the domain naming system utility in Allegro CL and see socket.html for general information on sockets in Allegro CL.

# *ipv6*

variable, acl-socket package

This variable controls the default behavior of lookup-hostname and make-socket.

The valid values are:

- `nil`: Use IPv4 addressing only (unless an IPv6 address is specified for local-host or remote-host in a call to make-socket).
- `:ipv6`: Use IPv6 addressing only.
- `t`: Prefer IPv6 over IPv4 for hostname lookups. Create sockets using IPv6.

See socket.html for general information on sockets in Allegro CL.

# *nameservers*

variable, acl-socket package

This variable contains a list of nameserver objects (of class dns-nameserver), once for each nameserver that the package will use for lookups. User code should not set this variable. It is set by configure-dns.

See dns.html for information on the domain naming system utility in Allegro CL and see socket.html for general information on sockets in Allegro CL.

# *print-hostname-in-stream*

variable, acl-socket package

This variable controls whether the socket printing code converts the ip address of a socket into a hostname. This is usually what you want, however this can be a slow process (taking up to a minute to accomplish) and may not be doable when a machine is not connected o the net. The default value for this variable is `t`, meaning the conversion is done.

The default method for printing socket stream object includes printing the source and destination hostnames of the socket. The hostnames are found from the IP address stored in the socket object by first looking in Allegro's hostname lookup cache and if that does not yield results, using the lookup method specified in the machine's network configuration. The typical lookup method is DNS (Domain Name System). A DNS lookup usually completes quickly but can take up to a minute to succeed or fail, if there is network congestion. Sometimes machines with no network configuration are misconfigured to use DNS even though that can't possibly work without a network connection.

To prevent Allegro from attempting hostname lookup you can set the value of this variable to `nil` by evaluating a form like:

    (setq socket::*print-hostname-in-stream* nil)

See socket.html for general information on sockets in Allegro CL.

# *socket-version*

variable, acl-socket package

The value of this variable is a string naming the version of the socket interface. Please provide the value of this variable when asking for technical support with sockets as it tells us whether you have the latest version.

See socket.html for general information on sockets in Allegro CL.

# *ssl-features*

variable, acl-socket package

The value is a list of keyword symbols. In release 10.1, the list will contains the single keyword `:sni`, which indicates that the `:ssl` module supports SNI (Server Name Indication, see en.wikipedia.org/wiki/Server_Name_Indication for more information). SSL client streams are created with acl-socket:make-ssl-client-stream.

This variable (and the symbol which names it) do not exist in versions prior to 10.1. Programs that wish to take advantage of this feature and are intended to work in versions earlier than 10.1 need to check for the existence of the symbol and check the value to avoid undefined variable errors.

Copyright (c) Franz Inc. Lafayette, CA., USA. All rights reserved.

ToC | DocOverview | CGDoc | RelNotes | FAQ | Index | PermutedIndex
| Allegro CL version 11.0