Opened 15 years ago
Closed 15 years ago
#122 closed defect (fixed)
Truncated server names in EVFSGUI
Reported by: | Mensys via herwigb | Owned by: | Herwig Bauernfeind |
---|---|---|---|
Priority: | minor | Milestone: | |
Component: | Samba Client GUI | Version: | Samba Client GUI (EVFSGUI) 2.0 |
Keywords: | Cc: |
Description
I guess you can understand most of this... I guess the problems are due to incorrect handling of names over 13 chars long.
Subject: samba Date: Thu, 21 Jan 2010 11:01:06 +0100 Organization: Mensys
Vrienden, ik hoop dat jullie hier wat aan hebben.
Uitgangssituatie:
- VPC als Guest op eCS Host machine
- Naam VPC "server" is CNV-E9E15EB4AB4 (VPC van Aland afkomstig :))
- Nieuwste Samba EVFS Gui + executables
Wat zie ik:
- *Network neighbourhood browsing* met EVFS GUI levert een server op met de naam CNV-E9E15EB4A Mounting lukt niet, omdat 2 karakters van de servernaam "are missing".
- In de DIALOOG view levert "Alle shares on Server" met de volledige *servernaam* handmatig ingevuld /(CNV-E9E15EB4AB4)/ wel een goed resultaat.
- In de DIALOOG view levert "All Servers" in werkgroep met de juiste *werkgroepnaam* ingevuld ook een goed resultaat. In de OS/2 "drive view" zie je ook alle karakters van de Servernaam (zie screensshot 003)!
Zie verder bijgevoegde screencaptures. Lijkt erop dat het browsen in de EVFS GUI een "truncated" servernaam oplevert. --
Met Vriendelijke groet, kind regards, Gerrit Schoenmaker - Product Manager NetOp Software -- Kind regards / met vriendelijke groet,
Joachim Benjamins
Attachments (3)
Change History (4)
by , 15 years ago
Attachment: | samba001.jpg added |
---|
comment:1 by , 15 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
Regarding the problem with the truncated servername:
- I used the length limits for servers and shares valid for Win95/98 and also IBM Peer systems - that triggered the problem Gerrit was seeing.
- I removed these limits in EVFSGUI code, as basically there is no need to enforce them - neither Samba nor modern Windows variants have these limits anymore.
After doing that, I did some more testing on theoretical lengths for workgroup, server, machine and share name lengths and came to a point when suddenly EVFSGUI stopped working properly. Obviously I found another problem. I tracked it down and this one is much harder to fix (especially it cannot be done by me):
If the length of workgroup(domain), server, share, username and password together exceed the number of 52 characters, we have a problem, as the EVFSRxGetMount() function from the EVFS Rexx interface returns a maximum string length of 255 characters. In the above condition the string would be longer than 255 characters and is truncated. EVFSGUI completely fell over such a truncated string.
Note that workgroup, server, share and username occur twice in the string, so by shortening one of these by 1 character will give effectively more 2 characters in the string.
Example: I triggered the problem by using workgroup of 14 chars, a servername of 15 and a share name of 21, using a 4 char username and 4 char password, this produces a theoretical string length of 261, being truncated to 255. Read/write access information is lost completely, EA support token is truncated. 14+15+21+4+4-6=52.
I implemented several workarounds to prevent EVFSGUI from falling over, however these are workarounds and no fixes (EA support and Read/Write access are set to default values in such a condition). In addition a warning is displayed in the debug console.
The older EVFSGUI 1.3.x suffers from the same problem.
You will be able to connect and use the connection successfully, however saving a profile and restoring later will have unpredictable results.
Thought for a fix in evfscall.dll (the REXX DLL for EVFS): I am not sure whether the length of the returned string could be extended for the EVFSRxGetMount() function, but there is one rather easy way to at least get 9 more characters: The MEMLEN=x token, which was used for the ndpsmb.dll 1.0 plugin, is not used anymore in 1.5 and could very likely savely be removed from the return string.
screenshot 1