Go to file
leitner c2453002d3 add small explanation to iob.h
array write a small socket server with io_wait integration and add and debug
buffer add long long buffer routines
byte change length or size specifiers in APIs from int to long
case change case_*b from char* to void* so it is function pointer compatible
dns EPROTO -> EINVAL for BSD backwards compatibility (did I mention that BSD *sucks*?)
fmt change length or size specifiers in APIs from int to long
io add TCP_CORK support
mmap document error signalling through (void*)0 return code.
mult reverse return code for safemult API to conform to newer djb APIs
open even more man pages
scan change length or size specifiers in APIs from int to long
socket more BSD compat
str change length or size specifiers in APIs from int to long
stralloc add stralloc_diff and stralloc_diffs
tai even more man pages
taia add long long buffer routines
test make iob_send return aggregate total
textcode add html encoders
uint more man page typos
unix man pages gave wrong include path (Hynek Schlawack)
.cvsignore cvsignore the new tests and remove their results in make clean
CHANGES add small explanation to iob.h
COPYING Initial revision
GNUmakefile add small explanation to iob.h
README mention my email address
array.h add long long buffer routines
buffer.h add long long buffer routines
byte.h change length or size specifiers in APIs from int to long
case.h remove obsolete extern from header files
dns.h remove obsolete extern from header files
fmt.h change length or size specifiers in APIs from int to long
io.h add io_sendfile with BSD support
io_internal.h more kqueue/epoll
iob.h add small explanation to iob.h
iob_internal.h experimental io_batch implementation
iopause.h1 monster update: add tai, taia, iopause, case, and ipv6 enhanced dns
iopause.h2 use sys/poll.h instead of poll.h for iopause
ip4.h remove obsolete extern from header files
ip6.h remove obsolete extern from header files
mmap.h remove obsolete extern from header files
ndelay.h remove obsolete extern from header files
open.h remove obsolete extern from header files
openreadclose.h remove obsolete extern from header files
readclose.h remove obsolete extern from header files
safemult.h reverse return code for safemult API to conform to newer djb APIs
scan.h remove obsolete extern from header files
select.h1 monster update: add tai, taia, iopause, case, and ipv6 enhanced dns
select.h2 more BSD compat
socket.h remove obsolete extern from header files
str.h remove obsolete extern from header files
stralloc.h remove obsolete extern from header files
t.c use sys/poll.h instead of poll.h for iopause
tai.h remove obsolete extern from header files
taia.h add long long buffer routines
textcode.h add html encoders
tryepoll.c add epoll and kqueue tests
tryinline.c work around compilers that don't understand "static inline"
tryip6.c test for ipv6 and if_name2index and socklen_t.
trykqueue.c add epoll and kqueue tests
tryn2i.c test for ipv6 and if_name2index and socklen_t.
trypoll.c monster update: add tai, taia, iopause, case, and ipv6 enhanced dns
trysl.c test for ipv6 and if_name2index and socklen_t.
trysysel.c monster update: add tai, taia, iopause, case, and ipv6 enhanced dns
uint16.h remove obsolete extern from header files
uint32.h remove obsolete extern from header files
uint64.h add int64 type to uint64.h

README

libowfat is a library of general purpose APIs extracted from Dan
Bernstein's software, reimplemented and covered by the GNU General
Public License Version 2 (no later versions).

The API has been slightly extended (for example, I provide a uint32_read
function, and I extended the socket API to support IPv6) where I found
it necessary or beneficial in a specific project.

Many of the functions I implement here have since been placed in the
public domain, so there are other sources to get this code (except for
my extensions obviously).  The implementations here may not be as
portable as the original versions; I tend to focus on the Single Unix
Specification and not on some obsolete legacy systems found in the
basements of some vintage hardware clubs.

I also provide man pages for many functions, mostly extracted from Dan's
web documentation or documentation found in earlier versions of his
software.  For some reason, he abandoned man pages in favor of HTML
recently.

On July 4 2002, Dan also placed his DNS routines and supporting
low level functions in the public domain, so I copy them here instead of
reimplementing them.  http://online.securityfocus.com/archive/1/280642
has an online version of the bugtraq posting.

The author can be reached under felix-libowfat@fefe.de