Hi all

I have an interesting problem. I have two processes that need to 
communicate via a domain socket. One of the processes (the client)
runs in a chrooted environment.

The server creates a domain socket to listen for requests with the
path /cage/tmp/server. The client runs chrooted in the /cage directory, 
and creates a domain socket /tmp/client.<pid>. It sends a request to
the server with a sendto() specifying the socket address /tmp/server.
The server received the request okay, but gets the sender socket address
/tmp/client.<pid> ; i.e. it is the chrooted view of the client socket. 
If it tries to send back a response, it fails (no such file or
directory).

I have tried having the server prepend /cage to the client socket
address before sending the response, but this has made no difference,
even though (in the non-chrooted view) /cage/tmp/client.<pid> clearly
does exist.

Does anyone have an idea why prepending /cage doesn't work, and how I
can solve this? And is this arguably a bug with chroot()/recvfrom()?

TIA
gram
-- 
Dr Graham Wheeler                        E-mail: [EMAIL PROTECTED]
Cequrux Technologies                     Phone:  +27(21)423-6065/6/7
Firewalls/Virtual Private Networks       Fax:    +27(21)24-3656
Data/Network Security Specialists        WWW:    http://www.cequrux.com/


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message

Reply via email to