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

# dns-nameserver

Class, acl-socket package

The class of a `dns-nameserver` object. The value of variable *nameservers* is a list of nameserver objects. `dns-nameserver` has the following slots and accessors:

- `name`, accessor is dns-nameserver-name. A string naming the host name of the nameserver, or `nil` if that name isn't known.
- `ipaddr`, accessor is dns-nameserver-ipaddr. The IP address of the namesever, which is an integer.
- `sent`, accessor is dns-nameserver-sent. The number of queries sent to the nameserver.
- `received`, accessor is dns-nameserver-received. The number of responses from the nameserver. Because DNS uses the UDP protocol some requests and responses can get dropped or duplicated so the sent and received values may not be equal. However if there are many fewer received packets than sent packets then that means that it's probably a waste of time to use this nameserver.

See dns.html.

# dns-response

Class, acl-socket package

The class of a DNS response object. When dns-query is called with the decode argument `nil`, the response from the nameserver is returned in its raw form. The response is represented by a dns-response object which contains pointers to dns-rr objects. It has the following slots and accessors:

- `id`, accessor is dns-response-id. The number of the query for which this is a response. Each query is given a unique number by dns-query so that it can associate responses with queries.
- `flags`, accessor is dns-response-flags. The characteristics of the response are described by a set of flags represented in this slot by a list of keyword symbols. The set of flags can be found in rfc1035, the document describing the DNS specification (see The Allegro CL Domain Naming System Package in dns.html for a link to rfc1035).
- `flags-value`, accessor is dns-response-flags-value. An integer that is the raw form of the flags value.
- `answer`, accessor is dns-response-answer. A list of dns-rr objects which comprise the answer to the query. If there are no answers then that is significant as well as that tells you that what you're asking for either doesn't exist or can't be computed at this time.
- `authority`, accessor is dns-response-authority. DNS permits nameservers to cache information and this is in fact critical to prevent nameserver overloading. What this means though is that the same information can be stored in a large collection of nameservers. However for any piece of information there is always a set of nameservers that are the authoritative nameservers for that information. This field in the dns-response lists the nameservers that are the authority for answering the dns-query that was posed. The nameservers are returned as a list of dns-rr objects.
- `additional`, accessor is dns-response-additional. Some queries return answers which would immediately prompt another query. For example a `:type :mx` dns-query to find a mail exchanger for a name returns a set of mail exchanger machine names. After receiving those names the program will almost certainly want to find the IP addresses for those machine names. Thus the DNS system can anticipate the follow up query and can return in the additional slot a list of dns-rr's that would be returned by the followup query. In the `:type :mx` query the additional slot usually contains a list of those mail exchangers machine names and their IP addresses. There is no guarantee that that information will be provided in the additional slot

See dns.html.

# dns-rr

Class, acl-socket package

The class of a `dns-rr` object. When dns-query is called with the decode argument `nil`, the response from the nameserver is returned in its raw form. The response is represented by a dns-response object. The answer, authority and additional fields of a dns-response object contain `dns-rr` objects.

`dns-rr` objects have the following slots and accessors:

- `name`, accessor is dns-rr-name. A string in fully qualified domain name format (e.g. "foo.bar.com"). This is the name that the rest of the dns-rr is describing.

- `type`, accessor is dns-rr-type. This is a number or keyword symbol describing the type of object.

  The type `:a` means that this dns-rr contains the host address of the name in the answer slot.

  The type `:ns` means that this dns-rr is describing the authoritative nameserver for this name in the answer slot. The answer slot is a string naming the nameserver's host name. Generally the additional slot of the dns-response will contain a dns-rr of type `:a` with the IP address of the nameserver.

  The type `:mx` means that the answer is a mail exchanger machine name for the name.

  The type `:soa` describes an authority object. When a query for an unknown host is made, the authority field of the dns-response usually contains a dns-rr `:soa` object describing which domain's authority has specified that that host doesn't exist.

  The type `:cname` describes the machine for which name is just an alias.

  The type `:ptr` describes the name of a machine as well and is used in determining a machine name given its IP address.

- `class`, accessor is dns-rr-class. This value is always 1, meaning "the Internet".

- `answer`, accessor is dns-rr-answer. For a `:type :a` response this contains the IP address of the name in integer format. For type `:mx`, `:ns`, `:cname` and `:ptr` the answer is a string naming a machine.

- `time-to-live`, accessor is dns-rr-time-to-live. An integer number of seconds for which the answer given is valid and can be cached.

