[erlang-questions] Working around the Windows firewall

Patrik Nyblom pan@REDACTED
Wed Jan 9 19:18:58 CET 2013


On 01/07/2013 09:33 PM, Antoine Koener wrote:
> Just to share my small experience with uds_dist: last time I've 
> checked, everything was fine but the distribution was not working at all.
> Pipes were OK, but the distribution wasn't.
> The problem seems to be related to some obscure flag in the structure.
> I think this code may have worked with old version of erlang < R13...
You're absolutely right, it's broken... I'll fix it for the R16 release.

> On Mon, Jan 7, 2013 at 6:31 PM, Patrik Nyblom <pan@REDACTED 
> <mailto:pan@REDACTED>> wrote:
>     On 12/24/2012 01:07 AM, Jeffrey Rennie wrote:
>>     Before I draft a formal EEP,
>>     Windows firewall is enabled by default, and blocks sockets used
>>     by erlang.  Yes, exceptions can be added to the firewall,
>>     however, this is not possible in some situations.  For example:
>>     1.  A corporate network with strict policies that prohibit
>>     opening ports used by erlang.
>>     2.  An application written in erlang that installs without
>>     administrator privileges.
>>     3.  (A generalization of the above)  Whenever the user who wants
>>     to run erlang is not an administrator.
>>     In these environments, an alternative to sockets which get
>>     entangled in the firewall, is Win32 named pipes which do not get
>>     entangled in  the firewall.
>>     Therefore, I propose a change that will allow erlang nodes to
>>     communicate over named pipes in addition to sockets.  Of course,
>>     it would be controlled by command-line parameters.
>>     I've spent a day browsing the erlang source code and it looks
>>     pretty doable.
>>     Comments and questions please.
>     Good idea! There is actually no need to change anything in the
>     Erlang VM to do that. The distribution mechanism is pluggable, so
>     you can write a driver that uses any protocol where you can setup
>     a stream of bytes between nodes (ok, that sounds easier than it
>     really is, but it's absolutely doable). There is an example in the
>     kernel source code ($ERL_TOP/lib/kernel/examples/uds_dist) where
>     distribution is set up using Unix named pipes, which is of course
>     more limited, but shows the general idea of how to implement a
>     distribution driver.
>>     P.S. It took me about 5 hours to successfully build on Windows; I
>>     had most of the tools like Visual Studio and cygwin installed.  I
>>     got tripped up by git switching LFs to CRLFs, which chokes bash. 
>>     Also, it's much faster to just run vcvars32.bat and then run bash
>>     than to write your own script that sets the vc environment variables.
>     Yes, it's a pain. The CRLF defaults of msysgit is also a pain.
>     Using vcvars32 directly may definitely be a shortcut, maybe you
>     could add some section to the windows readme about your approach?
>     Cheers,
>     /Patrik
>>     _______________________________________________
>>     erlang-questions mailing list
>>     erlang-questions@REDACTED  <mailto:erlang-questions@REDACTED>
>>     http://erlang.org/mailman/listinfo/erlang-questions
>     _______________________________________________
>     erlang-questions mailing list
>     erlang-questions@REDACTED <mailto:erlang-questions@REDACTED>
>     http://erlang.org/mailman/listinfo/erlang-questions

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20130109/9f11e3a9/attachment.htm>

More information about the erlang-questions mailing list