No API to close the socket associated with a server
Closed this issue · 2 comments
GoogleCodeExporter commented
Thanks for go9p! I used it to rewrite a 9p server I had written in C, and
srv.File made it super-easy.
Unless I've missed something though, there's no way to tell the server to stop
listening and close the socket. I can understand why as many servers will be
happy to let the OS clean up the tcp socket after it exits.
However when using unix domain sockets, the OS doesn't clean up the socket file
and the server fails next time it runs ("address already in use").
It looks like the "go way" here is for the server to call Close() on the unix
socket once it is done. Go's net library will then take care of removing the
socket file.
My intention is to add a Stop() call to srv.Srv to facilitate this use case. Is
there anything I should keep in mind when working on the patch to improve it's
chance of being accepted?
Thanks,
-sqweek
Original issue reported on code.google.com by sqw...@gmail.com
on 27 Nov 2013 at 1:43
GoogleCodeExporter commented
Nevermind! When I finally got into the details I realised it's the net.Listener
you nede to Close() for go to cleanup a unix socket, and go9p already allows
you to pass a net.Listener into srv.StartListener.
So this can already be achieved, and adding a Stop call makes no sense after
all. Apparently I'm not able to close the issue myself -- apologies for the
noise.
Original comment by sqw...@gmail.com
on 16 Jan 2014 at 3:50
GoogleCodeExporter commented
ok, glad it's working for you "as-is"
Original comment by mirtchov...@gmail.com
on 16 Jan 2014 at 3:54
- Changed state: WontFix