Go to file
leitner 12caae78b2 cleaner make clean
array add more comments
buffer more constness for stralloc and buffer
byte remove compiler warnings
case switch to size_t and ssize_t
cdb fix some bugs that cppcheck found
dns get rid of more -Wconversion warnings
examples add a few examples
fmt more updates
io hopefully fix the infinite loop in gatling
mmap mmap_read/mmap_shared on zero length files no longer fail but return a
mult add more comments
open get rid of more -Wconversion warnings
scan add more comments
socket support noipv6 being set externally even when there is perfectly good
str get rid of -Wconversion warnings
stralloc SECURITY: fix botched integer overflow handling logic in stralloc_ready (Giorgio)
tai get rid of more -Wconversion warnings
taia get rid of more -Wconversion warnings
test more updates
textcode add scan_html_tagarg
uint remove compiler warnings
unix get rid of more -Wconversion warnings
.cvsignore ignore entities.h
CAS.h fix compile error
CHANGES SECURITY: fix botched integer overflow handling logic in stralloc_ready (Giorgio)
COPYING Initial revision
GNUmakefile cleaner make clean
Makefile cleaner make clean
README mention my email address
TODO fix for NetBSD 3.0 (they broke their sys/types.h)
array.h make headers work in C++
buffer.h more constness for stralloc and buffer
byte.h define UNALIGNED_ACCESS_OK on x86
case.h make headers work in C++
cdb.h make headers work in C++
cdb_make.h make headers work in C++
compiletimeassert.h add compiletimeassert.h
dns.h get rid of more -Wconversion warnings
ent.c change return type to void
entities.json $ make WERROR=-Werror now builds with -Werror
errmsg.h make headers work in C++
errmsg_int.h add errmsg_int.h
fmt.h $ make WERROR=-Werror now builds with -Werror
iarray.h fix and document iarray
io.h hopefully fix the infinite loop in gatling
io_internal.h hopefully fix the infinite loop in gatling
iob.h make headers work in C++
iob_internal.h use callback based infrastructure to reset iob's
iopause.h1 for installed header files, add comment saying where they came from
iopause.h2 for installed header files, add comment saying where they came from
ip4.h get rid of more -Wconversion warnings
ip6.h get rid of more -Wconversion warnings
isset.h add awesome hack in isset.h (comex, Linus Torvalds)
likely.h add iarray
mmap.h map mmap_read return a const char*
ndelay.h make headers work in C++
open.h make headers work in C++
openreadclose.h make headers work in C++
rangecheck.h make headers work in C++
readclose.h get rid of more -Wconversion warnings
safemult.h make headers work in C++
scan.h add scan_ulongn, scan_8longn, scan_xlongn and scan_longn
select.h1 monster update: add tai, taia, iopause, case, and ipv6 enhanced dns
select.h2 more BSD compat
socket.h add socket_fastopen, socket_fastopen_connect4, socket_fastopen_connect6 and socket_quickack
str.h make headers work in C++
stralloc.h more constness for stralloc and buffer
t.c switch io_fds from array to newly implemented (hopefully thread-safe) iarray
tai.h make headers work in C++
taia.h make headers work in C++
textcode.h add scan_html_tagarg
tryalloca.c $ make WERROR=-Werror now builds with -Werror
trybsdsf.c $ make WERROR=-Werror now builds with -Werror
trydevpoll.c broken lose32 port using mingw (don't use!!!)
tryepoll.c $ make WERROR=-Werror now builds with -Werror
tryinline.c work around compilers that don't understand "static inline"
tryip6.c $ make WERROR=-Werror now builds with -Werror
trykqueue.c add epoll and kqueue tests
tryn2i.c $ make WERROR=-Werror now builds with -Werror
trypoll.c monster update: add tai, taia, iopause, case, and ipv6 enhanced dns
tryscope.c $ make WERROR=-Werror now builds with -Werror
trysendfile.c $ make WERROR=-Werror now builds with -Werror
trysigio.c $ make WERROR=-Werror now builds with -Werror
trysl.c $ make WERROR=-Werror now builds with -Werror
trysocket.c $ make WERROR=-Werror now builds with -Werror
trysysel.c monster update: add tai, taia, iopause, case, and ipv6 enhanced dns
tryuint128.c add tryuing128.c and ignore haveuint128.h
uint16.h make headers work in C++
uint32.h make headers work in C++
uint64.h make headers work in C++
va_narg.h for installed header files, add comment saying where they came from
windoze.h fix some bugs that cppcheck found

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