-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

For those interested in trust relationships on Samba PDC's:

Here's a patch to fix a silly bug when running winbindd on a Samba PDC
and logging onto a windows client in the Samba domain as a trusted
user.  This fixes problems browing from one client or server to another in 
the domains.

I thought this was going to be harder to fix or else we would have delayed 
the beta2 release the 10 minutes it took to fix.



cheers, jerry
 ----------------------------------------------------------------------
 Hewlett-Packard            ------------------------- http://www.hp.com
 SAMBA Team                 ---------------------- http://www.samba.org
 GnuPG Key                  ---- http://www.plainjoe.org/gpg_public.asc
 "You can never go home again, Oatman, but I guess you can shop there."  
                            --John Cusack - "Grosse Point Blank" (1997)

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.0 (GNU/Linux)
Comment: For info see http://quantumlab.net/pine_privacy_guard/

iD4DBQE/A6wjIR7qMdg1EfYRAkK0AJ4zZ3jhD5oMGw6djxLctON65arHAQCYkozP
z/zFour43t+YFhwYLBU+Xw==
=/r5F
-----END PGP SIGNATURE-----
Index: rpc_parse/parse_net.c
===================================================================
RCS file: /data/cvs/samba/source/rpc_parse/parse_net.c,v
retrieving revision 1.85.2.11
diff -u -r1.85.2.11 parse_net.c
--- rpc_parse/parse_net.c       26 May 2003 06:59:38 -0000      1.85.2.11
+++ rpc_parse/parse_net.c       3 Jul 2003 03:49:09 -0000
@@ -1283,6 +1283,7 @@
        /* need to count the number of space-delimited sids */
        unsigned int i;
        int num_other_sids = 0;
+       char *username;
        
        NTTIME          logon_time, logoff_time, kickoff_time,
                        pass_last_set_time, pass_can_change_time,
@@ -1294,7 +1295,21 @@
        int len_logon_srv    = strlen(logon_srv);
        int len_logon_dom    = strlen(logon_dom);
 
-       len_user_name    = strlen(user_name   );
+
+       /* do some cleanup on the user name here to deal with users from a 
+          trusted domain logging onto a client in our domain.  If we are running 
+          winbindd, the trusted users will be of the form DOMAIN\user so strip 
+          out the domain portion.  I noticed then when looking at an 
SMBsessionsetup&X.
+          The client was sending GLASS\Administrator as the username and GLASS as the 
+          domain name -- jerry */
+          
+       if ( (username = strchr( user_name, *lp_winbind_separator() )) != NULL )
+               username++;
+       else
+               username = user_name;
+               
+               
+       len_user_name    = strlen(username    );
        len_full_name    = strlen(full_name   );
        len_home_dir     = strlen(home_dir    );
        len_dir_drive    = strlen(dir_drive   );
@@ -1306,6 +1321,7 @@
 
        usr->ptr_user_info = 1; /* yes, we're bothering to put USER_INFO data here */
 
+       
 
        /* Create NTTIME structs */
        unix_to_nt_time (&logon_time,            unix_logon_time);
@@ -1356,7 +1372,7 @@
        usr->num_other_sids = num_other_sids;
        usr->buffer_other_sids = (num_other_sids != 0) ? 1 : 0; 
        
-       init_unistr2(&usr->uni_user_name, user_name, len_user_name);
+       init_unistr2(&usr->uni_user_name, username, len_user_name);
        init_unistr2(&usr->uni_full_name, full_name, len_full_name);
        init_unistr2(&usr->uni_logon_script, logon_script, len_logon_script);
        init_unistr2(&usr->uni_profile_path, profile_path, len_profile_path);
-- 
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