[bedevtalk] recvmsg etc. for BONE?
pete at jwgibbs.cchem.berkeley.edu
pete at jwgibbs.cchem.berkeley.edu
Tue Apr 24 21:21:55 EDT 2007
On Tue, Apr 24, 2007 at 12:57:29PM +0100, Cian Duffy wrote:
> On 24/04/07, pete at jwgibbs.cchem.berkeley.edu <
> pete at jwgibbs.cchem.berkeley.edu> wrote:
> >
> >The problem is basically that Ruby's 'socket.c' makes use of 'sendmsg'
> >and 'recvmsg', which aren't implemented in BONE.
>
> The abortive WINE porting effort in ~1999 had this problem also, and they
> have a partial sendmsg implementation for net_server:
> http://bewine.loungenet.org/files.html
Thanks -- may be useful. {Though if it's net_server...]
>
> However, I thought Ruby already had BeOS networking in older versions?
Yes, I checked back at the 1.6.1 code I still have hanging around,
and it looks like it was fully integrated (for net_server again)
back then.
The same "#if defined __BEOS__" sections that Matz originally put in
are still there in the current source, but a lot of stuff has been
added, including sections for "Unix I/O" which is where the trouble
is occurring. (Also it still includes "/net/socket.h", so that has
to be changed.)
In fact, I guess the *real* origin of the trouble is the (Ruby)
configuration code, which checks for "sendmsg/recvmsg" regardless,
and aborts if it doesn't find them. As these calls are only used
for Unix sockets, things should be fixable. All I have to do (:-/)
is figure out and change the configuration sequence. Fortunately
the Ruby code is a *lot* more transparent than a Makefile Swamp...
-- Pete --
More information about the bedevtalk
mailing list