changelog shortlog graph tags branches changeset files revisions annotate raw help

Mercurial > core / lisp/lib/net/pkg.lisp

changeset 586: 7ce855f76e1d
parent: 35bb0d5ec95e
child: ae4983075819
author: Richard Westhaver <ellis@rwest.io>
date: Sun, 11 Aug 2024 01:53:06 -0400
permissions: -rw-r--r--
description: net/fetch upgrades, fixes, net/err -> net/condition
1 (defpackage :net/core
2  (:use :cl :std :sb-bsd-sockets :sb-thread :sb-concurrency)
3  (:export
4  ;; err
5  :net-condition
6  :protocol-condition
7  :codec-condition
8  :net-error
9  :codec-error
10  :protocol-error
11  ;; obj
12  :transport
13  :codec
14  :protocol
15  :client
16  :server
17  :peer
18  :proxy
19  :tunnel))
20 
21 (defpackage :net/util
22  (:use :cl :obj :dat/proto :std :log :net/core :sb-bsd-sockets)
23  (:export :get-address-by-name))
24 
25 (defpackage :net/udp
26  (:nicknames :udp)
27  (:use :cl :std :net/core :sb-bsd-sockets)
28  (:export
29  :udp-server
30  :with-udp-client
31  :with-udp-server
32  :with-udp-client-and-server))
33 
34 (defpackage :net/tcp
35  (:nicknames :tcp)
36  (:use :cl :std :net/core :sb-bsd-sockets)
37  (:export
38  :tcp-server
39  :with-tcp-client))
40 
41 (defpackage :net/codec/punycode
42  (:nicknames :codec/punycode)
43  (:use :cl)
44  (:export
45  :encode-punycode
46  :decode-punycode
47  :encode-domain
48  :decode-domain))
49 
50 (defpackage :net/codec/dns
51  (:nicknames :codec/dns)
52  (:use :cl :std :net/core :net/codec/punycode)
53  (:export
54  :dns-condition
55  :dns-server-failure
56  :*record-type-table*
57  :record-type-id
58  :id-record-type
59  :decode-record :decode-response
60  :encode-host :decode-host :encode-header :decode-header
61  :encode-query :decode-query
62  :decode-data))
63 
64 (defpackage :net/codec/tlv
65  (:nicknames :codec/tlv)
66  (:use :cl :std :net/core :dat/proto)
67  (:export
68  :tlv :tlv-type :tlv-length :tlv-value :make-tlv))
69 
70 (defpackage :net/codec/osc
71  (:nicknames :codec/osc)
72  (:use :cl :std :log :net/core)
73  (:export
74  :*default-osc-buffer-size*
75  :make-message
76  :message
77  :make-bundle
78  :bundle
79  :format-osc-data
80  :command
81  ;; :args ;; conflict
82  :timetag
83  :elements
84  :encode-message
85  :encode-bundle
86  :decode-message
87  :decode-bundle
88  :make-osc-tree
89  :dp-register
90  :dp-remove
91  :dp-match
92  :dispatch
93  :get-current-timetag ; osc-time
94  :timetag+
95  :get-unix-time
96  :unix-time->timetag
97  :timetag->unix-time
98  :print-as-double))
99 
100 (std:defpkg :net/proto/swank
101  (:use :cl :sb-bsd-sockets :std :net/core :net/tcp :swank-client)
102  (:use-reexport :swank-client)
103  (:export))
104 
105 (defpackage :net/proto/crew
106  (:nicknames :net/crew)
107  (:use :cl :sb-bsd-sockets :std :net/core :obj/id)
108  (:import-from #:sb-thread
109  #:condition-notify
110  #:condition-wait
111  ;; #:make-condition-variable
112  #:make-mutex
113  #:make-thread
114  #:with-mutex)
115  (:import-from :sb-concurrency
116  :make-gate)
117  (:import-from #:net/proto/swank
118  #:slime-close
119  #:slime-connect
120  #:slime-eval
121  #:slime-eval-async
122  #:slime-migrate-evals
123  #:slime-network-error
124  #:slime-pending-evals-p
125  #:swank-connection
126  #:with-slime-connection)
127  (:export
128  :crew-connection-info
129  :make-worker-pool
130  :crew-worker :crew-worker-pool
131  :*crew-worker-pools-lock*
132  :*crew-worker-pools*
133  :connect-worker
134  :disconnect-worker
135  :parallel-mapcar :parallel-reduce
136  :eval-form-all-workers
137  :eval-form-repeatedly
138  :eval-repeatedly-async-state
139  :reconnect-worker))
140 
141 (defpackage :net/proto/dns
142  (:nicknames :net/dns)
143  (:use :cl :sb-bsd-sockets :std :net/core :net/udp :codec/dns)
144  (:export
145  :dns-servers-exhausted
146  :dns-port
147  :*cloudflare-servers*
148  :*dnswatch-servers*
149  :*google-servers*
150  :*opendns-servers*
151  :*quad9-servers*
152  :*dns-servers*
153  :dns-query
154  :query-data
155  :resolve
156  :hostname
157  :response-code
158  :dns-servers-exhausted
159  :response-code-name
160  :with-dns-error-handling))
161 
162 (defpackage :net/proto/ssh
163  (:use :cl :std :net/core :sb-bsd-sockets)
164  (:export))
165 
166 (defpackage :net/proto/http
167  (:nicknames :http)
168  (:use :cl :std :net/core :sb-bsd-sockets :parse/bytes :io/xsubseq :io/smart-buffer)
169  (:export
170  :make-http-parser
171  :http-request
172  :http-response
173  :make-http-request
174  :make-http-response
175  :http-request-p
176  :http-response-p
177  :make-callbacks
178  :http-version
179  :http-major-version
180  :http-minor-version
181  :http-method
182  :http-resource
183  :http-status
184  :http-status-text
185  :http-content-length
186  :http-chunked-p
187  :http-upgrade-p
188  :http-headers
189  ;; multipart parser
190  :make-multipart-parser
191  ;; Low-level parser API
192  :http
193  :http-p
194  :make-http
195  :parse-request
196  :parse-response
197  :http-multipart-parse
198  :ll-multipart-parser
199  :make-ll-multipart-parser
200  ;; Error
201  :http-error
202  :callback-error
203  :cb-message-begin
204  :cb-url
205  :cb-first-line
206  :cb-header-field
207  :cb-header-value
208  :cb-headers-complete
209  :cb-body
210  :cb-message-complete
211  :cb-status
212 
213  :parsing-error
214  :invalid-eof-state
215  :header-overflow
216  :closed-connection
217  :invalid-version
218  :invalid-status
219  :invalid-method
220  :invalid-url
221  :invalid-host
222  :invalid-port
223  :invalid-path
224  :invalid-query-string
225  :invalid-fragment
226  :lf-expected
227  :invalid-header-token
228  :invalid-content-length
229  :invalid-chunk-size
230  :invalid-constant
231  :invalid-internal-state
232  :strict-error
233  :paused-error
234  :unknown-error
235 
236  :multipart-parsing-error
237  :invalid-multipart-body
238  :invalid-boundary
239 
240  :header-value-parsing-error
241  :invalid-header-value
242  :invalid-parameter-key
243  :invalid-parameter-value))
244 
245 (defpackage net/cookie
246  (:use :cl :std :parse/bytes :obj/uri)
247  (:shadowing-import-from :alexandria :when-let :if-let)
248  (:import-from :obj/time
249  :today
250  :timestamp-century
251  :timestamp-to-universal
252  :universal-to-timestamp
253  :format-timestring
254  :encode-timestamp
255  :*abbreviated-subzone-name->timezone-list*
256  :reread-timezone-repository
257  :timezone-subzones
258  :subzone-abbrev
259  :subzone-offset
260  :+gmt-zone+)
261  (:export :parse-set-cookie-header
262  :write-cookie-header
263  :write-set-cookie-header
264  :cookie
265  :make-cookie
266  :cookie=
267  :cookie-equal
268  :cookie-name
269  :cookie-value
270  :cookie-expires
271  :cookie-path
272  :cookie-domain
273  :cookie-same-site
274  :cookie-max-age
275  :cookie-partitioned
276  :cookie-secure-p
277  :cookie-httponly-p
278  :cookie-origin-host
279  :cookie-jar
280  :make-cookie-jar
281  :cookie-jar-cookies
282  :cookie-jar-host-cookies
283  :merge-cookies
284  :cookie-p
285  :copy-cookie
286  :cookie-creation-timestamp))
287 
288 (defpackage :net/req
289  (:nicknames :req)
290  (:shadowing-import-from :std/type :octet :octet-vector)
291  (:import-from :dat/mime :mime)
292  (:shadow :get :delete)
293  (:use :cl :std :obj/uri
294  :obj/url :net/proto/http :babel :net/cookie
295  :fast-io :dat/base64 :cl+ssl :sb-gray)
296  (:shadowing-import-from :babel :octets-to-string)
297  (:export
298  :request
299  :get
300  :post
301  :head
302  :put
303  :patch
304  :delete
305  :fetch
306  :*default-connect-timeout*
307  :*default-read-timeout*
308  :*default-proxy*
309  :*verbose*
310  :*no-ssl*
311  :*ca-bundle*
312  :+socks5-version+
313  :*connection-pool*
314  :*use-connection-pool*
315  :make-connection-pool
316  :clear-connection-pool
317  ;; Restarts
318  :retry-request
319  :ignore-and-continue))
320 
321 (defpackage :net/fetch
322  (:nicknames :fetch)
323  (:use :cl :std :obj/uri :cli/progress)
324  (:export :fetch :download))
325 
326 (defpackage :net/srv
327  (:nicknames :srv)
328  (:use :cl :std :obj/uri
329  :net/core :net/proto/http :net/cookie :dat/base64
330  :sb-gray :dat/mime :sb-bsd-sockets)
331  (:export
332  #:default-web-directory
333  #:start-service
334  #:stop-service
335  #:restart-service
336  #:add-route
337  #:delete-route
338  #:service
339  #:define-service
340  #:*router*
341  #:*service*
342  #:*handlers*))
343 
344 (in-package :std-user)
345 
346 (defpkg :net
347  (:use :cl :std)
348  (:use-reexport
349  :net/core
350  :net/tcp
351  :net/udp
352  :net/srv
353  :net/codec/dns
354  :net/codec/osc
355  :net/codec/tlv
356  :net/proto/dns
357  :net/proto/swank
358  :net/proto/crew
359  :net/proto/ssh
360  :net/proto/http))
361 
362 (defpkg :net-user
363  (:use :cl :std :std-user :net :obj))