None of this could ever be possible without all the community support we have already received. I cannot thank enough the developers of projects such as olsrd, Xorg, libssh, fuse and the numerous other projects and developers that have helped us.
Recently we have been fortunate enough in being in touch with a couple of developers that have given us some awesome ideas and have been very instrumental in helping us develop this further and I would like to explicitly thank them here and speak a little of what they have suggested.
Thanks to the good folks at the battlemesh forum whom we contacted seeking help on the mesh networking front, we have been brought in touch with Mitar who has already shown us the next direction we wish to walk on with regards the networking aspect. Mitar, has pointed out a very fundamental flaw in the current design of our application - it is very tied up to the networking layer via the plugin we have to extend the olsr routing protocol. Therefore at the moment
a) our application needs olsr and cannot work with other routing protocols like Batman,etc
b) Every host needs the olsr routing protocol daemon running, the plugin basically helps in discovery of the other eBrainPool clients on the network.
Mitar's suggestion is that we have our application seperated and running independent of the network layer below it. We could use multicast discovery to help clients discover each other. The underlying network could then be either a wired, wireless ad-hoc or wireless mesh or any other network structure that supports multicast. Zeroconf/Bonjour/Avahi use similar techniques and this is what he recommends we look at...and I can't wait to give this a shot, this flaw has been bothering us for a long time but we decided to live with it for now but now thanks to Mitar we know how to irradicate this....Thank You :)
Our next bit of fortune has been getting in touch with Milo Jhoran courtesy the libssh forum. As we've already spoken in our roadmap and via our blog on SSH integration thoughts for the new release we've been looking at how best to have an integrated ssh client and server - currently we're using a clumsy hack and calling sshd and ssh via bash scripts from our client...Yuck!, I know :(
Milo, is one of the contributors at the libssh project and he's been extremely helpful in showing us that using libssh to write our own server and client would make far better sense. I completely agree at his suggestion that using sshd and ssh from command-line and rerouting their stdin,stdout and stderr would be very very clumsy :)
The two largest questions that I had with regards using libssh to write the server were:
How to handle public key authentication.
- How X11 forwarding would work.
Thanks to Milo we've already figured out the public key authentication part of things and are on the way to figuring out X11 forwarding. Thank You :)