libporty 0.9.3 ~~~~~~~~~~~~~~ Minor cleanup release: -Fix: central makefile forces all rules -Fix: varioud make uninstall bugs -Fix: [doc] rename INSTALL to INSTALL.txt -> on case insensitive file systems it interferes with make install -Fix: [abgproc] watchdog handles eof from control sockets -Add: [util] binary peek in buf libporty 0.9.2 ~~~~~~~~~~~~~~ host: -Add: types.h with signed and unsigned integer types up to 32 bits, P_size_t, P_off_t and P_ptrdiff_t (detected using scconfig) -Add: math wrapper for log() -Add: PM wrap macros for math blocks (copied from work/pmath) -Fix: use detected 32 bit unsigned integer for P_time_t -Fix: P_usleep: don't usleep() more than 1M uS in a single call - loop with smaller values if needed -Fix: add include protection in buf.h util: -Add: binary variant of strpbrk() (required by buf) -Add: buf: binary fill for buf (ugly workaround at the moment) -Add: buf: binary get function -Add: getter in buf that returns the size of the currently growing buffer -Fix: buf: filling does not depend on \0 termination; for binary, a non-zero positive length must be provided -Fix: buf: memory leaks in buf (last partial line not free'd by uninit) -Fix: buf: proper calculation of length of binary fills net: -Add: use P_ipv4_addr_t instead of unsigned long int for IP addresses -Add: if there's no getaddrinfo, use built-in resover and make sure net_resolver.a won't duplicate the symbols -Add: use scconfig detected local protocol family to define P_AF_LOCAL for local networking -Add: modular uninit schema in P_net_uninit, for other modules like net_async -Fix: EAGAIN is acceptable as network-operation-in-progress on UNIX -Fix: stick to the hostname-addr-ip terminology in API -Fix: don't use POSIX socklen_t in tcp4 accept -Fix: invalid memory handling (string not terminated) in dns4 is_addr -Fix: accept 3 character long tags in dns4 is_addr -Fix: clean sin struct with memset before binding for listen as the structure will always have system-specific fields that should be zero -Fix: remove local P_size_t typedef, use the one in host/types.h -Fix: dns4 is_addr function did not terminate token properly - shorter token after a longer inherited extra characters runing the result -Fix: select() based implementation of P_poll() ignores negative fds as the manual of poll() mandates net_resolver: -Add: parser for /etc/hosts -Add: stat wrapper for returning mtime (for checking whether hosts or resolv.conf changed) -Add: /etc/hosts based ip<->hostname lookup (slow linear search); reread /etc/hosts when mtime of the file changed -Add: parser for resolv.conf -Add: loop until the whole answer is read even if it takes multiple read()s -Rename: replace prefix P_resolv with P_net_resolv for consistency -Fix: use memcpy instead of pointer copy for accessing ptr while parsing answer to avoid bus error caused by unaligned access -Fix: return error if unpacking the domain name failed -Fix: keep order of nameserver when parsing resolv.conf -Fix: don't truncate last digit from IP in the resolv.conf parser -Fix: do not ignore error flag of the answer net_async: -API CHANGE: new abgproc inherit API and UNIX and win32 implementations -API CHANGE: abgproc doesn't allow shared stdin/stdout anymore -API CHANGE: async stdio uses two fds because it is not guaranteed that stdin fd matches stdout fd -Add: be able to clean up after the watchdog thread -Add: register watchdog remove call in P_net_uninit -Fix: memmove bug in threaded watchdog moved much more in buf deletion -Fix: watchdog didn't quit on nomral process close -Fix: free buffer of dead children in watchdog -Fix: close control fd at the end of the watchdog thread -Fix: reset revents in abgproc watchdog to avoid depending on uninitialized memory for determining events -Fix: set watchdogt back to -1 after uninit so that multiple P_net_init/P_net_uninit cycles will not leave subsequent watchdog running -Fix: don't exit() after a failed exec() - this may flush FILE * buffers inherited from the parent, causing double writes. (thanx to nsz) -Fix: proper inheritance of SIGPIPE and fds (don't shutdown those that are closed because of the parent) c99tree: -Add: utility to generate struct field set code, based on c99tree and sphash -Add: save #line and hash macro locations in loc and print them with %m and %M (loc format) -Fix: cc.sh preserves -I -Fix: cc.sh writes outpout to stdout or to the file specified in -o -Fix: rename cc.sh to treecc as that is the installation name -Fix: accept empty statement even in the beginning of a block bgtask: -Add: fork() based alternative build system: -Add: install Makefile.config -Add: add rule make uninstall