2006-08-27  Rémi Turboult  <r3mi@users.sourceforge.net>

	* version 0.71

	* djmount/device_list.c : check that newly created device matches the 
	  initial SSDP target, to avoid listing in djmount UPnP devices that
	  are not MediaServers e.g. Routers (problem reported by Martin
	  Vallevand).

	* djmount/test_upnp.c: add 'wcat' command to download URLs

2006-08-26  Rémi Turboult  <r3mi@users.sourceforge.net>

	* djmount/device: handle UPnP devices embedded in the description 
	  document (and not only root devices as previously).

	* djmount/xml_util: 
	  - new XMLUtil_FindFirstElement to avoid recursive search in XML 
	    documents when it is not necessary
	  - (XMLUtil_GetElementValue): properly ignores non-text childs 
	    e.g. comments
	  - add missing consts
	  - add type-casting macros for XML Node types and discard_const

2006-08-21  Rémi Turboult  <r3mi@users.sourceforge.net>

	* djmount/service.c (finalize): suppress bogus check on ctrlpt_handle
	  in destructor

2006-08-20  Rémi Turboult  <r3mi@users.sourceforge.net>

	* djmount/test_device.sh: new test program for Device_Create

	* djmount/device.c: misc. code cleanup

	* djmount/upnp_util.c (UpnpUtil_ResolveURL): fix memory corruption
	  + minimize size of allocated string

	* talloc: upgraded to svn r17578 (dated 2006-08-17 03:49:42 +0200)

2006-08-15  Rémi Turboult  <r3mi@users.sourceforge.net>

	* djmount/djfs.c (BrowseDebug): add new "device_description.xml" file
	  for debug

	* djmount/device.c : try to accommodate broken UPnP devices who do not
	  report the MIME type of the Device description document as XML.

2006-08-14  Rémi Turboult  <r3mi@users.sourceforge.net>

	* djmount/test_upnp.c (CommandLoop): display prompt correctly
	  when readline is not available

2006-08-13  Rémi Turboult  <r3mi@users.sourceforge.net>

	* djmount/upnp_util.c (UpnpUtil_ResolveURL): return resolved URL
	  directly

2006-08-05  Rémi Turboult  <r3mi@users.sourceforge.net>

	* djmount/test_upnp.c: print DIDL @id in 'browse' result

	* djmount/upnp_util.c (UpnpUtil_ResolveURL): suppress error message
	  if relative_url is NULL

	* djmount/media_file.c: add "text/plain" MIME type

2006-07-28  Rémi Turboult  <r3mi@users.sourceforge.net>

	* djmount/test_vfs.sh : ignore white spaces in "ls -l" test (else
	  "make check" can fail e.g. on gentoo). Fix by Thomas Sattler.

2006-07-26  Rémi Turboult  <r3mi@users.sourceforge.net>

	* version 0.70

	* djmount/djfs.c : make sure the device is really searchable 
	  (some buggy servers return "searchable" as "true" in metadata, even
	  though SearchCapabilities are empty)

2006-07-22  Rémi Turboult  <r3mi@users.sourceforge.net>

	* djmount/djfs.c (BrowseSearchDir): do not create directory on empty 
	  Search result -> "No such file or directory"

2006-07-19  Rémi Turboult  <r3mi@users.sourceforge.net>

	* djmount/vfs.c (BrowseDebug): add 'uname' debug file

