Thursday, March 28, 2013

libporty 0.9.2


Developer:

License / Price:

Last Updated:

Category:
Igor2 | More programs
LGPL v2 / FREE
March 29th, 2013, 04:49 GMT [view history]
ROOT / Programming / Libraries

libporty is an open source and lightweight portability library software configured by scconfig. It has been tested with various BSD and UNIX systems, including Linux, Mac OS X and even Windows.

To install is, run  "./configure", "make" and "make install". Alternatively, you can run "make linstall" to use a symlink instead of copying the files (this is useful for developers of libporty).


Product's homepage

What's New in This Release: [ read full changelog ]

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 iphostname 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


Download button
Via: libporty 0.9.2

No comments:

Post a Comment

LinkWithin

Related Posts Plugin for WordPress, Blogger...