The wallclock() API uses gettimeofday which can be affected by the the
systems clock being changed etc. The curl fetcher usage of this API is
to generate a timing delta and does not cope with the gettimeofday
issues.
This changes the fetcher to use the nsutils library monotonic time
function which does not suffer from the issues with gettimeofday.
The config header was causing many source files to unecessarily
include the dirent headers causing extra dependancies. This has been
fixed by providing a utility dirent header that provides a common API
across all platforms while removing the unecessary dirent header usage.
The utils header is a large collection of functionality for several
system headers and API. This splits out the ones from sys/time.h into
a separate header reducing the need for many unconnected source files
to include the system header unecessarily.
The utility configuration header dragged in a number of bsd sockets
and related API as a side effect of setting up the configuration. By
splitting the header and API setup into a separate header only the
small number of places that need the functionality explitly include
it.
The update to remove curl usage from urldb must pull in the utility
config header instead to get inet_aton and such or compoles on some
platforms fail.
currently NetSurf uses curl_getdate to convert textural date and time
strings into seconds since epoch. It is betetr to move this
functionality to a utility function so curl_getdate can easily be
replaced if required.
When the operations tables were created the browser table was renamed
to miscellaneous except the actual rename patch was never applied,
this fixes that situation.
The curl certificate handling on windows does not have a compiled in
default location so it is necessary to attempt to find a default
bundle.
This provides a bundle in the install and code to set it as the
default bundle location.
The printf formatting for size_t is set in c99 as %zu but in windows
it is %Iu this is solved by adding and inttypes style PRI macro for size_t
This also uses this macro everywhere size_t is formatted.
The reformat API locking semantics are challenging to understand,
efectiveky browser_window_reformat should never be called by frontend
code directly except explicitly on the reformat callback. Otherwise
the content may already be locked and the system winds up asserting.
Several relocatable modules are distributed with the RISC OS
version. The !Run file checks for their presence and version
number. However, if the check fails, the user is referred to dead
links.
This fixes this to requested an update to the !System folder from the
NS archive, using the Configure app.
Closes: 2441
The return of calloc was not being checked and could have lead to a
NULL pointer dereference. This fixes coverity CID 1316337
Additionally the functions documentation comments were cleaned up.
This fixes coverity ID 1316338 by dealing with memory and window
creation errors properly.
Previously such errors could seg fault or leave the browser navigation
logic "stuck" waiting for user input to a window that never existed.
The code was also refactored to remove forward declarations and add
documentation comments.