<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>