To reduce the chance that a bad firmware image is created and used, the
following functionality has been implemented:
1. Check md5 sums of local files in addition to downloaded files
2. Copy a backup of the original firmware, instead of removing it
3. Do not make an image unless all parts are present
4. Only output success message if the image file exists
The above fixes an issue where if a provided firmware zipfile is unable to
be read, the script continues on, generates a bad demo.bin file, and suggests
the file is good for loading into the camera. The above updates help prevent
this from occurring
Makes this page compliant with HTTP/1.1 RFC2616 and RFC7230
"HTTP/1.1 defines the sequence CR LF as the end-of-line marker for all protocol elements except the entity-body"
This only had LF, and when used with nodejs and axios that page would fail to be retrieved and throw a HPE_INVALID_HEADER_TOKEN error. (other pages likely need that fix, but retrieving the image was most important and most useful, I personally use it with Scrypted, which then uses this as the camera snapshot in Apple Home app)
Added -n to echo to make it clearer for myself, which removes the otherwise automatically added LF
* add ability to restrict www access / css changes
-can now use WEB_SERVER_OPTIONS to decide what parts of the web system are accessible. Set it to `WEB_SERVER_OPTIONS="cam config car jpeg"` to access everything. Remove things you don't want accessible.
-make the top part of the pages cleaner - now the image in config/cam defaults to smaller but is clickable to see it bigger.
- separate feed.js from config.js and cam.js
-add warning about RTSP fimrware to diagnostics
* add info on WEB_SERVER_OPTIONS
* Update multicam.html
track and display refresh speed.
The cron directory was being copied into the existing cron directory
during the upgrade, resulting in a doubly nested cron directory for
every upgrade.