0.5 (20011109)
0.5 (20011109)
- Fixed Makefile bug: decoupled libslack optlevel from module test optlevel
- Fixed API bug: str_length_unlocked() was static
- Fixed API bug: prop_locker() prototype wasn't in prop.h
- Added prop_clear() to prop module
- Added octal/hex and error handling to command line integer option handling
- Fixed bug: check() just called dump() without testing the condition first
- Added variants of six standard C string functions with more useful APIs
- Added thread module tests (and locker timing tests)
- Changed locker function return values (now same as pthread return values)
- Improved speed of lockers (now overhead = 1 test + 1 deref + 1 offset)
- Changed item/length/size, bin/hex/oct functions to return -1 on error
- Changed error returns to consistently set errno (str, list, map)
- Added set_errnull() to err module
- Added relative index/range semantics to list functions (same as with str)
- Changed fifo_open() to take writefd return arg to prevent fd leaks
- Simplified mem_resize() assuming ISO C compliant realloc()
- Added internal ISO C compliant realloc() for systems that don't have it
- Fixed bug: optval/optlen for getsockopt(SO_ERROR) not initialised
- Fixed inode leak: fifo_open() didn't unlink fifo created on error
- Removed thread_init(), thread_setcancel() and barriers from thread module
- Renamed thread module to locker (decoupled thread safety)
- Stopped daemon_revoke_privileges() from clearing supplementary group list
- Added support for "debug sections" to debug messaging
- Added daemon_become_user() to daemon module
- Added "_unlocked" versions of functions in str, list and map modules
- Renamed "_locked" functions to "_with_locker" to avoid confusion
- Fixed bug: removed highly dubious synchronisation from internal iterators
- Added read locked iterators
- Added alert functions to prog, err and msg modules
- Systematically corrected function prototype typos in manpages
- Added net_options() to net module (sets multiple socket options)
- Added soundex() to str module
- Removed caching and mutex locks in daemon_started_by_init/inetd()
- Added ignoring SIGHUP before losing session leadership in daemon_init()
- Improved IPv6 support in net module (i.e. can now bind to IPv6 wildcard)
- Added support for UNIX domain sockets to net module
- Increased socket listen queue length from 5 to 1024
- Fixed bug: net service port selection only used numeric port arg
- Added handling of name lookup returning multiple addresses for net clients
- Added default host to net client functions (i.e. null host == loopback)
- Changed net_create_server() and net_create_client() to take sockopt list
- Added support for net clients binding to a specific local port
- Added net_gethostbyname() and net_getservbyname() to net module
- Made net server and client functions threadsafe
- Added socket option notes to net module manpage (from W. Richard Stevens)
- Added protocol design notes to net module manpage (from Radia Perlman)
- Added sendfd() and recvfd() to net module (send/recv open file descriptor)
- Replaced ioctl() with fcntl() in nonblock functions
- Added support for net client/server service argument being numeric
- Added link module (singly/doubly linked lists and "growable" freelists)
- Added agent module (poll/select plus hierarchical timing wheel scheduler)
- Added net_interfaces() to net module (retrieve list of network interfaces)
- Added support for IPv4 and IPv6 multicasting to net module
- Added Reliability over UDP functions to net module (net_rudp_transact())
- Added Type of Service (TOS) functions to net module
- Changed net_pack/net_unpack functions to take a timeout arg
- Added nap() function to fio module (subsecond sleep)
- Added threadsafe snprintf() function for systems that don't have it
- Added asprintf() to str module for systems that don't have it
- Added config.h to simplify compile commands (prelude to autoconf)
- Removed thread_attr_{init,set}() (not useful enough or portable enough)
- Ported to OpenBSD 2.9
- Added pseudo module (pseudo terminals by Tatu Ylonen from openssh)
- Added coproc module (coprocesses with or without a pseudo terminal)
- Changed syslog functions to take a priority parameter
- Added make obsd obsd-daemon obsd-slack (openbsd binary packages)
- Added libslack-config --uninstall
- Proofread all of the doco (just once)
- Added setting appropriate TOS values in mail()
- Fixed validation of relative index/range values in str/list modules
- Added relative index semantics to list_item()
- Added read locked versions of map_apply() and list_apply()
- Added make and dist-html-slack (manpages as html.tar.gz)