[Openmcl-devel] bug with usocket and/or trunk ccl - "error #22"

Karsten Poeck Karsten.Poeck at gmail.com
Wed May 20 11:44:55 PDT 2015


On 20.05.15 20:25, Chun Tian (binghe) wrote:
> Hi,
>
> I was working on this issue since 10 hours ago when I firstly saw the mail. I’ve already committed an initial fix [1] to usocket Git master, in which I handled two compatibility issues between usocket and ccl-1.11, and now there’s no error reported when creating and sending sockets. But it seems that CCL::SEND-TO cannot actually send out the data to a “connected” UDP socket, as a result the test code is blocked at (usocket:socket-receive …).
>
> Usocket’s backend code for CCL is basically just a wrapper (even more true for ccl-1.11), my next step is to remove all usocket wrappers and only use CCL’s native API to reproduce the same issue. I’ll submit trac tickets to CCL if I found something.
>
> Regards,
>
> Chun
>

Looking at the code for socket-connect in current usocket from quicklisp 
there are a 2 things that leaved me slightly puzzled.

The signature is:
(defun socket-connect (host port &key (protocol :stream) element-type
                                    timeout deadline nodelay
                                    local-host local-port)

But later it does (host-to-hbo local-host). This fails miserably when 
local-host is nil, which seems to be an ok use of it (and happens in our 
example for the client socket)

It also does  pass :address-family (openmcl-socket:socket-address-family 
remote) to openmcl-socket:make-socket.

But remote is only set, when (and host port) otherwise it stays nil, so 
the socket-address will also fail. This happens for me in the server socket.

Looking at your commit you seem to have addressed this already though :-)

Karsten






More information about the Openmcl-devel mailing list