On Wed, Aug 10, 2005 at 09:06:20PM -0400, Carsten Haitzler (The Rasterman) 
wrote:
> On Wed, 10 Aug 2005 16:03:57 -0400 Michael Denio
> <[EMAIL PROTECTED]> babbled:
> 
> > Hi,
> >
> > I'm giving E17 a whirl and came across this issue.
> > ecore_con_server_add() wants to create the socket for
> > ECORE_CON_LOCAL_USER under the $HOME directory.  This is reasonable
> > except that my home directory is on an AFS mounted volume.  Creating a
> > socket there doesn't work (errno returns 1 when trying to bind()).  I
> > commented out the code:
> >
> >      homedir = getenv("HOME");
> 
> it doesn't work on afs? interesting as i tried this on nfs and it works.
> 
> > so it look in "/tmp" and all works.  Any chance or rearranging the
> > selection of the homedir variable so this will work out of the box?
> 
> hmmmm - it's possible but it does become nastier as this can become a source 
> of
> a DOS on a user (another user creating the same dir owned as them and thus not
> having permission to is) that's why i chose ~/ as the only user with rights to
> write there should be the user (well and root). there are ways around this 
> like
> /tmp/USER-x where x is some number. if it exists and is not writable by your
> user - try the next numebr up until it does work, but again - another source 
> fo
> dos, just slowing down apps binding/connecting. i could then cache things in
> ~/.some_file but now we have concurrency issues in keeping that file up to 
> date
> and since it may be shared amongst multiple hosts, we need to have a per-host
> specific file...
> 
> basically using /tmp becomes tricky and thus i avoided it. this opens a bit of
> a
> can of worms... :(
> 

Yes, nfs isn't a problem.  A bit of googling shows:

http://www.cs.rpi.edu/courses/sysprog/sockets/sock.html

"Note that on systems running AFS, such as the Rensselaer Computer
System, these sockets must be created in the directory /tmp."

http://groups-beta.google.com/group/linux.debian.bugs.dist/browse_frm/thread/8f7eef20a79cf9ac/423c6d42a9903df8?lnk=st&q=create+socket+afs&rnum=2&hl=en#423c6d42a9903df8

"It attempts to create the unix socket in the home directory but this
is not always allowed, e.g. with mounted AFS home directories.
A configure option of where to put the socket or using a more standard
location would solve the problem."

http://lists.kde.org/?l=kde-core-devel&m=95551897518892&w=2


Good news, the above link shows what I should have thought of in the
first place, namely:

"2) make a symlink from $HOME/well-known-name to a temporary name in
/tmp"

This works great and your code doesn't have to change.  The only thing
you could do if you desired would be to test for the filesystem type
and/or mention it in your message:

"Enlightenment cannot set up the IPC socket.
It likely is already in use by an existing copy of Enlightenment.
Double check to see if Enlightenment is not already on this display,
but if that fails try deleting all files in ~/.ecore/enlightenment-*
and try running again."

Thanks for your reply and for the software, E17 has been a looooooong
time coming and it is nice to see it starting to come together after all
the years of infrastructure work.

-- 
Michael Denio ([EMAIL PROTECTED])
Market Making Development


-------------------------------------------------------
SF.Net email is Sponsored by the Better Software Conference & EXPO
September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices
Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA
Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to