Another showstopper for 3.2.2.

simo idra at samba.org
Sun Aug 17 14:24:12 GMT 2008


On Sun, 2008-08-17 at 16:19 +0200, Volker Lendecke wrote:
> On Sun, Aug 17, 2008 at 10:13:50AM -0400, simo wrote:
> > The patch itself seem ok, but why playing with building a tring to make
> > lookup_name parse it again ? Why not just passing the domain as a new
> > parameter to lookup_name ?
> 
> Because lookup_name does a lot of logic to get non-qualified
> names right. If you always have to pass in a domain name,
> someone else needs to get the domain part right. Where would
> you put that logic?

This is the logic to split domain and name strings:

        p = strchr_m(full_name, '\\');

        if (p != NULL) {
                domain = talloc_strndup(tmp_ctx, full_name,
                                        PTR_DIFF(p, full_name));
                name = talloc_strdup(tmp_ctx, p+1);
        } else {
                domain = talloc_strdup(tmp_ctx, "");
                name = talloc_strdup(tmp_ctx, full_name);
        }

        if ((domain == NULL) || (name == NULL)) {
                DEBUG(0, ("talloc failed\n"));
                TALLOC_FREE(tmp_ctx);
                return false;
        }


It does not seem very complex, and we can easily have a function like
the following to wrap the lines above:

NTSTATUS samba_split_domain_name(TALLOC_CTX *ctx, char *fullname, char**domain, char **name);

This way functions that already have the domain and name strings can
directly call lookup_name, the others will simply call
samba_split_domain_name() first.

Simo.

-- 
Simo Sorce
Samba Team GPL Compliance Officer <simo at samba.org>
Senior Software Engineer at Red Hat Inc. <simo at redhat.com>



More information about the samba-technical mailing list