<p>This pull request overhauls nm-dispatcher-olsrd to leverage the new commotionc-based core "library", which now contains all essential functions needed to establish a commotion network.  This pull request therefore depends on <a href="https://github.com/opentechinstitute/commotion-linux-py/commit/f37ed6651e213d062a77932508cd65b1f29c1003" class="commit-link">opentechinstitute/commotion-linux-py@<tt>f37ed66</tt></a>).  For convenience and completeness, this pull request should be tested in tandem with <a href="https://github.com/opentechinstitute/commotion-mesh-applet/commit/85aaf2ea874c9f4e2bb0e66f37cc61217a781b7e" class="commit-link">opentechinstitute/commotion-mesh-applet@<tt>85aaf2e</tt></a> (although nm-dispatcher-olsrd can theoretically function independently of the mesh-applet)</p>

<p>Closes issue <a href="https://github.com/opentechinstitute/nm-dispatcher-olsrd/issues/1" class="issue-link" title="Move log location">#1</a> .  </p>

<p>To test this pull request, all of the following steps must be done for our two supported platforms (Ubuntu 12.04 or later, and Debian testing):</p>

<ul>
<li>Install the commotion-linux-py, olsrd, python-networkmanager, and commotion-wpasupplicant debian packages from downloads.commotionwireless.net/linux with dpkg -i</li>
<li>On debian, recompile and reinstall the wpasupplicant package with CONFIG_IBSS_RSN=y set in /debian/config/linux.  (To do this, apt-get source wpasupplicant, make the change, then dpkg-buildpackage -rfakeroot -uc -b in the root of the extracted source package, and the dpkg -i the newly-rebuilt package)</li>
<li>Confirm that sample config files have been installed in /etc/commotion/profiles.d</li>
<li>Modify or create a new profile in this directory.  Reconnect to any network, so that the dispatcher runs.  Confirm that the corresponding NetworkManager profile now exists in /etc/NetworkManager/system-connections</li>
<li>Connect to a mesh network using Network Manager.  Confirm that olsrd is automatically started.</li>
<li>Optimally, confirm that the client can connect to an encrypted mesh, see neighbors (iw dev <wireless interface) station dump), get routes, and actually connect over ssh/http(s).</li>
</ul><p>KNOWN BUGS:<br>
Even though olsrd is running properly, it may sometimes fail to get routes when operating in the context of an encrypted mesh.  This bug may be in upstream; in any case, it is beyond the scope of this pull request.  </p>

<hr>

<h4>You can merge this Pull Request by running</h4>
<pre>  git pull https://github.com/opentechinstitute/nm-dispatcher-olsrd decompose</pre>
<p>Or view, comment on, or merge it at:</p>
<p>  <a href='https://github.com/opentechinstitute/nm-dispatcher-olsrd/pull/3'>https://github.com/opentechinstitute/nm-dispatcher-olsrd/pull/3</a></p>

<h4>Commit Summary</h4>
<ul>
  <li>Fixed bug #568, which was caused by nm-dispatecher-olsrd creating network configuration files with incorrect permissions</li>
  <li>Added necessary fields to support encrypted meshing</li>
  <li>Added logic to support writing static ip back into config file, to allow for all essential connection data to be pulled from one location</li>
  <li>Debugged static ip storage logic</li>
  <li>Tiny bugfix</li>
  <li>Rewired code to use new commotionc module functions; removed redundant functions that now live in the aforementioned module</li>
  <li>Fixed a couple of lingering artifacts from before the decomposition of commotionc, and added some dev notes</li>
  <li>ACTUALLY 'Fixed a couple of lingering artifacts from before the decomposition of commotionc, and added some dev notes', and fixed the .gitignore file</li>
  <li>Changed config directory from /etc/nm-dispatcher-olsrd to /etc/commotion</li>
  <li>Updated config file fields associated with encryption, according to the requirements of newer versions of network manager</li>
  <li>Added parameter to ensure that log writes are always unbuffered</li>
  <li>Refined logic that builds security-related stanzas for NetworkManager systemconnection files</li>
  <li>Disabled buggy wpa_cli call; added rfkill call in the hope of addressing recurring flakiness w/ certain chipsets</li>
  <li>Updated dependencies and added mesh password field to default profile</li>
  <li>Overhauled logging such that all output is now routed through commotionc, and deposited in one central location</li>
  <li>Fixed bug in placement of commotionc instantiation, and finished centralization of the logging functions</li>
  <li>Fixed bug in naming of initialized commotionc object</li>
</ul>

<h4>File Changes</h4>
<ul>
  <li>
    <strong>A</strong>
    <a href="https://github.com/opentechinstitute/nm-dispatcher-olsrd/pull/3/files#diff-0">.gitignore</a>
    (8)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/opentechinstitute/nm-dispatcher-olsrd/pull/3/files#diff-1">debian/control</a>
    (2)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/opentechinstitute/nm-dispatcher-olsrd/pull/3/files#diff-2">debian/install</a>
    (4)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/opentechinstitute/nm-dispatcher-olsrd/pull/3/files#diff-3">nm-dispatcher-olsrd</a>
    (115)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/opentechinstitute/nm-dispatcher-olsrd/pull/3/files#diff-4">profiles/commotionwireless.net.profile</a>
    (1)
  </li>
</ul>

<h4>Patch Links:</h4>
<ul>
  <li><a href='https://github.com/opentechinstitute/nm-dispatcher-olsrd/pull/3.patch'>https://github.com/opentechinstitute/nm-dispatcher-olsrd/pull/3.patch</a></li>
  <li><a href='https://github.com/opentechinstitute/nm-dispatcher-olsrd/pull/3.diff'>https://github.com/opentechinstitute/nm-dispatcher-olsrd/pull/3.diff</a></li>
</ul>