Benjamin Kuit's latest mysql mods. issue with "make proto" needs to be
[samba.git] / source3 / passdb / sampassdb.c
index 25be7b9ec5bae1105e0b90e605825d2b12d49fcb..e80d157ec05547111eb1fad39f21ad86d8eb2c0d 100644 (file)
@@ -70,6 +70,8 @@ BOOL initialise_sam_password_db(void)
   pwdb_ops =  nisplus_initialise_sam_password_db();
 #elif defined(WITH_LDAP)
   pwdb_ops = ldap_initialise_sam_password_db();
+#elif defined(HAVE_MYSQL_H) && defined(WITH_MYSQLSAM)
+  pwdb_ops = mysql_initialise_sam_password_db();
 #elif defined(USE_SMBPASS_DB)
   pwdb_ops = file_initialise_sam_password_db();
 #endif 
@@ -337,10 +339,16 @@ struct smb_passwd *pwdb_sam_to_smb(struct sam_passwd *user)
 
        pwdb_init_smb(&pw_buf);
 
-       fstrcpy(nt_name  , user->nt_name);
-       fstrcpy(unix_name, user->unix_name);
-       pw_buf.nt_name            = nt_name;
-       pw_buf.unix_name          = unix_name;
+       if (user->nt_name != NULL)
+       {
+               fstrcpy(nt_name  , user->nt_name);
+               pw_buf.nt_name = nt_name;
+       }
+       if (user->unix_name != NULL)
+       {
+               fstrcpy(unix_name, user->unix_name);
+               pw_buf.unix_name = unix_name;
+       }
        pw_buf.unix_uid           = user->unix_uid;
        pw_buf.user_rid           = user->user_rid;
        pw_buf.smb_passwd         = user->smb_passwd;
@@ -366,10 +374,16 @@ struct sam_passwd *pwdb_smb_to_sam(struct smb_passwd *user)
 
        pwdb_init_sam(&pw_buf);
 
-       fstrcpy(nt_name  , user->nt_name);
-       fstrcpy(unix_name, user->unix_name);
-       pw_buf.nt_name            = nt_name;
-       pw_buf.unix_name          = unix_name;
+       if (user->nt_name != NULL)
+       {
+               fstrcpy(nt_name  , user->nt_name);
+               pw_buf.nt_name = nt_name;
+       }
+       if (user->unix_name != NULL)
+       {
+               fstrcpy(unix_name, user->unix_name);
+               pw_buf.unix_name = unix_name;
+       }
        pw_buf.unix_uid           = user->unix_uid;
        pw_buf.user_rid           = user->user_rid;
        pw_buf.smb_passwd         = user->smb_passwd;