These are all examples of how you can use the Vstr library, they are often centered around IO (as that's the main design of the library) but some show features like custom formatters. They all require a POSIX like environment ... although the library should happily work on win32 etc. All code in this dir. is also under the LGPL, not the GPL. NEW ex_dir_list2webdav -- WebDAV is even more retarded than HTTP, so maybe not ex_dnsd ex_relay ex_bt CHANGES ex_utils Allow '-' filename, for stdin evnt allow groups, make Evnt smaller (moveout cb's/conf to group data) ex_sock_filter All asm calls should have names ex_dir_list_sort Sort by verscmp ex_dir_list2html Should produce sort by size Should produce sort by mtime Should produce sort by reverse (6 html pages in all?) Output mtime column Keep netstr list for mime: application/dir-list ? ex_httpd http://www.sans.org/top20/#u2 Child dies in --procs, when sent SIGCONT after SIGTSTP or SIGSTOP C-z fg mime_types speed, by having explicit filename/ext matches public/symlinks path checking fd cache stat cache conf Allow url-path in httpd_policy_path_lim_eq ? expires-in - does cache-control and expires ? Support charset/accept-charset (appended to text/* Content types) Support default Support per file. Support accept/accept-language/accept-encoding switch files [w3/chips] Vary: accept,accept-language,accept-encoding Allow fall back, or to go 406 for content-type GALEON Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,image/jpeg,image/gif;q=0.2,*/*;q=0.1 Accept-Language: en FIREFOX Accept: image/png,*/*;q=0.5 Accept-Language: en-us,en;q=0.5 Random extra headers Allow addition of ETag header Allow custom error-code pages, start with 404 Allow req_conf to change to a defined set of policies Allow req_conf to have matches (maybe (match-allow [] ...) ?) conf file mmaps? man page limiting IO easyish to do globally, not possible other wise until conf. done not to easy to do multi proc. ... need to pass data/connections max timeout for keep-alive max requests for keep-alive? jhttpd -> vstr-httpd? mmap cache? 408 - request timeout? ipv6 native syslog edge triggered events auth (rfc2617) FreeBSD sendfile FreeBSD kqueue BUGS? GMT time convertion isn't done ... fuck the broken apps. CRLF should be done as (CR)?LF ... fuck the broken apps. Although we check for response splitting. tst LFS half response splitting requests mtime in future too many clients getopt: daemon, chroot, drop-privs signals mmap failure seek failure sendfile failure mem failure