[prev in list] [next in list] [prev in thread] [next in thread] 

List:       linux-ha-dev
Subject:    Re: [Linux-ha-dev] Re: BasicSanityCheck on Darwin
From:       David Lee <t.d.lee () durham ! ac ! uk>
Date:       2004-11-10 9:52:14
Message-ID: Pine.GSO.4.58.0411100920100.8728 () arachne ! dur ! ac ! uk
[Download RAW message or body]

On Tue, 9 Nov 2004, Alan Robertson wrote:

> [...]
> OK.  We have a default IPC method.  It might or might not be your method.
> If it is your method, then USE_BINDSTAT_CREDS applies.  If it's not your
> method that we're using, then USE_BINDSTAT_CREDS doesn't apply - at least
> it probably doesn't apply.
>
> Right now we only have one IPC method, but I had the impression that David
> Lee was going to implement another one for Solaris.  Then at least on
> solaris we'd have two methods - and the default one certainly wouldn't be
> your code (it'd probably be David's Solaris native method).  But the other
> non-default method might be yours - in which case USE_BINDSTAT_CREDS would
> be set, but it wouldn't be relevant unless we're using your code (which
> wouldn't be the case).

That was certainly an idea I had been exploring.  But it is on hold at the
moment.

[ Details:  In current versions of Solaris (as with several other OSes),
sockets do not offer a means of saying who is at the far end.  But streams
do.  So it looks as if, at the very least, some sort of streams connection
would have to be established in parallel to the sockets.  So the thought
occured: "if we are going to require this streams connection for
credential purposes, why not use it also (instead of sockets) for the
comms?".

I had made considerable progress with this (a nicely "#ifdef'd" version of
"ipcsocket.c") and had it running with "ipctest" for its pipe (related
endpoint) version.  But I was struggling with the non-related endpoint
version, because "ipctest" didn't give a ready-made way into those areas
of comms set-up.

Thus it is now on hold.

Note that the yet-to-be released verion 10 of Solaris will include
credential sharing: see thread "credentials at other end of local
socket/stream/pipe" on "comp.unix.solaris", Oct 1st 2004 et seq.
]

> We could also add future methods that talk over TCP for example.  Then we'd
> have more than one method.  We could add one that uses shared memory and/or
> FIFOs.  Those methods would probably find the setting of USE_BINDSTAT_CREDS
> to be irrelevant.

Solaris streams, mentioned above, are FIFOS.

1. I'd be happy to contribute the work-so-far (as demo, proof-of-concept),
although that would need revision to play catch-up with other changes that
others have been making to ipcsocket.c more recently.

2. I could (indeed, for curiosity would like to) pursue for streams/fifo
stuff, but it would be really useful if someone else, who knew the code,
could expand "ipctest" to exercise the procedures that set up non-related
endpoints.

3. In the absence of (2), my current thinking is to revert to staying with
sockets, but establishing a parallel streams/FIFO connection simply for
credential purposes.

Hope that helps.


-- 

:  David Lee                                I.T. Service          :
:  Senior Systems Programmer                Computer Centre       :
:                                           University of Durham  :
:  http://www.dur.ac.uk/t.d.lee/            South Road            :
:                                           Durham                :
:  Phone: +44 191 334 2752                  U.K.                  :
_______________________________________________________
Linux-HA-Dev: Linux-HA-Dev@lists.linux-ha.org
http://lists.linux-ha.org/mailman/listinfo/linux-ha-dev
Home Page: http://linux-ha.org/
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic