s3-libnet: fix bug #6364: Pull realm from supplied username on libnet join
authorJim McDonough <jmcd@samba.org>
Thu, 12 Aug 2010 21:51:02 +0000 (17:51 -0400)
committerJim McDonough <jmcd@samba.org>
Thu, 12 Aug 2010 21:51:02 +0000 (17:51 -0400)
source3/libnet/libnet_join.c

index bff4e1ebc5fb75e892b4155113093cdb120f2803..c710f9e1b1d8ca4db28be9fc7ebe8441cfa9326f 100644 (file)
@@ -113,6 +113,7 @@ static ADS_STATUS libnet_connect_ads(const char *dns_domain_name,
 {
        ADS_STATUS status;
        ADS_STRUCT *my_ads = NULL;
+       char *cp;
 
        my_ads = ads_init(dns_domain_name,
                          netbios_domain_name,
@@ -124,6 +125,12 @@ static ADS_STATUS libnet_connect_ads(const char *dns_domain_name,
        if (user_name) {
                SAFE_FREE(my_ads->auth.user_name);
                my_ads->auth.user_name = SMB_STRDUP(user_name);
+               if ((cp = strchr_m(my_ads->auth.user_name, '@'))!=0) {
+                       *cp++ = '\0';
+                       SAFE_FREE(my_ads->auth.realm);
+                       my_ads->auth.realm = smb_xstrdup(cp);
+                       strupper_m(my_ads->auth.realm);
+               }
        }
 
        if (password) {