Better buffer synchronization macro.
[iolib/alendvai.git] / net.sockets / pkgdcl.lisp
blob874cca805909da2950c4b0a184a2eb296d714d5d
1 ;;;; -*- Mode: Lisp; Syntax: ANSI-Common-Lisp; indent-tabs-mode: nil -*-
2 ;;;
3 ;;; --- Package definition.
4 ;;;
6 (in-package :common-lisp-user)
8 (defpackage :net.sockets
9 (:nicknames #:sockets)
10 (:use #:common-lisp :cffi :alexandria :split-sequence :io.streams :series)
11 (:import-from #:osicat-posix #:system-error #:posix-error
12 #:system-error-message #:errno-wrapper
13 #:pid #:gid #:uid #:size #:ssize #:bzero
14 #:timeval #:size-of-timeval #:sec #:usec)
15 (:import-from #:osicat-sys #:size-of-int)
16 (:import-from #:io.multiplex #:decode-timeout)
17 (:shadowing-import-from :series #:let #:let* #:multiple-value-bind
18 #:funcall #:defun #:until #:collect)
19 (:export
20 ;; Conditions
21 #:posix-error
22 #:system-error
23 #:socket-error
24 #:socket-address-in-use-error
25 #:socket-address-not-available-error
26 #:socket-already-connected-error
27 #:socket-connection-aborted-error
28 #:socket-connection-refused-error
29 #:socket-connection-reset-error
30 #:socket-connection-timeout-error
31 #:socket-endpoint-shutdown-error
32 #:socket-host-down-error
33 #:socket-host-unreachable-error
34 #:socket-network-down-error
35 #:socket-network-reset-error
36 #:socket-network-unreachable-error
37 #:socket-no-buffer-space-error
38 #:socket-no-network-error
39 #:socket-not-connected-error
40 #:socket-operation-not-supported-error
41 #:socket-option-not-supported-error
42 #:resolver-error
43 #:resolver-again-error
44 #:resolver-fail-error
45 #:resolver-no-name-error
46 #:resolver-unknown-error
47 #:unknown-interface
48 #:unknown-protocol
49 #:unknown-service
51 ;; Condition Accessors
52 #:error-code
53 #:error-identifier
54 #:error-message
55 #:resolver-error-datum
56 #:unknown-protocol-datum
57 #:unknown-service-datum
58 #:unknown-interface-datum
60 ;; Address Classes
61 #:address
62 #:inet-address
63 #:ipv4-address
64 #:ipv6-address
65 #:local-address
67 ;; Address Functions
68 #:address-type
69 #:address-to-string
70 #:address-to-vector
71 #:copy-address
72 #:ensure-address
73 #:make-address
75 ;; Well-known Addresses
76 #:+ipv4-loopback+
77 #:+ipv4-unspecified+
78 #:+ipv6-interface-local-all-nodes+
79 #:+ipv6-interface-local-all-routers+
80 #:+ipv6-link-local-all-nodes+
81 #:+ipv6-link-local-all-routers+
82 #:+ipv6-loopback+
83 #:+ipv6-site-local-all-routers+
84 #:+ipv6-unspecified+
85 #:+max-ipv4-value+
86 #:+any-host+
87 #:+loopback+
89 ;; Address Predicates
90 #:abstract-address-p
91 #:address=
92 #:address-equal-p
93 #:addressp
94 #:inet-address-loopback-p
95 #:inet-address-multicast-p
96 #:inet-address-p
97 #:inet-address-type
98 #:inet-address-unicast-p
99 #:inet-address-unspecified-p
100 #:ipv4-address-p
101 #:ipv6-address-p
102 #:ipv6-admin-local-multicast-p
103 #:ipv6-global-multicast-p
104 #:ipv6-global-unicast-p
105 #:ipv6-interface-local-multicast-p
106 #:ipv6-ipv4-mapped-p
107 #:ipv6-link-local-multicast-p
108 #:ipv6-link-local-unicast-p
109 #:ipv6-multicast-type
110 #:ipv6-organization-local-multicast-p
111 #:ipv6-reserved-multicast-p
112 #:ipv6-site-local-multicast-p
113 #:ipv6-site-local-unicast-p
114 #:ipv6-solicited-node-multicast-p
115 #:ipv6-transient-multicast-p
116 #:ipv6-unassigned-multicast-p
117 #:ipv6-unicast-type
118 #:local-address-p
120 ;; Network masks and subnets
121 #:make-subnet-mask
122 #:ensure-subnet-mask
123 #:inet-address-private-p
124 #:inet-address-network-portion
125 #:inet-address-host-portion
126 #:inet-address-in-network-p
127 #:inet-addresses-in-same-network-p
128 #:inet-address-network-class
130 ;; Low-level Address Conversion
131 #:colon-separated-to-vector
132 #:dotted-to-integer
133 #:dotted-to-vector
134 #:integer-to-dotted
135 #:integer-to-vector
136 #:string-address-to-vector
137 #:vector-to-colon-separated
138 #:vector-to-dotted
139 #:vector-to-integer
140 #:map-ipv4-address-to-ipv6
141 #:map-ipv6-address-to-ipv4
143 ;; Hostname, Service, and Protocol Lookups
144 #:ensure-hostname
145 #:lookup-host
146 #:lookup-protocol
147 #:lookup-service
149 ;; Network Interface Lookup
150 #:list-network-interfaces
151 #:interface-index
152 #:interface-name
153 #:lookup-interface
154 #:make-interface
156 ;; Socket Classes
157 #:active-socket
158 #:datagram-socket
159 #:internet-socket
160 #:local-socket
161 #:passive-socket
162 #:socket
163 #:socket-datagram-internet-active
164 #:socket-datagram-local-active
165 #:socket-stream-internet-active
166 #:socket-stream-internet-passive
167 #:socket-stream-local-active
168 #:socket-stream-local-passive
169 #:stream-socket
171 ;; Socket Methods
172 #:accept-connection
173 #:bind-address
174 #:connect
175 #:disconnect
176 #:ipv6-socket-p
177 #:listen-on
178 #:local-filename
179 #:local-host
180 #:local-name
181 #:local-port
182 #:make-socket
183 #:make-socket-from-fd
184 #:make-socket-pair
185 #:receive-file-descriptor
186 #:receive-from
187 #:remote-filename
188 #:remote-host
189 #:remote-name
190 #:remote-port
191 #:send-file-descriptor
192 #:send-to
193 #:shutdown
194 #:socket-connected-p
195 #:socket-address-family
196 #:socket-open-p
197 #:socket-option
198 #:socket-os-fd
199 #:socket-protocol
200 #:socket-type
201 #:with-open-socket
202 #:with-accept-connection
204 ;; Specials
205 #:*default-backlog-size*
206 #:*default-linger-seconds*
207 #:*ipv6*
208 #:*dns-nameservers*
209 #:*dns-domain*
210 #:*dns-search-domain*
212 ;; Miscellaneous
213 #:enable-reader-macro
214 #:enable-reader-macro*
215 #:disable-reader-macro
216 #:disable-reader-macro*
217 #:define-syntax
218 #:ip-address
221 (setf series:*suppress-series-warnings* t)