summaryrefslogtreecommitdiff
path: root/src/libstddjb
AgeCommit message (Collapse)Author
2022-06-04 Remove unused variable in generic selfpipe_trapLaurent Bercot
Signed-off-by: Laurent Bercot <ska@appnovation.com>
2022-06-01 Rework endianness conversion primitivesLaurent Bercot
Signed-off-by: Laurent Bercot <ska@appnovation.com>
2022-04-15 Add waitn_posix() and waitn_reap_posix()Laurent Bercot
Signed-off-by: Laurent Bercot <ska@appnovation.com>
2022-02-25 Don't autoshrink after slurpingLaurent Bercot
Signed-off-by: Laurent Bercot <ska@appnovation.com>
2022-02-17 Full errno paranoia in selfpipe signal handlerLaurent Bercot
Signed-off-by: Laurent Bercot <ska@appnovation.com>
2021-12-04 Add opendir_at, prepare for 2.11.1.0Laurent Bercot
Signed-off-by: Laurent Bercot <ska@appnovation.com>
2021-09-25 Axe iobufferLaurent Bercot
Signed-off-by: Laurent Bercot <ska@appnovation.com>
2021-09-02 Don't forget child_spawn eitherLaurent Bercot
Signed-off-by: Laurent Bercot <ska@appnovation.com>
2021-09-02 Infinite recursion my ass cheeksLaurent Bercot
Sometimes clang warnings have a point. Signed-off-by: Laurent Bercot <ska@appnovation.com>
2021-08-26 fix selfpipe_tophalf typeLaurent Bercot
Signed-off-by: Laurent Bercot <ska@appnovation.com>
2021-08-22 Add ipc_bind_reuse_permsLaurent Bercot
Signed-off-by: Laurent Bercot <ska@appnovation.com>
2021-08-18 Add tain_infiniteLaurent Bercot
Signed-off-by: Laurent Bercot <ska@appnovation.com>
2021-07-29 Add sig_altignore()2.11.0.0Laurent Bercot
Signed-off-by: Laurent Bercot <ska@appnovation.com>
2021-07-28 Huge incompatible changes.Laurent Bercot
- Obsolete skalibs/environ.h and skalibs/getpeereid.h removed. - rc4 and md5 removed. - All *_t types renamed to avoid treading on POSIX namespace. - subgetopt() renamed to lgetopt(). - signal functions reworked; skasigaction removed; sig_stack removed - Various functions removed: skaoffsetof(), selfpipe_untrap() - New posixplz function: munmap_void. Signed-off-by: Laurent Bercot <ska@appnovation.com>
2021-07-24 Don't use dirfd as an identifierLaurent Bercot
Signed-off-by: Laurent Bercot <ska@appnovation.com>
2021-07-24 Hide cdb_find_state in the common caseLaurent Bercot
Signed-off-by: Laurent Bercot <ska@appnovation.com>
2021-07-24 Add cdb_init_at and cdb_init_fromfd, rename cdb_readerLaurent Bercot
Signed-off-by: Laurent Bercot <ska@appnovation.com>
2021-07-23 New 2.11.0.0 branch with several modificationsLaurent Bercot
- libbiguint removed - cdb_make changed to cdbmake (because different ui) - cdb redesigned Signed-off-by: Laurent Bercot <ska@appnovation.com>
2021-07-21 Save errno when freeing a cdbLaurent Bercot
Signed-off-by: Laurent Bercot <ska@appnovation.com>
2021-06-30 bugfix: offset in cdb mmapLaurent Bercot
An offset of -1 worked because most OSes treat it as 0, but DS9k would fail on it. Signed-off-by: Laurent Bercot <ska@appnovation.com>
2021-06-29 cdb always mmapsLaurent Bercot
Signed-off-by: Laurent Bercot <ska@appnovation.com>
2021-05-14 Cosmetic fixesLaurent Bercot
2021-02-13 bugfix: ipc_bind_reuse_lock must ignore umaskLaurent Bercot
2020-12-09 Get rid of webipc.h and DJBUNIX_FLAG_*Laurent Bercot
Decent semantic header separation is hard. It's always an ongoing process. Here socket.h always included webipc.h for listen(), and webipc.h always included djbunix.h for socket_internal() and socketpair_internal(). That's ugh. Just move all the socket stuff into one socket header. Of course, djbunix.h is still needed most of the time for fd_close() and other operations on fds, but those are generic anyway. Also, O_CLOEXEC exists everywhere now, so we can use it as well as O_NONBLOCK instead of redefining the flags in djbunix.h.
2020-12-07 Some trivial bugfixes and cleanupsLaurent Bercot
2020-12-04 Fix iobufferk_init on recent Linux; remove last superfluous coeLaurent Bercot
2020-11-29 Revamp lock primitives; prepare for 2.10.0.0 instead of 2.9.4.0Laurent Bercot
flock() doesn't have a way to test for a lock without taking it. lockf() doesn't have shared locks. The only way to have both is fcntl(). So I rewrote all the locking stuff around fcntl(), and used the opportunity to change the interface. The point of changing the interface is to stop having to bother with the old one, so to hell with compatibility, let's just do a major bump.
2020-11-25 child_spawn cleanup, configure cleanupLaurent Bercot
2020-11-24 Complete revamp of the pathexec functionsLaurent Bercot
- pathexec_run is now called exec_ae a for provided file name (default: argv[0]) e for provided envp (default: environ) - pathexec is now called mexec. m for merge environment. Option letters are: a for provided file name (default: argv[0]) e for provided envp (default: environ) f for provided envp *and* length of the envp m for provided modif string plus its length (the length is always needed because the modifs are null-terminated) n for provided modif string, length *and* number of modifs - functions have a foo0 version for _exit(0) when argv[0] is null - functions have a xfoo version to die if the exec fails - and a xfoo0 - Compatibility #defines and #includes are there until the next major bump
2020-11-23 Save syscalls on coe and ndelay_onLaurent Bercot
2020-11-20 Add fd_shutdown()Laurent Bercot
2020-11-08 Add ipc_bind_reuse_lock, rewrite ipc_bind_reuse to use itLaurent Bercot
2020-10-26 Separate and expose ancil_recv_fd/ancil_send_fdLaurent Bercot
The goal is to make late channel creation easy, as opposed to textclient which always creates a new channel at start time. This commit also moves posixishard.h inclusions as late as possible.
2020-10-26 Change new function names to openc_*; update deps.makLaurent Bercot
2020-10-26 Prepare for 2.9.4.0; add open*coe() functions.Laurent Bercot
2020-09-17 Add stralloc_readyplus_tuned, fix overflow on stralloc_readyplusLaurent Bercot
2020-04-29 Fix alloc_realloc UBLaurent Bercot
void ** does not exist: the address of a generic pointer is not properly defined (different pointer types may have different representations). So, alloc_realloc cannot exist as is without UB. Fortunately, it's not supposed to be used in the skalibs programming style, and skalibs itself only uses it in two places (stralloc_ready_tuned and stralloc_shrink) where the pointer is a char *. So we just fix the UB by making alloc_realloc() take a char **, and it's only defined for that pointer type. Nothing to see here folks, nothing happened at all.
2020-04-04 bugfix: sigprocmask invocation on non-signalfd systemsLaurent Bercot
2020-02-26 Explicitly unblock signals when selfpiped without signalfdLaurent Bercot
This is arguably a bugfix, since selfpipe without signalfd relies on signals being actually delivered, and a process may have inherited a nonempty sigprocmask. Also use SIG_BLOCK instead of SIG_SETMASK when using selfpipe_trapset() with signalfd, because we shouldn't unblock signals that may have previously been blocked. This is also arguably a bugfix. This commit is essential for using the version of s6-linux-init that blocks SIGINT before disablecad on kernels without signalfd. Without it, SIGINT never gets unblocked, so it's never delivered to s6-svscan.
2020-02-10 bugfix: env_merge didn't correctly handle variable removalLaurent Bercot
2020-01-30 Make sagethostname() work with all glibcsLaurent Bercot
2019-10-20 Real fix for undefined PATH_MAXLaurent Bercot
2019-10-20 Don't rely on the existence of PATH_MAXLaurent Bercot
2019-10-10 Fix path_canonicalize()'s returned length when absoluteLaurent Bercot
2019-10-09 Add path_canonicalize, prepare for 2.9.1.0Laurent Bercot
2019-09-20 We're down to ONE rogue sysdep, boys. ONE.Laurent Bercot
2019-09-06 Change tain_now_set_* API: also give an initial valueLaurent Bercot
2019-09-04 Also better when you actually pull the sysdepsLaurent Bercot
2019-09-04 With the correct sysdeps macros, pleaseLaurent Bercot
2019-09-03 Big wallclock/stopwatch refactor. It was long overdue.Laurent Bercot
* --enable-clock and --enable-monotonic are gone * tain_sysclock() has been renamed tain_wallclock_read() * tain_wallclock_read() reads from CLOCK_REALTIME (or gettimeofday()) * tain_clockmon[_init]() have been renamed to tain_stopwatch_[read|init]() and now accept a monotonic clock name as an extra argument * tain_now() points to the system (wall) clock by default * tain_now_set_[stopwatch|wallclock]() can be used to switch Now to make a pass on all skarnet.org programs and add a tain_now_set_stopwatch() call everywhere needed... >.>