Hi Johannes,
I extended Björns example, see attachment. Now a trusted app creates the IPC gate, which can be used for client-server communication.
To try the example you have to use the attached patch.
Best regards, Tobias
On Thu, 2013-07-18 at 21:00 +0200, Johannes Schlatow wrote:
Thanks Björn.
The problem I have is not lua specific though. I was not only trying to pass the client capability via namespaces (which works perfectly as you just demonstrated) but also to register the server capability of an ipc_gate to the server's namespace.
Basically, I don't want the server to create the ipc_gate by itself. Instead I have another (trusted) application that has access to both namespaces (i.e. the one of the server and the one of the client). This application creates the ipc_gate and registers its capability with appropriate rights to the corresponding namespaces.
The lua config I sent initially was just my approach to reproduce this problem without posting too much of my code and to minimize the PEBKAC factor ;)
Johannes
On Thu, 18 Jul 2013 18:53:37 +0200 Björn Döbel doebel@os.inf.tu-dresden.de wrote:
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Hi Johannes,
Well, I want to provide capabilities for an application by putting them into a local namespace. Since our system changes dynamically I want to add capabilities at runtime by registering them to the corresponding namespace.
please find attached the clntsrv example adapted to use namespaces. The general approach is:
In the Lua config create an empty namespace and make it accessible to your application(s). Note that the example also uses different access rights for client and server.
On the server side I use the object registry's register_object() function, which internally creates an IPC gate and binds the
calling thread to it. Then I use the namespace's register_object() call to make the new channel externally visible.
- In the client I query for the object name. This call blocks until the server has registered the new channel.
Apart from these steps, client and server implementation are identical to the original example.
Regarding your approach of putting a channel into the namespace within the Lua config file: This does not work for me. We are still trying to figure out, why. It's probably indeed be related to the downgrading as suggested by Christian.
Bjoern -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.12 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
iEYEARECAAYFAlHoHZAACgkQP5ijxgQLUNlt0wCfX3qShBjEXdXvaXGmVtbk5IgG Ys8An2vS/Uqj5qrFyKVxFAvGBB0BgtE0 =0Qez -----END PGP SIGNATURE-----
l4-hackers mailing list l4-hackers@os.inf.tu-dresden.de http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers