Hello, I just tried to get a simple Zinc server running on the standard HTTP port (80) and it is not working. ZnServer startDefaultOn: 80 My image was run with a standard user. As the standard HTTP port is a privileged port (each port number < 1024 is a privileged port), I tried to run it through sudo. It is not working with PharoLauncher (loss of permissions with the process fork?) but works by running the image directly. The thing that is strange to me is that if I try to run Zinc on a port with not enough permissions, I do not get an error. I saw a test of the socket validity in ZnNetworkingUtils>>serverSocketOn: but I think it is not catching the permissions problem. Is it difficult to detect? If not, it would be good to have an exception if the specified port cannot be used. Christophe.
Hi Christophe,
On 31 Oct 2014, at 14:21, Christophe Demarey <Christophe.Demarey@inria.fr> wrote:
Hello,
I just tried to get a simple Zinc server running on the standard HTTP port (80) and it is not working. ZnServer startDefaultOn: 80 My image was run with a standard user. As the standard HTTP port is a privileged port (each port number < 1024 is a privileged port), I tried to run it through sudo. It is not working with PharoLauncher (loss of permissions with the process fork?) but works by running the image directly.
So basically, it works. Good. I never tried that. I/we always put a proxy in front for production deploys.
The thing that is strange to me is that if I try to run Zinc on a port with not enough permissions, I do not get an error. I saw a test of the socket validity in ZnNetworkingUtils>>serverSocketOn: but I think it is not catching the permissions problem. Is it difficult to detect? If not, it would be good to have an exception if the specified port cannot be used.
There is ZnServer>>#isListening that tries to do that. In the end it comes down to what is available to the Socket API and how it behave across different platforms. You can access the server socket with #serverSocket.
Christophe.
Sven
Le 31 oct. 2014 à 16:19, Sven Van Caekenberghe a écrit :
Hi Christophe,
On 31 Oct 2014, at 14:21, Christophe Demarey <Christophe.Demarey@inria.fr> wrote:
Hello,
I just tried to get a simple Zinc server running on the standard HTTP port (80) and it is not working. ZnServer startDefaultOn: 80 My image was run with a standard user. As the standard HTTP port is a privileged port (each port number < 1024 is a privileged port), I tried to run it through sudo. It is not working with PharoLauncher (loss of permissions with the process fork?) but works by running the image directly.
So basically, it works. Good. I never tried that. I/we always put a proxy in front for production deploys.
The thing that is strange to me is that if I try to run Zinc on a port with not enough permissions, I do not get an error. I saw a test of the socket validity in ZnNetworkingUtils>>serverSocketOn: but I think it is not catching the permissions problem. Is it difficult to detect? If not, it would be good to have an exception if the specified port cannot be used.
There is ZnServer>>#isListening that tries to do that. In the end it comes down to what is available to the Socket API and how it behave across different platforms. You can access the server socket with #serverSocket.
Yes, I think it is a limitation of the Socket API.
participants (2)
-
Christophe Demarey -
Sven Van Caekenberghe