## gnunet-dbus: A DBus proxy for GNUnet # Purpose The aim of this project is to make it easy to control GNUnet via DBus. Any DBus-enabled piece of software should be able to use this to start/stop GNUnet services, perform GNS lookups, download files etc. # Installation $ ./bootstrap $ ./configure $ make $ make install After that, you will need to relax the DBus permissions to allow gnunet-dbus to use the system bus. On most Linux distros, copying src/etc/gnunet-dbus.conf to /etc/dbus-1/system.d/ should do the trick. Otherwise, you can use that file for guidance on how to setup permissions. # Running gnunet-dbus is not currently integrated with gnunet-arm or any init system so you'll have to run the binaries manually. There is one gnunet-dbus executable per GNUnet service. They are installed to $PREFIX/bin by default and have names like gnunet-service-dht-dbus, gnunet-service-gns-dbus etc. # Hacking Contributions are welcome! In the src/ directory you'll find the service/ and lib/ directories. service/ contains the source for the service executables (gnunet-service-gns-dbus etc.). lib/ contains all the source and headers for the gnunet-dbus libraries. lib/common/ is probably the most interesting directory here as it contains the bulk of the code for binding libdbus with GNUnet's event loop. The other directories in lib/ mainly consist of code for serialising/deserialising types from the various parts of GNUnet's API. For learning how to use this library to write more service wrappers or extend the existing ones it's probably easiest to read through existing code. The code tries to be clear and logical and is very object-oriented. gnunet-service-gns-dbus.c shows, for example, how to setup a dbus service+object+interface+method for performing lookups and bind this DBus method to an internal function which calls GNUNET_GNS_lookup. All types and functions exposed by the library side of gnunet-dbus are documented in the header files in src/lib/include