COMMON-NET: Added functions for construction TCP/UDP addresses from hosts.
authorFredrik Tolf <fredrik@dolda2000.com>
Mon, 17 May 2010 23:09:27 +0000 (01:09 +0200)
committerFredrik Tolf <fredrik@dolda2000.com>
Mon, 17 May 2010 23:09:27 +0000 (01:09 +0200)
The usefulness of these functions may indicate some unhealthiness in the
address model. I'm not sure.

common-net.lisp

index ffe7a2d..e17931d 100644 (file)
 
 (defmethod connected-address-p ((address tcp-address)) t)
 
-(export '(tcp-address tcp4-address tcp6-address))
+(defun tcp-address-for (host-address port)
+  (check-type port (unsigned-byte 16))
+  (etypecase host-address
+    (ipv4-address (make-instance 'tcp4-address :host-address host-address :port port))
+    (ipv6-address (make-instance 'tcp6-address :host-address host-address :port port))))
+
+(export '(tcp-address tcp4-address tcp6-address tcp-address-for))
 
 ;;; UDP code
 
 
 (defmethod connected-address-p ((address tcp-address)) nil)
 
-(export '(udp-address udp4-address udp6-address))
+(defun udp-address-for (host-address port)
+  (check-type port (unsigned-byte 16))
+  (etypecase host-address
+    (ipv4-address (make-instance 'udp4-address :host-address host-address :port port))
+    (ipv6-address (make-instance 'udp6-address :host-address host-address :port port))))
+
+(export '(udp-address udp4-address udp6-address udp-address-for))
 
 ;;; Unix sockets