[openbeosnetteam] Re: more of the soaccept()
- From: "David Reid" <dreid@xxxxxxxxxxxx>
- To: <openbeosnetteam@xxxxxxxxxxxxx>
- Date: Thu, 25 Apr 2002 20:47:05 +0100
Actually it's more involved than that :( Or at least it seems like it.
Accepted sockets seem to contain gibberish at the moment. Working on it...
david
----- Original Message -----
From: <philippe.houdoin@xxxxxxx>
To: <openbeosnetteam@xxxxxxxxxxxxx>
Sent: Thursday, April 25, 2002 6:25 PM
Subject: [openbeosnetteam] more of the soaccept()
>
> So, David, it seems I was totally lost with so->so_head,
> so->so_q and so on?!
> Not that I'm surprised...
> :-)
>
> Anyway, I should explain the purpose of this strange
> void ** nsp soaccept() argument:
>
> It's the /dev/net/socket driver's net_socket_cookie->cookie field address,
> that soaccept() is expected to set to the struct socket * of the accepted
> socket, so that next operation on this socket will works as expected.
> That way, libnet.so accept() would return a valid, file descriptorized,
new
> socket handle.
>
> So, may I suggest you to add this little but needed line:
>
> {
> struct socket *aso = so->so_q;
> if (soqremque(aso, 1) == 0) {
> printf("PANIC: accep!\n");
> return ENOMEM;
> }
>
> // okay, attach the accepted socket to the driver
> // net_socket_cookie->socket field:
> *nsp = aso;
>
> so = aso;
> }
>
>
> Hope this will bring life to accept() support.
>
> -Philippe
>
>
- References:
- [openbeosnetteam] more of the soaccept()
- From: philippe . houdoin
Other related posts:
- » [openbeosnetteam] more of the soaccept()
- » [openbeosnetteam] Re: more of the soaccept()
- [openbeosnetteam] more of the soaccept()
- From: philippe . houdoin