- Added hotplug script for
management_interfaceto automatically update the management IP when the interface comes up #208.
- Added random wait time between 5 and 20 seconds before retrying default tests after failure to reduce simultaneous retries and improve reliability.
- Increased default
test_retriesto 10 for improved connection stability.
- Added IPv6 support to
openwisp-get-address#224.
- Added the
default_hostnameoption to force devices to register using their MAC address instead of their hostname. - Added support for hotplug events.
- Added error reporting functionality, which sends error logs to the controller if the agent fails to apply a configuration update.
- Implemented a retry mechanism with random backoff for essential operations, including retrieving checksums and downloading configurations from the controller, as well as reporting error statuses.
- Renamed
/etc/init.d/openwisp_configto/etc/init.d/openwisp_config.
- Deprecated
/usr/sbin/openwisp_configin favor of/usr/sbin/openwisp-configto maintain consistency with other files in the package. The path/usr/sbin/openwisp_configis now a symbolic link to/usr/sbin/openwisp-config. - Deprecated hooks in favor of hotplug events.
- Updated logging to capture errors from
openwisp-update-configinlogd. - Changed the default
bootup_delayto10seconds. - Changed the auto-naming of
network.deviceobjects to make it consistent with OpenWISP.
- Ensured full backup of default UCI files to prevent the loss of configuration.
- Preserved persistent data directories across system upgrades.
- Fixed a registration bug where the agent failed to automatically fall
back to the first non-loopback interface when the configured
mac_interfacewas not present. - Fixed backup process to include all modified files in the backup to ensure no changes are omitted.
- Resolved issues in post-installation and removal scripts in the
Makefile, ensuring proper execution during image building.
- Fixed addition of new UCI files which were not previously already present on the file system
- 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_intervalandregistration_intervaloptions
- Remove unneeded SSL package implementation definitions
- Made configuration checksum persistent to fix 2 problems:
- 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
- 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 (e.g.: 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_retriesfail, the agent assumes the device has been deleted from OpenWISP and exits
- 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
--failflag 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-hookinstead ofpost-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_confcontrol 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_delayfeature 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-autonamescript
- 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_interfaceconfig 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_hostnameconfig option - Improved automatic recovery of previous backups when configuration updates fail
- Added
post_reload_delayandtest_retriesconfig options
- Backward incompatible change: list options are now overwritten to prevent duplication
- Improved log message in case of registration failure
- Allow
$MAC_ADDRESSto 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
- 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/openwispto be overwritten
- 57e431f:
[makefile] added
PKGARCH:=allin order to compile an architecture indipendent package - 35067c8: [docs] default compile instructions to to LEDE 17.01
- 6bbbc75:
Adapted
openwisp-remove-default-wifiscript to work on LEDE 17.01
- 3e89fd6:
[openwisp-reload-config] Removed
localdeclarations - 13bc735: [agent] Improved log messages
- 6955d5b:
[reload-config] Reintroduced
init.dcheck - 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
- 5cdb8fa: [autoname] avoid failure if UCI files are empty
- #24: added
mac_interfaceoption, defaults toeth0(thanks to @agabellini) - b09a497:
[registration] send
mac_addressparameter to openwisp2 controller - e8f0b35: [reload-config] log which services have been reloaded
- #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
capathargument and configuration option - 93639af:
added
connect_timeoutandmax_timeoptions for curl - 9ef6f93: added support for LEDE
- e122e40: fixed bug in autoregistration when hostname is empty
- bd8ad3b: improved build options (ssl, category, maintainer)
- bd64be8: fixed infinite registration bug introduced in #14
- e8ae900:
use current hostname in registration unless hostname is
OpenWrt
- 09c672c: strip trailing slash in URL parameter to avoid unexpected 404
- #11: added
merge_defaultfeature - #12: improved syslog facility and level (e.g.: daemon.info)
- #14: resilient register failure
- #13: smarter reload
- 8879a4d:
retry
report_statusseveral times before giving up
- #9: preserve configuration file when reinstalling/upgrading
- #10: added "test configuration" feature with automatic rollback
- configuration daemon
apply_configscript based on OpenWrt/sbin/reload_config- automatic registration in controller