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