skalibs

Mirror/fork of https://skarnet.org/software/skalibs/
git clone https://ccx.te2000.cz/git/skalibs
Log | Files | Refs | README | LICENSE

commit f3d5157564992f1ef9f390b3ce0c7d3706ba0f19
parent 3aad40d38f3cba359f78f81dd27b420d19aa45b7
Author: Laurent Bercot <ska-skaware@skarnet.org>
Date:   Sun,  4 Oct 2020 01:06:16 +0000

 doc: fix URLs

Diffstat:
Mdoc/djblegacy.html | 6+++---
Mdoc/flags.html | 12++++++------
Mdoc/index.html | 4++--
Mdoc/libbiguint/index.html | 7++-----
Mdoc/librandom/index.html | 4++--
Mdoc/libskarnet.html | 2+-
Mdoc/libstddjb/alarm.html | 8++++----
Mdoc/libstddjb/alloc.html | 2+-
Mdoc/libstddjb/allreadwrite.html | 12++++++------
Mdoc/libstddjb/djbtime.html | 2+-
Mdoc/libstddjb/djbunix.html | 32++++++++++++++++----------------
Mdoc/libstddjb/gccattributes.html | 2+-
Mdoc/libstddjb/index.html | 10+++++-----
Mdoc/libstddjb/iopause.html | 14+++++++-------
Mdoc/libstddjb/lolstdio.html | 14+++++++-------
Mdoc/libstddjb/safewrappers.html | 8++++----
Mdoc/libstddjb/selfpipe.html | 6+++---
Mdoc/libstddjb/tai.html | 26+++++++++++++-------------
Mdoc/license.html | 2+-
Mdoc/upgrade.html | 6+++---
20 files changed, 88 insertions(+), 91 deletions(-)

