⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pdb_get_set.c

📁 samba-3.0.22.tar.gz 编译smb服务器的源码
💻 C
📖 第 1 页 / 共 3 页
字号:
		return False;	sampass->private_u.pass_can_change_time = mytime;	return pdb_set_init_flags(sampass, PDB_CANCHANGETIME, flag);}BOOL pdb_set_pass_must_change_time (SAM_ACCOUNT *sampass, time_t mytime, enum pdb_value_state flag){	if (!sampass)		return False;	sampass->private_u.pass_must_change_time = mytime;	return pdb_set_init_flags(sampass, PDB_MUSTCHANGETIME, flag);}BOOL pdb_set_pass_last_set_time (SAM_ACCOUNT *sampass, time_t mytime, enum pdb_value_state flag){	if (!sampass)		return False;	sampass->private_u.pass_last_set_time = mytime;	return pdb_set_init_flags(sampass, PDB_PASSLASTSET, flag);}BOOL pdb_set_hours_len (SAM_ACCOUNT *sampass, uint32 len, enum pdb_value_state flag){	if (!sampass)		return False;	sampass->private_u.hours_len = len;	return pdb_set_init_flags(sampass, PDB_HOURSLEN, flag);}BOOL pdb_set_logon_divs (SAM_ACCOUNT *sampass, uint16 hours, enum pdb_value_state flag){	if (!sampass)		return False;	sampass->private_u.logon_divs = hours;	return pdb_set_init_flags(sampass, PDB_LOGONDIVS, flag);}/** * Set flags showing what is initalised in the SAM_ACCOUNT * @param sampass the SAM_ACCOUNT in question * @param flag The *new* flag to be set.  Old flags preserved *             this flag is only added.   **/ BOOL pdb_set_init_flags (SAM_ACCOUNT *sampass, enum pdb_elements element, enum pdb_value_state value_flag){        if (!sampass || !sampass->mem_ctx)                return False;        if (!sampass->private_u.set_flags) {        	if ((sampass->private_u.set_flags =         		bitmap_talloc(sampass->mem_ctx,         				PDB_COUNT))==NULL) {        		DEBUG(0,("bitmap_talloc failed\n"));        		return False;        	}        }        if (!sampass->private_u.change_flags) {        	if ((sampass->private_u.change_flags =         		bitmap_talloc(sampass->mem_ctx,         				PDB_COUNT))==NULL) {        		DEBUG(0,("bitmap_talloc failed\n"));        		return False;        	}        }                switch(value_flag) {        	case PDB_CHANGED:        		if (!bitmap_set(sampass->private_u.change_flags, element)) {				DEBUG(0,("Can't set flag: %d in change_flags.\n",element));				return False;			}        		if (!bitmap_set(sampass->private_u.set_flags, element)) {				DEBUG(0,("Can't set flag: %d in set_flags.\n",element));				return False;			}			DEBUG(11, ("element %d -> now CHANGED\n", element));         		break;        	case PDB_SET:        		if (!bitmap_clear(sampass->private_u.change_flags, element)) {				DEBUG(0,("Can't set flag: %d in change_flags.\n",element));				return False;			}        		if (!bitmap_set(sampass->private_u.set_flags, element)) {				DEBUG(0,("Can't set flag: %d in set_flags.\n",element));				return False;			}			DEBUG(11, ("element %d -> now SET\n", element));         		break;        	case PDB_DEFAULT:        	default:        		if (!bitmap_clear(sampass->private_u.change_flags, element)) {				DEBUG(0,("Can't set flag: %d in change_flags.\n",element));				return False;			}        		if (!bitmap_clear(sampass->private_u.set_flags, element)) {				DEBUG(0,("Can't set flag: %d in set_flags.\n",element));				return False;			}			DEBUG(11, ("element %d -> now DEFAULT\n", element));         		break;	}        return True;}BOOL pdb_set_user_sid (SAM_ACCOUNT *sampass, const DOM_SID *u_sid, enum pdb_value_state flag){	if (!sampass || !u_sid)		return False;		sid_copy(&sampass->private_u.user_sid, u_sid);	DEBUG(10, ("pdb_set_user_sid: setting user sid %s\n", 		    sid_string_static(&sampass->private_u.user_sid)));	return pdb_set_init_flags(sampass, PDB_USERSID, flag);}BOOL pdb_set_user_sid_from_string (SAM_ACCOUNT *sampass, fstring u_sid, enum pdb_value_state flag){	DOM_SID new_sid;		if (!sampass || !u_sid)		return False;	DEBUG(10, ("pdb_set_user_sid_from_string: setting user sid %s\n",		   u_sid));	if (!string_to_sid(&new_sid, u_sid)) { 		DEBUG(1, ("pdb_set_user_sid_from_string: %s isn't a valid SID!\n", u_sid));		return False;	}	 	if (!pdb_set_user_sid(sampass, &new_sid, flag)) {		DEBUG(1, ("pdb_set_user_sid_from_string: could not set sid %s on SAM_ACCOUNT!\n", u_sid));		return False;	}	return True;}BOOL pdb_set_group_sid (SAM_ACCOUNT *sampass, const DOM_SID *g_sid, enum pdb_value_state flag){	if (!sampass || !g_sid)		return False;	sid_copy(&sampass->private_u.group_sid, g_sid);	DEBUG(10, ("pdb_set_group_sid: setting group sid %s\n", 		    sid_string_static(&sampass->private_u.group_sid)));	return pdb_set_init_flags(sampass, PDB_GROUPSID, flag);}BOOL pdb_set_group_sid_from_string (SAM_ACCOUNT *sampass, fstring g_sid, enum pdb_value_state flag){	DOM_SID new_sid;	if (!sampass || !g_sid)		return False;	DEBUG(10, ("pdb_set_group_sid_from_string: setting group sid %s\n",		   g_sid));	if (!string_to_sid(&new_sid, g_sid)) { 		DEBUG(1, ("pdb_set_group_sid_from_string: %s isn't a valid SID!\n", g_sid));		return False;	}	 	if (!pdb_set_group_sid(sampass, &new_sid, flag)) {		DEBUG(1, ("pdb_set_group_sid_from_string: could not set sid %s on SAM_ACCOUNT!\n", g_sid));		return False;	}	return True;}/********************************************************************* Set the user's UNIX name. ********************************************************************/BOOL pdb_set_username(SAM_ACCOUNT *sampass, const char *username, enum pdb_value_state flag){	if (!sampass)		return False; 	if (username) { 		DEBUG(10, ("pdb_set_username: setting username %s, was %s\n", username,			(sampass->private_u.username)?(sampass->private_u.username):"NULL"));		sampass->private_u.username = talloc_strdup(sampass->mem_ctx, username);		if (!sampass->private_u.username) {			DEBUG(0, ("pdb_set_username: talloc_strdup() failed!\n"));			return False;		}	} else {		sampass->private_u.username = PDB_NOT_QUITE_NULL;	}		return pdb_set_init_flags(sampass, PDB_USERNAME, flag);}/********************************************************************* Set the domain name. ********************************************************************/BOOL pdb_set_domain(SAM_ACCOUNT *sampass, const char *domain, enum pdb_value_state flag){	if (!sampass)		return False;	if (domain) { 		DEBUG(10, ("pdb_set_domain: setting domain %s, was %s\n", domain,			(sampass->private_u.domain)?(sampass->private_u.domain):"NULL"));		sampass->private_u.domain = talloc_strdup(sampass->mem_ctx, domain);		if (!sampass->private_u.domain) {			DEBUG(0, ("pdb_set_domain: talloc_strdup() failed!\n"));			return False;		}	} else {		sampass->private_u.domain = PDB_NOT_QUITE_NULL;	}	return pdb_set_init_flags(sampass, PDB_DOMAIN, flag);}/********************************************************************* Set the user's NT name. ********************************************************************/BOOL pdb_set_nt_username(SAM_ACCOUNT *sampass, const char *nt_username, enum pdb_value_state flag){	if (!sampass)		return False;	if (nt_username) { 		DEBUG(10, ("pdb_set_nt_username: setting nt username %s, was %s\n", nt_username,			(sampass->private_u.nt_username)?(sampass->private_u.nt_username):"NULL")); 		sampass->private_u.nt_username = talloc_strdup(sampass->mem_ctx, nt_username);				if (!sampass->private_u.nt_username) {			DEBUG(0, ("pdb_set_nt_username: talloc_strdup() failed!\n"));			return False;		}	} else {		sampass->private_u.nt_username = PDB_NOT_QUITE_NULL;	}	return pdb_set_init_flags(sampass, PDB_NTUSERNAME, flag);}/********************************************************************* Set the user's full name. ********************************************************************/BOOL pdb_set_fullname(SAM_ACCOUNT *sampass, const char *full_name, enum pdb_value_state flag){	if (!sampass)		return False;	if (full_name) { 		DEBUG(10, ("pdb_set_full_name: setting full name %s, was %s\n", full_name,			(sampass->private_u.full_name)?(sampass->private_u.full_name):"NULL"));			sampass->private_u.full_name = talloc_strdup(sampass->mem_ctx, full_name);		if (!sampass->private_u.full_name) {			DEBUG(0, ("pdb_set_fullname: talloc_strdup() failed!\n"));			return False;		}	} else {		sampass->private_u.full_name = PDB_NOT_QUITE_NULL;	}	return pdb_set_init_flags(sampass, PDB_FULLNAME, flag);}/********************************************************************* Set the user's logon script. ********************************************************************/BOOL pdb_set_logon_script(SAM_ACCOUNT *sampass, const char *logon_script, enum pdb_value_state flag){	if (!sampass)		return False;	if (logon_script) { 		DEBUG(10, ("pdb_set_logon_script: setting logon script %s, was %s\n", logon_script,			(sampass->private_u.logon_script)?(sampass->private_u.logon_script):"NULL")); 		sampass->private_u.logon_script = talloc_strdup(sampass->mem_ctx, logon_script);		if (!sampass->private_u.logon_script) {			DEBUG(0, ("pdb_set_logon_script: talloc_strdup() failed!\n"));			return False;		}	} else {		sampass->private_u.logon_script = PDB_NOT_QUITE_NULL;	}		return pdb_set_init_flags(sampass, PDB_LOGONSCRIPT, flag);}/********************************************************************* Set the user's profile path. ********************************************************************/BOOL pdb_set_profile_path (SAM_ACCOUNT *sampass, const char *profile_path, enum pdb_value_state flag){	if (!sampass)		return False;	if (profile_path) { 		DEBUG(10, ("pdb_set_profile_path: setting profile path %s, was %s\n", profile_path,			(sampass->private_u.profile_path)?(sampass->private_u.profile_path):"NULL")); 		sampass->private_u.profile_path = talloc_strdup(sampass->mem_ctx, profile_path);				if (!sampass->private_u.profile_path) {			DEBUG(0, ("pdb_set_profile_path: talloc_strdup() failed!\n"));			return False;		}	} else {		sampass->private_u.profile_path = PDB_NOT_QUITE_NULL;	}	return pdb_set_init_flags(sampass, PDB_PROFILE, flag);}/********************************************************************* Set the user's directory drive. ********************************************************************/BOOL pdb_set_dir_drive (SAM_ACCOUNT *sampass, const char *dir_drive, enum pdb_value_state flag){	if (!sampass)		return False;	if (dir_drive) { 		DEBUG(10, ("pdb_set_dir_drive: setting dir drive %s, was %s\n", dir_drive,			(sampass->private_u.dir_drive)?(sampass->private_u.dir_drive):"NULL")); 		sampass->private_u.dir_drive = talloc_strdup(sampass->mem_ctx, dir_drive);				if (!sampass->private_u.dir_drive) {			DEBUG(0, ("pdb_set_dir_drive: talloc_strdup() failed!\n"));			return False;		}	} else {		sampass->private_u.dir_drive = PDB_NOT_QUITE_NULL;	}		return pdb_set_init_flags(sampass, PDB_DRIVE, flag);}/********************************************************************* Set the user's home directory. ********************************************************************/BOOL pdb_set_homedir (SAM_ACCOUNT *sampass, const char *home_dir, enum pdb_value_state flag){	if (!sampass)		return False;	if (home_dir) { 		DEBUG(10, ("pdb_set_homedir: setting home dir %s, was %s\n", home_dir,			(sampass->private_u.home_dir)?(sampass->private_u.home_dir):"NULL")); 		sampass->private_u.home_dir = talloc_strdup(sampass->mem_ctx, home_dir);				if (!sampass->private_u.home_dir) {			DEBUG(0, ("pdb_set_home_dir: talloc_strdup() failed!\n"));			return False;		}	} else {		sampass->private_u.home_dir = PDB_NOT_QUITE_NULL;	}	return pdb_set_init_flags(sampass, PDB_SMBHOME, flag);}/********************************************************************* Set the user's unix home directory. ********************************************************************/BOOL pdb_set_unix_homedir (SAM_ACCOUNT *sampass, const char *unix_home_dir, enum pdb_value_state flag){	if (!sampass)		return False;	if (unix_home_dir) { 		DEBUG(10, ("pdb_set_unix_homedir: setting home dir %s, was %s\n", unix_home_dir,			(sampass->private_u.unix_home_dir)?(sampass->private_u.unix_home_dir):"NULL")); 		sampass->private_u.unix_home_dir = talloc_strdup(sampass->mem_ctx, 							  unix_home_dir);				if (!sampass->private_u.unix_home_dir) {

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -