Skip to content
pkgdcl.lisp 6.36 KiB
Newer Older
;;;; -*- Mode: Lisp; indent-tabs-mode: nil -*-
Luís Oliveira's avatar
Luís Oliveira committed
;;;
;;; --- Package definition.
Luís Oliveira's avatar
Luís Oliveira committed
;;;
(in-package :common-lisp-user)
(defpackage :iolib.sockets
  (:use :iolib.base :iolib.streams :cffi)
  (:import-from #:iolib.syscalls #:defsyscall
                #:size-t #:ssize-t #:pid-t #:uid-t #:gid-t
                #:timeval #:sec #:usec)
  (:import-from #:iolib.multiplex #:decode-timeout)
Luís Oliveira's avatar
Luís Oliveira committed
   ;; Conditions
Luís Oliveira's avatar
Luís Oliveira committed
   #:socket-address-in-use-error
   #:socket-address-not-available-error
   #:socket-already-connected-error
   #:socket-connection-aborted-error
   #:socket-connection-refused-error
   #:socket-connection-reset-error
   #:socket-connection-timeout-error
   #:socket-endpoint-shutdown-error
   #:socket-host-down-error
   #:socket-host-unreachable-error
   #:socket-network-down-error
   #:socket-network-reset-error
   #:socket-network-unreachable-error
   #:socket-no-buffer-space-error
   #:socket-no-network-error
   #:socket-not-connected-error
   #:socket-operation-not-supported-error
   #:socket-option-not-supported-error
   #:resolver-error
   #:resolver-again-error
   #:resolver-fail-error
   #:resolver-no-name-error
   #:resolver-unknown-error
Luís Oliveira's avatar
Luís Oliveira committed
   #:unknown-interface
   #:unknown-protocol
   ;; Restarts
   #:ignore-syscall-error
   #:retry-syscall

Luís Oliveira's avatar
Luís Oliveira committed
   ;; Condition Accessors
   #:error-code
   #:error-identifier
   #:error-message
   #:resolver-error-datum
   #:unknown-protocol-datum
   #:unknown-service-datum
   #:unknown-interface-datum
Luís Oliveira's avatar
Luís Oliveira committed
   ;; Address Classes
   #:address
   #:inet-address
   #:ipv4-address
   #:ipv6-address
   #:local-address
Luís Oliveira's avatar
Luís Oliveira committed
   ;; Address Functions
   #:address-name
Luís Oliveira's avatar
Luís Oliveira committed
   #:address-to-string
   #:address-to-vector
Luís Oliveira's avatar
Luís Oliveira committed
   #:copy-address
   #:ensure-address
   #:make-address

   ;; Well-known Addresses
   #:+ipv4-loopback+
   #:+ipv4-unspecified+
   #:+ipv6-interface-local-all-nodes+
   #:+ipv6-interface-local-all-routers+
   #:+ipv6-link-local-all-nodes+
   #:+ipv6-link-local-all-routers+
   #:+ipv6-loopback+
Luís Oliveira's avatar
Luís Oliveira committed
   #:+ipv6-unspecified+
   #:+max-ipv4-value+
Luís Oliveira's avatar
Luís Oliveira committed
   ;; Address Predicates
   #:abstract-address-p
   #:address=
   #:address-equal-p
Luís Oliveira's avatar
Luís Oliveira committed
   #:addressp
   #:inet-address-loopback-p
   #:inet-address-multicast-p
   #:inet-address-p
Luís Oliveira's avatar
Luís Oliveira committed
   #:inet-address-type
   #:inet-address-unicast-p
   #:inet-address-unspecified-p
   #:ipv4-address-p
   #:ipv6-address-p
   #:ipv6-admin-local-multicast-p
   #:ipv6-global-multicast-p
Luís Oliveira's avatar
Luís Oliveira committed
   #:ipv6-interface-local-multicast-p
   #:ipv6-ipv4-mapped-p
   #:ipv6-link-local-multicast-p
   #:ipv6-link-local-unicast-p
   #:ipv6-multicast-type
   #:ipv6-organization-local-multicast-p
   #:ipv6-reserved-multicast-p
   #:ipv6-site-local-multicast-p
   #:ipv6-site-local-unicast-p
   #:ipv6-solicited-node-multicast-p
   #:ipv6-transient-multicast-p
   #:ipv6-unassigned-multicast-p
   #:ipv6-unicast-type
   #:local-address-p
   #:ipv4-network
   #:ipv4-network=
   #:inet-address-network-portion
   #:inet-address-host-portion
   #:inet-address-in-network-p
   #:inet-addresses-in-same-network-p
   #:inet-address-network-class
   ;; Low-level Address Conversion
   #:colon-separated-to-vector
   #:dotted-to-integer
   #:dotted-to-vector
   #:integer-to-dotted
   #:integer-to-vector
   #:string-address-to-vector
   #:vector-to-colon-separated
   #:vector-to-dotted
   #:vector-to-integer
   #:map-ipv4-address-to-ipv6
   #:map-ipv6-address-to-ipv4

Luís Oliveira's avatar
Luís Oliveira committed
   ;; Hostname, Service, and Protocol Lookups
   #:lookup-hostname
   #:lookup-host ; DEPRECATED
Luís Oliveira's avatar
Luís Oliveira committed
   #:lookup-protocol
   #:lookup-service
Luís Oliveira's avatar
Luís Oliveira committed
   ;; Network Interface Lookup
   #:list-network-interfaces
   #:interface-index
   #:interface-name
Luís Oliveira's avatar
Luís Oliveira committed
   #:lookup-interface
   #:make-interface
Luís Oliveira's avatar
Luís Oliveira committed
   ;; Socket Classes
   #:active-socket
   #:datagram-socket
   #:internet-socket
   #:local-socket
   #:passive-socket
   #:socket
   #:socket-datagram-internet-active
   #:socket-datagram-local-active
   #:socket-stream-internet-active
   #:socket-stream-internet-passive
   #:socket-stream-local-active
   #:socket-stream-local-passive
Luís Oliveira's avatar
Luís Oliveira committed
   #:stream-socket
Luís Oliveira's avatar
Luís Oliveira committed
   ;; Socket Methods
   #:accept-connection
   #:bind-address
   #:connect
   #:disconnect
   #:listen-on
Stelian Ionescu's avatar
Stelian Ionescu committed
   #:local-filename
   #:local-host
Luís Oliveira's avatar
Luís Oliveira committed
   #:local-name
   #:local-port
   #:make-socket
   #:make-socket-from-fd
   #:make-socket-pair
Stelian Ionescu's avatar
Stelian Ionescu committed
   #:remote-filename
   #:remote-host
Luís Oliveira's avatar
Luís Oliveira committed
   #:remote-name
   #:remote-port
Luís Oliveira's avatar
Luís Oliveira committed
   #:shutdown
   #:socket-connected-p
   #:socket-ipv6-p
   #:ipv6-socket-p ; DEPRECATED
Luís Oliveira's avatar
Luís Oliveira committed
   #:socket-option
Stelian Ionescu's avatar
Stelian Ionescu committed
   #:socket-os-fd
Luís Oliveira's avatar
Luís Oliveira committed
   #:socket-protocol
   #:socket-type
   #:with-open-socket
   #:with-accept-connection
   #:dns-query
   #:dns-message
   #:dns-message-id
   #:dns-message-flags
   #:dns-message-decoded-flags
   #:dns-message-question
   #:dns-message-answer
   #:dns-message-authority
   #:dns-message-additional

Luís Oliveira's avatar
Luís Oliveira committed
   ;; Specials
   #:*default-backlog-size*
   #:*default-linger-seconds*
Luís Oliveira's avatar
Luís Oliveira committed
   #:*ipv6*
   #:*dns-nameservers*
   #:*dns-domain*
   #:*dns-search-domain*

   ;; Miscellaneous
Stelian Ionescu's avatar
Stelian Ionescu committed
  (:export
   ;; IP protocols
   #:ipproto-ip
   #:ipproto-ipv6
   #:ipproto-icmp
   #:ipproto-icmpv6
   #:ipproto-tcp
   #:ipproto-udp
   #:ipproto-sctp
   #:ipproto-raw
   ;; CFFI enum ICMP Types
   #:icmp-types
   #:icmp-echo-request
   #:icmp-echo-reply
   #:icmp-dest-unreach
   #:icmp-source-quench
   #:icmp-redirect
   #:icmp-time-exceeded
   #:icmp-parameter-prob
   #:icmp-timestamp-request
   #:icmp-timestamp-reply
   #:icmp-info-request
   #:icmp-info-reply
   #:icmp-address-request
   #:icmp-address-reply

   ;; CFFI enum ICMP-Unreach Types
   #:icmp-unreach
   #:icmp-net-unreach
   #:icmp-host-unreach
   #:icmp-prot-unreach
   #:icmp-port-unreach
   #:icmp-frag-needed
   #:icmp-sr-failed
   #:icmp-net-unknown
   #:icmp-host-unknown
   #:icmp-host-isolated
   #:icmp-net-ano
   #:icmp-host-ano
   #:icmp-net-unr-tos
   #:icmp-host-unr-tos
   #:icmp-pkt-filtered
   #:icmp-prec-violation
   #:icmp-prec-cutoff

   ;; CFFI enum ICMP-Redirect Types
   #:icmp-redirect
   #:icmp-redir-net
   #:icmp-redir-host
   #:icmp-redir-nettos
Stelian Ionescu's avatar
Stelian Ionescu committed
   #:icmp-redir-hosttos

   ;; CFFI enum ICMP-Time-Exceeded Types
   #:icmp-redirect
   #:icmp-exc-ttl
   #:icmp-exc-fragtime))