[noPoll] Closing listener prematurely

Francis Brosnan Blázquez francis en aspl.es
Mar Feb 3 18:33:34 CET 2015


Hi Felix,

Your code is conceptually right. If it is not working, there's something
more there or a bug...

Maybe you can try to call to print the socket id before closing with
something like:


        session = nopoll_conn_socket (listener);
        printf ("LISTENER: calling to close socket: %d\n");
        nopoll_conn_close (listener);


...then, you should see that message, and then see if the socket is
still there:

>> ls -la /proc/3428/fd

Certainly a working example to test would help too,

:-? 

Best Regards,



> Hi,
> 
> 
> 
> I want to use a websocket server as a "one-time server".
> More clearly : I set up a noPoll listener on a defined port and I wait
> for a client.
> Once the client is connected, I want to close the listener to release
> the port and let other instances of my program to do the same thing.
> 
> 
> For that I use this code :
> 
> 
> nopoll_bool onConnReady (noPollCtx* wsctx, noPollConn*
> conn, noPollPtr data) {
> ...
> noPollConn* listener = (noPollConn*)data;
> nopoll_conn_close(listener);
> ...
> return true;
> }
> ...
> noPollConn* listener = nopoll_listener_new(wsctx, "0.0.0.0", port);
> ...
> nopoll_ctx_set_on_ready(wsctx, &onConnReady, (noPollPtr)listener);
> 
> 
> But when the connection is established, even after
> 'nopoll_conn_close(listener)', the listening port is still used by the
> process :
> 
> 
> # lsof -i
> COMMAND    PID   ...  NODE NAME
> my_program 3428  ...  TCP  *:29800 (LISTEN)
> my_program 3428  ...  TCP  [me]:29800->[client]:58908 (ESTABLISHED)
> my_program 3428  ...  TCP  [me]:57345->[client]:29254 (ESTABLISHED)
> 
> 
> Does the listener can release the port, or do I need to rethink
> everything ?
> I didn't try creating my own listener. Maybe I should ?
> 
> 
> Thanks in advance !
> 
> 
> 
> ______________________________________________________________________
> 
> Félix Faisant - xif.fr
> 
> 
> 
> _______________________________________________
> noPoll mailing list
> noPoll en lists.aspl.es
> http://lists.aspl.es/cgi-bin/mailman/listinfo/nopoll


-- 
Francis Brosnan Blázquez <francis.brosnan en aspl.es>
ASPL
91 134 14 22 - 91 134 14 45 - 91 116 07 57

AVISO LEGAL

Este mensaje se dirige exclusivamente a su destinatario. Los datos
incluidos en el presente correo son confidenciales y sometidos a secreto
profesional, se prohíbe divulgarlos, en virtud de las leyes vigentes. Si
usted no lo es y lo ha recibido por error o tiene conocimiento del mismo
por cualquier motivo, le rogamos que nos lo comunique por este medio y
proceda a destruirlo o borrarlo.

En virtud de lo dispuesto en la Ley Orgánica 15/1999, de 13 de
diciembre, de Protección de Datos de Carácter Personal, le informamos de
que sus datos de carácter personal, recogidos de fuentes accesibles al
público o datos que usted nos ha facilitado previamente, proceden de
bases de datos propiedad de Advanced Software Production Line, S.L.
(ASPL). No obstante, usted puede ejercitar sus derechos de acceso,
rectificación, cancelación y oposición dispuestos en la mencionada Ley
Orgánica, notificándolo por escrito a:
ASPL - Protección Datos, C/Antonio Suárez 10 A-102, 28802, Alcalá de
Henares (Madrid).
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.aspl.es/pipermail/nopoll/attachments/20150203/68afd524/attachment.html>


Más información sobre la lista de distribución noPoll