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

📄 srv_samr.c

📁 samba-3.0.22.tar.gz 编译smb服务器的源码
💻 C
📖 第 1 页 / 共 3 页
字号:
	prs_struct *data = &p->in_data.data;	prs_struct *rdata = &p->out_data.rdata;	ZERO_STRUCT(q_u);	ZERO_STRUCT(r_u);	if(!samr_io_q_query_usergroups("", &q_u, data, 0)) {		DEBUG(0,("api_samr_query_usergroups: unable to unmarshall SAMR_Q_QUERY_USERGROUPS.\n"));		return False;	}	r_u.status = _samr_query_usergroups(p, &q_u, &r_u);	/* store the response in the SMB stream */	if(!samr_io_r_query_usergroups("", &r_u, rdata, 0)) {		DEBUG(0,("api_samr_query_usergroups: unable to marshall SAMR_R_QUERY_USERGROUPS.\n"));		return False;	}	return True;}/******************************************************************* api_samr_query_dom_info ********************************************************************/static BOOL api_samr_query_dom_info(pipes_struct *p){	SAMR_Q_QUERY_DOMAIN_INFO q_u;	SAMR_R_QUERY_DOMAIN_INFO r_u;	prs_struct *data = &p->in_data.data;	prs_struct *rdata = &p->out_data.rdata;	ZERO_STRUCT(q_u);	ZERO_STRUCT(r_u);	if(!samr_io_q_query_dom_info("", &q_u, data, 0)) {		DEBUG(0,("api_samr_query_dom_info: unable to unmarshall SAMR_Q_QUERY_DOMAIN_INFO.\n"));		return False;	}	r_u.status = _samr_query_dom_info(p, &q_u, &r_u);	/* store the response in the SMB stream */	if(!samr_io_r_query_dom_info("", &r_u, rdata, 0)) {		DEBUG(0,("api_samr_query_dom_info: unable to marshall SAMR_R_QUERY_DOMAIN_INFO.\n"));		return False;	}	return True;}/******************************************************************* api_samr_create_user ********************************************************************/static BOOL api_samr_create_user(pipes_struct *p){	prs_struct *data = &p->in_data.data;	prs_struct *rdata = &p->out_data.rdata;	SAMR_Q_CREATE_USER q_u;	SAMR_R_CREATE_USER r_u;	ZERO_STRUCT(q_u);	ZERO_STRUCT(r_u);	/* grab the samr create user */	if (!samr_io_q_create_user("", &q_u, data, 0)) {		DEBUG(0,("api_samr_create_user: Unable to unmarshall SAMR_Q_CREATE_USER.\n"));		return False;	}	r_u.status=_samr_create_user(p, &q_u, &r_u);	/* store the response in the SMB stream */	if(!samr_io_r_create_user("", &r_u, rdata, 0)) {		DEBUG(0,("api_samr_create_user: Unable to marshall SAMR_R_CREATE_USER.\n"));		return False;	}	return True;}/******************************************************************* api_samr_connect_anon ********************************************************************/static BOOL api_samr_connect_anon(pipes_struct *p){	SAMR_Q_CONNECT_ANON q_u;	SAMR_R_CONNECT_ANON r_u;	prs_struct *data = &p->in_data.data;	prs_struct *rdata = &p->out_data.rdata;	ZERO_STRUCT(q_u);	ZERO_STRUCT(r_u);	/* grab the samr open policy */	if(!samr_io_q_connect_anon("", &q_u, data, 0)) {		DEBUG(0,("api_samr_connect_anon: unable to unmarshall SAMR_Q_CONNECT_ANON.\n"));		return False;	}	r_u.status = _samr_connect_anon(p, &q_u, &r_u);	/* store the response in the SMB stream */	if(!samr_io_r_connect_anon("", &r_u, rdata, 0)) {		DEBUG(0,("api_samr_connect_anon: unable to marshall SAMR_R_CONNECT_ANON.\n"));		return False;	}	return True;}/******************************************************************* api_samr_connect ********************************************************************/static BOOL api_samr_connect(pipes_struct *p){	SAMR_Q_CONNECT q_u;	SAMR_R_CONNECT r_u;	prs_struct *data = &p->in_data.data;	prs_struct *rdata = &p->out_data.rdata;	ZERO_STRUCT(q_u);	ZERO_STRUCT(r_u);	/* grab the samr open policy */	if(!samr_io_q_connect("", &q_u, data, 0)) {		DEBUG(0,("api_samr_connect: unable to unmarshall SAMR_Q_CONNECT.\n"));		return False;	}	r_u.status = _samr_connect(p, &q_u, &r_u);	/* store the response in the SMB stream */	if(!samr_io_r_connect("", &r_u, rdata, 0)) {		DEBUG(0,("api_samr_connect: unable to marshall SAMR_R_CONNECT.\n"));		return False;	}	return True;}/******************************************************************* api_samr_connect4 ********************************************************************/static BOOL api_samr_connect4(pipes_struct *p){	SAMR_Q_CONNECT4 q_u;	SAMR_R_CONNECT4 r_u;	prs_struct *data = &p->in_data.data;	prs_struct *rdata = &p->out_data.rdata;	ZERO_STRUCT(q_u);	ZERO_STRUCT(r_u);	/* grab the samr open policy */	if(!samr_io_q_connect4("", &q_u, data, 0)) {		DEBUG(0,("api_samr_connect4: unable to unmarshall SAMR_Q_CONNECT4.\n"));		return False;	}	r_u.status = _samr_connect4(p, &q_u, &r_u);	/* store the response in the SMB stream */	if(!samr_io_r_connect4("", &r_u, rdata, 0)) {		DEBUG(0,("api_samr_connect4: unable to marshall SAMR_R_CONNECT4.\n"));		return False;	}	return True;}/********************************************************************** api_samr_lookup_domain **********************************************************************/static BOOL api_samr_lookup_domain(pipes_struct *p){	SAMR_Q_LOOKUP_DOMAIN q_u;	SAMR_R_LOOKUP_DOMAIN r_u;	prs_struct *data = &p->in_data.data;	prs_struct *rdata = &p->out_data.rdata;  	ZERO_STRUCT(q_u);	ZERO_STRUCT(r_u);	if(!samr_io_q_lookup_domain("", &q_u, data, 0)) {		DEBUG(0,("api_samr_lookup_domain: Unable to unmarshall SAMR_Q_LOOKUP_DOMAIN.\n"));		return False;	}	r_u.status = _samr_lookup_domain(p, &q_u, &r_u);		if(!samr_io_r_lookup_domain("", &r_u, rdata, 0)){		DEBUG(0,("api_samr_lookup_domain: Unable to marshall SAMR_R_LOOKUP_DOMAIN.\n"));		return False;	}		return True;}/********************************************************************** api_samr_enum_domains **********************************************************************/static BOOL api_samr_enum_domains(pipes_struct *p){	SAMR_Q_ENUM_DOMAINS q_u;	SAMR_R_ENUM_DOMAINS r_u;	prs_struct *data = &p->in_data.data;	prs_struct *rdata = &p->out_data.rdata;  	ZERO_STRUCT(q_u);	ZERO_STRUCT(r_u);	if(!samr_io_q_enum_domains("", &q_u, data, 0)) {		DEBUG(0,("api_samr_enum_domains: Unable to unmarshall SAMR_Q_ENUM_DOMAINS.\n"));		return False;	}	r_u.status = _samr_enum_domains(p, &q_u, &r_u);	if(!samr_io_r_enum_domains("", &r_u, rdata, 0)) {		DEBUG(0,("api_samr_enum_domains: Unable to marshall SAMR_R_ENUM_DOMAINS.\n"));		return False;	}		return True;}/******************************************************************* api_samr_open_alias ********************************************************************/static BOOL api_samr_open_alias(pipes_struct *p){	SAMR_Q_OPEN_ALIAS q_u;	SAMR_R_OPEN_ALIAS r_u;	prs_struct *data = &p->in_data.data;	prs_struct *rdata = &p->out_data.rdata;	ZERO_STRUCT(q_u);	ZERO_STRUCT(r_u);	/* grab the samr open policy */	if(!samr_io_q_open_alias("", &q_u, data, 0)) {		DEBUG(0,("api_samr_open_alias: Unable to unmarshall SAMR_Q_OPEN_ALIAS.\n"));		return False;	}	r_u.status=_samr_open_alias(p, &q_u, &r_u);	/* store the response in the SMB stream */	if(!samr_io_r_open_alias("", &r_u, rdata, 0)) {		DEBUG(0,("api_samr_open_alias: Unable to marshall SAMR_R_OPEN_ALIAS.\n"));		return False;	}		return True;}/******************************************************************* api_samr_set_userinfo ********************************************************************/static BOOL api_samr_set_userinfo(pipes_struct *p){	SAMR_Q_SET_USERINFO q_u;	SAMR_R_SET_USERINFO r_u;	prs_struct *data = &p->in_data.data;	prs_struct *rdata = &p->out_data.rdata;	ZERO_STRUCT(q_u);	ZERO_STRUCT(r_u);	if (!samr_io_q_set_userinfo("", &q_u, data, 0)) {		DEBUG(0,("api_samr_set_userinfo: Unable to unmarshall SAMR_Q_SET_USERINFO.\n"));		/* Fix for W2K SP2 */		/* what is that status-code ? - gd */		if (q_u.switch_value == 0x1a) {			setup_fault_pdu(p, NT_STATUS(0x1c000006));			return True;		}		return False;	}	r_u.status = _samr_set_userinfo(p, &q_u, &r_u);	if(!samr_io_r_set_userinfo("", &r_u, rdata, 0)) {		DEBUG(0,("api_samr_set_userinfo: Unable to marshall SAMR_R_SET_USERINFO.\n"));		return False;	}	return True;}/******************************************************************* api_samr_set_userinfo2 ********************************************************************/static BOOL api_samr_set_userinfo2(pipes_struct *p){	SAMR_Q_SET_USERINFO2 q_u;	SAMR_R_SET_USERINFO2 r_u;	prs_struct *data = &p->in_data.data;	prs_struct *rdata = &p->out_data.rdata;	ZERO_STRUCT(q_u);	ZERO_STRUCT(r_u);	if (!samr_io_q_set_userinfo2("", &q_u, data, 0)) {		DEBUG(0,("api_samr_set_userinfo2: Unable to unmarshall SAMR_Q_SET_USERINFO2.\n"));		return False;	}	r_u.status = _samr_set_userinfo2(p, &q_u, &r_u);	if(!samr_io_r_set_userinfo2("", &r_u, rdata, 0)) {		DEBUG(0,("api_samr_set_userinfo2: Unable to marshall SAMR_R_SET_USERINFO2.\n"));		return False;	}	return True;}/******************************************************************* api_samr_query_useraliases ********************************************************************/static BOOL api_samr_query_useraliases(pipes_struct *p){	SAMR_Q_QUERY_USERALIASES q_u;	SAMR_R_QUERY_USERALIASES r_u;	prs_struct *data = &p->in_data.data;	prs_struct *rdata = &p->out_data.rdata;	ZERO_STRUCT(q_u);	ZERO_STRUCT(r_u);	if (!samr_io_q_query_useraliases("", &q_u, data, 0)) {		DEBUG(0,("api_samr_query_useraliases:  Unable to unmarshall SAMR_Q_QUERY_USERALIASES.\n"));		return False;	}	r_u.status = _samr_query_useraliases(p, &q_u, &r_u);	if (! samr_io_r_query_useraliases("", &r_u, rdata, 0)) {		DEBUG(0,("api_samr_query_useraliases:  Unable to nmarshall SAMR_R_QUERY_USERALIASES.\n"));		return False;	}	return True;}/******************************************************************* api_samr_query_aliasmem ********************************************************************/static BOOL api_samr_query_aliasmem(pipes_struct *p){	SAMR_Q_QUERY_ALIASMEM q_u;	SAMR_R_QUERY_ALIASMEM r_u;	prs_struct *data = &p->in_data.data;	prs_struct *rdata = &p->out_data.rdata;	ZERO_STRUCT(q_u);	ZERO_STRUCT(r_u);	if (!samr_io_q_query_aliasmem("", &q_u, data, 0)) {		DEBUG(0,("api_samr_query_aliasmem: unable to unmarshall SAMR_Q_QUERY_ALIASMEM.\n"));		return False;	}	r_u.status = _samr_query_aliasmem(p, &q_u, &r_u);	if (!samr_io_r_query_aliasmem("", &r_u, rdata, 0)) {		DEBUG(0,("api_samr_query_aliasmem: unable to marshall SAMR_R_QUERY_ALIASMEM.\n"));		return False;	}	return True;}/******************************************************************* api_samr_query_groupmem ********************************************************************/static BOOL api_samr_query_groupmem(pipes_struct *p){	SAMR_Q_QUERY_GROUPMEM q_u;	SAMR_R_QUERY_GROUPMEM r_u;	prs_struct *data = &p->in_data.data;	prs_struct *rdata = &p->out_data.rdata;	ZERO_STRUCT(q_u);	ZERO_STRUCT(r_u);	if (!samr_io_q_query_groupmem("", &q_u, data, 0)) {		DEBUG(0,("api_samr_query_groupmem: unable to unmarshall SAMR_Q_QUERY_GROUPMEM.\n"));		return False;	}	r_u.status = _samr_query_groupmem(p, &q_u, &r_u);	if (!samr_io_r_query_groupmem("", &r_u, rdata, 0)) {		DEBUG(0,("api_samr_query_groupmem: unable to marshall SAMR_R_QUERY_GROUPMEM.\n"));		return False;	}	return True;}/******************************************************************* api_samr_add_aliasmem ********************************************************************/static BOOL api_samr_add_aliasmem(pipes_struct *p){	SAMR_Q_ADD_ALIASMEM q_u;	SAMR_R_ADD_ALIASMEM r_u;	prs_struct *data = &p->in_data.data;	prs_struct *rdata = &p->out_data.rdata;	ZERO_STRUCT(q_u);	ZERO_STRUCT(r_u);	if (!samr_io_q_add_aliasmem("", &q_u, data, 0)) {		DEBUG(0,("api_samr_add_aliasmem: unable to unmarshall SAMR_Q_ADD_ALIASMEM.\n"));		return False;	}	r_u.status = _samr_add_aliasmem(p, &q_u, &r_u);	if (!samr_io_r_add_aliasmem("", &r_u, rdata, 0)) {		DEBUG(0,("api_samr_add_aliasmem: unable to marshall SAMR_R_ADD_ALIASMEM.\n"));		return False;	}	return True;}/******************************************************************* api_samr_del_aliasmem ********************************************************************/static BOOL api_samr_del_aliasmem(pipes_struct *p){	SAMR_Q_DEL_ALIASMEM q_u;	SAMR_R_DEL_ALIASMEM r_u;	prs_struct *data = &p->in_data.data;	prs_struct *rdata = &p->out_data.rdata;	ZERO_STRUCT(q_u);	ZERO_STRUCT(r_u);	if (!samr_io_q_del_aliasmem("", &q_u, data, 0)) {		DEBUG(0,("api_samr_del_aliasmem: unable to unmarshall SAMR_Q_DEL_ALIASMEM.\n"));		return False;	}	r_u.status = _samr_del_aliasmem(p, &q_u, &r_u);	if (!samr_io_r_del_aliasmem("", &r_u, rdata, 0)) {		DEBUG(0,("api_samr_del_aliasmem: unable to marshall SAMR_R_DEL_ALIASMEM.\n"));		return False;	}	return True;}/******************************************************************* api_samr_add_groupmem ********************************************************************/static BOOL api_samr_add_groupmem(pipes_struct *p){	SAMR_Q_ADD_GROUPMEM q_u;	SAMR_R_ADD_GROUPMEM r_u;	prs_struct *data = &p->in_data.data;	prs_struct *rdata = &p->out_data.rdata;	ZERO_STRUCT(q_u);	ZERO_STRUCT(r_u);	if (!samr_io_q_add_groupmem("", &q_u, data, 0)) {		DEBUG(0,("api_samr_add_groupmem: unable to unmarshall SAMR_Q_ADD_GROUPMEM.\n"));		return False;	}	r_u.status = _samr_add_groupmem(p, &q_u, &r_u);	if (!samr_io_r_add_groupmem("", &r_u, rdata, 0)) {

⌨️ 快捷键说明

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