Monthly Archives: December 2021

Kootnet Sensors 0.35.114 Stable!

My tests went well and I have only been tweaking log messages and basic stuff like that, so … out with version 0.35.114! You’ll notice it’s 0 instead of Beta in the front, as I’m expecting to change it to 1.0.0 on the next release! … well most likely. Anywho, there’s a lot of behind the scene changes as well as some more obvious user changes.

The big changes since the previous release (that I can remember off the top of my head) include

  • Live graphing for local and remote sensors
  • Revamped upgrade system (HTTP/SMB support for Auto Upgrades, MD5 checking, version checks)
  • Enhanced security of user logins
    • Passwords are now salted and hashed using python’s built in hashing “scrypt” instead of MD5 (much more secure)
  • Major performance improvements to web interface (more threading & optimizations)
  • IP ban list for too many failed logins
  • Security updates as per GitHub’s CodeQL scanning
  • Bug fixes

Install or upgrade and give it a try! I’ll probably take a break for a bit now. Next, maybe I’ll put more serious work into making the physical Tri-Corder case.

Upgrade System Overhaul

While I was going through and testing things, I found my Kootnet Sensors upgrade system was in need of an overhaul. For starters, the SMB (Windows Shares) version of updating was more or less a hack job to use in my development environment. It had no saveable options and settings were simply hardcoded in. No more! It can now be configured and even used in automatic upgrades! Here’s a quick list of changes and updates

  • SMB Upgrade support (beyond my personal use)
    • Options that can be set
      • Login Username / Password
      • SMB Server + Share address
      • MD5 file verification support
      • Automatic upgrade support
  • When doing a “Clean Install” (AKA Re-Install from the program itself) it downloads full installers
    • Full installers contain required and known to work Python modules
  • Added the ability to disable upgrade file MD5 verification
    • I don’t recommend disabling MD5 verification, as it detects bad downloads which could render your install inoperable
    • This is more for my use when I’m lazy and don’t update MD5s during development
  • Added safe guards to make sure multiple upgrades don’t run at once, including others like OS or python module upgrades
  • Improved web interface upgrade messages
    • If something goes wrong during install of an update (like trying to install the same version), the notification of upgrade in proccess will go away once the upgrade script is no longer running
    • When automatic upgrades are disabled, web notifications of updates now links to the correct upgrade method (SMB/HTTP)
  • Check required update files on update server will now check SMB/HTTP depending on auto update selected type
  • Updated generic configuration save/load to allow ‘=’ sign use in options without breaking configuration load for said option
  • Added automatic python module install on program start
    • This is more of a ‘just in case thing’, but should you download the source and just run the program, in theory it will automatically install what you need and start running. HOWEVER, there are some linux OS packages that are required for some functionality and you still need to have Python3 + pip installed prior.
    • This is also not the recommended way to install from scratch, see GitHub readme for more information
  • Added warning message if default username/password are not changed
  • Fixed listed security issues in GitHub code scanning
  • Updated IPv6 support
  • BugFix: Ignore update version when doing a clean-install

The upgrades overhaul took longer than it should have because I wasn’t super happy with the structure of it and re-did it a few times. Next time I really have to write it down and go through the thought processes before writing code. Anywho, I’m pretty happy with it now after creating 2 python classes to interact with upgrades and new available versions.

I need to do some more thorough testing before a new release but I expect it should be out in a few days. This won’t be the 1.0.0 release but should things go smoothly, the next one might be!