Windows port. Lots of rough edges, passes the most important tests.
[iolib.git] / sockets / pkgdcl.lisp
blobb3c0b98836fcc98d937596ff1d5fd5729ef8f884
1 ;;;; -*- Mode: Lisp; Syntax: ANSI-Common-Lisp; Indent-tabs-mode: NIL -*-
2 ;;;
3 ;;; package.lisp --- Package definition.
4 ;;;
5 ;;; Copyright (C) 2006-2007, Stelian Ionescu <sionescu@common-lisp.net>
6 ;;;
7 ;;; This code is free software; you can redistribute it and/or
8 ;;; modify it under the terms of the version 2.1 of
9 ;;; the GNU Lesser General Public License as published by
10 ;;; the Free Software Foundation, as clarified by the
11 ;;; preamble found here:
12 ;;; http://opensource.franz.com/preamble.html
13 ;;;
14 ;;; This program is distributed in the hope that it will be useful,
15 ;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
16 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 ;;; GNU General Public License for more details.
18 ;;;
19 ;;; You should have received a copy of the GNU Lesser General
20 ;;; Public License along with this library; if not, write to the
21 ;;; Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
22 ;;; Boston, MA 02110-1301, USA
24 (in-package :common-lisp-user)
26 (defpackage :net.sockets
27 (:nicknames #:sockets)
28 (:use #:common-lisp :cffi :alexandria :split-sequence :io.streams :cl-posix-ffi)
29 (:import-from #:cl-posix #:system-error #:posix-error #:system-error-message)
30 (:shadow #:listen)
31 (:export
32 ;; Conditions
33 #:posix-error
34 #:possible-bug
35 #:resolver-again-error
36 #:resolver-error
37 #:resolver-fail-error
38 #:resolver-no-name-error
39 #:resolver-no-service-error
40 #:resolver-unknown-error
41 #:socket-address-in-use-error
42 #:socket-address-not-available-error
43 #:socket-already-connected-error
44 #:socket-connection-aborted-error
45 #:socket-connection-refused-error
46 #:socket-connection-reset-error
47 #:socket-connection-timeout-error
48 #:socket-endpoint-shutdown-error
49 #:socket-error
50 #:socket-host-down-error
51 #:socket-host-unreachable-error
52 #:socket-network-down-error
53 #:socket-network-reset-error
54 #:socket-network-unreachable-error
55 #:socket-no-buffer-space-error
56 #:socket-no-network-error
57 #:socket-not-connected-error
58 #:socket-operation-not-supported-error
59 #:socket-option-not-supported-error
60 #:system-error
61 #:unknown-interface
62 #:unknown-protocol
63 #:unknown-socket-error
65 ;; Condition Accessors
66 #:address-type
67 #:bug-data
68 #:error-code
69 #:error-identifier
70 #:error-message
72 ;; Low-level Address Conversion
73 #:address-to-vector
74 #:colon-separated-to-vector
75 #:dotted-to-integer
76 #:dotted-to-vector
77 #:integer-to-dotted
78 #:integer-to-vector
79 #:string-address-to-vector
80 #:vector-to-colon-separated
81 #:vector-to-dotted
82 #:vector-to-integer
84 ;; Address Classes
85 #:address
86 #:inet-address
87 #:ipv4-address
88 #:ipv6-address
89 #:local-address
91 ;; Address Functions
92 #:address-equal-p
93 #:address-name
94 #:address-to-string
95 #:address=
96 #:copy-address
97 #:ensure-address
98 #:make-address
100 ;; Well-known Addresses
101 #:+ipv4-loopback+
102 #:+ipv4-unspecified+
103 #:+ipv6-interface-local-all-nodes+
104 #:+ipv6-interface-local-all-routers+
105 #:+ipv6-link-local-all-nodes+
106 #:+ipv6-link-local-all-routers+
107 #:+ipv6-loopback+
108 #:+ipv6-site-local-all-routers+
109 #:+ipv6-unspecified+
110 #:+max-ipv4-value+
112 ;; Address Predicates
113 #:abstract-address-p
114 #:addressp
115 #:inet-address-loopback-p
116 #:inet-address-multicast-p
117 #:inet-address-type
118 #:inet-address-unicast-p
119 #:inet-address-unspecified-p
120 #:ipv4-address-p
121 #:ipv6-address-p
122 #:ipv6-admin-local-multicast-p
123 #:ipv6-global-multicast-p
124 #:ipv6-global-unicast-p
125 #:ipv6-interface-local-multicast-p
126 #:ipv6-ipv4-mapped-p
127 #:ipv6-link-local-multicast-p
128 #:ipv6-link-local-unicast-p
129 #:ipv6-multicast-type
130 #:ipv6-organization-local-multicast-p
131 #:ipv6-reserved-multicast-p
132 #:ipv6-site-local-multicast-p
133 #:ipv6-site-local-unicast-p
134 #:ipv6-solicited-node-multicast-p
135 #:ipv6-transient-multicast-p
136 #:ipv6-unassigned-multicast-p
137 #:ipv6-unicast-type
138 #:local-address-p
140 ;; Hostname, Service, and Protocol Lookups
141 #:convert-or-lookup-inet-address
142 #:host
143 #:host-addresses
144 #:host-aliases
145 #:host-truename
146 #:lookup-host
147 #:lookup-protocol
148 #:lookup-service
149 #:make-host
150 #:make-protocol
151 #:make-service
152 #:protocol
153 #:protocol-aliases
154 #:protocol-name
155 #:protocol-number
156 #:host-random-address
157 #:service
158 #:service-name
159 #:service-port
160 #:service-protocol
162 ;; Network Interface Lookup
163 #:list-network-interfaces
164 #:interface
165 #:interface-index
166 #:interface-name
167 #:lookup-interface
168 #:make-interface
170 ;; Socket Classes
171 #:active-socket
172 #:datagram-socket
173 #:internet-socket
174 #:local-socket
175 #:passive-socket
176 #:socket
177 #:socket-datagram-internet-active
178 #:socket-datagram-local-active
179 #:socket-stream-internet-active
180 #:socket-stream-internet-passive
181 #:socket-stream-local-active
182 #:socket-stream-local-passive
183 #:stream-socket
185 ;; Socket Methods
186 #:accept-connection
187 #:bind-address
188 #:connect
189 ;; #:create-socket
190 #:disconnect
191 #:get-socket-option
192 #:local-address
193 #:local-name
194 #:local-port
195 #:make-socket
196 #:remote-address
197 #:remote-name
198 #:remote-port
199 #:set-socket-option
200 #:shutdown
201 #:socket-connected-p
202 #:socket-family
203 #:socket-fd
204 #:socket-listen
205 #:socket-open-p
206 #:socket-option
207 #:socket-protocol
208 #:socket-receive
209 #:socket-send
210 #:socket-type
211 #:with-socket
213 ;; Specials
214 #:*default-backlog-size*
215 #:*ipv6*