diff --git a/doc/djblegacy.html b/doc/djblegacy.html @@ -21,9 +21,9 @@ <h2> Who is this DJB guy, and why is he so special anyway&nbsp;? </h2> <p> -<a href="http://cr.yp.to/">Dan J. Bernstein</a> is a cryptologist and +<a href="https://cr.yp.to/">Dan J. Bernstein</a> is a cryptologist and a mathematician; he's also the author of a widely known and used MTA, -<a href="http://cr.yp.to/qmail.html">qmail</a>, as well as a few +<a href="https://cr.yp.to/qmail.html">qmail</a>, as well as a few lesser known pieces of software. </p> @@ -98,7 +98,7 @@ What do you do? interfaces, even if it amounts to cramming a square peg into a round hole. This is why buffer overflows exist. This is why people use abominations such as -<a href="http://www.opengroup.org/onlinepubs/9699919799/functions/gets.html">gets()</a>, +<a href="https://www.opengroup.org/onlinepubs/9699919799/functions/gets.html">gets()</a>, <em>which is still in the Single Unix Specification as of version 4, in freaking June 2011</em>. This is why the System V initialization scheme is still prevalent in Linux distributions, diff --git a/doc/flags.html b/doc/flags.html @@ -27,7 +27,7 @@ uncommon options; this page explains what they are for. <p> This flag tells configure that you want to install skalibs according to -the <a href="http://cr.yp.to/slashpackage.html">slashpackage convention</a>. +the <a href="https://cr.yp.to/slashpackage.html">slashpackage convention</a>. If you enable it, and $v is the version of skalibs you're compiling, <tt>make install</tt> will install the skalibs header files in <tt>/package/prog/skalibs-$v/include</tt>, the static libraries in @@ -63,11 +63,11 @@ to the installed skalibs shared libraries. </li> <p> To understand what this flag is about - and the next two flags too - you should start by reading -<a href="http://www.madore.org/~david/computers/unix-leap-seconds.html">this +<a href="https://www.madore.org/~david/computers/unix-leap-seconds.html">this page about Unix time</a>, -which <a href="http://www.madore.org/~david/">David Madore</a> wrote after +which <a href="https://www.madore.org/~david/">David Madore</a> wrote after a long and fairly complete discussion we had on the subject. You can also -read <a href="http://cr.yp.to/proto/utctai.html">what DJB says about Unix time</a>. +read <a href="https://cr.yp.to/proto/utctai.html">what DJB says about Unix time</a>. Unfortunately, when he says "the POSIX rules are so outrageously dumb (...) that no self-respecting engineer would obey them", DJB is wrong: a lot of people follow the POSIX rules. Or maybe he's right... and there are very, @@ -85,7 +85,7 @@ uncommon, thing to do: <ul> <li> &uarr; The main advantage of this setup is that it makes your system clock <em>linear</em>. In other words, -<a href="http://pubs.opengroup.org/onlinepubs/9699919799/functions/gettimeofday.html">gettimeofday()</a> +<a href="https://pubs.opengroup.org/onlinepubs/9699919799/functions/gettimeofday.html">gettimeofday()</a> becomes suitable for both timestamping (which needs absolute time) and timeout computations (which need reliable interval measurements); if your clock is accurate enough, it can function as both a wall clock and a stopwatch. @@ -105,7 +105,7 @@ or so. </li> <li> &darr; This setup is arguably not SUSv4 conformant (a strict interpretation of Single Unix requires the system clock to be set to UTC). </li> <li> &darr; This setup is <em>not</em> compatible with -<a href="http://en.wikipedia.org/wiki/Ntpd">ntpd</a>. <tt>ntpd</tt>'s design +<a href="https://en.wikipedia.org/wiki/Ntpd">ntpd</a>. <tt>ntpd</tt>'s design is flawed: it makes the mistake of setting the system clock itself - instead of simply making the computed time available to other programs, one of which could set the system clock - and it always sets it to UTC. (The diff --git a/doc/index.html b/doc/index.html @@ -122,8 +122,8 @@ available for instance in the <a href="http://www.fefe.de/libowfat/">libowfat</a> </li> <li> <a href="http://untroubled.org/">Bruce Guenter</a>'s <a href="http://untroubled.org/bglibs/">bglibs</a> </li> - <li> <a href="http://dogmap.org/">Paul Jarc</a>'s -<a href="http://code.dogmap.org./prjlibs/">prjlibs</a>, which also + <li> <a href="https://dogmap.org/">Paul Jarc</a>'s +<a href="https://code.dogmap.org./prjlibs/">prjlibs</a>, which also includes libraries for Scheme programming </li> </ul> diff --git a/doc/libbiguint/index.html b/doc/libbiguint/index.html @@ -24,7 +24,7 @@ operations on (unsigned) integers of arbitrary length. It is nowhere near as powerful or efficient as specialized, assembly language-optimized libraries such as -<a href="http://gmplib.org/">GMP</a>, but it has the advantages +<a href="https://gmplib.org/">GMP</a>, but it has the advantages of smallness and simplicity. </p> @@ -381,10 +381,7 @@ The functions return 1 if all went well. <tt>bu_invmod()</tt> computes the inverse of <tt>c</tt> modulo <tt>m</tt> and stores it into <tt>c</tt>. <br /> The divisor and <tt>m</tt> must be relatively prime, else -those functions return 0 EDOM. <br /> - The algorithm for modular division and inversion is due to -<a href="http://research.sun.com/techrep/2001/abstract-95.html">Sheueling -Chang Shantz</a>. +those functions return 0 EDOM. </p> </body> diff --git a/doc/librandom/index.html b/doc/librandom/index.html @@ -109,8 +109,8 @@ available random generator provided by the underlying system. By decreasing order of preference, it will use the following implementations if available: <ul> - <li> <a href="http://man.openbsd.org/arc4random.3">arc4random()</a> </li> - <li> <a href="http://man7.org/linux/man-pages/man2/getrandom.2.html">getrandom()</a> </li> + <li> <a href="https://man.openbsd.org/arc4random.3">arc4random()</a> </li> + <li> <a href="https://man7.org/linux/man-pages/man2/getrandom.2.html">getrandom()</a> </li> <li> <tt>/dev/urandom</tt> </li> <li> a basic <a href="https://cr.yp.to/papers/surf.pdf">SURF</a> pseudo-random generator</li> </ul> </li> diff --git a/doc/libskarnet.html b/doc/libskarnet.html @@ -68,7 +68,7 @@ time functions such as <tt>tain_now()</tt>, you will also need to link with <tt>timer.lib</tt> for <tt>timer_create</tt> functions, and so on. This is, unfortunately, the only way to work with all the idiosyncrasies and whimsies of various libcs; only -<a href="http://www.musl-libc.org/">musl</a> does the sensible thing and +<a href="https://www.musl-libc.org/">musl</a> does the sensible thing and exports all its functions from <tt>libc.a</tt> and <tt>libc.so</tt>, without requiring any additional linker command line flags. </li> </ul> diff --git a/doc/libstddjb/alarm.html b/doc/libstddjb/alarm.html @@ -29,18 +29,18 @@ and implemented in the <tt>libskarnet.a</tt> or <tt>libskarnet.so</tt> library. <p> <tt>alarm</tt> is a set of primitives to provide the same functionality as -<a href="http://pubs.opengroup.org/onlinepubs/9699919799/functions/alarm.html">alarm()</a>, +<a href="https://pubs.opengroup.org/onlinepubs/9699919799/functions/alarm.html">alarm()</a>, but with sub-second precision. </p> <p> Depending on the functionality the underlying system provides, the precision can be 1 nanosecond (implementation via -<a href="http://pubs.opengroup.org/onlinepubs/9699919799/functions/timer_getoverrun.html">timer_settime()</a>, +<a href="https://pubs.opengroup.org/onlinepubs/9699919799/functions/timer_getoverrun.html">timer_settime()</a>, 1 microsecond (implementation via -<a href="http://pubs.opengroup.org/onlinepubs/9699919799/functions/setitimer.html">setitimer()</a>, +<a href="https://pubs.opengroup.org/onlinepubs/9699919799/functions/setitimer.html">setitimer()</a>, or 1 second (fallback implementation with -<a href="http://pubs.opengroup.org/onlinepubs/9699919799/functions/alarm.html">alarm()</a> +<a href="https://pubs.opengroup.org/onlinepubs/9699919799/functions/alarm.html">alarm()</a> when nothing better can be found). </p> diff --git a/doc/libstddjb/alloc.html b/doc/libstddjb/alloc.html @@ -30,7 +30,7 @@ and implemented in the <tt>libskarnet.a</tt> or <tt>libskarnet.so</tt> library. <p> <tt>alloc</tt> is the skalibs heap memory manager. It's actually a wrapper for the -<a href="http://www.opengroup.org/onlinepubs/9699919799/functions/malloc.html">malloc()</a> +<a href="https://www.opengroup.org/onlinepubs/9699919799/functions/malloc.html">malloc()</a> series of functions; it unifies a few system-dependent <tt>malloc</tt> behaviours. It's also the API to implement and preload if for some reason you need to plug in your own allocator: replacing <tt>alloc()</tt> diff --git a/doc/libstddjb/allreadwrite.html b/doc/libstddjb/allreadwrite.html @@ -46,9 +46,9 @@ use higher-level APIs such as <a href="buffer.html">buffer</a> and <p> <code> typedef ssize_t iofunc_t (int fd, char *buf, size_t len) </code> <br /> This is the simplified type of IO functions such as -<a href="http://www.opengroup.org/onlinepubs/9699919799/functions/read.html">read()</a> +<a href="https://www.opengroup.org/onlinepubs/9699919799/functions/read.html">read()</a> and -<a href="http://www.opengroup.org/onlinepubs/9699919799/functions/write.html">write()</a>. +<a href="https://www.opengroup.org/onlinepubs/9699919799/functions/write.html">write()</a>. </p> <p> @@ -97,28 +97,28 @@ set errno to EWOULDBLOCK or EAGAIN. <p> <code> ssize_t fd_read (int fd, char *s, size_t len) </code> <br /> <a href="safewrappers.html">Safe wrapper</a> around the -<a href="http://www.opengroup.org/onlinepubs/9699919799/functions/read.html">read()</a> +<a href="https://www.opengroup.org/onlinepubs/9699919799/functions/read.html">read()</a> function. </p> <p> <code> ssize_t fd_write (int fd, char const *s, size_t len) </code> <br /> <a href="safewrappers.html">Safe wrapper</a> around the -<a href="http://www.opengroup.org/onlinepubs/9699919799/functions/write.html">write()</a> +<a href="https://www.opengroup.org/onlinepubs/9699919799/functions/write.html">write()</a> function. </p> <p> <code> ssize_t fd_recv (int fd, char *s, size_t len, unsigned int flags) </code> <br /> <a href="safewrappers.html">Safe wrapper</a> around the -<a href="http://www.opengroup.org/onlinepubs/9699919799/functions/recv.html">recv()</a> +<a href="https://www.opengroup.org/onlinepubs/9699919799/functions/recv.html">recv()</a> function. </p> <p> <code> ssize_t fd_send (int fd, char const *s, size_t len, unsigned int flags) </code> <br /> <a href="safewrappers.html">Safe wrapper</a> around the -<a href="http://www.opengroup.org/onlinepubs/9699919799/functions/send.html">send()</a> +<a href="https://www.opengroup.org/onlinepubs/9699919799/functions/send.html">send()</a> function. </p> diff --git a/doc/libstddjb/djbtime.html b/doc/libstddjb/djbtime.html @@ -30,7 +30,7 @@ and implemented in the <tt>libskarnet.a</tt> or <tt>libskarnet.so</tt> library. <p> <tt>djbtime</tt> is a set of functions to convert <a href="tai.html">tai_t and tain_t</a> structures, and -<a href="http://cr.yp.to/libtai/tai64.html">TAI time</a>, from and to +<a href="https://cr.yp.to/libtai/tai64.html">TAI time</a>, from and to other time formats and user-friendly representations. </p> diff --git a/doc/libstddjb/djbunix.html b/doc/libstddjb/djbunix.html @@ -71,21 +71,21 @@ Returns 0 if it succeeds, or -1 (and sets errno) if it fails. <p> <code> int pipenb (int *p) </code> <br /> Like -<a href="http://www.opengroup.org/onlinepubs/9699919799/functions/pipe.html">pipe()</a>, +<a href="https://www.opengroup.org/onlinepubs/9699919799/functions/pipe.html">pipe()</a>, but both ends of the created pipe are in non-blocking mode. </p> <p> <code> int pipecoe (int *p) </code> <br /> Like -<a href="http://www.opengroup.org/onlinepubs/9699919799/functions/pipe.html">pipe()</a>, +<a href="https://www.opengroup.org/onlinepubs/9699919799/functions/pipe.html">pipe()</a>, but both ends of the created pipe are close-on-exec. </p> <p> <code> int pipenbcoe (int *p) </code> <br /> Like -<a href="http://www.opengroup.org/onlinepubs/9699919799/functions/pipe.html">pipe()</a>, +<a href="https://www.opengroup.org/onlinepubs/9699919799/functions/pipe.html">pipe()</a>, but both ends of the created pipe are in non-blocking mode <em>and</em> close-on-exec. </p> @@ -123,32 +123,32 @@ Returns 0 if it succeeds, or -1 (and sets errno) if it fails. <code> void fd_close (int fd) </code> <br /> Closes <em>fd</em>. This is a <a href="safewrappers.html">safe wrapper</a> around -<a href="http://www.opengroup.org/onlinepubs/9699919799/functions/close.html">close()</a>. +<a href="https://www.opengroup.org/onlinepubs/9699919799/functions/close.html">close()</a>. </p> <p> <code> int fd_chmod (int fd, unsigned int mode) </code> <br /> Safe wrapper around -<a href="http://www.opengroup.org/onlinepubs/9699919799/functions/fchmod.html">fchmod()</a>. +<a href="https://www.opengroup.org/onlinepubs/9699919799/functions/fchmod.html">fchmod()</a>. </p> <p> <code> int fd_chown (int fd, uid_t uid, gid_t gid) </code> <br /> Safe wrapper around -<a href="http://www.opengroup.org/onlinepubs/9699919799/functions/fchown.html">fchown()</a>. +<a href="https://www.opengroup.org/onlinepubs/9699919799/functions/fchown.html">fchown()</a>. This function requires root privileges. </p> <p> <code> int fd_sync (int fd) </code> <br /> Safe wrapper around -<a href="http://www.opengroup.org/onlinepubs/9699919799/functions/fsync.html">fsync()</a>. +<a href="https://www.opengroup.org/onlinepubs/9699919799/functions/fsync.html">fsync()</a>. </p> <p> <code> int fd_chdir (int fd) </code> <br /> Safe wrapper around -<a href="http://www.opengroup.org/onlinepubs/9699919799/functions/fchdir.html">fchdir()</a>. +<a href="https://www.opengroup.org/onlinepubs/9699919799/functions/fchdir.html">fchdir()</a>. </p> <p> @@ -165,7 +165,7 @@ supported: </p> <ul> - <li> <a href="http://www.kernel.org/doc/man-pages/online/pages/man2/splice.2.html">splice()</a>, + <li> <a href="https://man7.org/linux/man-pages/man2/splice.2.html">splice()</a>, in Linux 2.6.17 and later </li> </ul> @@ -236,14 +236,14 @@ modifying errno. <p> <code> int open2 (char const *file, unsigned int flags) </code> <br /> Safe wrapper around -<a href="http://www.opengroup.org/onlinepubs/9699919799/functions/open.html">open()</a> +<a href="https://www.opengroup.org/onlinepubs/9699919799/functions/open.html">open()</a> when it takes 2 arguments. </p> <p> <code> int open3 (char const *file, unsigned int flags) </code> <br /> Safe wrapper around -<a href="http://www.opengroup.org/onlinepubs/9699919799/functions/open.html">open()</a> +<a href="https://www.opengroup.org/onlinepubs/9699919799/functions/open.html">open()</a> when it takes 3 arguments. </p> @@ -264,7 +264,7 @@ Returns a valid fd number if it succeeds, or -1 (and sets errno) if it fails. Opens <em>file</em> in read-only, blocking mode. Returns a valid fd number if it succeeds, or -1 (and sets errno) if it fails. <em>This call does not block.</em> The -<a href="http://www.opengroup.org/onlinepubs/9699919799/functions/open.html">open()</a> +<a href="https://www.opengroup.org/onlinepubs/9699919799/functions/open.html">open()</a> system call is actually performed with the O_NONBLOCK option, and blocking mode is set afterwards; this behaviour allows for more transparent interactions with FIFOs. @@ -336,8 +336,8 @@ The function returns if it fails, and sets errno appropriately. <tt>pathexec_run()</tt> is the standard skalibs API to perform an <tt>exec</tt> call with a path search. It is recommended that you use it instead of the Single Unix -<a href="http://www.opengroup.org/onlinepubs/9699919799/functions/execvp.html">execvp()</a> or -<a href="http://www.opengroup.org/onlinepubs/9699919799/functions/execlp.html">execlp()</a> +<a href="https://www.opengroup.org/onlinepubs/9699919799/functions/execvp.html">execvp()</a> or +<a href="https://www.opengroup.org/onlinepubs/9699919799/functions/execlp.html">execlp()</a> functions, because <tt>execvp</tt> and <tt>execlp</tt> default to execution of the <tt>/bin/sh</tt> interpreter with <em>file</em> as an argument if they cannot find a suitable executable <em>file</em>, and this is: @@ -439,7 +439,7 @@ and the grandchild's PID if the current process is the parent. <code> pid_t child_spawn0 (char const *file, char const *const *argv, char const *const *envp) </code> <br /> Forks and executes a child as with <tt>pathexec_run(file, argv, envp)</tt>. Returns 0 if it fails, and the pid of the child if it succeeds. -Implemented via <a href="http://pubs.opengroup.org/onlinepubs/9699919799/functions/posix_spawn.html">posix_spawn()</a> +Implemented via <a href="https://pubs.opengroup.org/onlinepubs/9699919799/functions/posix_spawn.html">posix_spawn()</a> on systems that support it. </p> @@ -522,7 +522,7 @@ or -1 (and sets errno) if it fails. <p> <code> pid_t waitpid_nointr (pid_t pid, int *wstat, int flags) </code> <br /> Safe wrapper around -<a href="http://www.opengroup.org/onlinepubs/9699919799/functions/waitpid.html">waitpid()</a>. +<a href="https://www.opengroup.org/onlinepubs/9699919799/functions/waitpid.html">waitpid()</a>. </p> <p> diff --git a/doc/libstddjb/gccattributes.html b/doc/libstddjb/gccattributes.html @@ -22,7 +22,7 @@ <p> <tt>skalibs/gccattributes.h</tt> is a set of wrappers around -<a href="http://gcc.gnu.org/onlinedocs/gcc/Function-Attributes.html">gcc +<a href="https://gcc.gnu.org/onlinedocs/gcc/Function-Attributes.html">gcc attributes</a> (duh). It defines macros that are always valid, and that have no effect if the compiler is not gcc or the used version of gcc does not support the wanted attribute. diff --git a/doc/libstddjb/index.html b/doc/libstddjb/index.html @@ -45,7 +45,7 @@ including them directly. </li> <h2> Programming </h2> <ul> - <li> <a href="alarm.html">skalibs/alarm.h</a>: sub-second precision <a href="http://pubs.opengroup.org/onlinepubs/9699919799/functions/alarm.html">alarm()</a> </li> + <li> <a href="alarm.html">skalibs/alarm.h</a>: sub-second precision <a href="https://pubs.opengroup.org/onlinepubs/9699919799/functions/alarm.html">alarm()</a> </li> <li> <a href="alloc.html">skalibs/alloc.h</a>: basic heap memory allocation primitives </li> <li> <a href="allreadwrite.html">skalibs/allreadwrite.h</a>: <a href="safewrappers.html">safe wrappers</a> around I/O functions, extra I/O functions </li> @@ -54,9 +54,9 @@ wrappers</a> around I/O functions, extra I/O functions </li> <li> <a href="buffer.html">skalibs/buffer.h</a>: bufferized I/O (with statically allocated buffers) </li> <li> <a href="bytestr.html">skalibs/bytestr.h</a>: basic operations on strings and byte arrays </li> <li> <a href="cdb.html">skalibs/cdb.h</a>: how to read -<a href="http://en.wikipedia.org/wiki/Cdb_%28software%29">cdb</a> files </li> +<a href="https://en.wikipedia.org/wiki/Cdb_%28software%29">cdb</a> files </li> <li> <a href="cdb_make.html">skalibs/cdb_make.h</a>: how to write -<a href="http://en.wikipedia.org/wiki/Cdb_%28software%29">cdb</a> files </li> +<a href="https://en.wikipedia.org/wiki/Cdb_%28software%29">cdb</a> files </li> <li> <a href="direntry.html">skalibs/direntry.h</a>: portable directory operations </li> <li> <a href="djbtime.html">skalibs/djbtime.h</a>: conversions between date and time formats </li> <li> <a href="djbunix.html">skalibs/djbunix.h</a>: management of basic Unix concepts </li> @@ -69,7 +69,7 @@ wrappers</a> around I/O functions, extra I/O functions </li> <li> <a href="iopause.html">skalibs/iopause.h</a>: the skalibs event loop selection function </li> <li> <a href="iobuffer.html">skalibs/iobuffer.h</a>: optimized data transfer from a fd to another </li> <li> <a href="lolstdio.html">skalibs/lolstdio.h</a>: -<a href="http://pubs.opengroup.org/onlinepubs/9699919799/functions/printf.html">printf</a>-like +<a href="https://pubs.opengroup.org/onlinepubs/9699919799/functions/printf.html">printf</a>-like functions writing into <a href="buffer.html">buffers</a> or <a href="bufalloc.html">bufallocs</a> </li> <li> <a href="mininetstring.html">skalibs/mininetstring.h</a>: a protocol to transmit variable-length messages (limited to 64kB) </li> <li> <a href="netstring.html">skalibs/netstring.h</a>: a protocol to transmit variable-length messages (limited to 2^32 bytes) </li> @@ -79,7 +79,7 @@ how to safely handle signals in event loops) </li> <li> <a href="sgetopt.html">skalibs/sgetopt.h</a>: <tt>getopt()</tt>-style command-line options management </li> <li> <a href="sig.html">skalibs/sig.h</a>: safe signal management </li> <li> <a href="siovec.html">skalibs/siovec.h</a>: scatter/gather IO primitives working with an -<a href="http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/sys_uio.h.html">iovec</a> +<a href="https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/sys_uio.h.html">iovec</a> structure </li> <li> <a href="skamisc.html">skalibs/skamisc.h</a>: general string quoting and parsing; miscellaneous, unclassifiable functions </li> <li> <a href="socket.html">skalibs/socket.h</a>: INET domain sockets </li> diff --git a/doc/libstddjb/iopause.html b/doc/libstddjb/iopause.html @@ -30,9 +30,9 @@ and implemented in the <tt>libskarnet.a</tt> or <tt>libskarnet.so</tt> library. <p> <tt>iopause</tt> is the skalibs API for event loop selection. It's a wrapper around the system's <tt>ppoll()</tt> or -<a href="http://www.opengroup.org/onlinepubs/9699919799/functions/poll.html">poll()</a> +<a href="https://www.opengroup.org/onlinepubs/9699919799/functions/poll.html">poll()</a> (if available) or -<a href="http://www.opengroup.org/onlinepubs/9699919799/functions/select.html">select()</a> +<a href="https://www.opengroup.org/onlinepubs/9699919799/functions/select.html">select()</a> (if neither <tt>ppoll()</tt> n or <tt>poll()</tt> is available) function. It works around some system-dependent quirks; also it works with <em>absolute dates</em> instead of timeouts. This is a good thing: @@ -41,7 +41,7 @@ see below. <p> <tt>iopause</tt> is a derived work from Dan J. Bernstein's -<a href="http://cr.yp.to/lib/iopause.html">iopause</a> library, but the +<a href="https://cr.yp.to/lib/iopause.html">iopause</a> library, but the skalibs implementation is subtly different. </p> @@ -49,7 +49,7 @@ skalibs implementation is subtly different. <p> An <tt>iopause_fd</tt> structure is similar to a -<a href="http://www.opengroup.org/onlinepubs/9699919799/basedefs/poll.h.html">struct pollfd</a> +<a href="https://www.opengroup.org/onlinepubs/9699919799/basedefs/poll.h.html">struct pollfd</a> structure, and must be filled the same way. Usually, the user declares an array of <tt>iopause_fd</tt> and fills it, one element per descriptor to select on. If <em>x</em> is an <tt>iopause_fd</tt>: @@ -183,13 +183,13 @@ instead if they configure skalibs with the <tt>--enable-iopause-select</tt> opti </p> <p> -<a href="http://pubs.opengroup.org/onlinepubs/9699919799/functions/poll.html">poll()</a> +<a href="https://pubs.opengroup.org/onlinepubs/9699919799/functions/poll.html">poll()</a> has a more comfortable API than -<a href="http://pubs.opengroup.org/onlinepubs/9699919799/functions/select.html">select()</a>, +<a href="https://pubs.opengroup.org/onlinepubs/9699919799/functions/select.html">select()</a>, but its maximum precision is 1 millisecond, which might not be enough for some applications; using <tt>select()</tt> instead incurs some CPU overhead for the API conversion, but has a 1 microsecond precision. -<a href="http://man7.org/linux/man-pages/man2/poll.2.html">ppoll()</a> gets the best of +<a href="https://man7.org/linux/man-pages/man2/poll.2.html">ppoll()</a> gets the best of both worlds with the same interface model as <tt>poll()</tt> and a 1 nanosecond precision, which is why skalibs always uses it when available. </p> diff --git a/doc/libstddjb/lolstdio.html b/doc/libstddjb/lolstdio.html @@ -29,7 +29,7 @@ and implemented in the <tt>libskarnet.a</tt> or <tt>libskarnet.so</tt> library. <p> <tt>lolstdio</tt> is a set of convenience functions providing -<a href="http://pubs.opengroup.org/onlinepubs/9699919799/functions/printf.html">printf</a>-style +<a href="https://pubs.opengroup.org/onlinepubs/9699919799/functions/printf.html">printf</a>-style formatting but interacting with <a href="buffer.html">buffers</a> or <a href="bufalloc.html">bufallocs</a> instead of stdio FILEs. </p> @@ -52,7 +52,7 @@ writing than fixed-size buffers or FILEs are. <p> The current lolstdio implementation relies on the libc's -<a href="http://pubs.opengroup.org/onlinepubs/9699919799/functions/vsnprintf.html">vsnprintf</a> +<a href="https://pubs.opengroup.org/onlinepubs/9699919799/functions/vsnprintf.html">vsnprintf</a> function. </p> @@ -60,31 +60,31 @@ function. <p> <code> int vbprintf (buffer *b, char const *format, va_list args) </code> <br /> -Like <a href="http://pubs.opengroup.org/onlinepubs/9699919799/functions/vfprintf.html">vfprintf</a> +Like <a href="https://pubs.opengroup.org/onlinepubs/9699919799/functions/vfprintf.html">vfprintf</a> except that the result is written to the buffer <em>b</em>. </p> <p> <code> int bprintf (buffer *b, char const *format, ...) </code> <br /> -Like <a href="http://pubs.opengroup.org/onlinepubs/9699919799/functions/fprintf.html">fprintf</a> +Like <a href="https://pubs.opengroup.org/onlinepubs/9699919799/functions/fprintf.html">fprintf</a> except that the result is written to the buffer <em>b</em>. </p> <p> <code> int lolprintf (char const *format, ...) </code> <br /> -Like <a href="http://pubs.opengroup.org/onlinepubs/9699919799/functions/printf.html">printf</a> +Like <a href="https://pubs.opengroup.org/onlinepubs/9699919799/functions/printf.html">printf</a> except that the result is written to the buffer <tt>buffer_1</tt>. </p> <p> <code> int vbaprintf (bufalloc *ba, char const *format, va_list args) </code> <br /> -Like <a href="http://pubs.opengroup.org/onlinepubs/9699919799/functions/vfprintf.html">vfprintf</a> +Like <a href="https://pubs.opengroup.org/onlinepubs/9699919799/functions/vfprintf.html">vfprintf</a> except that the result is written to the bufalloc <em>ba</em>. </p> <p> <code> int baprintf (bufalloc *ba, char const *format, ...) </code> <br /> -Like <a href="http://pubs.opengroup.org/onlinepubs/9699919799/functions/fprintf.html">fprintf</a> +Like <a href="https://pubs.opengroup.org/onlinepubs/9699919799/functions/fprintf.html">fprintf</a> except that the result is written to the bufalloc <em>ba</em>. </p> diff --git a/doc/libstddjb/safewrappers.html b/doc/libstddjb/safewrappers.html @@ -33,7 +33,7 @@ function. <p> Quite a lot of system calls are defined by -<a href="http://www.opengroup.org/onlinepubs/9699919799/nfindex.html">The +<a href="https://www.opengroup.org/onlinepubs/9699919799/nfindex.html">The Open Group Base Specifications</a> as interruptible: when the process is in the middle of such a system call and receives a signal that it does not ignore, the system call immediately returns -1 EINTR (after the signal @@ -47,7 +47,7 @@ simply restarted, not interrupted. EINTR can only happen when a signal handler has been installed, and a signal is actually caught by the signal handler during an interruptible system call. And to avoid EINTR, users can use the SA_RESTART flag when installing the signal handler with -<a href="http://pubs.opengroup.org/onlinepubs/9699919799/functions/sigaction.html">sigaction()</a>. +<a href="https://pubs.opengroup.org/onlinepubs/9699919799/functions/sigaction.html">sigaction()</a>. </p> <p> @@ -57,8 +57,8 @@ when writing an asynchronous event loop. <p> An asynchronous event loop is organized around a -<a href="http://pubs.opengroup.org/onlinepubs/9699919799/functions/select.html">select()</a> or -<a href="http://pubs.opengroup.org/onlinepubs/9699919799/functions/poll.html">poll()</a> +<a href="https://pubs.opengroup.org/onlinepubs/9699919799/functions/select.html">select()</a> or +<a href="https://pubs.opengroup.org/onlinepubs/9699919799/functions/poll.html">poll()</a> system call that is the only blocking operation in the whole loop. That call takes a timeout as an argument. If a signal handler is installed with SA_RESTART and a signal arrives in the middle of the select/poll call - which happens often diff --git a/doc/libstddjb/selfpipe.html b/doc/libstddjb/selfpipe.html @@ -64,7 +64,7 @@ execution flow that there's a signal to take care of. And, of course, signal handlers don't mix with event loops, which is a classic source of headaches for programmers and led to the birth of abominations such as -<a href="http://www.opengroup.org/onlinepubs/009695399/functions/pselect.html"> +<a href="https://www.opengroup.org/onlinepubs/009695399/functions/pselect.html"> pselect</a>. So much for the "everything is a file" concept that Unix was built on. </p> @@ -77,7 +77,7 @@ fd readable or something. <p> And that's exactly what the -<a href="http://cr.yp.to/docs/selfpipe.html">self-pipe trick</a>, invented +<a href="https://cr.yp.to/docs/selfpipe.html">self-pipe trick</a>, invented by <a href="../djblegacy.html">DJB</a>, does. </p> @@ -226,7 +226,7 @@ with you, so this is not a concern. Protect yourself from malicious applications with clever use of uids. </li> </ul> -<h2> Hey, Linux has <a href="http://www.kernel.org/doc/man-pages/online/pages/man2/signalfd.2.html">signalfd()</a> for this&nbsp;! </h2> +<h2> Hey, Linux has <a href="https://man7.org/linux/man-pages/man2/signalfd.2.html">signalfd()</a> for this&nbsp;! </h2> <p> Yes, the Linux team loves to gratuitously add new system calls to do diff --git a/doc/libstddjb/tai.html b/doc/libstddjb/tai.html @@ -50,21 +50,21 @@ understand what is going on: </p> <ul> - <li> <a href="http://www.madore.org/~david/misc/time.html">David Madore's page + <li> <a href="https://www.madore.org/~david/misc/time.html">David Madore's page on time</a>. It's outdated (there was a leap second in 2009), but complete. </li> <li> From David Madore again, more to the point: a -<a href="http://www.madore.org/~david/computers/unix-leap-seconds.html">page +<a href="https://www.madore.org/~david/computers/unix-leap-seconds.html">page about leap seconds, UTC and TAI</a>. </li> <li> The skalibs <a href="../flags.html#clockistai">--enable-tai-clock</a> documentation. </li> - <li> <a href="http://cr.yp.to/proto/utctai.html">Dan J. Bernstein's page + <li> <a href="https://cr.yp.to/proto/utctai.html">Dan J. Bernstein's page on UTC, TAI and Unix time</a>. </li> </ul> <p> The meat and potatoes of all this is that programmers cannot simply rely on standard Unix APIs such as -<a href="http://pubs.opengroup.org/onlinepubs/9699919799/functions/gettimeofday.html">gettimeofday()</a> +<a href="https://pubs.opengroup.org/onlinepubs/9699919799/functions/gettimeofday.html">gettimeofday()</a> (which, by the way, is marked as obsolescent, but it's not going to disappear tomorrow) to measure time intervals or even to give precise absolute time, and in any case those APIs will become obsolete in 2038. @@ -74,7 +74,7 @@ any case those APIs will become obsolete in 2038. <p> <tt>tai</tt> implements - among other things - the -<a href="http://cr.yp.to/libtai/tai64.html">TAI64 and TAI64N</a> +<a href="https://cr.yp.to/libtai/tai64.html">TAI64 and TAI64N</a> formats, which are used in all of skalibs. This gives a programmer access to precise <em>linear absolute time</em>, which is suitable for both timestamping (<em>wallclock</em> usage) and time interval measurements @@ -84,7 +84,7 @@ represent dates exceeding the estimated lifespan of the universe). <p> <tt>tai</tt> has been inspired by Dan J. Bernstein's -<a href="http://cr.yp.to/libtai.html">libtai</a> library, but does not +<a href="https://cr.yp.to/libtai.html">libtai</a> library, but does not borrow any code from it. </p> @@ -96,10 +96,10 @@ precision. A <tt>tain_t</tt> structure holds an absolute date with a maximum of one-nanosecond precision, as permitted by the underlying system call. If <a href="../flags.html#usert">flag-usert</a> is clear, the system clock will be read via -<a href="http://www.opengroup.org/onlinepubs/9699919799/functions/gettimeofday.html">gettimeofday()</a> +<a href="https://www.opengroup.org/onlinepubs/9699919799/functions/gettimeofday.html">gettimeofday()</a> system call, which has a one-microsecond precision; if it is set, the system clock will be read via the -<a href="http://www.opengroup.org/onlinepubs/9699919799/functions/clock_gettime.html">clock_gettime()</a> +<a href="https://www.opengroup.org/onlinepubs/9699919799/functions/clock_gettime.html">clock_gettime()</a> system call, which has a one-nanosecond precision. In either case, a current <tt>tain_t</tt> will be unable to be more precise than the underlying implementation. @@ -180,7 +180,7 @@ start of a program. <p> The following two operations can only succeed if your system provides the -<a href="http://pubs.opengroup.org/onlinepubs/9699919799/functions/clock_gettime.html">clock_gettime()</a> +<a href="https://pubs.opengroup.org/onlinepubs/9699919799/functions/clock_gettime.html">clock_gettime()</a> primitive with at least one of the CLOCK_MONOTONIC or CLOCK_BOOTTIME clocks. Otherwise, they will fail with errno set to ENOSYS. </p> @@ -333,7 +333,7 @@ depending on whether skalibs was compiled with the --enable-tai-clock configure option). This is useful to get valid TAI/TAI64N timestamps out of information exported by the system, for instance the time_t -returned by <a href="http://pubs.opengroup.org/onlinepubs/9699919799/functions/time.html">time()</a>, +returned by <a href="https://pubs.opengroup.org/onlinepubs/9699919799/functions/time.html">time()</a>, or in the <tt>st_atim</tt>, <tt>st_mtim</tt> or <tt>st_ctim</tt> fields of a <tt>struct stat</tt>. </p> @@ -427,14 +427,14 @@ Those functions return nonzero iff *<em>t1</em> is lesser than *<em>t2</em>. Marshals *<em>t</em> into the buffer <em>s</em> points to, which must be preallocated with at least TAI_PACK (8) characters. Afterwards, the buffer contains the -<a href="http://cr.yp.to/libtai/tai64.html#tai64">external TAI64 format</a> +<a href="https://cr.yp.to/libtai/tai64.html#tai64">external TAI64 format</a> representation of *<em>t</em>. </p> <p> <code> void tai_unpack (char const *s, tai_t *t) </code> <br /> Unmarshals the -<a href="http://cr.yp.to/libtai/tai64.html#tai64">external TAI64 format</a> +<a href="https://cr.yp.to/libtai/tai64.html#tai64">external TAI64 format</a> label pointed to by <em>s</em> (at least TAI_PACK characters) and stores the result into <em>t</em>. </p> @@ -443,7 +443,7 @@ the result into <em>t</em>. <code> void tain_pack (char *s, tain_t const *a) <br /> void tain_unpack (char const *s, tain_t *a) </code> <br /> Same thing with -<a href="http://cr.yp.to/libtai/tai64.html#tai64n">external TAI64N format</a>, +<a href="https://cr.yp.to/libtai/tai64.html#tai64n">external TAI64N format</a>, using TAIN_PACK (12) characters. </p> diff --git a/doc/license.html b/doc/license.html @@ -22,7 +22,7 @@ <p> The skalibs source code from skalibs is released under the -<a href="http://en.wikipedia.org/wiki/ISC_license">ISC license</a>, +<a href="https://en.wikipedia.org/wiki/ISC_license">ISC license</a>, the text of which can be found in the COPYING file enclosed in the package. </p> diff --git a/doc/upgrade.html b/doc/upgrade.html @@ -68,7 +68,7 @@ Currently, that means one: <tt>--with-sysdep-devurandom=yes</tt> or <li> New functions: <ul> <li> <tt>skalibs_regcomp()</tt>, which accepts empty regexes even -when <a href="http://pubs.opengroup.org/onlinepubs/9699919799/functions/regcomp.html">regcomp()</a> +when <a href="https://pubs.opengroup.org/onlinepubs/9699919799/functions/regcomp.html">regcomp()</a> does not (e.g. the BSDs). </li> </ul> </li> </ul> @@ -163,7 +163,7 @@ families of functions, have been removed. </li> <ul> <li> <tt>openwritenclose()</tt> and <tt>openwritevnclose()</tt> now use -<a href="http://pubs.opengroup.org/onlinepubs/9699919799/functions/mkstemp.html">mkstemp()</a> +<a href="https://pubs.opengroup.org/onlinepubs/9699919799/functions/mkstemp.html">mkstemp()</a> instead of relying on an unpredictable name (which required a random generator to be fully initialized). </li> </ul> @@ -341,7 +341,7 @@ types. Main benefit: correct 64-bit support on 64-bit archs with 32-bit int. </l <ul> <li> The child_spawn* family of functions now resets all signals to their default values when spawning a program on systems with -<a href="http://pubs.opengroup.org/onlinepubs/9699919799/functions/posix_spawn.html">posix_spawn()</a>. +<a href="https://pubs.opengroup.org/onlinepubs/9699919799/functions/posix_spawn.html">posix_spawn()</a>. This should not change anything - it's just paranoia. </li> <li> Minor bugfixes. </li> </ul>