Closed jpswinski closed 4 years ago
Unreliable time detection is handled by the OS abstraction module and provided as a return code back to the library. Currently, there is a very simple heuristic for the posix implementation.
When time is marked as unreliable by the OS module, then the library sets a processing flag and jams the creation time to zero and the lifetime to the maximum value it can encode.
If time goes backwards (or some other heuristic) then the library should raise a flag and automatically override all lifetimes to outgoing bundles to 0 (infinite) and suspend all expiration detection.
A bplib_config option is then needed to set the overridden behavior back to normal.