The fsocket Reference Manual

Next: , Previous: , Up: (dir)   [Contents][Index]

The fsocket Reference Manual

This is the fsocket Reference Manual, generated automatically by Declt version 4.0 beta 2 "William Riker" on Thu Sep 15 04:46:50 2022 GMT+0.

Table of Contents


1 Introduction

fsocket

1. Introduction

This is yet-another Common Lisp FFI to provide a portable sockets API. It is intended to offer a socket API that wraps at a very low level the underlying BSD-sockets API provided by the host OS. Only supports the standard blocking I/O calls, does not support overlapped or aio_ type asynchronous calls.

2. Usage

Basically you write exactly the same sort of code you would if writing in C.

2.1 Socket functions

;; open the socket 
(let ((fd (open-socket :type :datagram)))
  (socket-bind fd (make-sockaddr-in))
  ;; do something with the socket 

  ;; close it
  (close-socket fd))

2.2 Socket I/O

There are two types of I/O: send/recv for connected sockets and sendto/recvfrom for unconnected sockets.

(let ((fd (open-socket :type :datagram))
      (buffer (make-array 1024)))
  (socket-bind fd (make-sockaddr-in :port 9000))
  (multiple-value-bind (count raddr) (socket-recvfrom fd buffer)
    (format t "Received ~A bytes from ~A~%" count raddr)
    (socket-sendto fd buffer raddr :end count))
  
  (close-socket fd))

The 4 I/O functions also accept a foreign pointer instead of an octet vector as the buffer parameter. This allows callers to avoid the copy to and from foreign memory. This is somewhat more awkward to use but for certain applications could prove useful.

2.3 Polling

Provides an API based on POSIX poll(). On systems where this is available (i.e. everywhere except Windows) it calls directly to poll(). On Windows it calls WSAEnumNetworkEvents() and iterates over each socket. The Windows events are mapped to poll events.

