Re: BUG REPORT : IPX (Novell) uppercase convert error with

From: Petr Vandrovec (VANDROVE@vc.cvut.cz)
Date: Wed Jul 26 2000 - 04:57:55 EST


> Saw your crib against a possible Novell IPX error,but could not comprehend what is on actually.
> Mind giving me a glimpse of the problem in some more detail,maybe from scratch.
> I work for Novell Development and would like to carry the issue forward and get it resolved anyhow, if at all there is some issue.
> TIA,
> Anand

Hi Anand,
  thank for your interest. Problem is following:
  
1) If NCPfs decides to use DOS namespace, it lowercases letters in filenames,
   as it is UNIX tradition to have filenames in lowercase. And as they are
   stored on server uppercased, we must lowercase them.
2) If you then add OS/2 (LONG) namespace to volume, NCPfs will decide to use
   it (unless told otherwise). But LONG namespace stores these filenames
   uppercased. It annoyed couple of peoples and automation scripts, that
   if they enter 'lo' and ask for completion, nothing is completed, because
   of file is shown as 'LOGIN.EXE' from OS/2 namespace and bash/emacs/everyone
   else do case sensitive search for completions :-(
   So I added option to lowercase filenames which were created through
   DOS namespace...
3) Until recently lower-/upper-casing was done only with low 128 codes,
   upper 128 were not touched. This
     (a) caused strange effects on filenames, as accented characters
         were not lower-/upper-cased, bot non-accented were
     (b) caused generation of filenames inaccessible from DOS workstations
         (on some versions of netware), as DOS correctly uppercases
         name before sending to server and DOS namespace is case
         sensitive... So files created from linux with lowercase accented
         chars were not accessible...
4) Recently support for multibyte character encodings was added to Linux
   kernel. Together with this change ncpfs was updated to upper/lowercase
   all letters, even accented ones.
5) NW3.12, which is used by our friend from Russia which presents itself
   as 'Info', always use CP437 (I believe...) for doing case insensitive
   compare when searching filename through OS/2 (LONG) namespace.
   
(all letters in doublequotes in following text are russian letters
with codes above 127)
So following happens:

(1) On Netware filesystem there is stored file "NCP" which was created
    through DOS namespace. In both DOS and OS/2 namespaces its name is "NCP".
    
(2) Linux retrieves this directory entry, finds that owning namespace is
    DOS and that you want to lowercase such names. So "NCP" is translated
    to "ncp".
    
(3) Linux tries to use this name for 'stat' during 'ls -l', or in some
    file manager... But server says that "ncp" does not exist, because
    of case insensitive search on server in OS2.NAM/LONG.NAM says that
    "ncp" does not match to "NCP".
    
On servers after 4.0 I believe that LCONFIG.SYS translation table is
used by OS2.NAM/LONG.NAM, but I do not think that there is any way how
to set this table for NW3.x... And as NW3.11/3.12 is no more supported
by Novell, I do not think that you can do anything with it... But if
you want to do something useful, create tool which allows us to change
LCONFIG.SYS after server installation according to newly selected
codepage. I did not find any way how to generate this file without
my tools after server installation (of course if LCONFIG.SYS is used).

If LCONFIG.SYS is not used for case insensitive compare in LONG.NAM,
or if you know how to persuade OS2.NAM in 3.x to use some specific
uppercasing table for case insensitive compare in all NCP 87,x functions,
tell me...
                                        Best regards,
                                                Petr Vandrovec
                                                vandrove@vc.cvut.cz
                                                

 

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Mon Jul 31 2000 - 21:00:21 EST