📄 srv_samr.c
字号:
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 + -