* When CURLOPT_NOSIGNAL is set to 1, libcurl will not use any code that installs signal handlers nor will it use any code that might cause signals to be sent to the process by libcurl. This is safer for multi-threaded applications.
* Add debug logging for HTTP Response Headers
* Add debug logging for HTTP Status Line
* Ensure all logging is flushed correctly and log buffers are flushed
* Use forceExit(); in a consistent manner, which shuts down logging and flushes any remaining logs in buffer
* As reported by @bpozdena , @aothmane-control - a segfault exists on exit, which has been tracked back to the threaded logging functions. This commit should resolve this segfault on exit.
This commit has been developed and tested using Arch Linux:
NAME="Arch Linux"
PRETTY_NAME="Arch Linux"
ID=arch
BUILD_ID=rolling
ANSI_COLOR="38;2;23;147;209"
HOME_URL="https://archlinux.org/"
DOCUMENTATION_URL="https://wiki.archlinux.org/"
SUPPORT_URL="https://bbs.archlinux.org/"
BUG_REPORT_URL="https://gitlab.archlinux.org/groups/archlinux/-/issues"
PRIVACY_POLICY_URL="https://terms.archlinux.org/docs/privacy-policy/"
LOGO=archlinux-logo
Installed using archlinux-2024.05.01-x86_64.iso
The version of 'ldc' that was installed, as detected by 'configure' was 1.37.0
-----------------------------------------
checking for a BSD-compatible install... /usr/bin/install -c
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for dmd... no
checking for ldc2... ldc2
checking version of D compiler... 1.37.0
checking for curl... yes
checking for sqlite... yes
checking for notify... yes
configure: creating ./config.status
config.status: creating Makefile
config.status: creating contrib/pacman/PKGBUILD
config.status: creating contrib/spec/onedrive.spec
config.status: creating onedrive.1
config.status: creating contrib/systemd/onedrive.service
config.status: creating contrib/systemd/onedrive@.service
-----------------------------------------
* Fix local deletion of a OneDrive Business Shared Folder so that the online deletion is of the 'link' on our account, not the remote data as this should remain untouched
General Flags: Flags that are always needed, such as warnings (-w) and directory inclusion (-J.), are added outside of the conditionals.
Debug Flags:
For DMD: When debugging is enabled (DEBUG=yes), the -debug flag for including debug code and -gs for generating standalone debug symbols are added.
For LDC or other compilers: -d-debug for debugging and -gc for generating debugging information are added similarly when debugging is enabled.
Optimization Flag:
The -O flag is only added when debugging is not enabled. This ensures that the program is compiled with optimizations only when it is not in debug mode.
* Add case statement covering ~5 years of user issues when a sqlite error has been generated, so that there is some additional information to point the user in the right direction to resolve
* Resolve issue where if ^C or something else happens, before jsonItemsToProcess is processed, ensure the database is only updated with the deltaLink post all items being processed, which included downloading of any applicable items.
* Update comments
* Add check to ensure when creating a new directory, the value passed in must not be empty
* Update logging output to be consistent with other actions
* Enhance error logging for SqliteException to include the return code in logging output to make it easier to understand why the sqlite error has occurred.