In reply to myself:
That's not a very general solution. You run into the same problem if
the OU string contains "/".
I see two possibilities: supply the full OU string (yuck), or provide
some means to escape characters.
Any better ideas?
Ken
Ken Cross
Network Storage Solutions
Phone 865.675.4070 ext 31
[EMAIL PROTECTED]
> -Original Message-
> From:
> [EMAIL PROTECTED]
>
> [mailto:[EMAIL PROTECTED]
> amba.org] On Behalf Of Ken Cross
> Sent: Monday, February 24, 2003 12:30 PM
> To: 'Multiple recipients of list SAMBA-TECHNICAL'
> Subject: Nasty OU names - patch to ldap.c
>
>
> Samba-folk:
>
> I've run into a problem using "net ads join OU", where OU is an
> Organizational Unit.
>
> An OU can have virtually any name, e.g., "Planes, Trains, &
> Automobiles". When returned from the Active Directory, it's
> in the form
> "Planes\, Trains\, & Automobiles". That's the only form that it will
> accept when specifying the OU.
>
> When passed to net in this form, ads_ou_string uses "\" as a
> separator.
> I'm not sure of the reason for this, but it makes it impossible to
> specify the OU above.
>
> A simple patch (shown below for SAMBA_3_0) removes this, but
> leaves the
> "/" separator. Now this OU works.
>
> Anybody know if this will break something?
>
> Ken
>
>
> Ken Cross
>
> Network Storage Solutions
> Phone 865.675.4070 ext 31
> [EMAIL PROTECTED]
>
>
>
>
> Index: ldap.c
> ===
> RCS file: /cvsroot/samba/source/libads/ldap.c,v
> retrieving revision 1.55.2.22
> diff -p -u -r1.55.2.22 ldap.c
> --- ldap.c 24 Feb 2003 03:43:49 - 1.55.2.22
> +++ ldap.c 24 Feb 2003 17:21:15 -
> @@ -1015,7 +1015,7 @@ char *ads_ou_string(const char *org_unit
> return strdup("cn=Computers");
> }
>
> - return ads_build_path(org_unit, "\\/", "ou=", 1);
> + return ads_build_path(org_unit, "/", "ou=", 1); /*
> KJC - removed
> \\ from separators */
> }
>
>
>