See dns.html.

# socket

Class, acl-socket package

A socket is an endpoint for network communication. All sockets are subclasses of this class. Socket should be created with make-socket rather than make-instance of a socket class. make-socket will select the appropriate socket class based on its arguments. The following are the socket classes:

- socket-stream-internet-active
- socket-stream-internet-passive
- socket-stream-file-active
- socket-stream-file-passive
- socket-datagram-internet-active
- socket-datagram-file-active

# socket-datagram-file-active

Class, acl-socket package

A UDP socket. The address of this socket is a filename on the current machine. Note that instances should be created with make-socket rather than make-instance. make-socket will select the appropriate socket class based on its arguments.

Windows does not support this type of socket.

See socket for a list of socket classes. See socket.html for information on the Allegro CL socket interface.

# socket-datagram-internet-active

Class, acl-socket package

A UDP socket. The address of this socket is a 32 bit IP number of the network interface along with a 16 bit port number. Note that instances should be created with make-socket rather than make-instance. make-socket will select the appropriate socket class based on its arguments.

See socket for a list of socket classes. See socket.html for information on the Allegro CL socket interface.

# socket-stream-file-active

Class, acl-socket package

A TCP socket connected to another socket through the network. The address of this socket is a filename on the current machine. Windows doesn't support this type of socket. Note that instances should be created with make-socket rather than make-instance. make-socket will select the appropriate socket class based on its arguments.

See socket for a list of socket classes. See socket.html for information on the Allegro CL socket interface.

# socket-stream-file-passive

Class, acl-socket package

A TCP socket waiting for a connection. The address of this socket is a filename on the current machine. This socket isn't a stream - you can't write to it or read from it because it isn't connected to anything. You can call close on it however. Windows doesn't support this type of socket. Note that instances should be created with make-socket rather than make-instance. make-socket will select the appropriate socket class based on its arguments.

See socket for a list of socket classes. See socket.html for information on the Allegro CL socket interface.

# socket-stream-internet-active

Class, acl-socket package

A TCP socket connected to another socket through the network. The address of this socket is a 32 bit IP number of the network interface along with a 16 bit port number. Note that instances should be created with make-socket rather than make-instance. make-socket will select the appropriate socket class based on its arguments.

See socket for a list of socket classes. See socket.html for information on the Allegro CL socket interface.

# socket-stream-internet-passive

Class, acl-socket package

A TCP socket waiting for a connection. The address of this socket is a 32 bit IP number of the network interface along with a 16 bit port number. This socket isn't a stream - you can't write to it or read from it because it isn't connected to anything. You can call close on it however. Note that instances should be created with make-socket rather than make-instance. make-socket will select the appropriate socket class based on its arguments.

See socket for a list of socket classes. See socket.html for information on the Allegro CL socket interface.

# x509-certificate

Class, acl-socket package

The class of x509-certificate objects. Such objects are associated with SSL sockets. Objects of this class are created by the get-ssl-peer-certificate generic function.

This class has the following slots and accessors (the accessor names have x509-certificate- prepended to the slot name; the slot name is linked to th accessor description). At the moment, setting the value of a slot serves no purpose. See also the associated accessor operator pages.

- version: this slot contains a keyword indicating the version number of the certificate. The value will be either (:v1, :v2, or :v3). If the version number of the certificate is not recognized, this slot will contain the raw integer supplied in the certificate.

  The version number indicates the format of the certificate. Most certificates seen these days will be version 3 certificates (:v3).

- serial-number: this slot contains the serial number of the certificate, in integer form.

- not-before: this slot contains the beginning validity date of the certificate, in universal time format.

- not-after: this slot contains the expiration date of the certificate, in universal time format.

- issuer: this slot contains information about the issuer (i.e., signer) of the certificate. The issuer information is represented as a list of attribute/value conses. The car of each cons is a string representing the attribute type ("CN", "ST", "L", "O", "OU", "CN", etc.) and the cdr of each cons is a string representing the value of the attribute.

- subject: this slot contains information about the subject of the certificate (i.e., the entity to which the certificate belongs). The subject information is represented in the same way as the issuer information described in the discussion of the issuer slot above.

- subject-alt-name: this slot contains information about the subjectAltName extension information which may be part of v3 certificates. If available, the subjectAltName information is represented as a list of attribute/value conses. The car of each cons is a string representing the type of subjectAltName (such as "DNS"). The cdr of each cons is a string representing the attribute value.

See socket.html.

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

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