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

📄 srv_wkssvc.c

📁 samba服务器!
💻 C
📖 第 1 页 / 共 4 页
字号:
		talloc_free(mem_ctx);		return False;	}		status = ndr_push_wkssvc_NetrUnjoinDomain2(push, NDR_OUT, &r);	if (NT_STATUS_IS_ERR(status)) {		talloc_free(mem_ctx);		return False;	}		blob = ndr_push_blob(push);	if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32)blob.length)) {		talloc_free(mem_ctx);		return False;	}		talloc_free(mem_ctx);		return True;}static BOOL api_wkssvc_NetrRenameMachineInDomain2(pipes_struct *p){	struct ndr_pull *pull;	struct ndr_push *push;	NTSTATUS status;	DATA_BLOB blob;	struct wkssvc_NetrRenameMachineInDomain2 r;	TALLOC_CTX *mem_ctx = talloc_init("api_wkssvc_NetrRenameMachineInDomain2");		if (!prs_data_blob(&p->in_data.data, &blob, mem_ctx)) {		talloc_free(mem_ctx);		return False;	}		pull = ndr_pull_init_blob(&blob, mem_ctx);	if (pull == NULL) {		talloc_free(mem_ctx);		return False;	}		pull->flags |= LIBNDR_FLAG_REF_ALLOC;	status = ndr_pull_wkssvc_NetrRenameMachineInDomain2(pull, NDR_IN, &r);	if (NT_STATUS_IS_ERR(status)) {		talloc_free(mem_ctx);		return False;	}		if (DEBUGLEVEL >= 10)		NDR_PRINT_IN_DEBUG(wkssvc_NetrRenameMachineInDomain2, &r);		r.out.result = _wkssvc_NetrRenameMachineInDomain2(p, &r);		if (p->rng_fault_state) {		talloc_free(mem_ctx);		/* Return True here, srv_pipe_hnd.c will take care */		return True;	}		if (DEBUGLEVEL >= 10)		NDR_PRINT_OUT_DEBUG(wkssvc_NetrRenameMachineInDomain2, &r);		push = ndr_push_init_ctx(mem_ctx);	if (push == NULL) {		talloc_free(mem_ctx);		return False;	}		status = ndr_push_wkssvc_NetrRenameMachineInDomain2(push, NDR_OUT, &r);	if (NT_STATUS_IS_ERR(status)) {		talloc_free(mem_ctx);		return False;	}		blob = ndr_push_blob(push);	if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32)blob.length)) {		talloc_free(mem_ctx);		return False;	}		talloc_free(mem_ctx);		return True;}static BOOL api_WKSSVC_NETRVALIDATENAME2(pipes_struct *p){	struct ndr_pull *pull;	struct ndr_push *push;	NTSTATUS status;	DATA_BLOB blob;	struct WKSSVC_NETRVALIDATENAME2 r;	TALLOC_CTX *mem_ctx = talloc_init("api_WKSSVC_NETRVALIDATENAME2");		if (!prs_data_blob(&p->in_data.data, &blob, mem_ctx)) {		talloc_free(mem_ctx);		return False;	}		pull = ndr_pull_init_blob(&blob, mem_ctx);	if (pull == NULL) {		talloc_free(mem_ctx);		return False;	}		pull->flags |= LIBNDR_FLAG_REF_ALLOC;	status = ndr_pull_WKSSVC_NETRVALIDATENAME2(pull, NDR_IN, &r);	if (NT_STATUS_IS_ERR(status)) {		talloc_free(mem_ctx);		return False;	}		if (DEBUGLEVEL >= 10)		NDR_PRINT_IN_DEBUG(WKSSVC_NETRVALIDATENAME2, &r);		r.out.result = _WKSSVC_NETRVALIDATENAME2(p, &r);		if (p->rng_fault_state) {		talloc_free(mem_ctx);		/* Return True here, srv_pipe_hnd.c will take care */		return True;	}		if (DEBUGLEVEL >= 10)		NDR_PRINT_OUT_DEBUG(WKSSVC_NETRVALIDATENAME2, &r);		push = ndr_push_init_ctx(mem_ctx);	if (push == NULL) {		talloc_free(mem_ctx);		return False;	}		status = ndr_push_WKSSVC_NETRVALIDATENAME2(push, NDR_OUT, &r);	if (NT_STATUS_IS_ERR(status)) {		talloc_free(mem_ctx);		return False;	}		blob = ndr_push_blob(push);	if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32)blob.length)) {		talloc_free(mem_ctx);		return False;	}		talloc_free(mem_ctx);		return True;}static BOOL api_WKSSVC_NETRGETJOINABLEOUS2(pipes_struct *p){	struct ndr_pull *pull;	struct ndr_push *push;	NTSTATUS status;	DATA_BLOB blob;	struct WKSSVC_NETRGETJOINABLEOUS2 r;	TALLOC_CTX *mem_ctx = talloc_init("api_WKSSVC_NETRGETJOINABLEOUS2");		if (!prs_data_blob(&p->in_data.data, &blob, mem_ctx)) {		talloc_free(mem_ctx);		return False;	}		pull = ndr_pull_init_blob(&blob, mem_ctx);	if (pull == NULL) {		talloc_free(mem_ctx);		return False;	}		pull->flags |= LIBNDR_FLAG_REF_ALLOC;	status = ndr_pull_WKSSVC_NETRGETJOINABLEOUS2(pull, NDR_IN, &r);	if (NT_STATUS_IS_ERR(status)) {		talloc_free(mem_ctx);		return False;	}		if (DEBUGLEVEL >= 10)		NDR_PRINT_IN_DEBUG(WKSSVC_NETRGETJOINABLEOUS2, &r);		r.out.result = _WKSSVC_NETRGETJOINABLEOUS2(p, &r);		if (p->rng_fault_state) {		talloc_free(mem_ctx);		/* Return True here, srv_pipe_hnd.c will take care */		return True;	}		if (DEBUGLEVEL >= 10)		NDR_PRINT_OUT_DEBUG(WKSSVC_NETRGETJOINABLEOUS2, &r);		push = ndr_push_init_ctx(mem_ctx);	if (push == NULL) {		talloc_free(mem_ctx);		return False;	}		status = ndr_push_WKSSVC_NETRGETJOINABLEOUS2(push, NDR_OUT, &r);	if (NT_STATUS_IS_ERR(status)) {		talloc_free(mem_ctx);		return False;	}		blob = ndr_push_blob(push);	if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32)blob.length)) {		talloc_free(mem_ctx);		return False;	}		talloc_free(mem_ctx);		return True;}static BOOL api_wkssvc_NetrAddAlternateComputerName(pipes_struct *p){	struct ndr_pull *pull;	struct ndr_push *push;	NTSTATUS status;	DATA_BLOB blob;	struct wkssvc_NetrAddAlternateComputerName r;	TALLOC_CTX *mem_ctx = talloc_init("api_wkssvc_NetrAddAlternateComputerName");		if (!prs_data_blob(&p->in_data.data, &blob, mem_ctx)) {		talloc_free(mem_ctx);		return False;	}		pull = ndr_pull_init_blob(&blob, mem_ctx);	if (pull == NULL) {		talloc_free(mem_ctx);		return False;	}		pull->flags |= LIBNDR_FLAG_REF_ALLOC;	status = ndr_pull_wkssvc_NetrAddAlternateComputerName(pull, NDR_IN, &r);	if (NT_STATUS_IS_ERR(status)) {		talloc_free(mem_ctx);		return False;	}		if (DEBUGLEVEL >= 10)		NDR_PRINT_IN_DEBUG(wkssvc_NetrAddAlternateComputerName, &r);		r.out.result = _wkssvc_NetrAddAlternateComputerName(p, &r);		if (p->rng_fault_state) {		talloc_free(mem_ctx);		/* Return True here, srv_pipe_hnd.c will take care */		return True;	}		if (DEBUGLEVEL >= 10)		NDR_PRINT_OUT_DEBUG(wkssvc_NetrAddAlternateComputerName, &r);		push = ndr_push_init_ctx(mem_ctx);	if (push == NULL) {		talloc_free(mem_ctx);		return False;	}		status = ndr_push_wkssvc_NetrAddAlternateComputerName(push, NDR_OUT, &r);	if (NT_STATUS_IS_ERR(status)) {		talloc_free(mem_ctx);		return False;	}		blob = ndr_push_blob(push);	if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32)blob.length)) {		talloc_free(mem_ctx);		return False;	}		talloc_free(mem_ctx);		return True;}static BOOL api_wkssvc_NetrRemoveAlternateComputerName(pipes_struct *p){	struct ndr_pull *pull;	struct ndr_push *push;	NTSTATUS status;	DATA_BLOB blob;	struct wkssvc_NetrRemoveAlternateComputerName r;	TALLOC_CTX *mem_ctx = talloc_init("api_wkssvc_NetrRemoveAlternateComputerName");		if (!prs_data_blob(&p->in_data.data, &blob, mem_ctx)) {		talloc_free(mem_ctx);		return False;	}		pull = ndr_pull_init_blob(&blob, mem_ctx);	if (pull == NULL) {		talloc_free(mem_ctx);		return False;	}		pull->flags |= LIBNDR_FLAG_REF_ALLOC;	status = ndr_pull_wkssvc_NetrRemoveAlternateComputerName(pull, NDR_IN, &r);	if (NT_STATUS_IS_ERR(status)) {		talloc_free(mem_ctx);		return False;	}		if (DEBUGLEVEL >= 10)		NDR_PRINT_IN_DEBUG(wkssvc_NetrRemoveAlternateComputerName, &r);		r.out.result = _wkssvc_NetrRemoveAlternateComputerName(p, &r);		if (p->rng_fault_state) {		talloc_free(mem_ctx);		/* Return True here, srv_pipe_hnd.c will take care */		return True;	}		if (DEBUGLEVEL >= 10)		NDR_PRINT_OUT_DEBUG(wkssvc_NetrRemoveAlternateComputerName, &r);		push = ndr_push_init_ctx(mem_ctx);	if (push == NULL) {		talloc_free(mem_ctx);		return False;	}		status = ndr_push_wkssvc_NetrRemoveAlternateComputerName(push, NDR_OUT, &r);	if (NT_STATUS_IS_ERR(status)) {		talloc_free(mem_ctx);		return False;	}		blob = ndr_push_blob(push);	if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32)blob.length)) {		talloc_free(mem_ctx);		return False;	}		talloc_free(mem_ctx);		return True;}static BOOL api_WKSSVC_NETRSETPRIMARYCOMPUTERNAME(pipes_struct *p){	struct ndr_pull *pull;	struct ndr_push *push;	NTSTATUS status;	DATA_BLOB blob;	struct WKSSVC_NETRSETPRIMARYCOMPUTERNAME r;	TALLOC_CTX *mem_ctx = talloc_init("api_WKSSVC_NETRSETPRIMARYCOMPUTERNAME");		if (!prs_data_blob(&p->in_data.data, &blob, mem_ctx)) {		talloc_free(mem_ctx);		return False;	}		pull = ndr_pull_init_blob(&blob, mem_ctx);	if (pull == NULL) {		talloc_free(mem_ctx);		return False;	}		pull->flags |= LIBNDR_FLAG_REF_ALLOC;	status = ndr_pull_WKSSVC_NETRSETPRIMARYCOMPUTERNAME(pull, NDR_IN, &r);	if (NT_STATUS_IS_ERR(status)) {		talloc_free(mem_ctx);		return False;	}		if (DEBUGLEVEL >= 10)		NDR_PRINT_IN_DEBUG(WKSSVC_NETRSETPRIMARYCOMPUTERNAME, &r);		r.out.result = _WKSSVC_NETRSETPRIMARYCOMPUTERNAME(p, &r);		if (p->rng_fault_state) {		talloc_free(mem_ctx);		/* Return True here, srv_pipe_hnd.c will take care */		return True;	}		if (DEBUGLEVEL >= 10)		NDR_PRINT_OUT_DEBUG(WKSSVC_NETRSETPRIMARYCOMPUTERNAME, &r);		push = ndr_push_init_ctx(mem_ctx);	if (push == NULL) {		talloc_free(mem_ctx);		return False;	}		status = ndr_push_WKSSVC_NETRSETPRIMARYCOMPUTERNAME(push, NDR_OUT, &r);	if (NT_STATUS_IS_ERR(status)) {		talloc_free(mem_ctx);		return False;	}		blob = ndr_push_blob(push);	if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32)blob.length)) {		talloc_free(mem_ctx);		return False;	}		talloc_free(mem_ctx);		return True;}static BOOL api_WKSSVC_NETRENUMERATECOMPUTERNAMES(pipes_struct *p){	struct ndr_pull *pull;	struct ndr_push *push;	NTSTATUS status;	DATA_BLOB blob;	struct WKSSVC_NETRENUMERATECOMPUTERNAMES r;	TALLOC_CTX *mem_ctx = talloc_init("api_WKSSVC_NETRENUMERATECOMPUTERNAMES");		if (!prs_data_blob(&p->in_data.data, &blob, mem_ctx)) {		talloc_free(mem_ctx);		return False;	}		pull = ndr_pull_init_blob(&blob, mem_ctx);	if (pull == NULL) {		talloc_free(mem_ctx);		return False;	}		pull->flags |= LIBNDR_FLAG_REF_ALLOC;	status = ndr_pull_WKSSVC_NETRENUMERATECOMPUTERNAMES(pull, NDR_IN, &r);	if (NT_STATUS_IS_ERR(status)) {		talloc_free(mem_ctx);		return False;	}		if (DEBUGLEVEL >= 10)		NDR_PRINT_IN_DEBUG(WKSSVC_NETRENUMERATECOMPUTERNAMES, &r);		r.out.result = _WKSSVC_NETRENUMERATECOMPUTERNAMES(p, &r);		if (p->rng_fault_state) {		talloc_free(mem_ctx);		/* Return True here, srv_pipe_hnd.c will take care */		return True;	}		if (DEBUGLEVEL >= 10)		NDR_PRINT_OUT_DEBUG(WKSSVC_NETRENUMERATECOMPUTERNAMES, &r);		push = ndr_push_init_ctx(mem_ctx);	if (push == NULL) {		talloc_free(mem_ctx);		return False;	}		status = ndr_push_WKSSVC_NETRENUMERATECOMPUTERNAMES(push, NDR_OUT, &r);	if (NT_STATUS_IS_ERR(status)) {		talloc_free(mem_ctx);		return False;	}		blob = ndr_push_blob(push);	if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32)blob.length)) {		talloc_free(mem_ctx);		return False;	}		talloc_free(mem_ctx);		return True;}/* Tables */static struct api_struct api_wkssvc_cmds[] = {	{"WKSSVC_NETWKSTAGETINFO", DCERPC_WKSSVC_NETWKSTAGETINFO, api_wkssvc_NetWkstaGetInfo},	{"WKSSVC_NETWKSTASETINFO", DCERPC_WKSSVC_NETWKSTASETINFO, api_wkssvc_NetWkstaSetInfo},	{"WKSSVC_NETWKSTAENUMUSERS", DCERPC_WKSSVC_NETWKSTAENUMUSERS, api_wkssvc_NetWkstaEnumUsers},	{"WKSSVC_NETRWKSTAUSERGETINFO", DCERPC_WKSSVC_NETRWKSTAUSERGETINFO, api_WKSSVC_NETRWKSTAUSERGETINFO},	{"WKSSVC_NETRWKSTAUSERSETINFO", DCERPC_WKSSVC_NETRWKSTAUSERSETINFO, api_WKSSVC_NETRWKSTAUSERSETINFO},	{"WKSSVC_NETWKSTATRANSPORTENUM", DCERPC_WKSSVC_NETWKSTATRANSPORTENUM, api_wkssvc_NetWkstaTransportEnum},	{"WKSSVC_NETRWKSTATRANSPORTADD", DCERPC_WKSSVC_NETRWKSTATRANSPORTADD, api_WKSSVC_NETRWKSTATRANSPORTADD},	{"WKSSVC_NETRWKSTATRANSPORTDEL", DCERPC_WKSSVC_NETRWKSTATRANSPORTDEL, api_WKSSVC_NETRWKSTATRANSPORTDEL},	{"WKSSVC_NETRUSEADD", DCERPC_WKSSVC_NETRUSEADD, api_WKSSVC_NETRUSEADD},	{"WKSSVC_NETRUSEGETINFO", DCERPC_WKSSVC_NETRUSEGETINFO, api_WKSSVC_NETRUSEGETINFO},	{"WKSSVC_NETRUSEDEL", DCERPC_WKSSVC_NETRUSEDEL, api_WKSSVC_NETRUSEDEL},	{"WKSSVC_NETRUSEENUM", DCERPC_WKSSVC_NETRUSEENUM, api_WKSSVC_NETRUSEENUM},	{"WKSSVC_NETRMESSAGEBUFFERSEND", DCERPC_WKSSVC_NETRMESSAGEBUFFERSEND, api_WKSSVC_NETRMESSAGEBUFFERSEND},	{"WKSSVC_NETRWORKSTATIONSTATISTICSGET", DCERPC_WKSSVC_NETRWORKSTATIONSTATISTICSGET, api_WKSSVC_NETRWORKSTATIONSTATISTICSGET},	{"WKSSVC_NETRLOGONDOMAINNAMEADD", DCERPC_WKSSVC_NETRLOGONDOMAINNAMEADD, api_WKSSVC_NETRLOGONDOMAINNAMEADD},	{"WKSSVC_NETRLOGONDOMAINNAMEDEL", DCERPC_WKSSVC_NETRLOGONDOMAINNAMEDEL, api_WKSSVC_NETRLOGONDOMAINNAMEDEL},	{"WKSSVC_NETRJOINDOMAIN", DCERPC_WKSSVC_NETRJOINDOMAIN, api_WKSSVC_NETRJOINDOMAIN},	{"WKSSVC_NETRUNJOINDOMAIN", DCERPC_WKSSVC_NETRUNJOINDOMAIN, api_WKSSVC_NETRUNJOINDOMAIN},	{"WKSSVC_NETRRENAMEMACHINEINDOMAIN", DCERPC_WKSSVC_NETRRENAMEMACHINEINDOMAIN, api_WKSSVC_NETRRENAMEMACHINEINDOMAIN},	{"WKSSVC_NETRVALIDATENAME", DCERPC_WKSSVC_NETRVALIDATENAME, api_WKSSVC_NETRVALIDATENAME},	{"WKSSVC_NETRGETJOININFORMATION", DCERPC_WKSSVC_NETRGETJOININFORMATION, api_WKSSVC_NETRGETJOININFORMATION},	{"WKSSVC_NETRGETJOINABLEOUS", DCERPC_WKSSVC_NETRGETJOINABLEOUS, api_WKSSVC_NETRGETJOINABLEOUS},	{"WKSSVC_NETRJOINDOMAIN2", DCERPC_WKSSVC_NETRJOINDOMAIN2, api_wkssvc_NetrJoinDomain2},	{"WKSSVC_NETRUNJOINDOMAIN2", DCERPC_WKSSVC_NETRUNJOINDOMAIN2, api_wkssvc_NetrUnjoinDomain2},	{"WKSSVC_NETRRENAMEMACHINEINDOMAIN2", DCERPC_WKSSVC_NETRRENAMEMACHINEINDOMAIN2, api_wkssvc_NetrRenameMachineInDomain2},	{"WKSSVC_NETRVALIDATENAME2", DCERPC_WKSSVC_NETRVALIDATENAME2, api_WKSSVC_NETRVALIDATENAME2},	{"WKSSVC_NETRGETJOINABLEOUS2", DCERPC_WKSSVC_NETRGETJOINABLEOUS2, api_WKSSVC_NETRGETJOINABLEOUS2},	{"WKSSVC_NETRADDALTERNATECOMPUTERNAME", DCERPC_WKSSVC_NETRADDALTERNATECOMPUTERNAME, api_wkssvc_NetrAddAlternateComputerName},	{"WKSSVC_NETRREMOVEALTERNATECOMPUTERNAME", DCERPC_WKSSVC_NETRREMOVEALTERNATECOMPUTERNAME, api_wkssvc_NetrRemoveAlternateComputerName},	{"WKSSVC_NETRSETPRIMARYCOMPUTERNAME", DCERPC_WKSSVC_NETRSETPRIMARYCOMPUTERNAME, api_WKSSVC_NETRSETPRIMARYCOMPUTERNAME},	{"WKSSVC_NETRENUMERATECOMPUTERNAMES", DCERPC_WKSSVC_NETRENUMERATECOMPUTERNAMES, api_WKSSVC_NETRENUMERATECOMPUTERNAMES},};void wkssvc_get_pipe_fns(struct api_struct **fns, int *n_fns){	*fns = api_wkssvc_cmds;	*n_fns = sizeof(api_wkssvc_cmds) / sizeof(struct api_struct);}NTSTATUS rpc_wkssvc_init(void){	return rpc_pipe_register_commands(SMB_RPC_INTERFACE_VERSION, "wkssvc", "wkssvc", api_wkssvc_cmds, sizeof(api_wkssvc_cmds) / sizeof(struct api_struct));}

⌨️ 快捷键说明

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