nph 1.2.3 - 6/17/04 --------- - updated ph_open(3) man page - updated ph_email_resolve(3) man page - added PH_ERR_READONLY constant - modified ph_change(), ph_add(), and ph_delete() to return PH_ERR_READONLY when server is in read-only mode (note that this also affects ph_passwd(), since it uses ph_change()) - modified nph "change", "add", "delete", and "edit" commands to check for PH_ERR_READONLY return value from libphclient - fixed ph_email_resolve() to avoid segfault if user name is all punctuation or all spaces (thanks to Neil Rickert for the bug report) - added "keyfields=" option to nph "resolve_email" command ---------------------------------------------------------------------------- nph 1.2.2 - 7/2/03 --------- - fixed ph_open() to check that result parameter of gethostbyname_r() and getservbyname_r() is non-NULL (was causing segfault under Linux for unknown hostnames; thanks to Damian Menscher for the bug report) - fixed segfault in nph "make" command ---------------------------------------------------------------------------- nph 1.2.1 - 5/9/03 --------- - minor portability fixes - better handling of postinstall script in top-level Makefile - fixed bug in ph_email_resolve() that caused a segfault when querying based on the "name" field (thanks to Neil Rickert and Doug Brenner for the bug reports) - renamed MASK macro in lib/auth.c to avoid conflict with OS X header files (thanks to Andrew Laurence for the bug report) - added autoconf test for _SC_GETPW_R_SIZE_MAX (thanks to Jon Roma and Andrew Laurence for the bug reports) ---------------------------------------------------------------------------- nph 1.2.0 - 11/24/02 --------- - updated README file - added libphclient_is_thread_safe variable to libphclient API - updated compat code - minor portability fixes ---------------------------------------------------------------------------- nph 1.2.dev1 - 11/11/02 ------------ - use poll() or select() to avoid SIGPIPE in ph_send_command() - replaced ph_fd() function with ph_rfd() and ph_wfd() ---------------------------------------------------------------------------- nph 1.2.dev0 - 10/19/02 ------------ - libphclient API changes: - use clearer names for constant macros in - add prefixes to field names in all structures - pass application-supplied pointer to send/recv hooks - moved PH structure definition out of - libphclient code is now thread-safe - code cleanup: - reformatted code for readability - moved network line buffer code into its own module - moved memory management code into its own module - packaging changes: - updated COPYRIGHT info - updated autoconf macros - added --with-mailmatches configure option ---------------------------------------------------------------------------- nph 1.1.8 - 6/14/02 --------- - fixed postinstall script to find nslookup in either /usr/bin or /usr/sbin - updated to autoconf-2.53 - added ".PHONY" target in top-level Makefile.in to fix portability issue (thanks to Alex J. Lovell-Troy for the bug report) - removed silly extern wrapper from nph/nph.h - avoid segfault when requesting a hidden field - calculate query output field name width dynamically - free fieldinfo cache in ph_login(), ph_logout(), and ph_suser() to accomodate hidden fields that are only visible to heros - restructured autoconf macros ---------------------------------------------------------------------------- nph 1.1.7 - 1/30/02 --------- - fixed postinstall script to properly find domain even if hostname is not set to the FQDN (thanks to Charley LeCrone for the suggestion) - use $HOME if set instead of getpwuid(getuid()) - do not use pager in non-interactive mode - match option, siteinfo, and field names in a case-insensitive manner - minor code cleanups - updated to autoconf-2.52 - improved Makefile portability - avoid segfault when "return" is the first word of a query (thanks to Charley LeCrone for the bug report) - fixed ph_email_resolve() to properly return PH_DATAERR when the matching entry does not have an "email" field (based on patch from Doug Brenner ) ---------------------------------------------------------------------------- nph 1.1.6 - 5/29/01 --------- - updated to use readline-4.2 API ---------------------------------------------------------------------------- nph 1.1.5 - 5/29/01 --------- - match field names in a case-insensitive manner - updated autoconf macros and compat code - if server doesn't support "fields" command, avoid infinite loop and assume default field name length of 16 ---------------------------------------------------------------------------- nph 1.1.4 - 1/18/01 --------- - changed ph_serverlist_merge(), ph_email_resolve(), ph_advertised_email(), ph_www_resolve(), and ph_advertised_www() to handle PH_DATAERR when returned from ph_query() ---------------------------------------------------------------------------- nph 1.1.3 - 1/17/01 --------- - changed ph_query() to return PH_DATAERR for invalid queries - changed ph_login() to set errno properly - updated autoconf macros - automatically add postinstall script when creating Encap package - install nphrc and ph_server files from postinstall script instead of from make install target - minor code cleanups ---------------------------------------------------------------------------- nph 1.1.2 - 12/13/00 --------- - fixed "set" command to properly display an error when setting a non-existant option - fixed autoconf snprintf() test to make sure it NUL-terminates - added $(DESTDIR) to Makefiles (patch from Dave Terrell ) - replaced $(etcdir) with $(sysconfdir) in nph/Makefile.in - Makefile changes to support WSG_PKG and WSG_ENCAP autoconf macros ---------------------------------------------------------------------------- nph 1.1.1 - 10/29/00 --------- - fixed bug in ph_open() related to non-default port numbers - removed reference to ph_free_query() from ph_query() manpage - fixed memory leak in nph by calling ph_free_selectors() instead of free() - updated README file - minor directory structure changes because of CVS setup - various portability fixes ---------------------------------------------------------------------------- nph 1.1 - 9/14/00 ------- - changed argument list for ph_open() - trailing newline is no longer sent to sendhook function - nph query output looks more like the original ph client ---------------------------------------------------------------------------- nph 1.0.3 - 9/12/00 --------- - fixed a bug in ph_get_fieldinfo() which caused a segfault when called with an unknown field name - fixed ph_open() not to send the ident string if the connection fails - fixed segfault in nph when server returned no status info - fixed segfault in nph when user typed "query" or "ph" with no further arguments - changed various redundant for() loops to while() loops for strsep() - minor manpage corrections ---------------------------------------------------------------------------- nph 1.0.2 - 7/20/00 --------- - added note to README about requiring readline-4.1 or newer - changed ph_get_response() to set errno to ECONNRESET and return -1 when read() returns 0 - declare internal auxiliury functions as static in lib/redirection.c - changed ph_open() to fall back to a hardcoded port if the "csnet-ns" service isn't found - changed ph_email_resolve() to ignore the fields argument if it points to an empty string (thanks to Jon Roma ) - improved ph_email_resolve(3) manpage (thanks to Jon Roma ) - added aclocal.m4 to clean up configure.in - removed "inline" declarations - portability fixes related to snprintf() ---------------------------------------------------------------------------- nph 1.0.1 - 5/27/00 --------- - changed PH_DEFAULT_MAILMATCHES to "alias:callsign" - changed ph_email_resolve() to terminate the returned address at the first whitespace or comma - fixed error in lib/options.c which failed to return 0 on successful return from ph_retrieve_options() - fixed error in lib/options.c which failed to set errno to EINVAL in ph_set_option() - removed declarations for various unused variables - fixed nph/Makefile.in to strip installed nph binary ---------------------------------------------------------------------------- nph 1.0 - 5/9/00 ------- - First public release ---------------------------------------------------------------------------- nph 0.10.7 - 4/21/00 ---------- - fixed NULL pointer problem with defaultfield and returnfields options ---------------------------------------------------------------------------- nph 0.10.6 - 4/7/00 ---------- - portability fix: use autoconf to detect (thanks to Dave Terrell for the patch) - fixed segfault caused by logging in and then quitting (thanks to Geoff Raye for the bug report) - added $(CFLAGS) to link link in nph/Makefile.in ---------------------------------------------------------------------------- nph 0.10.5 - 4/2/00 ---------- - fixed lib/stack.c to avoid calling free() on a NULL pointer (needed to prevent segfault in sendmail timeout code) ---------------------------------------------------------------------------- nph 0.10.4 - 4/1/00 ---------- - fixed bugs in field alias code - fixed C preprocessor typo in lib/query.c - simplified readline detection - removed a patch from 0.10.2 which declared variables as extern and then later without extern to prevent vendor compiler horkage - changed nph/Makefile.in to install a default ph_server file ---------------------------------------------------------------------------- nph 0.10.3 - 3/29/00 ---------- - added "defaultfield" option to set field for selectors which do not specify a field name - set rl_readline_name in nph/interactive.c - fixed option parsing (broken from 0.10.2) - added support for field aliases via the "fieldaliases" server option ---------------------------------------------------------------------------- nph 0.10.2 - 3/29/00 ---------- - changed syntax for "option" command to allow whitespace surrounding '=' - nph calls ph_id() automatically to log its version on the server - ph_open() automatically calls ph_id() to log the libphclient version on the server unless the PH_DONTID flag is set - if "canonicaladdrs" option is set, nph will always display cannonical email and www fields, even if those fields were directly requested in the return clause - added libphclient_version variable to libphclient - minor config cleanup ---------------------------------------------------------------------------- nph 0.10.1 - 3/24/00 ---------- - fixed a typo in nph/interactive.c affecting systems without poll() - changed nph/content.c to look for "canonicaladdrs" option instead of "showredirects" (was actually renamed in 0.10) ---------------------------------------------------------------------------- nph 0.10 - 3/21/00 -------- - libphclient changes: - added general-purpose return value macros to and modified all library functions to use them as appropriate - changed ph_retrieve_*() functions to use stack and only set fields of ph handle when they complete successfully - changed ph_retrieve_*() functions to return 0 immediately if data is already cached locally - added ph_is_*_cached() macros to determine if PH handle fields are valid - moved ph_free_*() functions for fieldlist, options, and siteinfo to the public interface - fixed ph_resolve_www() and ph_advertised_www() to return PH_DATAERR if the matching entry does not have a "www" field - fixed ph_advertised_www() to call ph_resolve_www() if the server doesn't support the "wwwredirects" siteinfo field - fixed ph_change() to return PH_DATAERR if it reads a -LR_VALUE response code - added ph_fd() call - changed NSSERVICE to PH_SERVICE - changed BUF_SIZE to PH_BUF_SIZE - nph changes: - default server is now determined from commandline, ${PH_SERVER}, or ${prefix}/etc/ph_server (in that order) - check for .nphrc.${PH_SERVER}, then .nphrc, then ${prefix}/etc/nphrc (this allows for per-server dotfiles) - nphrc files are now parsed as nph commands, rather than simply option settings, so any arbitrary command can be run automatically - added "serveradd" command to replace ph_servers file - added "connect" command to connect to a new server - added "source" command to read commands from a file - added "ph" as a synonym for "query" command - changed "servers" to "listservers" - misc updates to reflect libphclient changes above - make sure to call rl_callback_handler_remove() before all exit() calls - portability fixes: - added check for vfork() to configure script - fixed syntax error in nph/interactive.c for systems without poll() - added a digusting hack in nph/interactive.c to force use of select() over poll() under IRIX ---------------------------------------------------------------------------- nph 0.9.4 - 3/7/00 --------- - replaced ph_serverlist() call with new calls ph_serverlist_add(), ph_serverlist_iterate(), and ph_serverlist_merge() - nph now reads ${prefix}/etc/ph_servers for the default server/site list, and adds to this list from servers which have additional data ---------------------------------------------------------------------------- nph 0.9.3 - 3/5/00 --------- - changed ph_close() to not wait for a response code if PH_FASTCLOSE is set - added lib/serverlist.c module to libphclient and corresponding "servers" command to nph - added optional "@domain" argument to nph query command which will perform the query on a known PH server for "domain" - replaced global ph_server variable in nph with "server" option (setting this will change which server you are connected to) - added "usereservedport" option to nph - removed "-p" commandline option to nph (ports are now represented as part of the server name, such as "ns.uiuc.edu:105") - nph will now read ${prefix}/etc/nphrc before the user's .nphrc file - improved handling of SIGINT in nph readline code ---------------------------------------------------------------------------- nph 0.9.2 - 2/24/00 --------- - misc portability fixes - added error checking for memory allocation in library code - added conditional directives to lib/phclient.h to prevent including it twice - changed ph_resolve_email() to accept ':' or ' ' as a delimiter in field list - added "confirm_alias" argument to ph_advertised_email() and ph_advertised_www() - various documentation fixes and updates - improved space-padding of field names in query output (thanks to Geoff Raye for the suggestion) - optimized nph query code to add "alias" to list of requested fields rather than requesting all fields and only printing some - added "-C" option to tell nph not to read ~/.nphrc - changed nph to bail out if "-f rcfile" was used but rcfile doesn't exist - nph readline completion code now handles the "return", "make", and "force" keywords ---------------------------------------------------------------------------- nph 0.9.1 - 2/23/00 --------- - fixed a bug in nph/commands.c which free()'d staticly-allocated memory - fixed a bug in nph/conf.c which caused nph to segfault if "-f nphrc" option was used - changed ph_query() to return -2 if it encountered an LR_TOOMANY response - portability fix: if EPROTO isn't defined, use EINVAL ---------------------------------------------------------------------------- nph 0.9 - 2/22/00 ------- - changed ph_open() to allocate memory for the PH handle and set a pointer, rather than filling in a caller-supplied buffer - changed ph_close() to check the response code to the "quit" command - cleaned up API for field list, server options, and siteinfo list - cleaned up value-parsing code and moved it from nph into libphclient (see new ph_encode_selector() call) - fixed nph to set debugging hooks and validate "returnfields" option after connecting to the PH server - changed readline code to redisplay input line after debugging output (e.g., for completion of field names or server options) - added "-V" option to display nph version ---------------------------------------------------------------------------- nph 0.8 - 2/20/00 ------- - added manpages for libphclient API and nph client - replaced ph_field structure with ph_fieldselector (for queries) and ph_fieldval (which includes the response code for returned entries) - added a generalized stack mechanism in PH handle to prevent memory leaks - replaced php and current_alias in PH handle with new struct ph_auth - added nph "confirmedits" option (and corresponding commandline option "-c") - added nph "returnfields" option to set default return fields - readline completion code now completes client options and server options where appropriate - changed "edit" command to support "edit field alias" ---------------------------------------------------------------------------- nph 0.7 - 2/18/00 ------- - changed some variable names, function names, and paramter lists to improve readability - added send and receive hook functions so applications can see everything sent between the client and server - added library calls to determine resolved and advertised URLs for PH-redirected www fields (actually added in 0.6, forgot to list below) - added "resolve_www" and "public_www" commands to nph - replaced "auth_method" command with generic "option" command which can change any nph setting - nph commands can be redirected to a file or piped to a program with ">", ">>", or "|" - "query", "me", and "status" commands are piped through the pager by default - if compiled with readline support, nph commandline is redisplayed after being suspended and foregrounded again - if compiled with readline support, command can be interrupted with SIGINT - added "make" command - expanded nph "whoami" command to display server and port ---------------------------------------------------------------------------- nph 0.6 - 2/14/00 ------- - changed several filenames to better reflect their content - moved current_alias field from nph code to PH structure in libphclient and added ph_whoami() call to lib/auth.c - changed auth method plugins in lib/auth.c to use a static buffer from the caller rather than dynamicly allocating memory - added ph_quote_value() in lib/protocol.c to convert a field value from literal representation to a server-parsable quoted string - fixed nph client to use literal representation of field values internally - added "edit" and "me" commands - nph will now send a query from its commandline arguments, just like the classic ph client - added/changed several commandline options to nph ---------------------------------------------------------------------------- nph 0.5 - 2/12/00 ------- - added whoami command - fixed parsing problem with trailing spaces - added bye, stop, and exit as synonyms for quit - added motd as a synonym for status - updated help information - added ph_passwd() library call and corresponding functionality in nph - added --enable-nph-setuid configure option - nph drops root privs after connecting to the PH server if installed setuid - changed ph_resolve_email() to ignore all but the first address listed in the matching email field ---------------------------------------------------------------------------- nph 0.4 - 2/11/00 ------- - added readline and polling support to nph - added command and field completion - tweaked Makefiles to support CPPFLAGS - fixed to correctly parse quoted strings for field values ---------------------------------------------------------------------------- nph 0.3 - 2/10/00 ------- - modularized nph client code - added basic help facility to nph - added rudimentary ~/.nphrc support - decided not to encode key modification information in server mailmatches field and modified ph_resolve_email() to just use builtin defaults - added argument to ph_resolve_email() to avoid memory leaks in applications which use timeouts - changed ph_resolve_email() to properly handle a lookup which returns only a single error field (e.g., when email field is not present) ---------------------------------------------------------------------------- nph 0.2 - 2/9/00 ------- - removed extraneous strsep() prototypes from library code - added phent argument to ph_email_address() in emailaddr.c to avoid memory leak in applications which use timeouts - changed arguments of ph_resolve_email() so that server can indicate how keys should be modified before a given field lookup ---------------------------------------------------------------------------- nph 0.1 - 2/7/00 ------- - Initial alpha release.