Exalt

Author:
Jonathan Atton
Date:
2008-2009

Table of contents

Introduction

The Exalt library is a library that implement an API for managing the network interfaces. This package contains 2 libraries and a daemon. The both libraries are :

  • Exalt : A low level library for managing the list of interfaces (list the interfaces, set a configuration, get the current configuration, save the configuration ...)
  • Exalt_DBus : A high level library that hide the DBus API of the daemon.

The daemon provides a DBus API to the clients. The aims of the daemon are :

  • Gives an easy way to an application for managing the network interfaces. The application does not need to be run as root as the commands will be execute by the daemon, that's means all users can manage the interfaces.
  • Manages the comportment of an interface. If an interface is linked, apply the last known configuration for example.
  • informs the clients when an event occurs. For example if an interface is unlinked.

Currently Exalt is compatible :

  • classic wired ethernet interface
  • WEP with an hexadecimal or a ascii key
  • WPA1 or WPA2 personnal
  • WPA1 or WPA2 enterprise TLS. This configuration has not been tested because I don't have the hardware. If you have some problems, can test it ... Please contact me.

A module for Enlightenment DR17 exists but it is not distribute with this package but it is available in the official enlightenment svn : trunk/E-MODULES-EXTRA/exalt-client. The module is called exalt-client and use Exalt_DBus to communicate with the daemon.

Install & configure

Install

You have to install Exalt before Exalt-client :

 cd exalt
 ./autogen.sh
 make
 as root: make install
 cd exalt-client
 ./autogen.sh
 make
 as root: make install

If you want the support of wpa_supplicant or dhcp, you need wpa_supplicant and dhclient. During the autogen.sh Exalt try to find these commands in your path. Maybe these commands are only in the path of the user root. You can specify the path with:

 ./autogen.sh --with-wpa_supplicant=/sbin/wpa_supplicant --with-dhcp=/sbin/dhclient

Configure

In order to use the daemon you will have to configure the exalt dbus service. The dbus configuration file should be :

 /etc/dbus-1/system.d/exalt.conf

You can use this default configuration or create your own custom file. The file is available here : data/daemon/dbus/exalt.conf

 <!DOCTYPE busconfig PUBLIC
 "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
 "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
 <busconfig>
      <policy user="root">
      <allow own="org.e.Exalt"/>
                <allow send_destination="org.e.Exalt"/>
                <allow send_interface="org.e.Exalt"/>
        </policy>
        <policy at_console="true">
                <allow send_destination="org.e.Exalt"/>
                <allow send_interface="org.e.Exalt"/>
        </policy>
        <policy context="default">
                <!-- <deny own="org.e.Exalt"/> -->
                <!-- <deny send_destination="org.e.Exalt"/> -->
                <!-- <deny send_interface="org.e.Exalt"/> -->
                <allow own="org.e.Exalt"/>
                <allow send_destination="org.e.Exalt"/>
                <allow send_interface="org.e.Exalt"/>
        </policy>
  </busconfig>

If the daemon should be automatically starts by a client if it is not running, copy the file org.e.Exalt.service in /usr/share/dbus-1/system-services/. A example of content :

 [D-BUS Service]
 Name=org.e.Exalt
 Exec=/usr/local/sbin/exalt-daemon
 User=root

Gentoo

If you want add the daemon in your init, you can use the script in daemon/data/init.d/gentoo:

 cp data/daemon/data/init.d/gentoo /etc/init.d/exaltd
 rc-update add exaltd default

Others

I'm sorry, I don't have a script for others distribution, if you have one you can send me it :)

Architecture

archi.png

Architecture of Exalt

Contact

Jonathan Atton alias Watchwolf <jonathan[dot]atton[at]gmail[dot]com>