<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<div class="moz-cite-prefix">On 12/24/2012 01:07 AM, Jeffrey Rennie
wrote:<br>
</div>
<blockquote cite="mid:00d001cde16a$9a795bc0$cf6c1340$@com"
type="cite">
<meta http-equiv="Content-Type" content="text/html;
charset=ISO-8859-1">
<meta name="Generator" content="Microsoft Word 12 (filtered
medium)">
<style><!--
/* Font Definitions */
@font-face
{font-family:"MS Mincho";
panose-1:2 2 6 9 4 2 5 8 3 4;}
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
{font-family:"\@MS Mincho";
panose-1:2 2 6 9 4 2 5 8 3 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:purple;
text-decoration:underline;}
span.EmailStyle17
{mso-style-type:personal-compose;
font-family:"Calibri","sans-serif";
color:windowtext;}
.MsoChpDefault
{mso-style-type:export-only;}
@page WordSection1
{size:8.5in 11.0in;
margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
<div class="WordSection1">
<p class="MsoNormal">Before I draft a formal EEP,<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">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:<o:p></o:p></p>
<p class="MsoNormal">1. A corporate network with strict
policies that prohibit opening ports used by erlang.<o:p></o:p></p>
<p class="MsoNormal">2. An application written in erlang that
installs without administrator privileges.<o:p></o:p></p>
<p class="MsoNormal">3. (A generalization of the above)
Whenever the user who wants to run erlang is not an
administrator.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">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.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">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.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I've spent a day browsing the erlang source
code and it looks pretty doable.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Comments and questions please.</p>
</div>
</blockquote>
<br>
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. <br>
<br>
<blockquote cite="mid:00d001cde16a$9a795bc0$cf6c1340$@com"
type="cite">
<div class="WordSection1">
<p class="MsoNormal"><o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">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.<o:p></o:p></p>
</div>
</blockquote>
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? <br>
<blockquote cite="mid:00d001cde16a$9a795bc0$cf6c1340$@com"
type="cite">
<div class="WordSection1">
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<br>
</blockquote>
Cheers,<br>
/Patrik<br>
<blockquote cite="mid:00d001cde16a$9a795bc0$cf6c1340$@com"
type="cite">
<fieldset class="mimeAttachmentHeader"></fieldset>
<br>
<pre wrap="">_______________________________________________
erlang-questions mailing list
<a class="moz-txt-link-abbreviated" href="mailto:erlang-questions@erlang.org">erlang-questions@erlang.org</a>
<a class="moz-txt-link-freetext" href="http://erlang.org/mailman/listinfo/erlang-questions">http://erlang.org/mailman/listinfo/erlang-questions</a>
</pre>
</blockquote>
<br>
</body>
</html>