Commit Graph

188 Commits (6859c4b6ca1ecef07a26e3779eb74817d1daa56f)

Author SHA1 Message Date
leitner 3dff6a2630 bump version
leitner 8a6186ba03 add critbit
leitner 79f534ffdf SECURITY: fix botched integer overflow handling logic in stralloc_ready (Giorgio)
leitner 6e022f98c9 ... but if errno==EINVAL still fall back to socket+fcntl (Robert Henney)
leitner 35f5a9692a if SOCK_NONBLOCK is defined, use it instead of socket+fcntl
leitner a255cebc57 mmap_read/mmap_shared on zero length files no longer fail but return a
zero length buffer
leitner ed93e203a1 more constness for stralloc and buffer
leitner 4fa4a524d2 add io_fd_flags so the caller can tell io_fd whether the socket is blocking
(saves one fcntl syscall)
leitner 3885650d81 on Linux, in iob_send, if MSG_MORE is defined, and the request type
lends itself to it, used sendto/sendmsg with MSG_MORE instead of
    TCP_CORK (saves two syscalls)
leitner 88167b5ce1 add socket_fastopen, socket_fastopen_connect4, socket_fastopen_connect6 and socket_quickack
leitner 8bdf66a1f5 add scan_html_tagarg
leitner 0aa50a19a4 add fmt_html_tagarg, fmt_xml
leitner 7c5d119f9a fix buffer_get
leitner 39e7ee90bb introduce io_eagain_read and io_eagain_write (discontinue using io_eagain plz)
leitner a544abc39c switch io_fds from array to newly implemented (hopefully thread-safe) iarray
switch epoll from level triggering to edge triggering
leitner c608502cd8 add scan_ulongn, scan_8longn, scan_xlongn, scan_longn, scan_netstring
leitner f7fee036c1 SECURITY: check for integer overflow in stralloc_ready
leitner 18afec7d68 scan_*longlong now properly abort if the number would not fit
leitner dd4f86fbfa add some unit tests for the formatting routines
leitner 875c0dc491 add haveuint128.h
byte.h now defines UNALIGNED_ACCESS_OK on x86
leitner 37013d414b add compiletimeassert.h
leitner f7606283c8 add byte_equal_notimingattack
leitner 852608b829 add awesome hack in isset.h (comex, Linus Torvalds)
leitner e175800a8c add io_fd_canwrite (like io_fd but assume the fd is writable)
save a few syscalls here and there
leitner faa5bad9fc fix io_receivefd so the incoming buffer is only 1 byte; io_passfd
sends only one byte, so we might receive (and discard) other data if
    we try to read more (Stefan Bühler, from the lightttpd project)
leitner b4469f1ed8 support SCTP in addition to TCP
leitner bb9cdaaafb add iarray
leitner 02818883df add buffer_tosa (buffer writing to auto-growing stralloc)
leitner 1d76baf2ef save 8 bytes in taia.h for 64-bit systems
leitner cef03a0cfe version bump
leitner 6d4c89ea72 byte_zero is also miscompiled by gcc 4.3.2
leitner a8a5e9a3d5 some valgrind de-noising
fix subtle typo in sub_of (David Sirovsky)
leitner 58a07defd7 add uint64 pack and unpack routines
leitner a38b7946a4 0.28
leitner 72eba9bf79 catch one more case in umult64 (Tomi Jylhä-Ollila)
leitner 22f88f6550 add socket_deferaccept
leitner 527efc70b6 add iob_addbuf_munmap
leitner aa435fbee3 add fmt_strm
leitner 3c5ca2a2ad version bump
leitner 3c31c1a03b fmt_xlonglong was utterly broken (Johannes Vetter)
leitner e0a6a1cb84 try to catch malicious input in textcode fmt_* functions
leitner 1b17f47def escape more in fmt_ldapescape
leitner b03a0e8a66 use inttypes.h to declare ints in uint*.h
leitner b0d5046428 fmt_ip6 compresses at best spot, not at first spot (Nikola Vladov)
leitner d22de55cee add some int overflow check macros to rangecheck.h
leitner 7b52bfc982 fix really pathological case where io_timeouted would never
start over from the beginning because always new accept()ed
    connections came in and got newer, higher descriptors since the last
    io_timeouted loop.  (Dirk Engling)
leitner fded0f3a22 version bump
leitner f046d1cdc1 add iob_bytesleft
don't leak memory in test/httpd.c
leitner 3004b518ef switch to size_t and ssize_t
leitner 66b342099c add asm versions of imult64 and umult64 for x86_64
(22 cycles -> 12 cycles on my Athlon 64)