2006-07-18  Rémi Turboult  <r3mi@users.sourceforge.net>

	* djmount/media_file.c: add some missing MIME types (video/mpeg,
         video/mp2p, text/* ...) used by GeeXboX uShare

2006-07-17  Rémi Turboult  <r3mi@users.sourceforge.net>

	* djmount/fuse_main.c: suppress dummy implementation for XATTR 
	  operations

	* djmount/charset_internal.c: correct warnings with gcc 4.0.1

2006-07-10  Rémi Turboult  <r3mi@users.sourceforge.net>

	* djmount/djfs.c: add "simplified" (basic) searches.

2006-07-09  Rémi Turboult  <r3mi@users.sourceforge.net>

	* implement "search" operations (major evolution)

	* djmount/djfs.c: move 'status' file to ".debug" directory,
	  and suppress intermediate "browse" directory.
	  Add ".debug/versions" file.

2006-06-30  Rémi Turboult  <r3mi@users.sourceforge.net>

	* djmount/xml_util.c (XMLUtil_GetFirstNodeValue): do not systematically
	  log an error if not finding item (could be optional element)

2006-06-29  Rémi Turboult  <r3mi@users.sourceforge.net>

	* djmount/file_buffer: new FileBuffer_StringAlloc strategy

2006-06-25  Rémi Turboult  <r3mi@users.sourceforge.net>

	* djmount/didl_object.c: make filenames starting with "." or "_"
	  reserved names

	* djmount/vfs: add management of time fields
	
	* djmount/vfs_p.h: add protection against NULL or empty names
	  in DIR_BEGIN and FILE_BEGIN

2006-06-23  Rémi Turboult  <r3mi@users.sourceforge.net>

	* djmount/djfs: rewrite Browse to suppress "_DJFS_BrowseCDS" 
	  intermediate function, and use simpler recursive logic 
	  with BROWSE_SUB

2006-06-20  Rémi Turboult  <r3mi@users.sourceforge.net>

	* djmount/test_vfs.sh: make sure to run test using C locale

	* djmount/string_util.h: suppress StringArray (use PtrArray instead)

	* djmount/ptr_array: rename PtrList to PtrArray, and add some 
	  methods (PtrArray_GetElementAt, RemoveAt, RemoveAtReorder)

2006-06-18  Rémi Turboult  <r3mi@users.sourceforge.net>

	* djmount/vfs_p.h: merge FILE_SET_SIZE into FILE_SET_STRING and
	  FILE_SET_URL

2006-06-15  Rémi Turboult  <r3mi@users.sourceforge.net>

	* djmount/vfs: add SYMLINK capability to VFS + improve API

2006-06-11  Rémi Turboult  <r3mi@users.sourceforge.net>

	* djmount/string_util : new function String_ToBoolean

2006-06-10  Rémi Turboult  <r3mi@users.sourceforge.net>

	* djmount/djfs*, vfs* : split DJFS in 2 classes : VFS and DJFS
	  + add test_vfs

2006-06-06  Rémi Turboult  <r3mi@users.sourceforge.net>

	* djmount/object*.* : improved Object class and macros

2006-05-20  Rémi Turboult  <r3mi@users.sourceforge.net>

	* djmount/device_list: suppress DeviceList_PrintStatus

	* djmount/upnp_util: suppress UpnpUtil_PrintEvent

2006-05-15  Rémi Turboult  <r3mi@users.sourceforge.net>

	* djmount/talloc_util.c (tpr): new "tpr" function to replace 
	  "talloc_asprintf_append"

2006-05-09  Rémi Turboult  <r3mi@users.sourceforge.net>

	* djmount/file_buffer.c (FileBuffer_CreateFromString): add 'steal' 
	  parameter to optimize unecessary string copies

	* djmount/string_util: add new StringStream API for portable
	  open_memstream equivalent

	* djmount/djfs.c (DJFS_Browse): use new StringStream API

2006-05-06  Rémi Turboult  <r3mi@users.sourceforge.net>

	* djmount/djfs.c (DJFS_Browse): rename "/debug" directory to "/.debug"

	* djmount/djfs.c (DJFS_Browse): add "/.debug/talloc*" debug files

2006-05-05  Rémi Turboult  <r3mi@users.sourceforge.net>

	* talloc : upgraded from current Samba4 sources

	* djmount/test_cache.c: new test suite for Cache object

	* djmount/fuse_main.c (main): add textual error message if UPnP 
	  initialisation fails

2006-05-02  Rémi Turboult  <r3mi@users.sourceforge.net>

	* merge branch release 0.52 and 0.53 into trunk

2006-05-01  Rémi Turboult  <r3mi@users.sourceforge.net>

	* djmount/fuse_main.c (fs_open): whenever possible, do not set the 
	  'direct_io' flag on opened files : this allow the 'mmap' operation 
	   to succeed on these files.

	* djmount/file_buffer.h, djmount/file_buffer.c : add file size to 
	  FileBuffer_CreateFromURL, in order to allow read function to 
	  always return the exact number of bytes requested

2006-04-30  Rémi Turboult  <r3mi@users.sourceforge.net>

	* djmount/string_util.h : new macro STRING_TO_INT to check the range
	  of the target variable after string conversion.

	* djmount/test_string.c: new test suite for string_util functions

2006-03-24  Rémi Turboult  <r3mi@users.sourceforge.net>

	* djmount/fuse_main.c: allow some FUSE-related mount options 
	  e.g. fsname, allow_root, ...

2006-03-21  Rémi Turboult  <r3mi@users.sourceforge.net>

	* configure.ac: if using external libupnp, requires at least 1.3.1

2006-02-12  Rémi Turboult  <r3mi@users.sourceforge.net>
	
	* djmount/fuse_main.c: add code for backward compatibility with
	  FUSE 2.2 (as provided in Debian Sarge)

2006-02-01  Rémi Turboult  <r3mi@users.sourceforge.net>

	* djmount/log.h : add Log_IsActivated and LOG_IS_DEBUG_ACTIVATED

2006-01-21  Rémi Turboult  <r3mi@users.sourceforge.net>

	* djmount/cache.c, djmount/cache.h : new "Cache" object (update 
	  content_dir to use it)

2006-01-18  Rémi Turboult  <r3mi@users.sourceforge.net>

	* gl/ : import new "hash" module

	* gl/ : synchronise with CVS gnulib

	* configure.ac: suppress gl_MODULES and other macros now in 
	  gnulib-cache.m4

	* djmount/didl_object.h: new field "basename" to contain the title 
	  suitable for filename generation. Previous field "title" now contains
	  the unmodified title.

	* djmount/djfs.c (DJFS_Browse): move all metadata XML files into
	  new sub-directory ".metadata" to avoid clutter. This also allows
	  to see metadata for directories themselves.

	* djmount/djfs.h: new bit-field DJFS_Flags to group all options 

2006-01-17  Rémi Turboult  <r3mi@users.sourceforge.net>

	* version 0.51

	* configure.ac: fix configure problem when building with FUSE 2.5.0

2006-01-15  Rémi Turboult  <r3mi@users.sourceforge.net>

	* configure.ac: add checks for large-file support

	* libupnp/ : fix miscellaneous compilation warnings 
	  (see libupnp/ChangeLog)

2006-01-12  Rémi Turboult  <r3mi@users.sourceforge.net>

	* djmount/device_list.c : avoid locking global device list while
	  creating a Device, which freezes djmount if the device is not
	  accessible (e.g. firewall problem).
	
	* djmount : clean up event subscription code

2006-01-10  Rémi Turboult  <r3mi@users.sourceforge.net>

	* djmount/djfs.c (DJFS_Browse): force playlist mode for AV files of 
	  unknown sizes (streams, or size not provided by server).

2006-01-09  Rémi Turboult  <r3mi@users.sourceforge.net>

	* djmount : fix empty browse on some type of servers, caused by 
	  accessing services through ServiceId (device-dependant) instead 
	  of ServiceType (constant described in UPnP specification). 
	  Problem reported on AV Media Server in Intel Tools for UPnP 
	  Technologies by Christian Fredrik Kalager Schaller.

2005-12-15  Rémi Turboult  <r3mi@users.sourceforge.net>

	* djmount/media_file.c: add matroska and ogg MIME types

	* djmount/fuse_main.c (main): disallow "-o iocharset" option when
	  --disable-charset is configured

2005-12-09  Rémi Turboult  <r3mi@users.sourceforge.net>

	* version 0.50

2005-12-08  Rémi Turboult  <r3mi@users.sourceforge.net>

	* djmount/didl_object.c (DIDLObject_Create): make sure that 'id' and
	  'title' properties are never NULL or empty

2005-12-06  Rémi Turboult  <r3mi@users.sourceforge.net>

	* djmount/fuse_main.c (main): invert playlist option "-o playlists",
	  so that sharing directly the content of files is now the default.

	* djmount/didl_object.c, djmount/didl_object.h : make sure that 
	  required DIDL-Lite properties are never NULL (caused crash when
	  browsing GeeXboX uShare 0.9.3)

	* djmount/device.c, djmount/device.h (Device_GetDescDocURL): new method

	* djmount/device.c, djmount/device.h (Device_GetDescDocItem): add 
	  missing const

2005-12-05  Rémi Turboult  <r3mi@users.sourceforge.net>

	* djmount/file_buffer.h : define FILE_BUFFER_MAX_CONTENT_LENGTH
	  as the maximum content-length possible with the current libupnp
	  (with incorrect API).

2005-12-04  Rémi Turboult  <r3mi@users.sourceforge.net>

	* djmount : new option "-o noplaylists" to expose directly the content 
	  of files (instead of simply playlists).

	* configure.ac: upgrade to check for FUSE >= 2.4 (required for
	  'direct_io' flag in open).

2005-12-03  Rémi Turboult  <r3mi@users.sourceforge.net>

	* djmount/media_file.h, djmount/media_file.c : new files for
	  information related to media files (code previously in djfs.c)

	* djmount/file_buffer.h, djmount/file_buffer.c : new files to
	  access the content of a file ; its HTTP reader allows to expose 
	  directly the content of files (instead of simply playlists).

	* djmount/string_util.h, djmount/string_util.c : new functions
	  String_ToInteger and String_ToUnsigned

2005-11-21  Rémi Turboult  <r3mi@users.sourceforge.net>

	* djmount/didl_object.h, djmount/didl_object.c : new files for 
	  "DIDLObject" : DIDL-Lite object (code previously in djfs.c)
	
	* djmount/ptr_list.h, djmount/ptr_list.c : new files for "PtrList" :
	  generic list of pointers

2005-11-20  Rémi Turboult  <r3mi@users.sourceforge.net>

	* djmount/charset.c (Charset_ConvertString): fix bug causing converted
	  strings to be sometime not nul-terminated

2005-11-18  Rémi Turboult  <r3mi@users.sourceforge.net>

	* djmount/fuse_main.c (main): fix relative paths to mount points 
	  not working in daemon mode (reported by Andre Landwehr)

2005-11-13  Rémi Turboult  <r3mi@users.sourceforge.net>

	* configure.ac: add --disable-charset option to suppress all
	  character conversion code (assume all is UTF-8)

	* m4/rt_package_find.m4 (RT_PACKAGE_FIND): use AC_ARG_VAR for
	  "precious" variables instead of AC_SUBST

2005-11-12  Rémi Turboult  <r3mi@users.sourceforge.net>

	* version 0.40

2005-11-11  Rémi Turboult  <r3mi@users.sourceforge.net>

	* configure.ac: add '--with-external-libupnp' and '--with-fuse-prefix'
	  options (suggested by Benjamin Zores)
	
	* m4/rt_package_find.m4 : new autoconf macro to locate
	  external packages

2005-11-06  Rémi Turboult  <r3mi@users.sourceforge.net>

	* configure.ac: add '--with-external-talloc' option
	  (suggested by Amir Shalem)
	
	* m4/vl_lib_readline.m4: correct macro behaviour when configure cache
	  is used

	* djmount/talloc_util.h: new file (talloc.h wrapper + utilities)

2005-11-01  Rémi Turboult  <r3mi@users.sourceforge.net>

	* autoconfiscate (autoconf + automake support) all packages

	* gl/ : new directory to store gnulib modules

	* djmount/fuse_main.c: add '--version' and '--help' options
	  for GNU standard compatibility

2005-10-28  Rémi Turboult  <r3mi@users.sourceforge.net>

	* djmount/device.c, djmount/device_list.c : additional checks and logs
	  for devices with incorrect ServiceType or ServiceId values.

2005-10-16  Rémi Turboult  <r3mi@users.sourceforge.net>

	* version 0.31

	* djmount/djfs.c (DJFS_Browse): fix small memory leak when reading 
	  '/devices' file

2005-10-08  Rémi Turboult  <r3mi@users.sourceforge.net>

	* djmount/content_dir.c : add cache debug statistics in status string

2005-10-06  Rémi Turboult  <r3mi@users.sourceforge.net>

	* djmount/service.c : status string includes last action name and 
	  result, for debugging

	* djmount/device.c (Device_GetStatusString): status string includes
	  talloc memory, for debugging

2005-09-06  Rémi Turboult  <r3mi@users.sourceforge.net>

	* version 0.30

	* djmount/fuse_main.c : daemonize process (if not -f or -d flags) 
	  before libupnp initialisation else UPnP is not working
	  (reported by Benjamin Zores)

	* djmount/device_list.c (DeviceList_Start): correct printing of UPnP
	  port number after initialisation (thanks Benjamin Zores)
	
2005-09-04  Rémi Turboult  <r3mi@users.sourceforge.net>

	* djmount/djfs.c (DJFS_Browse): 'devices' file now contains only names
	  of devices, for easier parsing by scripts

	* djmount/device_list : remove some obsolete code

	* djmount/log: add colorization of output (moved from test_upnp.c)

	* djmount/charset, djmount/charset_internal : full i18n charset 
	  support, either with iconv (when available), or internally
	  (limited to utf8 and 8bits charsets cpxxx and iso-8859-xxx).

2005-08-30  Rémi Turboult  <r3mi@users.sourceforge.net>

	* djmount/device_list.c (EventHandlerCallback): add new device even if
	  DeviceType is empty, to prevent missing some discoveries.

2005-08-29  Rémi Turboult  <r3mi@users.sourceforge.net>

	* djmount/minmax.h : new file, copied from Gnulib
	  ( http://www.gnu.org/software/gnulib/ )

2005-08-28  Rémi Turboult  <r3mi@users.sourceforge.net>

	* version 0.26
	
	* libupnp/ixml : new "ixmlRelaxParser" function makes the XML parser
	  more tolerant to malformed text, in order to improve 
	  interoperability.

	* djmount/device_list.c (DeviceList_Start): calls "ixmlRelaxParser"

2005-08-25  Rémi Turboult  <r3mi@users.sourceforge.net>

	* version 0.25

2005-08-02  Rémi Turboult  <r3mi@users.sourceforge.net>

	* djmount : preliminary i18n charset support (internal handling
	  of utf8 and 8bits charsets cpxxx and iso-8859-xxx).

	* djmount/log.c : handle NULL messages or incorrect vsnprintf formats

2005-07-25  Rémi Turboult  <r3mi@users.sourceforge.net>

	* content_dir.c: loop on result in Browse to workaround incomplete
	  responses from some servers.

2005-07-22  Rémi Turboult  <r3mi@users.sourceforge.net>

	* version 0.20

	* content_dir : add cache for BrowseChildren

2005-07-06  Rémi Turboult  <r3mi@users.sourceforge.net>

	* object.x : new object model, used in service and content_directory

2005-06-24  Rémi Turboult  <r3mi@users.sourceforge.net>

	* device_list: get service from serviceId instead of internal servnum

2005-06-23  Rémi Turboult  <r3mi@users.sourceforge.net>

	* download device description document only on device creation,
	  not on every advertisement
	

