Bug 3290 - Not all shares displayed
Summary: Not all shares displayed
Status: RESOLVED FIXED
Alias: None
Product: Samba 3.0
Classification: Unclassified
Component: File Services (show other bugs)
Version: 3.0.20b
Hardware: x86 Linux
: P3 minor
Target Milestone: none
Assignee: Lars Müller
QA Contact: Samba QA Contact
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-11-28 21:17 UTC by citizen
Modified: 2009-06-19 08:36 UTC (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description citizen 2005-11-28 21:17:49 UTC
in smb.conf
create share folder "a b c"
Create share folder "abc"
then go to windows network neighborhood, only "a b c" is displayed.
Comment 1 citizen 2005-12-04 21:30:43 UTC
I found that is because in function getservicebyname(),
it call strwicmp() to check service name duplicate.
Comment 2 Lars Müller 2005-12-05 08:40:11 UTC
I've tested this with 3.0.21rc2 and can't reproduce your problem.

[abc]
   comment = abc share
   path = /srv/samba/abc
   guest ok = Yes
[a b c]
   comment = a b c share
   path = /srv/samba/a_b_c
   guest ok = Yes

I placed one file in each dir with different names to ensure the client - Microsoft Windows XP SP 2 english - got the right share.

If the bug is still valid for you please reopen the report and add your smb.conf, at least the two share definitions.
Comment 3 citizen 2005-12-05 19:55:21 UTC
I see the 3.0.21rc2 source code.
I agree this had been fixed in version 3.0.21rc2.
but I  have another case in version 3.0.20b,
create share folder "a   b   c" with three space in between a, b and c.
Create share folder "a b c"
then go to windows network neighborhood, only "a b c" is displayed, with one space in between a, b, and c.

I patch this with follows, but I don't know why need this in the original code ?
--- params.c.org        2005-12-06 10:19:41.000000000 +0800
+++ params.c    2005-12-06 10:20:10.000000000 +0800
@@ -287,16 +287,9 @@
                                break;

                        default: /* All else are a valid name chars.   */
-                               if(isspace( c )) {
-                                       /* One space per whitespace region. */
-                                       bufr[end] = ' ';
-                                       i = end + 1;
-                                       c = EatWhitespace( InFile );
-                               } else {
                                        bufr[i++] = c;
                                        end = i;
                                        c = mygetc( InFile );
-                               }
                }

                if (AtSectionEnd(InFile)) {

Comment 4 Volker Lendecke 2009-06-19 08:36:46 UTC
Just retried with current 3.2 and 3.3. Works fine in those releases, closing as fixed. Please re-open if it's still an issue for you in 3.3.5.

Thanks,

Volker