blob: 5f53352972785319a7826443676ee9afb1c3388d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
(load "../sock-common")
(load "../common")
(defmacro set-and-get (:env env place val)
(with-update-expander (getter setter) place env
^(progn (,setter ,val) (,getter))))
(with-stream (s (open-socket af-inet (logior sock-dgram sock-nonblock)))
(test (sock-listen s) t)
(let* ((orig #S(sockaddr-in))
(addr orig))
(rotate addr (sock-peer s))
(vtest (sock-peer s) orig)))
(with-stream (s (open-socket af-inet sock-stream))
(test (nzerop (set-and-get (sock-opt s sol-socket so-reuseaddr) 1)) t)
(test (set-and-get (sock-opt s sol-socket so-reuseaddr (ffi int)) 0) 0)
(whenlet ((addr (bindfree s 1025 65535)))
(test (nzerop (sock-opt s sol-socket so-reuseaddr)) t)))
|