Jeremy Allison wrote:
On Wed, Dec 08, 2004 at 01:37:23PM -0600, Matt Mitchell wrote:

Obviously such a special case would make the code ugly...but I might try patching it just for my own testing to see if it makes any difference. Any pointers you can offer?


That's exactly the case I was intending to add :-). I'm have to work
on the malloc issue at the moment - you seem to have quickly identified
the neccessary optimization without my help :-) - well done !

Don't give me too much credit just yet :-)

So it appears that unix_convert behaves reasonably well if conn->case_sensitive is true (and mangling is not in effect, which I would guess is true in probably 95% of cases today). There is already an escape in there which is triggered if the user is not so dumb as to assume that he is using the share he thinks he is (with case sensitive = yes) as opposed to one without. filename.c:186 in my sources.

That takes care of one readdir. The other is happening as a result of either xcopy or Windows checking to see if the file exists before copying it. i.e. it's doing a call_trans2findfirst, which calls OpenDir eventually, reading in the whole directory before deciding that the file isn't already there. This one is more subtle, and I don't know enough about the SMB semantics to really know what a valid approach would be. The same logic for optimization would seem to apply whenever conn->case_sensitive is in effect and we are not asked for a wildcard string, but I have no idea about implications for other areas of the protocol that might depend on that dirptr actually being populated.

As I have time today I will keep digging.

Any insight appreciated.  Should this be moved to samba-technical?

-m
--
To unsubscribe from this list go to the following URL and read the
instructions:  http://lists.samba.org/mailman/listinfo/samba

Reply via email to