R9B inets and pipe issues

Sean Hinde <>
Tue Nov 12 22:18:58 CET 2002


Hi,

A couple of troubles to report (with fixes :))

The first is probably a little embarrassing for the last person to hack
inets.. Receiving the first part of a POST content in the same packet as the
headers doesn't work. A bit of simple arithmetic provided the somewhat
depressing solution:

replace line 491 of httpd_request_handler.erl:

case httpd_socket:recv(SocketType, Socket, Len, Timeout) of

with:

case httpd_socket:recv(SocketType, Socket, Len - length(BodyPart), Timeout)
of

Also a Mac OS X patch.

In OS X mknod() is only callable by root regrdless of the type of device.
This causes run_erl a problem creating a FIFO /tmp/erlang.pipe.1.

The fix for OS X is to change line 604 of run_erl.c from:

  if ((mknod(name, S_IFIFO | perm, 0) < 0) && (errno != EEXIST))
to
  if ((mkfifo(name, perm) < 0) && (errno != EEXIST))

I'm not quite sure why the mknod form is used anyway - mkfifo is certainly
available on Solaris.. But probably safest to #ifdef it.

Cheers,
Sean



NOTICE AND DISCLAIMER:
This email (including attachments) is confidential.  If you have received
this email in error please notify the sender immediately and delete this
email from your system without copying or disseminating it or placing any
reliance upon its contents.  We cannot accept liability for any breaches of
confidence arising through use of email.  Any opinions expressed in this
email (including attachments) are those of the author and do not necessarily
reflect our opinions.  We will not accept responsibility for any commitments
made by our employees outside the scope of our business.  We do not warrant
the accuracy or completeness of such information.




More information about the erlang-questions mailing list