summaryrefslogtreecommitdiffstats
path: root/share
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2016-10-13 19:05:49 -0700
committerKaz Kylheku <kaz@kylheku.com>2016-10-13 19:05:49 -0700
commitaa48ae0df546d78602962096b3b9578fae47b645 (patch)
treed946e05ed4ebe69b931ffbb7ce53984ef114a63f /share
parentd94af272503d246929556087ae687d0fa8170611 (diff)
downloadtxr-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.tl12
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)