On Sun, 12 Dec 2004, Thomas Fischbacher wrote:
> * (with-alien ((s inet-sockaddr)) (setf (slot s 'family) af-inet) (setf
> (slot s 'port) 2001) (setf (slot s 'addr) (host-entry-addr
> (lookup-host-entry "1.0.0.127"))) (setf so (create-inet-socket :stream))
> (unix:unix-bind so (alien-sap s) (alien-size inet-sockaddr :bytes)))
> ;
>
> ; Warning: This variable is undefined:
> ; SO
> ;
> 0
> * (with-alien ((s inet-sockaddr)) (setf (slot s 'family) af-inet) (setf
> (slot s 'port) 2001) (setf (slot s 'addr) (host-entry-addr
> (lookup-host-entry "1.0.0.127"))) (setf so (create-inet-socket :stream))
> (unix:unix-bind so (alien-sap s) (alien-size inet-sockaddr :bytes)))
Well, erm, of course, this second example should have hat 127.0.0.1 in it.
That's what matches the strace which I produced.
> bind(14, {sa_family=AF_INET, sin_port=htons(53511),
> sin_addr=inet_addr("1.0.0.127")}, 16) = -1 EADDRNOTAVAIL (Cannot assign
> requested address)
Anyway, here's the diff:
--- internet.lisp 2004-04-23 14:42:04.000000000 +0200
+++ /tmp/inet.lisp 2004-12-12 03:12:09.000000000 +0100
@@ -468,7 +468,7 @@
(with-alien ((sockaddr inet-sockaddr))
(setf (slot sockaddr 'family) af-inet)
(setf (slot sockaddr 'port) (htons port))
- (setf (slot sockaddr 'addr) addr)
+ (setf (slot sockaddr 'addr) (htonl addr))
(when (minusp (unix:unix-bind socket
(alien-sap sockaddr)
(alien-size inet-sockaddr :bytes)))
--
regards, [EMAIL PROTECTED] (o_
Thomas Fischbacher - http://www.cip.physik.uni-muenchen.de/~tf //\
(lambda (n) ((lambda (p q r) (p p q r)) (lambda (g x y) V_/_
(if (= x 0) y (g g (- x 1) (* x y)))) n 1)) (Debian GNU)