Change log ^^^^^^^^^^ 1.1.0 [unreleased] ================== WIP. 1.0.1 [2022-06-21] ================== - Fixed addition of new UCI files which were not previously already present on the file system 1.0.0 [2022-05-10] ================== Features ~~~~~~~~ - The SIGUSR1 signal can be now used to interrupt the interval sleep and check for configuration changes again - Made the procd respawn parameters configurable - The agent now stores the any UCI configuration which is overwritten by OpenWISP with the goal of restoring it if the piece of configuration overwritten by OpenWISP is removed - Added ``management_interval`` and ``registration_interval`` options Changes ~~~~~~~ Backward incompatible changes ############################# - Remove unneeded SSL package implementation definitions Other changes ############# - Made configuration checksum persistent to fix 2 problems: 1. If the openwisp-config daemon is restarted (e.g. by the openwisp- controller via ssh) after it already downloaded the latest checksum but before it has applied the configuration, all further calls of configuration_changed() (until CONFIGURATION_CHECKSUM is deleted, e.g. by a reboot) will imply that everything is already up-to-date, although the configuration was never applied 2. prevents the configuration from being downloaded and written again after a reboot - Do not wait for management interface during registration: If openwisp-config is not registered yet, do not wait for the management interface to be ready because we can assume the management interface configuration is not present yet - Increased report status retries: in some cases the report status operation may fail because the network reload could take a few minutes to complete (eg: in mesh networks scenarios) and therefore the agent must be a bit more patient before giving up - Refactored init script to make it more consistent with the best practices used in the OpenWrt community - If the agent receives 404 response from the server when downloading the configuration checksum, after the number of attempts specified in ``checksum_max_retries`` fail, the agent assumes the device has been deleted from OpenWISP and exits Bugfixes ~~~~~~~~ - Use configured curl timeout values in default configuration test; Without this fix, it's possible that the configuration test fails while the regular checksum fetch succeeds - Ensured config download error is detected: adding the ``--fail`` flag to curl makes it exit with a non zero exit code in case the server respond with an HTTP status code which is not 200 OK, without this fix, a bad response is interpreted as a valid configuration and the agent removes the old configuration, then installs the new configuration, which fails and the router remains with an empty configuration, effectively causing a disruption of service - Fixed post-registration-hook logging line which was mistakenly mentioning ``post-reload-hook`` instead of ``post-registration-hook`` - Fixed service reload handling for unnamed uci sections: the openwisp agent modifies the configuration on first contact by rewriting all anonymous UCI sections into named UCI sections. This causes almost all services to be restarted even though the configuration has not really changed. To prevent this from happening, the md5sums are rewritten after calling ``openwisp-uci-autoname``; this will reload only those services whose configuration has actually been changed - Remove ``applying_conf`` control file after status report: without this fix, the agent may be reloaded before the status is reported to OpenWISP Controller, leaving the device in "modified" config status even though the configuration has been already applied - Fixed HTTP response codes on newer cURL versions - Handled agent crashes when registration is not successful - Verify downloaded tarball against the configuration checksum - Fixed a bug in the ``bootup_delay`` feature which caused it to not work unless an extra dependency was being used; the need on the extra undocumented dependency has been eliminated - Fixed unhandled naming conflicts when anonymous configuration are renamed via the ``openwisp-uci-autoname`` script 0.5.0 [2020-12-20] ================== Features ~~~~~~~~ - Added support for `Template Tags `_ - Send hardware and software information (hardware model, operating system, soc) during registration and boot (too keep it up to date) - Added `post-reload-hook `_ and `post-registration-hook `_ - Added ``management_interface`` `config option `_, which allows sending the IP of the management interface to OpenWISP, a pre-requisite for enabling features of OpenWISP as `push updates `_, `firmware upgrades `_ and `fping `_ health checks - Added support for `hardware ID / serial number `_ - Added random `bootup delay `_ - Added ``default_hostname`` `config option `_ - Improved automatic recovery of previous backups when configuration updates fail - Added ``post_reload_delay`` and ``test_retries`` `config options `_ Changes ~~~~~~~ - **Backward incompatible change**: list options are now overwritten to prevent duplication - Improved log message in case of registration failure - Allow ``$MAC_ADDRESS`` to be bridge - Removed polarssl - Check sanity of downloaded UCI files before applying them - Give up with registration only when 403 is returned by the server - Show entire registration error message in logs - Updated examples and precompiled packages to use OpenWRT 19.07 - Made check of OpenWISP Controller header case insensitve Bugfixes ~~~~~~~~ - Ensured order of UCI sections is preserved during config write operations, handle special section types - Ensure anonymous UCI config sections are handled well - Ensure removal of files only includes items which are not in the new downloaded configuration - Fixed duplication of list options - Fixed a bug that caused ``/etc/config/openwisp`` to be overwritten 0.4.5 [2017-03-03] ================== - `ade89b2 `_: made default hostname check case insensitive - `#26 `_: added pre-reload-hook 0.4.4 [2017-03-02] ================== - `57e431f `_: [makefile] added ``PKGARCH:=all`` in order to compile an architecture indipendent package - `35067c8 `_: [docs] default compile instructions to to `LEDE `_ 17.01 0.4.3 [2017-03-01] ================== - `6bbbc75 `_: Adapted ``openwisp-remove-default-wifi`` script to work on LEDE 17.01 0.4.2 [2017-02-14] ================== - `3e89fd6 `_: [openwisp-reload-config] Removed ``local`` declarations - `13bc735 `_: [agent] Improved log messages - `6955d5b `_: [reload-config] Reintroduced ``init.d`` check - `7c4cb8b `_: [agent] Improved 2 more connection failure messages - `#25 `_: [Makefile] Added openwisp-config-mbedtls - [docs]: several documentation improvements regarding compilation and relation with other openwisp2 modules 0.4.1 [2016-09-22] ================== - `5cdb8fa `_: [autoname] avoid failure if UCI files are empty - `#24 `_: added ``mac_interface`` option, defaults to ``eth0`` (thanks to `@agabellini `_) - `b09a497 `_: [registration] send ``mac_address`` parameter to openwisp2 controller - `e8f0b35 `_: [reload-config] log which services have been reloaded 0.4.0 [2016-06-23] ================== - `#16 `_: added "Unmanaged Configurations" feature (replaced ``merge_default``) - `#19 `_: added smarter configuration merge mechanism - `#20 `_: improved default test - `#21 `_: introduced automatic naming of anonymous uci sections - `daff21f `_: added "Consistent key generation" feature - `d6294ce `_: added ``capath`` argument and configuration option - `93639af `_: added ``connect_timeout`` and ``max_time`` options for curl - `9ef6f93 `_: added support for LEDE - `e122e40 `_: fixed bug in autoregistration when hostname is empty - `bd8ad3b `_: improved build options (ssl, category, maintainer) 0.3.1 [2016-03-02] ================== - `bd64be8 `_: fixed infinite registration bug introduced in `#14 `_ - `e8ae900 `_: use current hostname in registration unless hostname is ``OpenWrt`` 0.3 [2016-02-26] ================ - `09c672c `_: strip trailing slash in URL parameter to avoid unexpected 404 - `#11 `_: added ``merge_default`` feature - `#12 `_: improved syslog facility and level (eg: daemon.info) - `#14 `_: resilient register failure - `#13 `_: smarter reload - `8879a4d `_: retry ``report_status`` several times before giving up 0.2 [2016-01-25] ================ - `#9 `_: preserve configuration file when reinstalling/upgrading - `#10 `_: added "test configuration" feature with automatic rollback 0.1 [2016-01-15] ================ - configuration daemon - ``apply_config`` script based on OpenWRT ``/sbin/reload_config`` - automatic registration in controller