(let ((pc (open-poll)))
  (poll-register pc (make-instance 'pollfd :fd fd :events (poll-events :pollin)))
  (doevents (pollfd event) (poll pc :timeout 1000)
    ;; process the events
    )
  (close-poll pc))

2.4 Hardware adapters

These contain a list of IP addresses associated with the adapter (i.e. logical interfaces), the physical address of the adapter, the interface index and current status.

3. Socket options

The currently supported socket options are as follows.

Socket options :SOCKET

IP options :IP

TCP options :TCP

4. Advanced topics

Various advanced usage topics here.

4.1 Polling

FSOCKET provides a portable polling mechanism based on POSIX poll(). On those systems is calls poll() directly, but on Windows we need a little bit more work. In order to provide a uniform interface on all platforms we must do the following:

  1. Allocate a poll context. On Windows this calls WSACreateEvent(). On POSIX it does nothing.
  2. For each socket you wish to poll, call POLL-REGISTER. On Windows this calls WSAEventSelect(). This associates a POLLFD instance (which encapsulates the socket) with the poll context.
  3. Call POLL. On Windows this calls WSAWaitForMultipleEvents() and then WSAEnumNetworkEvents() for each socket. On POSIX it simply calls poll().
  4. Iterate over each of the input POLLFD descriptors and process the pending events.

4.1.1 Side-effects of POLL-REGISTER

4.2 IP multicast

IPv4 UDP multicast is implemented and working. See test/test2.lisp.

4.3 Subclassing POLLFD

When you call POLL-REGISTER you provide an instance of the class POLLFD, which encapsulates the socket and the events you wish to poll for. However, typically you will also want to associate other information with the socket, for instance and receive buffer or other contextual information. All you have to do is subclass POLLFD and provide instances of your own class to POLL-REGISTER. For an example see TCP-ECHO in test/test1.lisp where I provide different subclasses for the listening TCP socket and its connections.

4.4 UDP broadcast

There can be issues when performing UDP broadcast to address 255.255.255.255 on FreeBSD. This is due to the way FreeBSD implements UDP broadcasting, which is different to Linux and Windows in this respect.

4.5 Unix Domain sockets

On POSIX platforms (for fsocket, that means Linux, FreeBSD, Darwin i.e. everywhere but Windows) unix domain sockets are also supported as a family :UNIX to OPEN-SOCKET. Currently only :STREAM type sockets are supported, datagram type unix domain sockets may be supported at some point in the future. Unlike :INET and :INET6 families, :UNIX sockets are addressed using a string which represents a file on the host. Otherwise their usage is the same. See test/test-unix.lisp for an example.

4.6 Linux CAN Sockets

On Linux platforms the BSD-sockets are extended by a SocketCAN API, which implements communication between a host OS and a CAN bus. An application reads and sends CAN messages using SOCKET-RECV, SOCKET-RECVFROM, SOCKET-SEND and SOCKET-SENDTO after a corresponding file descriptor is created (OPEN-SOCKET) and bound (SOCKET-BIND). It is recommended to use the macro WITH-CAN-SOCKET to safely open, bind and close CAN sockets. All SocketCAN SEND* operations never block, all SocketCAN RECV* calls always block. Use polling to make the latter non-blocking. Some useful examples can be found in test/test-socketcan.lisp.

5. Implementations and operatings systems

Because we are calling directly into the host API using CFFI, the implementation portability issues are handled by CFFI. I intend to support Windows, Linux, FreeBSD and OSX. Currently the following have been tested. A small amount of work will be required to support other systems (e.g. checking structs have the same layout, adjusting constants etc.).

6. TODO

7. License

Licensed under the terms of the MIT license. Frank James 2015.


2 Systems

The main system appears first, followed by any subsystem dependency.


Previous: , Up: Systems   [Contents][Index]

2.1 fsocket

Franks socket API

Author

Frank James <frank.a.james@gmail.com>

License

MIT

Dependencies
  • cffi (system).
  • trivial-gray-streams (system).
Source

fsocket.asd.

Child Components

3 Files

Files are sorted by type and then listed depth-first from the systems components trees.


Previous: , Up: Files   [Contents][Index]

3.1 Lisp


Next: , Previous: , Up: Lisp   [Contents][Index]

3.1.1 fsocket/fsocket.asd

Source

fsocket.asd.

Parent Component

fsocket (system).

ASDF Systems

fsocket.


3.1.2 fsocket/package.lisp

Source

fsocket.asd.

Parent Component

fsocket (system).

Packages

fsocket.


3.1.3 fsocket/errors.lisp

Dependency

package.lisp (file).

Source

fsocket.asd.

Parent Component

fsocket (system).

Public Interface
Internals

fsocket-error-msg (reader method).


3.1.4 fsocket/constants.lisp

Dependency

errors.lisp (file).

Source

fsocket.asd.

Parent Component

fsocket (system).

Internals

3.1.5 fsocket/common.lisp

Dependency

constants.lisp (file).

Source

fsocket.asd.

Parent Component

fsocket (system).

Public Interface
Internals

3.1.6 fsocket/posix.lisp

Dependency

common.lisp (file).

Source

fsocket.asd.

Parent Component

fsocket (system).

Public Interface
Internals

3.1.7 fsocket/options.lisp

Dependency

posix.lisp (file).

Source

fsocket.asd.

Parent Component

fsocket (system).

Public Interface
Internals

Previous: , Up: Lisp   [Contents][Index]

3.1.8 fsocket/streams.lisp

Dependency

options.lisp (file).

Source

fsocket.asd.

Parent Component

fsocket (system).

Public Interface
Internals

4 Packages

Packages are listed by definition order.


Previous: , Up: Packages   [Contents][Index]

4.1 fsocket

Source

package.lisp.

Use List
  • cffi.
  • common-lisp.
Public Interface
Internals

5 Definitions

Definitions are sorted by export status, category, package, and then by lexicographic order.


Next: , Previous: , Up: Definitions   [Contents][Index]

5.1 Public Interface


5.1.1 Macros

Macro: doevents ((pollfd event) poll-form &body body)

Evaluate the POLL-FORM and iterate over each of the pollfds with events pending.
On each iteration, POLLFD will be bound to the associated pollfd strcuture and EVENTS will be bound to a list of symbols naming each pending event.

Package

fsocket.

Source

common.lisp.

Macro: with-can-socket ((socket &optional interface-name) &rest body)
Package

fsocket.

Source

posix.lisp.

Macro: with-poll ((var) &body body)

Evaludate BODY with VAR bound to a poll context.

Package

fsocket.

Source

common.lisp.

Macro: with-socket ((var &optional type family) &body body)

Execute the body ensuring the socket bound to VAR is closed.

Package

fsocket.

Source

common.lisp.

Macro: with-tcp-connection ((var addr) &body body)

Evaluate BODY with VAR bound to a connected TCP socket. VAR ::= variable
ADDR ::= address to connect to.

Package

fsocket.

Source

common.lisp.

Macro: with-tcp-socket ((var &optional port) &body body)

Evaluate BODY with VAR bound to a listening TCP socket.
VAR ::= variable that holds the listening TCP socket.
PORT ::= port to bind socket to, defaults to the wildcard port 0.

Package

fsocket.

Source

common.lisp.

Macro: with-udp-socket ((var &optional port) &body body)

Evaludate BODY with VAR bound to a UDP socket.
VAR ::= variable that holds the socket.
PORT ::= the port to bind VAR to, defaults to the wildcard port 0.

Package

fsocket.

Source

common.lisp.


5.1.2 Ordinary functions

Reader: adapter-address (instance)
Writer: (setf adapter-address) (instance)
Package

fsocket.

Source

common.lisp.

Target Slot

address.

Reader: adapter-broadcast (instance)
Writer: (setf adapter-broadcast) (instance)
Package

fsocket.

Source

common.lisp.

Target Slot

broadcast.

Reader: adapter-index (instance)
Writer: (setf adapter-index) (instance)
Package

fsocket.

Source

common.lisp.

Target Slot

index.

Reader: adapter-mtu (instance)
Writer: (setf adapter-mtu) (instance)
Package

fsocket.

Source

common.lisp.

Target Slot

mtu.

Reader: adapter-name (instance)
Writer: (setf adapter-name) (instance)
Package

fsocket.

Source

common.lisp.

Target Slot

name.

Reader: adapter-netmask (instance)
Writer: (setf adapter-netmask) (instance)
Package

fsocket.

Source

common.lisp.

Target Slot

netmask.

Reader: adapter-status (instance)
Writer: (setf adapter-status) (instance)
Package

fsocket.

Source

common.lisp.

Target Slot

status.

Reader: adapter-type (instance)
Writer: (setf adapter-type) (instance)
Package

fsocket.

Source

common.lisp.

Target Slot

type.

Reader: adapter-unicast (instance)
Writer: (setf adapter-unicast) (instance)
Package

fsocket.

Source

common.lisp.

Target Slot

unicast.

Function: close-poll (pc)

Close a poll context

Package

fsocket.

Source

posix.lisp.

Function: close-socket (fd)

Close the socket named by FD.

Package

fsocket.

Source

posix.lisp.

Function: get-host-name ()
Package

fsocket.

Source

posix.lisp.

Function: get-name-servers ()

Returns a list of SOCKADDR-IN addresses for configured DNS name servers.

Package

fsocket.

Source

posix.lisp.

Function: list-adapters ()
Package

fsocket.

Source

posix.lisp.

Function: loopback-p (addr)

Returns true if the address references IPv4 127.0.0.1 or IPv6 ::1, false otherwise. ADDR ::= a SOCKADDR-IN or SOCKADDR-IN6 address structure.

Package

fsocket.

Source

common.lisp.

Function: make-can-interface (&key name)
Package

fsocket.

Source

common.lisp.

Function: make-can-packet (&key id data timestamp origin)
Package

fsocket.

Source

common.lisp.

Function: make-sockaddr-in (&key addr port)
Package

fsocket.

Source

common.lisp.

Function: make-sockaddr-in6 (&key addr port flowinfo scopeid)
Package

fsocket.

Source

common.lisp.

Function: make-tcp-stream (fd)

Wrap a TCP connection with a gray-stream.
FD ::= TCP connection file descriptor.

Remarks: non-blocking file descriptors are not supported. This is because the read-byte or read-sequence functions may signal an EWOULDBLOCK status if they are not ready for a recv operation. However, if you can ensure a recv would not block before calling read-byte or read-sequence functions then non-blocking sockets should work.

READ-BYTE and SEND-BYTE are extremely inefficient because they call directly to recv() and send(). You should always buffer sends and call write-sequence whereever possible. There is almost never a reason to call read-byte, always call read-sequence into a buffer and wrap that in a stream.

Package

fsocket.

Source

streams.lisp.

Function: multicast-join (sock mcaddr &optional adapters)

Join the IPv4 multicast group on all ETHERNET interfaces.

Package

fsocket.

Source

options.lisp.

Function: open-multicast-socket (adapter &key ttl loopback)

Open a socket to be used to send IPv4 multicast datagrams.
ADAPTER ::= adapter to use as originating interface.
TTL ::= integer specifying multicast ttl.
LOOPBACK ::= if true, will receive datagrams sent from loopback device, if false disables loopback.

Returns the unbound socket.

Package

fsocket.

Source

options.lisp.

Function: open-poll ()

Open a poll context.

Package

fsocket.

Source

posix.lisp.

Function: open-socket (&key family type protocol)

Open a socket. Call CLOSE-SOCKET to free resources.
FAMILY ::= address family integer. Either :INET, :INET6, :UNIX or :CAN.
TYPE ::= socket type name, defaults to SOCK_DGRAM. Can be :datagram, :stream or :raw. PROTOCOL ::= socket protocol integer. Usually doesn’t need to be specified.

Returns the socket file descriptor.

Package

fsocket.

Source

posix.lisp.

Function: open-tcp-connection (addr)

Open a TCP connection to ADDR.

Package

fsocket.

Source

options.lisp.

Function: open-tcp-socket (&optional port)

Open a listening TCP socket bound to local port PORT, defaults to wildcard port.

Package

fsocket.

Source

options.lisp.

Function: open-udp-socket (&optional port)

Open a UDP socket bound to local port PORT, defaults to wildcard port.

Package

fsocket.

Source

options.lisp.

Function: parse-can-packet (packet)
Package

fsocket.

Source

common.lisp.

Function: poll (pc &key timeout)

Poll the sockets registered with the poll context for network events.

PC ::= poll context as returne from OPEN-POLL.
TIMEOUT ::= if supplied time in milliseconds to wait. If not supplied defaults to infinity.

Returns a list of registered pollfd structures. Users should check the REVENTS slot for pending events.

Package

fsocket.

Source

posix.lisp.

Reader: poll-context-fds (instance)
Writer: (setf poll-context-fds) (instance)
Package

fsocket.

Source

posix.lisp.

Target Slot

fds.

Function: poll-event (int-or-sym)

Map an event name to an event flag or vice versa.

Package

fsocket.

Source

common.lisp.

Function: poll-event-p (event &optional name)

Event predicate.
EVENT ::= event integer.
NAME ::= event name to test. If not supplied, indicates whether any event is pending.

Package

fsocket.

Source

common.lisp.

Function: poll-events (&rest events)

Map an event integer to a list of event names, or a list of event names to an event integer.

Package

fsocket.

Source

common.lisp.

Function: poll-find (pc fd)

Lookup the pollfd for the file descriptor.
PC ::= poll context.
FD ::= file desctipror.
Returns the pollfd with the matching file descriptor if found.

Package

fsocket.

Source

posix.lisp.

Function: poll-register (pc pollfd)

Register a pollfd descriptor with a poll context.

Package

fsocket.

Source

posix.lisp.

Function: poll-unregister (pc pollfd)

Unregister a pollfd descriptor from a poll context.

Package

fsocket.

Source

posix.lisp.

Function: sockaddr-in (&optional inaddr port)

Allocate a SOCKADDR-IN address structure.
INADDR ::= a vector of 4 octets specifying the internet address. May be entered in the "dotted quad" string format.
If not supplied the wildcard address is used.
PORT ::= integer specifying the port number. If not supplied port 0 will be used.

Returns a new SOCKADDR-IN structure.

Package

fsocket.

Source

common.lisp.

Reader: sockaddr-in-addr (instance)
Writer: (setf sockaddr-in-addr) (instance)
Package

fsocket.

Source

common.lisp.

Target Slot

addr.

Function: sockaddr-in-p (object)
Package

fsocket.

Source

common.lisp.

Reader: sockaddr-in-port (instance)
Writer: (setf sockaddr-in-port) (instance)
Package

fsocket.

Source

common.lisp.

Target Slot

port.

Function: sockaddr-in6 (&optional addr port scopeid)
Package

fsocket.

Source

common.lisp.

Reader: sockaddr-in6-addr (instance)
Writer: (setf sockaddr-in6-addr) (instance)
Package

fsocket.

Source

common.lisp.

Target Slot

addr.

Function: sockaddr-in6-p (object)
Package

fsocket.

Source

common.lisp.

Reader: sockaddr-in6-port (instance)
Writer: (setf sockaddr-in6-port) (instance)
Package

fsocket.

Source

common.lisp.

Target Slot

port.

Function: sockaddr-string (addr)

Generate a string of format a.b.c.d:port from the address.

Package

fsocket.

Source

common.lisp.

Function: sockaddr= (sa1 sa2)
Package

fsocket.

Source

common.lisp.

Function: socket-accept (fd)

Accept a connection from the listening socket.
SOCK ::= listening socket.

Returns (values conn addr) where
CONN ::= new connected socket.
ADDR ::= address of the connected socket.

If the socket is in non-blocking mode and the operation would block returns nil. A :POLLIN event indicates a subsequent socket-accept will complete immediately.

Package

fsocket.

Source

posix.lisp.

Function: socket-bind (fd addr)

Bind the socket to the local address/interface.
FD ::= socket file descriptor.
ADDR ::= local address or can interface. Can be SOCKADDR-IN, SOCKADDR-IN6 or string for internet sockets; must be of type CAN-INTERFACE for can sockets

Package

fsocket.

Source

posix.lisp.

Function: socket-connect (fd addr)

Connect the socket to the remote address.
SOCK :: socket.
ADDR ::= remote address.

Returns true if the operation completed successfully.
If the socket is in non-blocking mode and the operation would block returns NIL. A :POLLOUT event indicates a subsequent socket-connect will complete immediately.

Package

fsocket.

Source

posix.lisp.

Function: socket-listen (fd &optional backlog)

Start the socket listening.

Package

fsocket.

Source

posix.lisp.

Function: socket-name (fd)

Get the address to which the socket has been bound. FD ::= socket as returned from OPEN-SOCKET. Returns a SOCKADDR-IN or SOCKADDR-IN6 structure.

Package

fsocket.

Source

posix.lisp.

Function: socket-peer (fd)
Package

fsocket.

Source

posix.lisp.

Function: socket-recv (fd buffer &key start end)

Receive data from the socket.
FD ::= socket.
BUFFER ::= octet vector, foreign pointer or can-frame that receives data.
START ::= buffer start index.
END ::= buffer end index.

Retuns the number of bytes actually received, which can be less than the number requested.

Package

fsocket.

Source

posix.lisp.

Function: socket-recvfrom (fd buffer &key start end)

Receive data from the socket.
FD ::= socket.
BUFFER ::= octet vector or foreign pointer.
START ::= start index.
END ::= end index.

Returns (values count addr) where
COUNT ::= number of octets actually received, which can be less tha nthe number requested. ADDR ::= remote address or can-interface from which the data was received.

Package

fsocket.

Source

posix.lisp.

Function: socket-send (fd buffer &key start end)

Send a buffer on the connected socket.
SOCK ::= connected socket.
BUFFER ::= octet vector, foreign pointer or can-frame.
START ::= start index of buffer.
END ::= end index of buffer.

Returns the number of bytes actually sent, which can be less than the requested length.

Package

fsocket.

Source

posix.lisp.

Function: socket-sendto (fd buffer addr &key start end)

Send data to the address on the socket.
FD ::= socket.
ADDR ::= local address or can interface. Can be SOCKADDR-IN, SOCKADDR-IN6 or string for internet sockets must be of type CAN-INTERFACE for can sockets. ADDR ::= destination address, either a SOCKADDR-IN or SOCKADDR-IN6 structure or a can-interface.
START ::= buffer start index.
END ::= buffer end index.

Returns the number of octets actually sent, which can be less than the number requested.

Package

fsocket.

Source

posix.lisp.

Function: socket-shutdown (fd &optional how)

Shutdown traffic on the TCP socket.
HOW ::= :SEND to stop sending, :RECEIVE to stop receiving, :BOTH to stop both.

Package

fsocket.

Source

posix.lisp.

Function: string-sockaddr (string)

Parses a string in the format a.b.c.d[:port] i.e. a dotted quad with optional port. If the port is not specified it defaults to 0.

Package

fsocket.

Source

common.lisp.


5.1.3 Generic functions

Generic Reader: pollfd-events (object)
Package

fsocket.

Methods
Reader Method: pollfd-events ((pollfd pollfd))

automatically generated reader method

Source

common.lisp.

Target Slot

events.

Generic Writer: (setf pollfd-events) (object)
Package

fsocket.

Methods
Writer Method: (setf pollfd-events) ((pollfd pollfd))

automatically generated writer method

Source

common.lisp.

Target Slot

events.

Generic Reader: pollfd-fd (object)
Package

fsocket.

Methods
Reader Method: pollfd-fd ((pollfd pollfd))

automatically generated reader method

Source

common.lisp.

Target Slot

fd.

Generic Writer: (setf pollfd-fd) (object)
Package

fsocket.

Methods
Writer Method: (setf pollfd-fd) ((pollfd pollfd))

automatically generated writer method

Source

common.lisp.

Target Slot

fd.

Generic Reader: pollfd-revents (object)
Package

fsocket.

Methods
Reader Method: pollfd-revents ((pollfd pollfd))

automatically generated reader method

Source

common.lisp.

Target Slot

revents.

Generic Writer: (setf pollfd-revents) (object)
Package

fsocket.

Methods
Writer Method: (setf pollfd-revents) ((pollfd pollfd))

automatically generated writer method

Source

common.lisp.

Target Slot

revents.

Generic Function: socket-option (sock level option)

Get a socket option.
SOCK ::= socket.
LEVEL ::= symbol naming a level. OPTION ::= symbol naming a socket option.

Returns the value of the named option.

Package

fsocket.

Source

options.lisp.

Methods
Method: socket-option (sock (level (eql :tcp)) (option (eql :nodelay)))
Method: socket-option (sock (level (eql :ip)) (option (eql :ip-multicast-if)))
Method: socket-option (sock (level (eql :socket)) (option (eql :rcvtimeo)))
Method: socket-option (sock (level (eql :socket)) (option (eql :error)))
Method: socket-option (sock (level (eql :socket)) (option (eql :rcvbuf)))
Method: socket-option (sock (level (eql :socket)) (option (eql :sndbuf)))
Method: socket-option (sock (level (eql :socket)) (option (eql :reuseaddr)))
Method: socket-option (sock (level (eql :socket)) (option (eql :broadcast)))
Method: socket-option (sock (level (eql :socket)) (option (eql :acceptconn)))
Generic Function: (setf socket-option) (sock level option)

Set a socket option.
SOCK ::= socket
LEVEL ::= symbol naming a socket level. OPTION ::= symbol naming a socket option. VALUE ::= value to set.

Package

fsocket.

Source

options.lisp.

Methods
Method: (setf socket-option) (sock (level (eql :tcp)) (option (eql :nodelay)))
Method: (setf socket-option) (sock (level (eql :ip)) (option (eql :ip-multicast-loop)))

Set to use or not use loopback. Value is a boolean

Method: (setf socket-option) (sock (level (eql :ip)) (option (eql :ip-multicast-if)))

Set the local interface to use. VALUE is a 4-octet array indicating the local address.

Method: (setf socket-option) (sock (level (eql :ip)) (option (eql :ip-multicast-ttl)))

Set the mutlicast TTL. Value is an integer.

Method: (setf socket-option) (sock (level (eql :ip)) (option (eql :mcast-join-group)))

VALUE ::= (index address) where INDEX is the interface index and ADDRESS is the multicast address to join.

Method: (setf socket-option) (sock (level (eql :socket)) (option (eql :rcvtimeo)))
Method: (setf socket-option) (sock (level (eql :socket)) (option (eql :sndtimeo)))
Method: (setf socket-option) (sock (level (eql :socket)) (option (eql :rcvbuf)))
Method: (setf socket-option) (sock (level (eql :socket)) (option (eql :sndbuf)))
Method: (setf socket-option) (sock (level (eql :socket)) (option (eql :reuseaddr)))
Method: (setf socket-option) (sock (level (eql :socket)) (option (eql :broadcast)))
Method: (setf socket-option) (sock (level (eql :socket)) (option (eql :acceptconn)))

5.1.4 Standalone methods

Method: close ((stream tcp-stream) &key abort)
Source

streams.lisp.

Method: stream-element-type ((stream tcp-stream))

The element type is always OCTET by definition.

Source

streams.lisp.

Method: stream-finish-output ((stream tcp-stream))
Package

sb-gray.

Source

streams.lisp.

Method: stream-force-output ((stream tcp-stream))
Package

sb-gray.

Source

streams.lisp.

Method: stream-read-byte ((stream tcp-stream))
Package

sb-gray.

Source

streams.lisp.

Method: stream-read-sequence ((stream tcp-stream) seq start end &key)

Returns the index of last byte read.

Package

trivial-gray-streams.

Source

streams.lisp.

Method: stream-write-byte ((stream tcp-stream) integer)
Package

sb-gray.

Source

streams.lisp.

Method: stream-write-sequence ((stream tcp-stream) seq start end &key)
Package

trivial-gray-streams.

Source

streams.lisp.

Method: translate-from-foreign (ptr (type sockaddr-in6-tclass))
Package

cffi.

Source

common.lisp.

Method: translate-from-foreign (ptr (type sockaddr-un-tclass))
Package

cffi.

Source

common.lisp.

Method: translate-from-foreign (ptr (type pollfd-tclass))
Package

cffi.

Source

posix.lisp.

Method: translate-from-foreign (ptr (type sockaddr-in-tclass))
Package

cffi.

Source

common.lisp.

Method: translate-into-foreign-memory ((saddr sockaddr-in6) (type sockaddr-in6-tclass) ptr)
Package

cffi.

Source

common.lisp.

Method: translate-into-foreign-memory ((saddr sockaddr-in) (type sockaddr-in-tclass) ptr)
Package

cffi.

Source

common.lisp.

Method: translate-into-foreign-memory ((saddr string) (type sockaddr-un-tclass) ptr)
Package

cffi.

Source

common.lisp.

Method: translate-into-foreign-memory (pollfd (type pollfd-tclass) ptr)
Package

cffi.

Source

posix.lisp.


5.1.5 Conditions

Condition: fsocket-error
Package

fsocket.

Source

errors.lisp.

Direct superclasses

error.

Direct subclasses

posix-error.

Direct methods

fsocket-error-msg.

Direct slots
Slot: msg
Initform

(quote nil)

Initargs

:msg

Readers

fsocket-error-msg.

Writers

This slot is read-only.

Condition: fsocket-short-buffer
Package

fsocket.

Source

errors.lisp.

Direct superclasses

condition.


Next: , Previous: , Up: Public Interface   [Contents][Index]

5.1.6 Structures

Structure: adapter
Package

fsocket.

Source

common.lisp.

Direct superclasses

structure-object.

Direct slots
Slot: name
Readers

adapter-name.

Writers

(setf adapter-name).

Slot: type
Package

common-lisp.

Readers

adapter-type.

Writers

(setf adapter-type).

Slot: address
Readers

adapter-address.

Writers

(setf adapter-address).

Slot: index
Readers

adapter-index.

Writers

(setf adapter-index).

Slot: unicast
Readers

adapter-unicast.

Writers

(setf adapter-unicast).

Slot: netmask
Readers

adapter-netmask.

Writers

(setf adapter-netmask).

Slot: broadcast
Readers

adapter-broadcast.

Writers

(setf adapter-broadcast).

Slot: status
Readers

adapter-status.

Writers

(setf adapter-status).

Slot: mtu
Readers

adapter-mtu.

Writers

(setf adapter-mtu).

Structure: poll-context
Package

fsocket.

Source

posix.lisp.

Direct superclasses

structure-object.

Direct slots
Slot: fds
Readers

poll-context-fds.

Writers

(setf poll-context-fds).

Structure: sockaddr-in
Package

fsocket.

Source

common.lisp.

Direct superclasses

structure-object.

Direct methods

translate-into-foreign-memory.

Direct slots
Slot: addr
Initform

(make-array 4 :initial-element 0)

Readers

sockaddr-in-addr.

Writers

(setf sockaddr-in-addr).

Slot: port
Initform

0

Readers

sockaddr-in-port.

Writers

(setf sockaddr-in-port).

Structure: sockaddr-in6
Package

fsocket.

Source

common.lisp.

Direct superclasses

structure-object.

Direct methods

translate-into-foreign-memory.

Direct slots
Slot: addr
Initform

(make-array 8 :initial-element 0)

Readers

sockaddr-in6-addr.

Writers

(setf sockaddr-in6-addr).

Slot: port
Initform

0

Readers

sockaddr-in6-port.

Writers

(setf sockaddr-in6-port).

Slot: flowinfo
Initform

0

Readers

sockaddr-in6-flowinfo.

Writers

(setf sockaddr-in6-flowinfo).

Slot: scopeid
Initform

0

Readers

sockaddr-in6-scopeid.

Writers

(setf sockaddr-in6-scopeid).


Previous: , Up: Public Interface   [Contents][Index]

5.1.7 Classes

Class: pollfd
Package

fsocket.

Source

common.lisp.

Direct methods
Direct slots
Slot: fd
Initform

-1

Initargs

:fd

Readers

pollfd-fd.

Writers

(setf pollfd-fd).

Slot: events
Initform

0

Initargs

:events

Readers

pollfd-events.

Writers

(setf pollfd-events).

Slot: revents
Initform

0

Initargs

:revents

Readers

pollfd-revents.

Writers

(setf pollfd-revents).

Class: tcp-stream
Package

fsocket.

Source

streams.lisp.

Direct superclasses
  • fundamental-binary-input-stream.
  • fundamental-binary-output-stream.
  • trivial-gray-stream-mixin.
Direct methods
Direct slots
Slot: fd

TCP connection file descriptor/handle.

Initargs

:fd

Readers

tcp-stream-fd.

Writers

This slot is read-only.


5.2 Internals


Next: , Previous: , Up: Internals   [Contents][Index]

5.2.1 Constants

Constant: +af-inet+
Package

fsocket.

Source

constants.lisp.

Constant: +af-inet6+
Package

fsocket.

Source

constants.lisp.

Constant: +af-unix+
Package

fsocket.

Source

constants.lisp.

Constant: +arphrd-80211+
Package

fsocket.

Source

posix.lisp.

Constant: +arphrd-ether+
Package

fsocket.

Source

posix.lisp.

Constant: +arphrd-loopback+
Package

fsocket.

Source

posix.lisp.

Constant: +arphrd-ppp+
Package

fsocket.

Source

posix.lisp.

Constant: +can-raw+
Package

fsocket.

Source

constants.lisp.

Constant: +einprogress+
Package

fsocket.

Source

posix.lisp.

Constant: +ewouldblock+
Package

fsocket.

Source

posix.lisp.

Constant: +f-getfl+
Package

fsocket.

Source

posix.lisp.

Constant: +f-setfl+
Package

fsocket.

Source

posix.lisp.

Constant: +fionbio+
Package

fsocket.

Source

posix.lisp.

Constant: +iff-loopback+
Package

fsocket.

Source

posix.lisp.

Constant: +iff-up+
Package

fsocket.

Source

posix.lisp.

Constant: +ip-multicast-if+
Package

fsocket.

Source

constants.lisp.

Constant: +ip-multicast-loop+
Package

fsocket.

Source

constants.lisp.

Constant: +ip-multicast-ttl+
Package

fsocket.

Source

constants.lisp.

Constant: +ip6-multicast-if+
Package

fsocket.

Source

constants.lisp.

Constant: +ip6-multicast-loop+
Package

fsocket.

Source

constants.lisp.

Constant: +ipproto-ip+
Package

fsocket.

Source

constants.lisp.

Constant: +ipproto-ip6+
Package

fsocket.

Source

constants.lisp.

Constant: +ipproto-tcp+
Package

fsocket.

Source

constants.lisp.

Constant: +ipproto-udp+
Package

fsocket.

Source

constants.lisp.

Constant: +ipv6-multicast-hops+
Package

fsocket.

Source

constants.lisp.

Constant: +mcast-join-group+
Package

fsocket.

Source

constants.lisp.

Constant: +o-nonblock+
Package

fsocket.

Source

posix.lisp.

Constant: +pf-can+
Package

fsocket.

Source

constants.lisp.

Constant: +siocgifbrdaddr+
Package

fsocket.

Source

posix.lisp.

Constant: +siocgifhwaddr+
Package

fsocket.

Source

posix.lisp.

Constant: +siocgifindex+
Package

fsocket.

Source

constants.lisp.

Constant: +siocgifmtu+
Package

fsocket.

Source

posix.lisp.

Constant: +siocgifname+
Package

fsocket.

Source

constants.lisp.

Constant: +siocgifnetmask+
Package

fsocket.

Source

posix.lisp.

Constant: +siocgstamp+
Package

fsocket.

Source

constants.lisp.

Constant: +so-acceptconn+
Package

fsocket.

Source

constants.lisp.

Constant: +so-broadcast+
Package

fsocket.

Source

constants.lisp.

Constant: +so-error+
Package

fsocket.

Source

constants.lisp.

Constant: +so-rcvbuf+
Package

fsocket.

Source

constants.lisp.

Constant: +so-rcvtimeo+
Package

fsocket.

Source

constants.lisp.

Constant: +so-reuseaddr+
Package

fsocket.

Source

constants.lisp.

Constant: +so-sndbuf+
Package

fsocket.

Source

constants.lisp.

Constant: +so-sndtimeo+
Package

fsocket.

Source

constants.lisp.

Constant: +sock-dgram+
Package

fsocket.

Source

constants.lisp.

Constant: +sock-raw+
Package

fsocket.

Source

constants.lisp.

Constant: +sock-stream+
Package

fsocket.

Source

constants.lisp.

Constant: +sockaddr-storage+
Package

fsocket.

Source

posix.lisp.

Constant: +socket-error+
Package

fsocket.

Source

posix.lisp.

Constant: +sol-socket+
Package

fsocket.

Source

constants.lisp.

Constant: +syscall-error+
Package

fsocket.

Source

posix.lisp.

Constant: +tcp-nodelay+
Package

fsocket.

Source

constants.lisp.


Next: , Previous: , Up: Internals   [Contents][Index]

5.2.2 Symbol macros

Symbol Macro: *errno*
Package

fsocket.

Source

posix.lisp.


5.2.3 Macros

Macro: with-syscall-else-error (syscall error)
Package

fsocket.

Source

posix.lisp.

Macro: with-tcp-stream ((var fd) &body body)

Evaluate BODY in a context where VAR is bound to the TCP file descriptor.

Package

fsocket.

Source

streams.lisp.


Next: , Previous: , Up: Internals   [Contents][Index]

5.2.4 Ordinary functions

Function: %accept (fd addr len)
Package

fsocket.

Source

posix.lisp.

Function: %bind (fd addr len)
Package

fsocket.

Source

posix.lisp.

Function: %close (fd)
Package

fsocket.

Source

posix.lisp.

Function: %connect (fd addr len)
Package

fsocket.

Source

posix.lisp.

Function: %fcntl (fd cmd arg)
Package

fsocket.

Source

posix.lisp.

Function: %freeifaddrs (ifaddrs)
Package

fsocket.

Source

posix.lisp.

Function: %get-domain-name (name len)
Package

fsocket.

Source

posix.lisp.

Function: %get-host-name (name len)
Package

fsocket.

Source

posix.lisp.

Function: %getifaddrs (ifaddrs)
Package

fsocket.

Source

posix.lisp.

Function: %getpeername (fd addr len)
Package

fsocket.

Source

posix.lisp.

Function: %getsockname (fd addr len)
Package

fsocket.

Source

posix.lisp.

Function: %getsockopt (fd level option val vlen)
Package

fsocket.

Source

posix.lisp.

Function: %if-nametoindex (name)
Package

fsocket.

Source

posix.lisp.

Function: %ioctl (fd req argp)
Package

fsocket.

Source

posix.lisp.

Function: %listen (fd backlog)
Package

fsocket.

Source

posix.lisp.

Function: %poll (fds count timeout)
Package

fsocket.

Source

posix.lisp.

Function: %read (fd buffer count)
Package

fsocket.

Source

common.lisp.

Function: %recv (fd buffer len flags)
Package

fsocket.

Source

posix.lisp.

Function: %recvfrom (fd buffer len flags addr alen)
Package

fsocket.

Source

posix.lisp.

Function: %res-ndestroy (state)
Package

fsocket.

Source

posix.lisp.

Function: %res-ninit (state)
Package

fsocket.

Source

posix.lisp.

Function: %send (fd buffer len flags)
Package

fsocket.

Source

posix.lisp.

Function: %sendto (fd buffer len flags addr alen)
Package

fsocket.

Source

posix.lisp.

Function: %setsockopt (fd level option val vlen)
Package

fsocket.

Source

posix.lisp.

Function: %shutdown-socket (fd how)
Package

fsocket.

Source

posix.lisp.

Function: %socket (family type prot)
Package

fsocket.

Source

posix.lisp.

Function: %var-accessor-*errno* ()
Package

fsocket.

Source

posix.lisp.

Function: (setf %var-accessor-*errno*) ()
Package

fsocket.

Source

posix.lisp.

Function: %write (fd buffer count)
Package

fsocket.

Source

common.lisp.

Function: adapter-p (object)
Package

fsocket.

Source

common.lisp.

Reader: can-interface-name (instance)
Writer: (setf can-interface-name) (instance)
Package

fsocket.

Source

common.lisp.

Target Slot

name.

Function: can-interface-p (object)
Package

fsocket.

Source

common.lisp.

Reader: can-packet-data (instance)
Writer: (setf can-packet-data) (instance)
Package

fsocket.

Source

common.lisp.

Target Slot

data.

Reader: can-packet-id (instance)
Writer: (setf can-packet-id) (instance)
Package

fsocket.

Source

common.lisp.

Target Slot

id.

Reader: can-packet-origin (instance)
Writer: (setf can-packet-origin) (instance)
Package

fsocket.

Source

common.lisp.

Target Slot

origin.

Function: can-packet-p (object)
Package

fsocket.

Source

common.lisp.

Reader: can-packet-timestamp (instance)
Writer: (setf can-packet-timestamp) (instance)
Package

fsocket.

Source

common.lisp.

Target Slot

timestamp.

Function: copy-adapter (instance)
Package

fsocket.

Source

common.lisp.

Function: copy-can-interface (instance)
Package

fsocket.

Source

common.lisp.

Function: copy-can-packet (instance)
Package

fsocket.

Source

common.lisp.

Function: copy-poll-context (instance)
Package

fsocket.

Source

posix.lisp.

Function: copy-sockaddr-in (instance)
Package

fsocket.

Source

common.lisp.

Function: copy-sockaddr-in6 (instance)
Package

fsocket.

Source

common.lisp.

Function: dotted-quad-p (string)
Package

fsocket.

Source

common.lisp.

Function: dotted-quad-to-inaddr (string &optional error-p)
Package

fsocket.

Source

common.lisp.

Function: get-last-error (&optional ecode)
Package

fsocket.

Source

posix.lisp.

Function: get-socket-option-boolean (sock level option)
Package

fsocket.

Source

options.lisp.

Function: get-socket-option-int32 (sock level option)
Package

fsocket.

Source

options.lisp.

Function: get-socket-option-uint32 (sock level option)
Package

fsocket.

Source

options.lisp.

Function: htonl (integer)

Return a 32-bit big-endian integer

Package

fsocket.

Source

common.lisp.

Function: htons (integer)

Return a 16-bit big-endian integer

Package

fsocket.

Source

common.lisp.

Function: inaddr-to-dotted-quad (inaddr)
Package

fsocket.

Source

common.lisp.

Function: invalid-socket-p (sock)
Package

fsocket.

Source

posix.lisp.

Function: make-adapter (&key name type address index unicast netmask broadcast status mtu)
Package

fsocket.

Source

common.lisp.

Function: make-poll-context (&key fds)
Package

fsocket.

Source

posix.lisp.

Function: ntohs (integer)

Return a 16-bit integer converted from big-endian

Package

fsocket.

Source

common.lisp.

Function: poll-context-p (object)
Package

fsocket.

Source

posix.lisp.

Function: set-nonblocking (fd)
Package

fsocket.

Source

posix.lisp.

Function: set-socket-option-boolean (sock level option value)
Package

fsocket.

Source

options.lisp.

Function: set-socket-option-int32 (sock level option value)
Package

fsocket.

Source

options.lisp.

Function: set-socket-option-pointer (sock level option pointer len)
Package

fsocket.

Source

options.lisp.

Function: set-socket-option-uint32 (sock level option value)
Package

fsocket.

Source

options.lisp.

Reader: sockaddr-in6-flowinfo (instance)
Writer: (setf sockaddr-in6-flowinfo) (instance)
Package

fsocket.

Source

common.lisp.

Target Slot

flowinfo.

Reader: sockaddr-in6-scopeid (instance)
Writer: (setf sockaddr-in6-scopeid) (instance)
Package

fsocket.

Source

common.lisp.

Target Slot

scopeid.

Function: socket-flags (fd)
Package

fsocket.

Source

posix.lisp.

Function: (setf socket-flags) (fd)
Package

fsocket.

Source

posix.lisp.

Function: strerror (sts)
Package

fsocket.

Source

posix.lisp.

Function: translate-sockaddr-family (ptr)
Package

fsocket.

Source

common.lisp.

Function: translate-sockaddr-from-foreign (ptr)
Package

fsocket.

Source

common.lisp.


Next: , Previous: , Up: Internals   [Contents][Index]

5.2.5 Generic functions

Generic Reader: fsocket-error-msg (condition)
Package

fsocket.

Methods
Reader Method: fsocket-error-msg ((condition fsocket-error))
Source

errors.lisp.

Target Slot

msg.

Generic Reader: posix-error-code (condition)
Package

fsocket.

Methods
Reader Method: posix-error-code ((condition posix-error))
Source

posix.lisp.

Target Slot

code.

Generic Reader: tcp-stream-fd (object)
Package

fsocket.

Methods
Reader Method: tcp-stream-fd ((tcp-stream tcp-stream))

TCP connection file descriptor/handle.

Source

streams.lisp.

Target Slot

fd.


Next: , Previous: , Up: Internals   [Contents][Index]

5.2.6 Conditions

Condition: posix-error
Package

fsocket.

Source

posix.lisp.

Direct superclasses

fsocket-error.

Direct methods

posix-error-code.

Direct slots
Slot: code
Initform

(quote 0)

Initargs

:code

Readers

posix-error-code.

Writers

This slot is read-only.


Next: , Previous: , Up: Internals   [Contents][Index]

5.2.7 Structures

Structure: can-interface
Package

fsocket.

Source

common.lisp.

Direct superclasses

structure-object.

Direct slots
Slot: name
Initform

"any"

Readers

can-interface-name.

Writers

(setf can-interface-name).

Structure: can-packet
Package

fsocket.

Source

common.lisp.

Direct superclasses

structure-object.

Direct slots
Slot: id
Readers

can-packet-id.

Writers

(setf can-packet-id).

Slot: data
Readers

can-packet-data.

Writers

(setf can-packet-data).

Slot: timestamp
Readers

can-packet-timestamp.

Writers

(setf can-packet-timestamp).

Slot: origin
Readers

can-packet-origin.

Writers

(setf can-packet-origin).


Previous: , Up: Internals   [Contents][Index]

5.2.8 Classes

Class: can-frame-tclass
Package

fsocket.

Source

posix.lisp.

Direct superclasses
  • foreign-struct-type.
  • translatable-foreign-type.
Class: group-req-tclass
Package

fsocket.

Source

options.lisp.

Direct superclasses
  • foreign-struct-type.
  • translatable-foreign-type.
Class: ifaddrs-tclass
Package

fsocket.

Source

posix.lisp.

Direct superclasses
  • foreign-struct-type.
  • translatable-foreign-type.
Class: ifmap-tclass
Package

fsocket.

Source

posix.lisp.

Direct superclasses
  • foreign-struct-type.
  • translatable-foreign-type.
Class: ifreq-tclass
Package

fsocket.

Source

posix.lisp.

Direct superclasses
  • foreign-struct-type.
  • translatable-foreign-type.
Class: pollfd-tclass
Package

fsocket.

Source

posix.lisp.

Direct superclasses
  • foreign-struct-type.
  • translatable-foreign-type.
Direct methods
Class: res-state-tclass
Package

fsocket.

Source

posix.lisp.

Direct superclasses
  • foreign-struct-type.
  • translatable-foreign-type.
Class: sockaddr-can-tclass
Package

fsocket.

Source

posix.lisp.

Direct superclasses
  • foreign-struct-type.
  • translatable-foreign-type.
Class: sockaddr-in-tclass
Package

fsocket.

Source

common.lisp.

Direct superclasses
  • foreign-struct-type.
  • translatable-foreign-type.
Direct methods
Class: sockaddr-in6-tclass
Package

fsocket.

Source

common.lisp.

Direct superclasses
  • foreign-struct-type.
  • translatable-foreign-type.
Direct methods
Class: sockaddr-un-tclass
Package

fsocket.

Source

common.lisp.

Direct superclasses
  • foreign-struct-type.
  • translatable-foreign-type.
Direct methods
Class: timeval-tclass
Package

fsocket.

Source

options.lisp.

Direct superclasses
  • foreign-struct-type.
  • translatable-foreign-type.
Class: tp-tclass
Package

fsocket.

Source

posix.lisp.

Direct superclasses
  • foreign-struct-type.
  • translatable-foreign-type.

Appendix A Indexes


Next: , Previous: , Up: Indexes   [Contents][Index]

A.1 Concepts


Next: , Previous: , Up: Indexes   [Contents][Index]

A.2 Functions

Jump to:   %   (  
A   C   D   F   G   H   I   L   M   N   O   P   S   T   W  
Index Entry  Section

%
%accept: Private ordinary functions
%bind: Private ordinary functions
%close: Private ordinary functions
%connect: Private ordinary functions
%fcntl: Private ordinary functions
%freeifaddrs: Private ordinary functions
%get-domain-name: Private ordinary functions
%get-host-name: Private ordinary functions
%getifaddrs: Private ordinary functions
%getpeername: Private ordinary functions
%getsockname: Private ordinary functions
%getsockopt: Private ordinary functions
%if-nametoindex: Private ordinary functions
%ioctl: Private ordinary functions
%listen: Private ordinary functions
%poll: Private ordinary functions
%read: Private ordinary functions
%recv: Private ordinary functions
%recvfrom: Private ordinary functions
%res-ndestroy: Private ordinary functions
%res-ninit: Private ordinary functions
%send: Private ordinary functions
%sendto: Private ordinary functions
%setsockopt: Private ordinary functions
%shutdown-socket: Private ordinary functions
%socket: Private ordinary functions
%var-accessor-*errno*: Private ordinary functions
%write: Private ordinary functions

(
(setf %var-accessor-*errno*): Private ordinary functions
(setf adapter-address): Public ordinary functions
(setf adapter-broadcast): Public ordinary functions
(setf adapter-index): Public ordinary functions
(setf adapter-mtu): Public ordinary functions
(setf adapter-name): Public ordinary functions
(setf adapter-netmask): Public ordinary functions
(setf adapter-status): Public ordinary functions
(setf adapter-type): Public ordinary functions
(setf adapter-unicast): Public ordinary functions
(setf can-interface-name): Private ordinary functions
(setf can-packet-data): Private ordinary functions
(setf can-packet-id): Private ordinary functions
(setf can-packet-origin): Private ordinary functions
(setf can-packet-timestamp): Private ordinary functions
(setf poll-context-fds): Public ordinary functions
(setf pollfd-events): Public generic functions
(setf pollfd-events): Public generic functions
(setf pollfd-fd): Public generic functions
(setf pollfd-fd): Public generic functions
(setf pollfd-revents): Public generic functions
(setf pollfd-revents): Public generic functions
(setf sockaddr-in-addr): Public ordinary functions
(setf sockaddr-in-port): Public ordinary functions
(setf sockaddr-in6-addr): Public ordinary functions
(setf sockaddr-in6-flowinfo): Private ordinary functions
(setf sockaddr-in6-port): Public ordinary functions
(setf sockaddr-in6-scopeid): Private ordinary functions
(setf socket-flags): Private ordinary functions
(setf socket-option): Public generic functions
(setf socket-option): Public generic functions
(setf socket-option): Public generic functions
(setf socket-option): Public generic functions
(setf socket-option): Public generic functions
(setf socket-option): Public generic functions
(setf socket-option): Public generic functions
(setf socket-option): Public generic functions
(setf socket-option): Public generic functions
(setf socket-option): Public generic functions
(setf socket-option): Public generic functions
(setf socket-option): Public generic functions
(setf socket-option): Public generic functions

A
adapter-address: Public ordinary functions
adapter-broadcast: Public ordinary functions
adapter-index: Public ordinary functions
adapter-mtu: Public ordinary functions
adapter-name: Public ordinary functions
adapter-netmask: Public ordinary functions
adapter-p: Private ordinary functions
adapter-status: Public ordinary functions
adapter-type: Public ordinary functions
adapter-unicast: Public ordinary functions

C
can-interface-name: Private ordinary functions
can-interface-p: Private ordinary functions
can-packet-data: Private ordinary functions
can-packet-id: Private ordinary functions
can-packet-origin: Private ordinary functions
can-packet-p: Private ordinary functions
can-packet-timestamp: Private ordinary functions
close: Public standalone methods
close-poll: Public ordinary functions
close-socket: Public ordinary functions
copy-adapter: Private ordinary functions
copy-can-interface: Private ordinary functions
copy-can-packet: Private ordinary functions
copy-poll-context: Private ordinary functions
copy-sockaddr-in: Private ordinary functions
copy-sockaddr-in6: Private ordinary functions

D
doevents: Public macros
dotted-quad-p: Private ordinary functions
dotted-quad-to-inaddr: Private ordinary functions

F
fsocket-error-msg: Private generic functions
fsocket-error-msg: Private generic functions
Function, %accept: Private ordinary functions
Function, %bind: Private ordinary functions
Function, %close: Private ordinary functions
Function, %connect: Private ordinary functions
Function, %fcntl: Private ordinary functions
Function, %freeifaddrs: Private ordinary functions
Function, %get-domain-name: Private ordinary functions
Function, %get-host-name: Private ordinary functions
Function, %getifaddrs: Private ordinary functions
Function, %getpeername: Private ordinary functions
Function, %getsockname: Private ordinary functions
Function, %getsockopt: Private ordinary functions
Function, %if-nametoindex: Private ordinary functions
Function, %ioctl: Private ordinary functions
Function, %listen: Private ordinary functions
Function, %poll: Private ordinary functions
Function, %read: Private ordinary functions
Function, %recv: Private ordinary functions
Function, %recvfrom: Private ordinary functions
Function, %res-ndestroy: Private ordinary functions
Function, %res-ninit: Private ordinary functions
Function, %send: Private ordinary functions
Function, %sendto: Private ordinary functions
Function, %setsockopt: Private ordinary functions
Function, %shutdown-socket: Private ordinary functions
Function, %socket: Private ordinary functions
Function, %var-accessor-*errno*: Private ordinary functions
Function, %write: Private ordinary functions
Function, (setf %var-accessor-*errno*): Private ordinary functions
Function, (setf adapter-address): Public ordinary functions
Function, (setf adapter-broadcast): Public ordinary functions
Function, (setf adapter-index): Public ordinary functions
Function, (setf adapter-mtu): Public ordinary functions
Function, (setf adapter-name): Public ordinary functions
Function, (setf adapter-netmask): Public ordinary functions
Function, (setf adapter-status): Public ordinary functions
Function, (setf adapter-type): Public ordinary functions
Function, (setf adapter-unicast): Public ordinary functions
Function, (setf can-interface-name): Private ordinary functions
Function, (setf can-packet-data): Private ordinary functions
Function, (setf can-packet-id): Private ordinary functions
Function, (setf can-packet-origin): Private ordinary functions
Function, (setf can-packet-timestamp): Private ordinary functions
Function, (setf poll-context-fds): Public ordinary functions
Function, (setf sockaddr-in-addr): Public ordinary functions
Function, (setf sockaddr-in-port): Public ordinary functions
Function, (setf sockaddr-in6-addr): Public ordinary functions
Function, (setf sockaddr-in6-flowinfo): Private ordinary functions
Function, (setf sockaddr-in6-port): Public ordinary functions
Function, (setf sockaddr-in6-scopeid): Private ordinary functions
Function, (setf socket-flags): Private ordinary functions
Function, adapter-address: Public ordinary functions
Function, adapter-broadcast: Public ordinary functions
Function, adapter-index: Public ordinary functions
Function, adapter-mtu: Public ordinary functions
Function, adapter-name: Public ordinary functions
Function, adapter-netmask: Public ordinary functions
Function, adapter-p: Private ordinary functions
Function, adapter-status: Public ordinary functions
Function, adapter-type: Public ordinary functions
Function, adapter-unicast: Public ordinary functions
Function, can-interface-name: Private ordinary functions
Function, can-interface-p: Private ordinary functions
Function, can-packet-data: Private ordinary functions
Function, can-packet-id: Private ordinary functions
Function, can-packet-origin: Private ordinary functions
Function, can-packet-p: Private ordinary functions
Function, can-packet-timestamp: Private ordinary functions
Function, close-poll: Public ordinary functions
Function, close-socket: Public ordinary functions
Function, copy-adapter: Private ordinary functions
Function, copy-can-interface: Private ordinary functions
Function, copy-can-packet: Private ordinary functions
Function, copy-poll-context: Private ordinary functions
Function, copy-sockaddr-in: Private ordinary functions
Function, copy-sockaddr-in6: Private ordinary functions
Function, dotted-quad-p: Private ordinary functions
Function, dotted-quad-to-inaddr: Private ordinary functions
Function, get-host-name: Public ordinary functions
Function, get-last-error: Private ordinary functions
Function, get-name-servers: Public ordinary functions
Function, get-socket-option-boolean: Private ordinary functions
Function, get-socket-option-int32: Private ordinary functions
Function, get-socket-option-uint32: Private ordinary functions
Function, htonl: Private ordinary functions
Function, htons: Private ordinary functions
Function, inaddr-to-dotted-quad: Private ordinary functions
Function, invalid-socket-p: Private ordinary functions
Function, list-adapters: Public ordinary functions
Function, loopback-p: Public ordinary functions
Function, make-adapter: Private ordinary functions
Function, make-can-interface: Public ordinary functions
Function, make-can-packet: Public ordinary functions
Function, make-poll-context: Private ordinary functions
Function, make-sockaddr-in: Public ordinary functions
Function, make-sockaddr-in6: Public ordinary functions
Function, make-tcp-stream: Public ordinary functions
Function, multicast-join: Public ordinary functions
Function, ntohs: Private ordinary functions
Function, open-multicast-socket: Public ordinary functions
Function, open-poll: Public ordinary functions
Function, open-socket: Public ordinary functions
Function, open-tcp-connection: Public ordinary functions
Function, open-tcp-socket: Public ordinary functions
Function, open-udp-socket: Public ordinary functions
Function, parse-can-packet: Public ordinary functions
Function, poll: Public ordinary functions
Function, poll-context-fds: Public ordinary functions
Function, poll-context-p: Private ordinary functions
Function, poll-event: Public ordinary functions
Function, poll-event-p: Public ordinary functions
Function, poll-events: Public ordinary functions
Function, poll-find: Public ordinary functions
Function, poll-register: Public ordinary functions
Function, poll-unregister: Public ordinary functions
Function, set-nonblocking: Private ordinary functions
Function, set-socket-option-boolean: Private ordinary functions
Function, set-socket-option-int32: Private ordinary functions
Function, set-socket-option-pointer: Private ordinary functions
Function, set-socket-option-uint32: Private ordinary functions
Function, sockaddr-in: Public ordinary functions
Function, sockaddr-in-addr: Public ordinary functions
Function, sockaddr-in-p: Public ordinary functions
Function, sockaddr-in-port: Public ordinary functions
Function, sockaddr-in6: Public ordinary functions
Function, sockaddr-in6-addr: Public ordinary functions
Function, sockaddr-in6-flowinfo: Private ordinary functions
Function, sockaddr-in6-p: Public ordinary functions
Function, sockaddr-in6-port: Public ordinary functions
Function, sockaddr-in6-scopeid: Private ordinary functions
Function, sockaddr-string: Public ordinary functions
Function, sockaddr=: Public ordinary functions
Function, socket-accept: Public ordinary functions
Function, socket-bind: Public ordinary functions
Function, socket-connect: Public ordinary functions
Function, socket-flags: Private ordinary functions
Function, socket-listen: Public ordinary functions
Function, socket-name: Public ordinary functions
Function, socket-peer: Public ordinary functions
Function, socket-recv: Public ordinary functions
Function, socket-recvfrom: Public ordinary functions
Function, socket-send: Public ordinary functions
Function, socket-sendto: Public ordinary functions
Function, socket-shutdown: Public ordinary functions
Function, strerror: Private ordinary functions
Function, string-sockaddr: Public ordinary functions
Function, translate-sockaddr-family: Private ordinary functions
Function, translate-sockaddr-from-foreign: Private ordinary functions

G
Generic Function, (setf pollfd-events): Public generic functions
Generic Function, (setf pollfd-fd): Public generic functions
Generic Function, (setf pollfd-revents): Public generic functions
Generic Function, (setf socket-option): Public generic functions
Generic Function, fsocket-error-msg: Private generic functions
Generic Function, pollfd-events: Public generic functions
Generic Function, pollfd-fd: Public generic functions
Generic Function, pollfd-revents: Public generic functions
Generic Function, posix-error-code: Private generic functions
Generic Function, socket-option: Public generic functions
Generic Function, tcp-stream-fd: Private generic functions
get-host-name: Public ordinary functions
get-last-error: Private ordinary functions
get-name-servers: Public ordinary functions
get-socket-option-boolean: Private ordinary functions
get-socket-option-int32: Private ordinary functions
get-socket-option-uint32: Private ordinary functions

H
htonl: Private ordinary functions
htons: Private ordinary functions

I
inaddr-to-dotted-quad: Private ordinary functions
invalid-socket-p: Private ordinary functions

L
list-adapters: Public ordinary functions
loopback-p: Public ordinary functions

M
Macro, doevents: Public macros
Macro, with-can-socket: Public macros
Macro, with-poll: Public macros
Macro, with-socket: Public macros
Macro, with-syscall-else-error: Private macros
Macro, with-tcp-connection: Public macros
Macro, with-tcp-socket: Public macros
Macro, with-tcp-stream: Private macros
Macro, with-udp-socket: Public macros
make-adapter: Private ordinary functions
make-can-interface: Public ordinary functions
make-can-packet: Public ordinary functions
make-poll-context: Private ordinary functions
make-sockaddr-in: Public ordinary functions
make-sockaddr-in6: Public ordinary functions
make-tcp-stream: Public ordinary functions
Method, (setf pollfd-events): Public generic functions
Method, (setf pollfd-fd): Public generic functions
Method, (setf pollfd-revents): Public generic functions
Method, (setf socket-option): Public generic functions
Method, (setf socket-option): Public generic functions
Method, (setf socket-option): Public generic functions
Method, (setf socket-option): Public generic functions
Method, (setf socket-option): Public generic functions
Method, (setf socket-option): Public generic functions
Method, (setf socket-option): Public generic functions
Method, (setf socket-option): Public generic functions
Method, (setf socket-option): Public generic functions
Method, (setf socket-option): Public generic functions
Method, (setf socket-option): Public generic functions
Method, (setf socket-option): Public generic functions
Method, close: Public standalone methods
Method, fsocket-error-msg: Private generic functions
Method, pollfd-events: Public generic functions
Method, pollfd-fd: Public generic functions
Method, pollfd-revents: Public generic functions
Method, posix-error-code: Private generic functions
Method, socket-option: Public generic functions
Method, socket-option: Public generic functions
Method, socket-option: Public generic functions
Method, socket-option: Public generic functions
Method, socket-option: Public generic functions
Method, socket-option: Public generic functions
Method, socket-option: Public generic functions
Method, socket-option: Public generic functions
Method, socket-option: Public generic functions
Method, stream-element-type: Public standalone methods
Method, stream-finish-output: Public standalone methods
Method, stream-force-output: Public standalone methods
Method, stream-read-byte: Public standalone methods
Method, stream-read-sequence: Public standalone methods
Method, stream-write-byte: Public standalone methods
Method, stream-write-sequence: Public standalone methods
Method, tcp-stream-fd: Private generic functions
Method, translate-from-foreign: Public standalone methods
Method, translate-from-foreign: Public standalone methods
Method, translate-from-foreign: Public standalone methods
Method, translate-from-foreign: Public standalone methods
Method, translate-into-foreign-memory: Public standalone methods
Method, translate-into-foreign-memory: Public standalone methods
Method, translate-into-foreign-memory: Public standalone methods
Method, translate-into-foreign-memory: Public standalone methods
multicast-join: Public ordinary functions

N
ntohs: Private ordinary functions

O
open-multicast-socket: Public ordinary functions
open-poll: Public ordinary functions
open-socket: Public ordinary functions
open-tcp-connection: Public ordinary functions
open-tcp-socket: Public ordinary functions
open-udp-socket: Public ordinary functions

P
parse-can-packet: Public ordinary functions
poll: Public ordinary functions
poll-context-fds: Public ordinary functions
poll-context-p: Private ordinary functions
poll-event: Public ordinary functions
poll-event-p: Public ordinary functions
poll-events: Public ordinary functions
poll-find: Public ordinary functions
poll-register: Public ordinary functions
poll-unregister: Public ordinary functions
pollfd-events: Public generic functions
pollfd-events: Public generic functions
pollfd-fd: Public generic functions
pollfd-fd: Public generic functions
pollfd-revents: Public generic functions
pollfd-revents: Public generic functions
posix-error-code: Private generic functions
posix-error-code: Private generic functions

S
set-nonblocking: Private ordinary functions
set-socket-option-boolean: Private ordinary functions
set-socket-option-int32: Private ordinary functions
set-socket-option-pointer: Private ordinary functions
set-socket-option-uint32: Private ordinary functions
sockaddr-in: Public ordinary functions
sockaddr-in-addr: Public ordinary functions
sockaddr-in-p: Public ordinary functions
sockaddr-in-port: Public ordinary functions
sockaddr-in6: Public ordinary functions
sockaddr-in6-addr: Public ordinary functions
sockaddr-in6-flowinfo: Private ordinary functions
sockaddr-in6-p: Public ordinary functions
sockaddr-in6-port: Public ordinary functions
sockaddr-in6-scopeid: Private ordinary functions
sockaddr-string: Public ordinary functions
sockaddr=: Public ordinary functions
socket-accept: Public ordinary functions
socket-bind: Public ordinary functions
socket-connect: Public ordinary functions
socket-flags: Private ordinary functions
socket-listen: Public ordinary functions
socket-name: Public ordinary functions
socket-option: Public generic functions
socket-option: Public generic functions
socket-option: Public generic functions
socket-option: Public generic functions
socket-option: Public generic functions
socket-option: Public generic functions
socket-option: Public generic functions
socket-option: Public generic functions
socket-option: Public generic functions
socket-option: Public generic functions
socket-peer: Public ordinary functions
socket-recv: Public ordinary functions
socket-recvfrom: Public ordinary functions
socket-send: Public ordinary functions
socket-sendto: Public ordinary functions
socket-shutdown: Public ordinary functions
stream-element-type: Public standalone methods
stream-finish-output: Public standalone methods
stream-force-output: Public standalone methods
stream-read-byte: Public standalone methods
stream-read-sequence: Public standalone methods
stream-write-byte: Public standalone methods
stream-write-sequence: Public standalone methods
strerror: Private ordinary functions
string-sockaddr: Public ordinary functions

T
tcp-stream-fd: Private generic functions
tcp-stream-fd: Private generic functions
translate-from-foreign: Public standalone methods
translate-from-foreign: Public standalone methods
translate-from-foreign: Public standalone methods
translate-from-foreign: Public standalone methods
translate-into-foreign-memory: Public standalone methods
translate-into-foreign-memory: Public standalone methods
translate-into-foreign-memory: Public standalone methods
translate-into-foreign-memory: Public standalone methods
translate-sockaddr-family: Private ordinary functions
translate-sockaddr-from-foreign: Private ordinary functions

W
with-can-socket: Public macros
with-poll: Public macros
with-socket: Public macros
with-syscall-else-error: Private macros
with-tcp-connection: Public macros
with-tcp-socket: Public macros
with-tcp-stream: Private macros
with-udp-socket: Public macros

Jump to:   %   (  
A   C   D   F   G   H   I   L   M   N   O   P   S   T   W  

Next: , Previous: , Up: Indexes   [Contents][Index]

A.3 Variables

Jump to:   *   +  
A   B   C   D   E   F   I   M   N   O   P   R   S   T   U  
Index Entry  Section

*
*errno*: Private symbol macros

+
+af-inet+: Private constants
+af-inet6+: Private constants
+af-unix+: Private constants
+arphrd-80211+: Private constants
+arphrd-ether+: Private constants
+arphrd-loopback+: Private constants
+arphrd-ppp+: Private constants
+can-raw+: Private constants
+einprogress+: Private constants
+ewouldblock+: Private constants
+f-getfl+: Private constants
+f-setfl+: Private constants
+fionbio+: Private constants
+iff-loopback+: Private constants
+iff-up+: Private constants
+ip-multicast-if+: Private constants
+ip-multicast-loop+: Private constants
+ip-multicast-ttl+: Private constants
+ip6-multicast-if+: Private constants
+ip6-multicast-loop+: Private constants
+ipproto-ip+: Private constants
+ipproto-ip6+: Private constants
+ipproto-tcp+: Private constants
+ipproto-udp+: Private constants
+ipv6-multicast-hops+: Private constants
+mcast-join-group+: Private constants
+o-nonblock+: Private constants
+pf-can+: Private constants
+siocgifbrdaddr+: Private constants
+siocgifhwaddr+: Private constants
+siocgifindex+: Private constants
+siocgifmtu+: Private constants
+siocgifname+: Private constants
+siocgifnetmask+: Private constants
+siocgstamp+: Private constants
+so-acceptconn+: Private constants
+so-broadcast+: Private constants
+so-error+: Private constants
+so-rcvbuf+: Private constants
+so-rcvtimeo+: Private constants
+so-reuseaddr+: Private constants
+so-sndbuf+: Private constants
+so-sndtimeo+: Private constants
+sock-dgram+: Private constants
+sock-raw+: Private constants
+sock-stream+: Private constants
+sockaddr-storage+: Private constants
+socket-error+: Private constants
+sol-socket+: Private constants
+syscall-error+: Private constants
+tcp-nodelay+: Private constants

A
addr: Public structures
addr: Public structures
address: Public structures

B
broadcast: Public structures

C
code: Private conditions
Constant, +af-inet+: Private constants
Constant, +af-inet6+: Private constants
Constant, +af-unix+: Private constants
Constant, +arphrd-80211+: Private constants
Constant, +arphrd-ether+: Private constants
Constant, +arphrd-loopback+: Private constants
Constant, +arphrd-ppp+: Private constants
Constant, +can-raw+: Private constants
Constant, +einprogress+: Private constants
Constant, +ewouldblock+: Private constants
Constant, +f-getfl+: Private constants
Constant, +f-setfl+: Private constants
Constant, +fionbio+: Private constants
Constant, +iff-loopback+: Private constants
Constant, +iff-up+: Private constants
Constant, +ip-multicast-if+: Private constants
Constant, +ip-multicast-loop+: Private constants
Constant, +ip-multicast-ttl+: Private constants
Constant, +ip6-multicast-if+: Private constants
Constant, +ip6-multicast-loop+: Private constants
Constant, +ipproto-ip+: Private constants
Constant, +ipproto-ip6+: Private constants
Constant, +ipproto-tcp+: Private constants
Constant, +ipproto-udp+: Private constants
Constant, +ipv6-multicast-hops+: Private constants
Constant, +mcast-join-group+: Private constants
Constant, +o-nonblock+: Private constants
Constant, +pf-can+: Private constants
Constant, +siocgifbrdaddr+: Private constants
Constant, +siocgifhwaddr+: Private constants
Constant, +siocgifindex+: Private constants
Constant, +siocgifmtu+: Private constants
Constant, +siocgifname+: Private constants
Constant, +siocgifnetmask+: Private constants
Constant, +siocgstamp+: Private constants
Constant, +so-acceptconn+: Private constants
Constant, +so-broadcast+: Private constants
Constant, +so-error+: Private constants
Constant, +so-rcvbuf+: Private constants
Constant, +so-rcvtimeo+: Private constants
Constant, +so-reuseaddr+: Private constants
Constant, +so-sndbuf+: Private constants
Constant, +so-sndtimeo+: Private constants
Constant, +sock-dgram+: Private constants
Constant, +sock-raw+: Private constants
Constant, +sock-stream+: Private constants
Constant, +sockaddr-storage+: Private constants
Constant, +socket-error+: Private constants
Constant, +sol-socket+: Private constants
Constant, +syscall-error+: Private constants
Constant, +tcp-nodelay+: Private constants

D
data: Private structures

E
events: Public classes

F
fd: Public classes
fd: Public classes
fds: Public structures
flowinfo: Public structures

I
id: Private structures
index: Public structures

M
msg: Public conditions
mtu: Public structures

N
name: Public structures
name: Private structures
netmask: Public structures

O
origin: Private structures

P
port: Public structures
port: Public structures

R
revents: Public classes

S
scopeid: Public structures
Slot, addr: Public structures
Slot, addr: Public structures
Slot, address: Public structures
Slot, broadcast: Public structures
Slot, code: Private conditions
Slot, data: Private structures
Slot, events: Public classes
Slot, fd: Public classes
Slot, fd: Public classes
Slot, fds: Public structures
Slot, flowinfo: Public structures
Slot, id: Private structures
Slot, index: Public structures
Slot, msg: Public conditions
Slot, mtu: Public structures
Slot, name: Public structures
Slot, name: Private structures
Slot, netmask: Public structures
Slot, origin: Private structures
Slot, port: Public structures
Slot, port: Public structures
Slot, revents: Public classes
Slot, scopeid: Public structures
Slot, status: Public structures
Slot, timestamp: Private structures
Slot, type: Public structures
Slot, unicast: Public structures
status: Public structures
Symbol Macro, *errno*: Private symbol macros

T
timestamp: Private structures
type: Public structures

U
unicast: Public structures

Jump to:   *   +  
A   B   C   D   E   F   I   M   N   O   P   R   S   T   U  

Previous: , Up: Indexes   [Contents][Index]

A.4 Data types

Jump to:   A   C   E   F   G   I   O   P   R   S   T  
Index Entry  Section

A
adapter: Public structures

C
can-frame-tclass: Private classes
can-interface: Private structures
can-packet: Private structures
Class, can-frame-tclass: Private classes
Class, group-req-tclass: Private classes
Class, ifaddrs-tclass: Private classes
Class, ifmap-tclass: Private classes
Class, ifreq-tclass: Private classes
Class, pollfd: Public classes
Class, pollfd-tclass: Private classes
Class, res-state-tclass: Private classes
Class, sockaddr-can-tclass: Private classes
Class, sockaddr-in-tclass: Private classes
Class, sockaddr-in6-tclass: Private classes
Class, sockaddr-un-tclass: Private classes
Class, tcp-stream: Public classes
Class, timeval-tclass: Private classes
Class, tp-tclass: Private classes
common.lisp: The fsocket/common․lisp file
Condition, fsocket-error: Public conditions
Condition, fsocket-short-buffer: Public conditions
Condition, posix-error: Private conditions
constants.lisp: The fsocket/constants․lisp file

E
errors.lisp: The fsocket/errors․lisp file

F
File, common.lisp: The fsocket/common․lisp file
File, constants.lisp: The fsocket/constants․lisp file
File, errors.lisp: The fsocket/errors․lisp file
File, fsocket.asd: The fsocket/fsocket․asd file
File, options.lisp: The fsocket/options․lisp file
File, package.lisp: The fsocket/package․lisp file
File, posix.lisp: The fsocket/posix․lisp file
File, streams.lisp: The fsocket/streams․lisp file
fsocket: The fsocket system
fsocket: The fsocket package
fsocket-error: Public conditions
fsocket-short-buffer: Public conditions
fsocket.asd: The fsocket/fsocket․asd file

G
group-req-tclass: Private classes

I
ifaddrs-tclass: Private classes
ifmap-tclass: Private classes
ifreq-tclass: Private classes

O
options.lisp: The fsocket/options․lisp file

P
Package, fsocket: The fsocket package
package.lisp: The fsocket/package․lisp file
poll-context: Public structures
pollfd: Public classes
pollfd-tclass: Private classes
posix-error: Private conditions
posix.lisp: The fsocket/posix․lisp file

R
res-state-tclass: Private classes

S
sockaddr-can-tclass: Private classes
sockaddr-in: Public structures
sockaddr-in-tclass: Private classes
sockaddr-in6: Public structures
sockaddr-in6-tclass: Private classes
sockaddr-un-tclass: Private classes
streams.lisp: The fsocket/streams․lisp file
Structure, adapter: Public structures
Structure, can-interface: Private structures
Structure, can-packet: Private structures
Structure, poll-context: Public structures
Structure, sockaddr-in: Public structures
Structure, sockaddr-in6: Public structures
System, fsocket: The fsocket system

T
tcp-stream: Public classes
timeval-tclass: Private classes
tp-tclass: Private classes

Jump to:   A   C   E   F   G   I   O   P   R   S   T