#16 iocharset

closed
nobody
None
5
2007-04-07
2006-12-18
No

i need feaure, e.g. '-o iocharset=koi8-r' :-)
web-server give me filenames in UTF-8. i have koi8-r locale. i can't read russian filenames visually :-\. i need recode(m.b. iconv?) option.

thanx.

Discussion

  • Werner Baumann
    Werner Baumann
    2006-12-20

    Logged In: YES
    user_id=1260327
    Originator: NO

    I allways tried to avoid this, hoping UTF-8 will get standard on all plattforms. And I believe, UTF-8 is nearly standard and is available on all GNU/Linux systems.
    So my first question: is switching to a russian locale with UTF-8 character set really more trouble then implementing character set translation into davfs2?

    If this is the case, I still would not do the work in the next time, because there are some tasks with higher priority (for me). But I will assist if somebody wants to do it:
    Assuming that servers allways use either us-ascii or utf-8 (?), only the kernel interfaces would need some additional code (only kernel upcalls containing file names and the function that creates direntries had to be changed).

    Greetings
    Werner

     
  • Logged In: YES
    user_id=1058465
    Originator: YES

    In Russia all servers give content in different codepages(CP-1251,KOI8-R,CP866,UTF-8). Without 'iocharset', i need permanent change my locale for different servers?

     
  • Werner Baumann
    Werner Baumann
    2006-12-26

    Logged In: YES
    user_id=1260327
    Originator: NO

    Hello Alexander,

    I will try to implement some character set conversion within the next weeks.

    Just to avoid misunderstandig:
    The character set used for path names is *not* related to the character set used for the file contents and the character set given in the contents header of HTTP.
    davfs2 will in no case do any translations to the file contents. All I will try is to convert the character set of file *names*.

    Greetings
    Werner

     
  • Werner Baumann
    Werner Baumann
    2006-12-28

    Logged In: YES
    user_id=1260327
    Originator: NO

    Hello Alexander,

    I have added (experimental) character set conversion.

    You may get the sources from the CVS server, branch v1. Please see the CVS page for details. The command to checkout the sources is
    "cvs -z3 -d:pserver:anonymous@dav.cvs.sourceforge.net:/cvsroot/dav co -P -r v1 davfs2"

    You must use the configuration option 'server_charset'. Please read the comment in davfs2.conf.

    Test reports are greatly appreciated.

    Happy new year
    Werner

     
  • Logged In: YES
    user_id=1058465
    Originator: YES

    this version don't work.
    default config without server_charser:
    ---------
    /usr/local/sbin/mount.davfs http://... /mnt/dav
    ---------

    ---------
    Please enter the username to authenticate with server
    http://...
    or hit enter for none.
    Username: ...

    Please enter the password to authenticate ... with server
    http://...
    or hit enter for none.
    Password:
    *** glibc detected *** /usr/local/sbin/mount.davfs: munmap_chunk(): invalid pointer: 0x0805a827 ***
    --------

     
  • Werner Baumann
    Werner Baumann
    2006-12-31

    Logged In: YES
    user_id=1260327
    Originator: NO

    Hello Alexander,

    there was an error in mount_davfs.c, new_args(), which results in an attempt to free a const *char. This might be the reason for this error.

    The bug is fixed in CVS. Please try again.

    If the error still occurs, please build with 'configure --enable-debug' and send the debug messages that will be in one of your log files. This should help to see in which part of the programm the error occurs.

    Happy new year
    Werner

     
  • Logged In: YES
    user_id=1058465
    Originator: YES

    Jan 5 02:52:24 gelf mount.davfs: /usr/local/sbin/mount.davfs http://storage.streamdrive.ru/slide/files/001/9/ansik /mnt/stream
    Jan 5 02:52:24 gelf mount.davfs: URL: http://storage.streamdrive.ru/slide/files/001/9/ansik
    Jan 5 02:52:24 gelf mount.davfs: Mount point: /mnt/stream
    Jan 5 02:52:24 gelf mount.davfs: Checking for setuid.
    Jan 5 02:52:24 gelf mount.davfs: Checking mount point.
    Jan 5 02:52:24 gelf mount.davfs: Mountpoint: /mnt/stream
    Jan 5 02:52:24 gelf mount.davfs: Parsing configuration files.
    Jan 5 02:52:24 gelf mount.davfs: Reading config from
    Jan 5 02:52:24 gelf mount.davfs: /usr/local/etc/davfs2/davfs2.conf.
    Jan 5 02:52:24 gelf mount.davfs: Arguments after parsing config files:
    Jan 5 02:52:24 gelf mount.davfs: dav_group = 100
    Jan 5 02:52:24 gelf mount.davfs: conf = (null)
    Jan 5 02:52:24 gelf mount.davfs: user = 0
    Jan 5 02:52:24 gelf mount.davfs: mopts = 0xc0ed0006
    Jan 5 02:52:24 gelf mount.davfs: kernel_fs = (null)
    Jan 5 02:52:24 gelf mount.davfs: buf_size = 0 KiBytes
    Jan 5 02:52:24 gelf mount.davfs: uid = 0
    Jan 5 02:52:24 gelf mount.davfs: gid = 0
    Jan 5 02:52:24 gelf mount.davfs: dir_umask = 06000
    Jan 5 02:52:24 gelf mount.davfs: file_umask = 06000
    Jan 5 02:52:24 gelf mount.davfs: dir_mode = 040755
    Jan 5 02:52:24 gelf mount.davfs: file_mode = 0100644
    Jan 5 02:52:24 gelf mount.davfs: scheme = http
    Jan 5 02:52:24 gelf mount.davfs: host = storage.streamdrive.ru
    Jan 5 02:52:24 gelf mount.davfs: port = 80
    Jan 5 02:52:24 gelf mount.davfs: path = /slide/files/001/9/ansik/
    Jan 5 02:52:24 gelf mount.davfs: secrets = (null)
    Jan 5 02:52:24 gelf mount.davfs: p_host = (null)
    Jan 5 02:52:24 gelf mount.davfs: p_port = 8080
    Jan 5 02:52:24 gelf mount.davfs: useproxy = 0
    Jan 5 02:52:24 gelf mount.davfs: askauth = 1
    Jan 5 02:52:24 gelf mount.davfs: displayname = 1
    Jan 5 02:52:24 gelf mount.davfs: locks = 1
    Jan 5 02:52:24 gelf mount.davfs: expect100 = 1
    Jan 5 02:52:24 gelf mount.davfs: read_timeout = 30 s
    Jan 5 02:52:24 gelf mount.davfs: server_charset = none
    Jan 5 02:52:24 gelf mount.davfs: sys_cache = /var/cache/davfs2
    Jan 5 02:52:24 gelf mount.davfs: cache_dir = /var/cache/davfs2
    Jan 5 02:52:24 gelf mount.davfs: backup_dir = lost+found
    Jan 5 02:52:24 gelf mount.davfs: cache_size = 50 MiByte
    Jan 5 02:52:24 gelf mount.davfs: table_size = 1024
    Jan 5 02:52:24 gelf mount.davfs: idle_time = 10 s
    Jan 5 02:52:24 gelf mount.davfs: dir_refresh = 60 s
    Jan 5 02:52:24 gelf mount.davfs: file_refresh = 1 s
    Jan 5 02:52:24 gelf mount.davfs: gui_optimize = 0
    Jan 5 02:52:24 gelf mount.davfs: retry = 30 s
    Jan 5 02:52:24 gelf mount.davfs: max_retry = 300 s
    Jan 5 02:52:24 gelf mount.davfs: lock_timeout = 1800 s
    Jan 5 02:52:24 gelf mount.davfs: lock_refresh = 60 s
    Jan 5 02:52:24 gelf mount.davfs: Parsing secrets files.
    Jan 5 02:52:24 gelf mount.davfs: Reading secrets from
    Jan 5 02:52:24 gelf mount.davfs: /usr/local/etc/davfs2/secrets.
    Jan 5 02:52:34 gelf mount.davfs: Checking permissions.
    Jan 5 02:52:34 gelf mount.davfs: Checking directories.
    Jan 5 02:52:34 gelf mount.davfs: Mounts in /proc/mounts
    Jan 5 02:52:34 gelf mount.davfs: Checking for double mounts.
    Jan 5 02:52:34 gelf mount.davfs: PID file: /var/run/mount.davfs/mnt-stream.pid
    Jan 5 02:52:34 gelf mount.davfs: Changing persona to uid=0, gid=100
    Jan 5 02:52:34 gelf mount.davfs: Initialize WebDAV-session.
    Jan 5 02:52:34 gelf mount.davfs: Neon wants creditentials for Slide DAV Server.
    Jan 5 02:52:34 gelf mount.davfs: Initialize Cache.
    Jan 5 02:52:34 gelf mount.davfs: Alignment of dav_node: 8
    Jan 5 02:52:34 gelf mount.davfs: Checking cache directory.
    Jan 5 02:52:34 gelf mount.davfs: /var/cache/davfs2/storage.streamdrive.ru-slide-files-001-9-ansik+mnt-stream+root
    Jan 5 02:52:34 gelf mount.davfs: New node: (nil)->0x8086918
    Jan 5 02:52:34 gelf mount.davfs: Reading stored cache data.
    Jan 5 02:52:34 gelf mount.davfs: New node: 0x8086918->0x80869d8
    Jan 5 02:52:34 gelf mount.davfs: PROPFIND /slide/files/001/9/ansik/
    Jan 5 02:52:34 gelf mount.davfs: PROPFIND: XML parse error at line 3: no element found

     
  • Werner Baumann
    Werner Baumann
    2007-01-05

    Logged In: YES
    user_id=1260327
    Originator: NO

    Hello Alexander,

    everything looks fine, aup to the PROPFIND request. mount.davfs sends this request to get a listing of the contents of the root directory. The response must contain an XML-Body. The XML-parser tells that this XML-body is broken. Most propably the server sends malformed XML.

    But to see what is wrong, I would have to look at the response send by the server, including the XML-body. You might get it, using Wireshark/Ethereal. It would be best to have the XML-body and the correspndig log entries from mount.davfs.

    This error seems not to be related to the character set issue.

    What happend after Jan 5 02:52:34?
    Have there been any error messages from davfs2 on terminal?

    Greetings
    Werner

     
  • Werner Baumann
    Werner Baumann
    2007-04-07

    • status: open --> closed