2.11
	- removed deprecated functions; PeerName, IPAddressMachine and
	  IPAddressImage
	- added time command to nws_ctrl
	- fixed a problem with timestamp when nameserver started to syncronize
	- be sure that -i won't override the pid when the servers couldn't get
	  a port (probably another server already running)
	- reworked some of the priority for the logged messages
	- added performance number to the nws_memory and reworked the ones in
	  the nameserver
	- removed obsolete functions in nws_api.c relatives to the forecaster
	- AutoFetchCheck had a wrong unsigned argument: fixed
	- Changed the signature of GetOptionValue and made it thread-safe
	- rewrote the internal nws_api.c to be able to hanlde multiple
	  nameservers (UseNameserver adds nameservers now)
	- added mutexes to nws_api.c: first attempt to make it thread-safe
	- added AutoFetchAlready to check if we already are autofetching a
	  series.
	- added AutoFetchError to get a list of series which have been
	  disconnected (since last time AutoFetchError has been called)
	- the measurement returned in ForecastCollection with ComputeForecast
	  is now the last known measurement (wasn't used before)
	- added AutoFetchMessage for now to be used internally
	- added IsResourceValid to check a resource name
	- added SetDiagnosticsLevel to be used with our daemons
	- removed a spurios backtick in nws-hostadmin (thanks Laura)
	- answer to NS_SEARCH forking when dataset is too big
	- fix a non-terminating string in GetObject
	- changed the functions to talk to the nameserver to have a *Timeout
	  version
	- added -t option for nws_search
	- fixed an off by one in array assignemt in register.c
	- more work in the AutoFetch* family
	- memory and nameserver now can poll instead of waiting for a very
	  small amount of time
	- fixed a possible race condition on disconnection (and new
	  connections) when using threads
	- fixed a possible lock in the daemons waiting for messages (timeout
	  was set to 0 by accident)
	- added FindNwsAttribute to nws_api
	- modified SearchForName to add capability to search for just initial
	  matching (ie cisa can now match cisa.cs.ucsb.edu:8090)
	- removed obsolete nws_forecaster daemon
	- NameOf* are now thread-friendly: they return a newly allocated
	  memory that needs to be freed by the caller.
	- Fixed ObjectToSeries
	- EstablishAnEar now can deals with NULL parameters
	- Added GET_FORECASTS message for the proxy
	- Removed unused Experiment structure: using FORECASTAPI_Measurement
	  instead
	- added 'proxy' command to query the nws_proxy
	- nws_ctrl proxy print xml snippet 
	- removed atoi for strtol
	- removed obsolete nws_mirror.c
	- GetEnvironmentValue now returns malloc'd string
	- added NWSAPI_GetDefaultPort to nws_api.c
	- added --enable-experimental-forecasts
	- 25% improve in the Forecast memory footprint
	- removed MAX_OBJECT_SIZE and relative checks
	- Forecast contains now both errors (MAE and MSE)
	- fixed the memory sensor to deal with the new linux kernel (2.6)
	  and be more robust if we don't understand what we've read
	- removed ForecastStateStruct typedef: useless
	- promoted the experimental sensors into the normal build
	- in register.c we weren't changing the host_cookie when dropping
	  a socket
	- moved the handler for SIGPIPE (SocketFailure) into EstablishAnEar
	- SocketFailure is now a private function
	- added AutoFetchBeginObjects, AddObject and restructure some
	  internals in nws_api.c
	- added NWSAPI_StartFetching to interact with the proxy
	- added proxyFetch command to nws_ctrl
	- implemented START_FETCHING message in the proxy
	- removed the check for double object in AddObject:
	  RegisterObject already does that
	- exported ConditionSocket from protocol.c: it returns the
	  multiply factor for the socket buffer
	- in the tcp experiments we now determine if the OS allocate
	  double buffers (ie linux)
	- removed dependency on nws_forecast_api.h; nws_api.h does it all
	- the memory will attempt to unregister the series it's
	  responsible for
	- removed unused struct Skill and functions using it
	- removed not-so-useful struct Series, Activity and Control and
	  modified functions that generates the object from them
	- the freeMemory uses active and passive as type instead of 'a'
	  and 'p'
	- the new sensor won't be able to talk to an older memory
	  (removed StoreExperiment)
	- fixed a long lasting problem related to the CPU sensor not
	  reporting the right values: it was due to the (wrong) parsing
	  of the uptime output
	- AutoFetchEnd can now remove multiple series in one call
	- the proxy stop the autofetching before starting for each given
	  series
	- slightly reworked the build system
	- added nws(7) man page
	- removed ctrl_host and ctrl_mem
	- worked on the order we resolve inet address (we were running
	  into problems with very broken DNS)
	- moved ToggleDiagnostics to where it belongs: diagnostic.c
	- added RetrieveFromMyNameserver
	- Removed RecvMsgType (basically useless) and added RecvHeader,
	  still not so used, but more useful
	- added ack/nack for adding/removing member message
	- added more checks when receiving nacks
	- renamed CLIQUE_TOKEN_ACK to CLIQUE_ACK
	- added check in StartCliqueActivity that we indeed have at least
	  2 members after resolving the names
	- the new clique_protocol showed already to be more resilient and
	  stable than the old one: trying now to get even more stable and
	  better timing (closer to what the user asked)
	- we are more discriminating when there are multiple series with
	  the same name: nws_api.c tries now to get the active one first.

2.10.1
	- fixes from Mike Closson: thanks!! Should fix some of the misterious
	  segfaults received by some users.
	- fixes from some valgrind-found error (or complaints)
	- released with NMI R5.1

2.10
	- hopefully got the uint32_t thing resolved
	- fixes to compile on AIX 5.2
	- removed C++ style comment from the Nwslapd
	- autoconf wasn't recurse properly when using --with-globus-flavor
	- fixed wrong logic in nws_ctrl.c using GETTOK
	- added missing signal handler while DoExpTcp
	- removed some EINTR check: EINTR is needed when using sigalarm
	- the network sensor could hang when using nonblocking socket
	  (ironic?). Fixed.
	- Added new message to report a timeout feedback back to the parent
	  (the child is the one to do the network experiment hence it's the
	  one to know how long it took).
	- Send/RecvBytes now returns the # of bytes succesfully moved across
	  the network.
	- Adjusted the automatic timeout discovery to be more aggressive on
	  host that are unresponsive.
	- Send/RecvBytes now they are called *Wait and, when used with
	  non-blocking socket, can return whenver the socket is not ready
	  (returning the # of bytes sent/received).
	- fixed a bug in autofetch introduced with the new message
	  STORE_AND_REGISTER.
	- the memory now adds the attribute 'target' for the old series.
	- changes in the clique protocol to have a reliable stop.
	- added nws_ctrl(.1) to filelist.in
	- fixed a race condition in the clique protocol that prevented the
	  clique to be registered with the nameserver.
	- fixed behaviour of nws_extract.
	- added a 3rd values for the default timeouts: the 'use this timeout
	  if nothing could be send/recv' timeout.
	- fixed some missing dependencies during build
	- re-implemented the clique logic: we should be able to reliably
	  start/stop the clique and to take measurement at the given time.
	- the nameserver now uses the new registration even if we have an old
	  equivalent one (the clique reigstration wasn't properly updated)
	- fixed a missing ! in the HOST_REGISTER handling (host_protocol.c)
	- fixed a possible deadlock when terminating the sensor using SIGINT
	- if we are forking send the token in a separate process
	- randomized the sequence of hosts when we are taking experiments

2.9
	- changed the way we used the SUBDIRS in the build process: make dist
	  was failing to include directories we needed
	- added some static information to the host registration
	- added functions to return values from uname(2) and from sysconf
	  about type or machine and memory installed.
	- added compilation flags for the host registration
	- fixed some memory leak in the nameserver
	- removed old pimple code
	- nws_extract works now with series that have hosts without a domain
	  (ie bean.cs.ucsb.edu:9786.bandwidthTcp.32.16.256.aeonflux:9786)
	- nws_extract prints now the port with the hostname
	- added new message STORE_AND_REGISTER: now the sensor can send the
	  experiment to the memory with the registration object and the memory
	  will take care of it
	- exposed RegisterWithNameServer because we may want to register an
	  object without having it in our registration list (ie the memory
	  doesn't use the normal registration procedure for the series)
	- moved struct registrations into register.{c.h} so that both the
	  memory and the nameserver can use it: created InsertRegistration(),
	  DeleteRegistration(), CheckRegistrations(), SearchForName(),
	  SearchForObject and InitRegistrations()  to access the structure
	- the memory now register the series and tries to re-register orphaned
	  series (ie when the memory starts looks for older states and comes
	  up with some trimmed down registrarion)
	- removed NameOfCookieHost since HostCImage does the same thing
	- added RemoteHostSkill to access UseSkill remotely
	- added nws_ctrl: it will eventually substitute most of the binaries
	  (start/halt_activity, nws_ping, ctrl_host, ctrl_mem).
	- nws_memory when restarted tries to re-register series in its
	  storage
	- added experimental support for database in nws_memory
	- optimized WriteStateRec
	- reorganize nws_memory to make it easy to add different backend
	- fixed a bug when using SkillResources in periodic.c and
	  clique_protocol.c
	- added StoreNewExperiment to deal with the new STORE_AND_REGISTER
	  message: the sensor can talk to both new and old memories.
	- fixed some memory leaks in host_protocol.c and register.c
	- better check in some Portability functions
	- added memorySpeed sensor
	- timestamp is now the time the record arrived: added expiration field
	  to indicate for how long the record is valid
	- added NotifyOnNewConnection() function to register call-back
	  whenever an accept is done
	- fixed race condition when registering with old memory (thanks
	  larry!)
	- make the build system happier in case of cross-compilation
	- fixed a configuration bug that lead to compilation warnings
	- nws_extract return 0 on success and 1 on failure

2.8.1
	- removed code in configure.in to look for programs we don't use 
	- fixed the way that UPTIME_PATH and VMSTAT_PATH is used (before it
	  was never failing to find them)
	- removed call to getpgid to avoid a core dump on exit (only on cray)

2.8
	- changed RegistrationSet(): it now returns a string that needs to be
	  freed by the caller
	- host_protocol.c should now be thread safe, register.c should
	  naturally be thread safe (a part from the deprecated functions)
	- be more anal retentive for threads in osutils.c and protocol.c
	- HOST_CHANGE_MEMORY was not yet implemented: done.
	- changed forecast_api.h to nws_forecast_api.h to avoid name
	  collision/pollution.
	- fixed a wrong order for skills and units of measurements
	- fixed wrong number for RESOURCE_COUNT
	- SkillAvailable (still available) extended to be
	  SkillAvailableForControl
	- started to work on rationalizing the addition of a new sensor
	  experiment  (need to modify only skill.{c|h})
	- made periodic.c and clique_protocol.c thread safe
	- host_protocol.c implements all the calls needed to interact with a
	  host: started to change all client to use those
	- from this version, the NS_[UN]REGISTERED message is considered
	  redundant and received asynchronoulsy in host_protocol.c. With this
	  change the nameserver doens't need anynore to deal directly with
	  these message, but will let host_protocol.c to do that
	- nameserver doesn't send anymore *REGISTERED message if it detects a
	  new sensor
	- revamped SameHost 
	- struct host_desc is no more
	- removed Lookup: was somewhat redundant and barely used in the code
	- the functions oprating on the cookie are now mainly in register
	- some cleanup to avoid compiler warnings
	- WaitChild is now defined in osutil.c (used by the sensor)
	- removed traces of ldap from IncomingRequest
	- Added SkillOptionDefault which returns the system default for the
	  option and for the skill
	- a lot of work in the way a new experiment is integrated into NWS: it
	  should be easier or at least more in the hands of the experiment
	  writer: all the old sensors have been converted
	- added SkillOptionFormat 
	- removed any knowledge of low-level sensor from skills.c (now tcp
	  experiment are handled completely at the low level sensor)
	- fixed the -d option of the memory
	- grouped all the experimental sensor under one configure flag
	- Made SkillOptions more secure: it won't write all over the memory if
	  *toWhere is not big enough
	- fixed some unchecked string received on the network
	- we spawn a single process to do all the clique experiment for a
	  certain skill
	- added -x options to the sensor to force a specific port when doing
	  network experiment (closes #55).
	- we are a bit more tolerant when one of the periodic childreen dies
	- NWSAPI_GetMeasurement deals better with having both nameserver and
	  memory set
	- optimized nws_extract to go and ask directly to the sensor for the
	  memory it uses
	- -w in nws_extract is now more persistent

2.7
	- fixed --enable-debug (failed to disable debugging in few particular
	  cases)
	- GetHostInfo is now in host_protocol.c
	- Added HostHalt, HostMemoryInfo and HostNameServerInfo functions to
	  host_protocol.c 
	- Added HostChangeNameServer function to host_protocol.c
	- Added HostChangeMemory function in host_protocol.c: it's not
	  completely functional yet because the children of nws_sensor don't
	  know hot to change memory
	- non-blocking sockets work on bluehorizon (AIX)
	- removed obsolete -L from nws_extract
	- fixed typo in nws_forecast.1 (thanks Martin Quinson)
	- clean up make dist (thanks Martin Quinson)
	- fixed make install (was forgetting an include file)
	- Fixed IncomingRequest: bad things could have happened when timeOut
	  was 0
	- IPAddress is now a structure (needed to compile on CRAY SV1 and
	  perhaps more)
	- PERIODIC_SERIES is now obsolete, substituted by PERIODIC_EXPERIMENT
	  (periodic.c: modification needed in order to be able to change
	  dynamically the memory of the sensor)
	- CLIOQUE_SERIES is now obsolete, substituted by CLIQUE_EXPERIMENT
	- fixed glitches on IA64 (size_t was the culprit in the message header)
	- IncomingRequest can now be used in a polling fashion (using a
	  negative timeout). Used at least by Martin Quinson.
	- got working on alpha (problem with va_list and our old friend
	  SIG_FPE)
	- Fixed a pretty obscure bug in RecvBytes that got the code to spin
	  for timeOut before returning failure.
	- added an experimental -f option to the sensor (don't fork to run
	  experiment)
	- all the experiments should be saved into memory using
	  RegisterExperiment (in host_protocol.c) since the memory can change
	  dynamically. Modified periodic.c and clique.c to do just that.
	- started to remove host_desc from the source code
	- got to work on FreeBSD 4.7 (lotsa warning but ...)
	- sensors funcitons are now in sensor.c (and defined in nws_sensor.h):
	  this would allow to run a sensor in a thread of a running process
	- added the START sensor for condor (rich)
	- fixed a socket leak when --enable-treads was configured
	- added PortabilitySelect as a wrap on select for EINTR
	- added CLIQUE_NEW_MEMBER and CLIQUE_REMOVE_MEMBER messages (highly
	  experimental)
	- fixed a wrong resource reported by the clique registrations (thanks
	  Vladimir)
	- added SKILL_EXPERIMENT, SKILL_RESULT and SKILL_FAILED messages.
	  SKILL_EXPERIMENT will allow to exercise remotely any skill and get a
	  SKILL_RESULT back.
	- UseSkill doens't use anymore global variables. SkillResults need to
	  be freed.
	- added nws.3 manpage to explain the nws API. Still in its infancy but
	  hopefully already usefull.
	- modified the network sensor to be able to deal with non-blocking
	  sockets.
	- default experiment size is now 256kB
	- we do generate a single NMI bundle (and we included the SDK into it)
	- install includes and libraries with flavor when installing with
	  globus
	- globus flavor (when compiling with globus) will override
	  --enable-debug and --enable-threasd
	- removed old WITH_THREAD flags (old threads locking is obsolete)
	- thread locks now uses condition variables to avoid busy spin
	- added NWSAPI_GetMemory and removed ldap stuff from nws_api.c and
	  rationalize the settings of the default servers (NS and memory,
	  formerly only NS was set correctly).
	- nws_extract now works even without specifying the nameserver.
	- added HOST_REGISTARTION and HOST_MY_REGISTRATION message in
	  host_protocol.c Added HostGetRegistration to get the registrations.
	- availability sensor should be portable now.
	- provided a default passive memory sensor for Solaris (and OSes which
	  provides sysconf)

2.6
	- Slightly changed the way -n works: now it really overrides the host
	  name
	- Added GetHostInfo function to register module
	- more LDAP cleaning 
	- now every host tries to unregister before exiting
	- Cleaned up the code to register with a nameserver and the failover
	  code in case the primary nameserver is unresponsive
	- RegisterObject deals with failover nameservers
	- UnregisterObject deals with failover nameservers
	- nameserver answers to HOST_REGISTER registering with another
	  nameserver (it will force the mirroring option on)
	- optimized the Lookup query to reduce internal load to the nameserver
	- optimized most common Unregister filter
	- Fixed the UnregisterObject bug for real
	- nws_search changed the command line

2.5.1
	- Fixed a bug in UnregisteredObject where too many objectes were
	  removed

2.5
	- Fixed missing #include in memory sensor
	- added -n options to memory, nameserver and sensor to force a
	  hostname (useful when gethostname returns something funky)
	- added UnregisterListener function
	- added non blocking socket as a configure option
	- fixed getopt() usage in few places (whattime comes to mind)
	- fixed nws_extract -w (thanks Rodrigo Real and Luciano Cavalheiro da
	  Silva)
	- REALLOC defines now a local function (avoid problem on AIX)
	- REALLOC is defined in osutil.h only
	- added PreferredInterface in host_protocol and used when starting a
	  clique (useful to force a inet address in a clique for multi-homed
	  hosts in combination with -a)

2.4
	- LDAP as internal protocol is been declared dead: starting to remove
	  dead code
	- Fixed MicroTime to not overflow
	- Fixed more timeout problems
	- Removed SetNameServer 
	- Added replication awareness code in host_protocol.c
	- Changed EstablishedHost signature
	- NameServer has mirroring capabilities plus some optimizations
	- Added HOST_GET_MEMORY and HOST_GOT_MEMORY messages
	- Added -i option (write pid to file). Thanks Martin Quinson.

2.3
	- this is the version in NMI 3.0. No changes from Beta.

2.3beta
	- added experimental availability sensor
	- fixed timeouts bugs in Recv/SendBytes
	- fixed busy loop bug in IncomingRequest
	- using singinterrupt when available
	- added hooks for nameserver replicas
	- modified ListenFunction to be able to handle versioning
	
2.3alpha
	- removed obsolete files (NEWS, INSTALL and COPYING)
	- fixed some inconsistencies in the build process (make dist
	  complaining about LDIF_objects.txt not been there etc ...)
	- dnutils.{h.c} now are thread-safe: you have to free the allocate
	  memory returned by IPAddress{Image,Machine}_r
	- dnsutils.c now can use inet_aton if available
	- added a loose timeout to re-fresh the dns cache (30 minutes)
	- fixed a possible problem configuring due to the lack of a link to
	  filelist.in (thanks martin quinson)
	- fixed $? in the makefiles (thanks martin quinson)
	- compiling with optimization by default (we don't use -O2 and -g at
	  the same time: debugger got confused)
	- added experimental NFS sensor
	- moved the forecast library to Portability
	- removed Portability/Include/messages.h.in and added messages.h: no
	  need anymore to have it as config file
	- IPAddress is now uint32_t (when available)

2.2.1
	- added vo-grid into the Nwslapd for real
	- fixed the error that a succesfull start_activity was throwing
	- fixed the error when GetMeasurement was asking for more than ...
	  objects
	- fixed a memory leak in the nws_nameserver
	- fixed an error calling SetPktTimeout 
	- simplified the build (consolidated 2 main target: servers and clients)
	- fixed the usage of the Hash in protocol.c
	- NextNws{attribute,object} weren't checking for the return value of
	  strstr: fixed.
	- the nameserver return NS_FAILED now if the registration didn't make
	  it (bad registration or out of memory)

2.2
	- packaged for NMI-R2: there are 2 packages now, nws-client and
	  nws-server (nws-sdk to appear)
	- the Portability library can now be compiled to be thread safe (at
	  least the core functionality): more to go for nws itself (this is
	  not used for NMI and it's still experimental)
	- added a script (NMIbuild) to generate gpt packages of nws-client and
	  nws-server
	- fixed bits and pieces of the build process (extra messages, extra or
	  poor checking etc...)
	- fixed a sarch string that wasn't parsed correctly (we were ignoring
	  the trailing '*')
	- moved some of the headers files to have a better division between
	  Portabolity and NWS
	- the nws_nameserver registers itself to itself (you can see its
	  registration with nws_search) to be consistent
	- fixed various inconsistencies in register.c
	- Nwslapd (LDAP backend/Globus GRIS) updated to support VO-grids and 
	  use internal NWS forecasters
	
2.1
	- packaged for NMI-R1 (gpt metafile etc ...)

2.0     
	- Initial Release, well at least for this ChangeLog


