diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2016-10-13 19:05:49 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2016-10-13 19:05:49 -0700 |
commit | aa48ae0df546d78602962096b3b9578fae47b645 (patch) | |
tree | d946e05ed4ebe69b931ffbb7ce53984ef114a63f /share | |
parent | d94af272503d246929556087ae687d0fa8170611 (diff) | |
download | txr-aa48ae0df546d78602962096b3b9578fae47b645.tar.gz txr-aa48ae0df546d78602962096b3b9578fae47b645.tar.bz2 txr-aa48ae0df546d78602962096b3b9578fae47b645.zip |
Adding family slot to socket addresses.
A static slot indicating the address family simplifies
code which wants to map a socket address to its
family.
* lisplib.c (sock_instantiate): Call sock_load_init
before loading socket.tl rather than after, because socket.tl
now references variables defined inside sock_load_init.
* share/txr/stdlib/socket.tl (sockaddr, sockaddr-in,
sockaddr-in6, sockaddr-un): New static slot, family.
* txr.1: Documented family slots.
Diffstat (limited to 'share')
-rw-r--r-- | share/txr/stdlib/socket.tl | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/share/txr/stdlib/socket.tl b/share/txr/stdlib/socket.tl index 187f9c52..45a9cc73 100644 --- a/share/txr/stdlib/socket.tl +++ b/share/txr/stdlib/socket.tl @@ -24,16 +24,20 @@ ;; OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ;; OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -(defstruct sockaddr nil) +(defstruct sockaddr nil + (:static family nil)) (defstruct sockaddr-in sockaddr - (addr 0) (port 0)) + (addr 0) (port 0) + (:static family af-inet)) (defstruct sockaddr-in6 sockaddr - (addr 0) (port 0) (flow-info 0) (scope-id 0)) + (addr 0) (port 0) (flow-info 0) (scope-id 0) + (:static family af-inet6)) (defstruct sockaddr-un sockaddr - path) + path + (:static family af-unix)) (defstruct addrinfo nil (flags 0) |