亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? net_rpc_printer.c

?? samba-3.0.22.tar.gz 編譯smb服務器的源碼
?? C
?? 第 1 頁 / 共 5 頁
字號:
done:	if (got_hnd) 		rpccli_spoolss_close_printer(pipe_hnd, mem_ctx, &hnd);		return nt_status;}/**  * Migrate Printer-ACLs from a source server to the destination server * * All parameters are provided by the run_rpc_command function, except for * argc, argv which are passed through.  * * @param domain_sid The domain sid aquired from the remote server * @param cli A cli_state connected to the server. * @param mem_ctx Talloc context, destoyed on compleation of the function. * @param argc  Standard main() style argc * @param argv  Standard main() style argv.  Initial components are already *              stripped * * @return Normal NTSTATUS return. **/NTSTATUS rpc_printer_migrate_security_internals(const DOM_SID *domain_sid,						const char *domain_name, 						struct cli_state *cli,						struct rpc_pipe_client *pipe_hnd,						TALLOC_CTX *mem_ctx, 						int argc,						const char **argv){	/* TODO: what now, info2 or info3 ? 	   convince jerry that we should add clientside setacls level 3 at least	*/	NTSTATUS nt_status = NT_STATUS_UNSUCCESSFUL;	uint32 i = 0;	uint32 num_printers;	uint32 level = 2;	pstring printername = "", sharename = "";	BOOL got_hnd_src = False;	BOOL got_hnd_dst = False;	struct rpc_pipe_client *pipe_hnd_dst = NULL;	POLICY_HND hnd_src, hnd_dst;	PRINTER_INFO_CTR ctr_src, ctr_dst, ctr_enum;	struct cli_state *cli_dst = NULL;	ZERO_STRUCT(ctr_src);	DEBUG(3,("copying printer ACLs\n"));	/* connect destination PI_SPOOLSS */	nt_status = connect_dst_pipe(&cli_dst, &pipe_hnd_dst, PI_SPOOLSS);	if (!NT_STATUS_IS_OK(nt_status))		return nt_status;	/* enum source printers */	if (!get_printer_info(pipe_hnd, mem_ctx, level, argc, argv, &num_printers, &ctr_enum)) {		nt_status = NT_STATUS_UNSUCCESSFUL;		goto done;	}	if (!num_printers) {		printf ("no printers found on server.\n");		nt_status = NT_STATUS_OK;		goto done;	} 		/* do something for all printers */	for (i = 0; i < num_printers; i++) {		/* do some initialization */		rpcstr_pull(printername, ctr_enum.printers_2[i].printername.buffer, 			sizeof(printername), -1, STR_TERMINATE);		rpcstr_pull(sharename, ctr_enum.printers_2[i].sharename.buffer, 			sizeof(sharename), -1, STR_TERMINATE);		/* we can reset NT_STATUS here because we do not 		   get any real NT_STATUS-codes anymore from now on */		nt_status = NT_STATUS_UNSUCCESSFUL;				d_printf("migrating printer ACLs for:     [%s] / [%s]\n", 			printername, sharename);		/* according to msdn you have specify these access-rights 		   to see the security descriptor			- READ_CONTROL (DACL)			- ACCESS_SYSTEM_SECURITY (SACL)		*/		/* open src printer handle */		if (!net_spoolss_open_printer_ex(pipe_hnd, mem_ctx, sharename,			MAXIMUM_ALLOWED_ACCESS, cli->user_name, &hnd_src)) 			goto done;		got_hnd_src = True;		/* open dst printer handle */		if (!net_spoolss_open_printer_ex(pipe_hnd_dst, mem_ctx, sharename,			PRINTER_ALL_ACCESS, cli_dst->user_name, &hnd_dst)) 			goto done;		got_hnd_dst = True;		/* check for existing dst printer */		if (!net_spoolss_getprinter(pipe_hnd_dst, mem_ctx, &hnd_dst, level, &ctr_dst)) 			goto done;		/* check for existing src printer */		if (!net_spoolss_getprinter(pipe_hnd, mem_ctx, &hnd_src, 3, &ctr_src)) 			goto done;		/* Copy Security Descriptor */		/* copy secdesc (info level 2) */		ctr_dst.printers_2->devmode = NULL; 		ctr_dst.printers_2->secdesc = dup_sec_desc(mem_ctx, ctr_src.printers_3->secdesc);		if (opt_verbose)			display_sec_desc(ctr_dst.printers_2->secdesc);				if (!net_spoolss_setprinter(pipe_hnd_dst, mem_ctx, &hnd_dst, 2, &ctr_dst)) 			goto done;				DEBUGADD(1,("\tSetPrinter of SECDESC succeeded\n"));		/* close printer handles here */		if (got_hnd_src) {			rpccli_spoolss_close_printer(pipe_hnd, mem_ctx, &hnd_src);			got_hnd_src = False;		}		if (got_hnd_dst) {			rpccli_spoolss_close_printer(pipe_hnd_dst, mem_ctx, &hnd_dst);			got_hnd_dst = False;		}	}		nt_status = NT_STATUS_OK;done:	if (got_hnd_src) {		rpccli_spoolss_close_printer(pipe_hnd, mem_ctx, &hnd_src);	}	if (got_hnd_dst) {		rpccli_spoolss_close_printer(pipe_hnd_dst, mem_ctx, &hnd_dst);	}	if (cli_dst) {		cli_shutdown(cli_dst);	}	return nt_status;}/**  * Migrate printer-forms from a src server to the dst server * * All parameters are provided by the run_rpc_command function, except for * argc, argv which are passed through.  * * @param domain_sid The domain sid aquired from the remote server * @param cli A cli_state connected to the server. * @param mem_ctx Talloc context, destoyed on compleation of the function. * @param argc  Standard main() style argc * @param argv  Standard main() style argv.  Initial components are already *              stripped * * @return Normal NTSTATUS return. **/NTSTATUS rpc_printer_migrate_forms_internals(const DOM_SID *domain_sid,						const char *domain_name, 						struct cli_state *cli,						struct rpc_pipe_client *pipe_hnd,						TALLOC_CTX *mem_ctx, 						int argc,						const char **argv){	NTSTATUS nt_status = NT_STATUS_UNSUCCESSFUL;	WERROR result;	uint32 i, f;	uint32 num_printers;	uint32 level = 1;	pstring printername = "", sharename = "";	BOOL got_hnd_src = False;	BOOL got_hnd_dst = False;	struct rpc_pipe_client *pipe_hnd_dst = NULL;	POLICY_HND hnd_src, hnd_dst;	PRINTER_INFO_CTR ctr_enum, ctr_dst;	uint32 num_forms;	FORM_1 *forms;	struct cli_state *cli_dst = NULL;		ZERO_STRUCT(ctr_enum);	DEBUG(3,("copying forms\n"));		/* connect destination PI_SPOOLSS */	nt_status = connect_dst_pipe(&cli_dst, &pipe_hnd_dst, PI_SPOOLSS);	if (!NT_STATUS_IS_OK(nt_status))		return nt_status;		/* enum src printers */	if (!get_printer_info(pipe_hnd, mem_ctx, 2, argc, argv, &num_printers, &ctr_enum)) {		nt_status = NT_STATUS_UNSUCCESSFUL;		goto done;	}	if (!num_printers) {		printf ("no printers found on server.\n");		nt_status = NT_STATUS_OK;		goto done;	} 		/* do something for all printers */	for (i = 0; i < num_printers; i++) {		/* do some initialization */		rpcstr_pull(printername, ctr_enum.printers_2[i].printername.buffer, 			sizeof(printername), -1, STR_TERMINATE);		rpcstr_pull(sharename, ctr_enum.printers_2[i].sharename.buffer, 			sizeof(sharename), -1, STR_TERMINATE);		/* we can reset NT_STATUS here because we do not 		   get any real NT_STATUS-codes anymore from now on */		nt_status = NT_STATUS_UNSUCCESSFUL;				d_printf("migrating printer forms for:    [%s] / [%s]\n", 			printername, sharename);		/* open src printer handle */		if (!net_spoolss_open_printer_ex(pipe_hnd, mem_ctx, sharename,			MAXIMUM_ALLOWED_ACCESS, cli->user_name, &hnd_src)) 			goto done;		got_hnd_src = True;		/* open dst printer handle */		if (!net_spoolss_open_printer_ex(pipe_hnd_dst, mem_ctx, sharename,			PRINTER_ALL_ACCESS, cli->user_name, &hnd_dst)) 			goto done;		got_hnd_dst = True;		/* check for existing dst printer */		if (!net_spoolss_getprinter(pipe_hnd_dst, mem_ctx, &hnd_dst, level, &ctr_dst)) 			goto done;		/* finally migrate forms */		if (!net_spoolss_enumforms(pipe_hnd, mem_ctx, &hnd_src, level, &num_forms, &forms))			goto done;		DEBUG(1,("got %d forms for printer\n", num_forms));		for (f = 0; f < num_forms; f++) {			FORM form;			fstring form_name;						/* only migrate FORM_PRINTER types, according to jerry 			   FORM_BUILTIN-types are hard-coded in samba */			if (forms[f].flag != FORM_PRINTER)				continue;			if (forms[f].name.buffer)				rpcstr_pull(form_name, forms[f].name.buffer,					sizeof(form_name), -1, STR_TERMINATE);			if (opt_verbose)				d_printf("\tmigrating form # %d [%s] of type [%d]\n", 					f, form_name, forms[f].flag);			/* is there a more elegant way to do that ? */			form.flags 	= FORM_PRINTER;			form.size_x	= forms[f].width;			form.size_y	= forms[f].length;			form.left	= forms[f].left;			form.top	= forms[f].top;			form.right	= forms[f].right;			form.bottom	= forms[f].bottom;						init_unistr2(&form.name, form_name, UNI_STR_TERMINATE);			/* FIXME: there might be something wrong with samba's 			   builtin-forms */			result = rpccli_spoolss_addform(pipe_hnd_dst, mem_ctx, 				&hnd_dst, 1, &form);			if (!W_ERROR_IS_OK(result)) {				d_printf("\tAddForm form %d: [%s] refused.\n", 					f, form_name);				continue;			}				DEBUGADD(1,("\tAddForm of [%s] succeeded\n", form_name));		}		/* close printer handles here */		if (got_hnd_src) {			rpccli_spoolss_close_printer(pipe_hnd, mem_ctx, &hnd_src);			got_hnd_src = False;		}		if (got_hnd_dst) {			rpccli_spoolss_close_printer(pipe_hnd_dst, mem_ctx, &hnd_dst);			got_hnd_dst = False;		}	}	nt_status = NT_STATUS_OK;done:	if (got_hnd_src)		rpccli_spoolss_close_printer(pipe_hnd, mem_ctx, &hnd_src);	if (got_hnd_dst)		rpccli_spoolss_close_printer(pipe_hnd_dst, mem_ctx, &hnd_dst);	if (cli_dst) {		cli_shutdown(cli_dst);	}	return nt_status;}/**  * Migrate printer-drivers from a src server to the dst server * * All parameters are provided by the run_rpc_command function, except for * argc, argv which are passed through.  * * @param domain_sid The domain sid aquired from the remote server * @param cli A cli_state connected to the server. * @param mem_ctx Talloc context, destoyed on compleation of the function. * @param argc  Standard main() style argc * @param argv  Standard main() style argv.  Initial components are already *              stripped * * @return Normal NTSTATUS return. **/NTSTATUS rpc_printer_migrate_drivers_internals(const DOM_SID *domain_sid,						const char *domain_name, 						struct cli_state *cli,						struct rpc_pipe_client *pipe_hnd,						TALLOC_CTX *mem_ctx, 						int argc,						const char **argv){	NTSTATUS nt_status = NT_STATUS_UNSUCCESSFUL;	uint32 i, p;	uint32 num_printers;	uint32 level = 3; 	pstring printername = "", sharename = "";	BOOL got_hnd_src = False;	BOOL got_hnd_dst = False;	BOOL got_src_driver_share = False;	BOOL got_dst_driver_share = False;	struct rpc_pipe_client *pipe_hnd_dst = NULL;	POLICY_HND hnd_src, hnd_dst;	PRINTER_DRIVER_CTR drv_ctr_src, drv_ctr_dst;	PRINTER_INFO_CTR info_ctr_enum, info_ctr_dst;	struct cli_state *cli_dst = NULL;	struct cli_state *cli_share_src = NULL;	struct cli_state *cli_share_dst = NULL;	fstring drivername = "";		ZERO_STRUCT(drv_ctr_src);	ZERO_STRUCT(drv_ctr_dst);	ZERO_STRUCT(info_ctr_enum);	ZERO_STRUCT(info_ctr_dst);	DEBUG(3,("copying printer-drivers\n"));	nt_status = connect_dst_pipe(&cli_dst, &pipe_hnd_dst, PI_SPOOLSS);	if (!NT_STATUS_IS_OK(nt_status))		return nt_status;		/* open print$-share on the src server */	nt_status = connect_to_service(&cli_share_src, &cli->dest_ip, 			cli->desthost, "print$", "A:");	if (!NT_STATUS_IS_OK(nt_status)) 		goto done;	got_src_driver_share = True;	/* open print$-share on the dst server */	nt_status = connect_to_service(&cli_share_dst, &cli_dst->dest_ip, 			cli_dst->desthost, "print$", "A:");	if (!NT_STATUS_IS_OK(nt_status)) 		return nt_status;	got_dst_driver_share = True;	/* enum src printers */	if (!get_printer_info(pipe_hnd, mem_ctx, 2, argc, argv, &num_printers, &info_ctr_enum)) {		nt_status = NT_STATUS_UNSUCCESSFUL;		goto done;	}	if (num_printers == 0) {		printf ("no printers found on server.\n");		nt_status = NT_STATUS_OK;		goto done;	} 		/* do something for all printers */	for (p = 0; p < num_printers; p++) {		/* do some initialization */		rpcstr_pull(printername, info_ctr_enum.printers_2[p].printername.buffer, 			sizeof(printername), -1, STR_TERMINATE);		rpcstr_pull(sharename, info_ctr_enum.printers_2[p].sharename.buffer, 			sizeof(sharename), -1, STR_TERMINATE);		/* we can reset NT_STATUS here because we do not 		   get any real NT_STATUS-codes anymore from now on */		nt_status = NT_STATUS_UNSUCCESSFUL;		d_printf("migrating printer driver for:   [%s] / [%s]\n", 			printername, sharename);		/* open dst printer handle */		if (!net_spoolss_open_printer_ex(pipe_hnd_dst, mem_ctx, sharename,			PRINTER_ALL_ACCESS, cli->user_name, &hnd_dst)) 			goto done;					got_hnd_dst = True;		/* check for existing dst printer */		if (!net_spoolss_getprinter(pipe_hnd_dst, mem_ctx, &hnd_dst, 2, &info_ctr_dst)) 			goto done;		/* open src printer handle */		if (!net_spoolss_open_printer_ex(pipe_hnd, mem_ctx, sharename,			MAXIMUM_ALLOWED_ACCESS, pipe_hnd->cli->user_name, &hnd_src)) 			goto done;		got_hnd_src = True;		/* in a first step call getdriver for each shared printer (per arch)		   to get a list of all files that have to be copied */		   	        for (i=0; archi_table[i].long_archi!=NULL; i++) {			/* getdriver src */			if (!net_spoolss_getprinterdriver(pipe_hnd, mem_ctx, &hnd_src, 					level, archi_table[i].long_archi, 					archi_table[i].version, &drv_ctr_src)) 				continue;			rpcstr_pull(drivername, drv_ctr_src.info3->name.buffer, 					sizeof(drivername), -1, STR_TERMINATE);			if (opt_verbose)				display_print_driver_3(drv_ctr_src.info3);			/* check arch dir */			nt_status = check_arch_dir(cli_share_dst, archi_table[i].short_archi);			if (!NT_STATUS_IS_OK(nt_status))				goto done;			/* copy driver-files */			nt_status = copy_print_driver_3(mem_ctx, cli_share_src, cli_share_dst, 							archi_table[i].short_archi, 							drv_ctr_src.info3);			if (!NT_STATUS_IS_OK(nt_status))				goto done;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99国内精品久久| 中文字幕一区二区三区在线观看| 91黄色激情网站| 91亚洲精品久久久蜜桃| 成人国产精品免费网站| 成人免费高清视频在线观看| 国产成人免费视频网站| 成人手机在线视频| 成人av网址在线观看| 成人av电影在线网| 91浏览器入口在线观看| 欧洲人成人精品| 欧美性受xxxx| 欧美一区中文字幕| 精品国精品自拍自在线| 亚洲国产精品国自产拍av| 1区2区3区国产精品| 伊人开心综合网| 日本亚洲三级在线| 国内外成人在线| 成人晚上爱看视频| 一本色道久久综合亚洲91| 欧美天天综合网| 日韩欧美国产精品| 中文字幕久久午夜不卡| 一区二区三区欧美亚洲| 日韩电影在线观看一区| 国产一区二区在线电影| 成人97人人超碰人人99| 欧美视频在线观看一区二区| 日韩精品一区二区三区视频| 国产精品毛片久久久久久久| 亚洲电影第三页| 国产一区在线不卡| 91蜜桃在线免费视频| 欧美丰满一区二区免费视频| 国产午夜精品一区二区三区嫩草| 亚洲男女毛片无遮挡| 五月婷婷激情综合网| 国产剧情在线观看一区二区| 99精品偷自拍| 日韩免费高清视频| 亚洲三级小视频| 精品中文字幕一区二区| av成人动漫在线观看| 欧美一区二区黄色| 国产精品福利一区二区| 日本午夜精品视频在线观看| www.日韩精品| 日韩三级免费观看| 日韩毛片在线免费观看| 另类欧美日韩国产在线| 91在线看国产| 久久久亚洲精品一区二区三区| 亚洲黄色小视频| 国产精品系列在线播放| 欧美日精品一区视频| 久久色.com| 天堂蜜桃一区二区三区| 波多野结衣亚洲一区| 日韩精品一区国产麻豆| 亚洲综合激情小说| 国产成人av电影在线观看| 91精品国产综合久久久久久久| 国产精品毛片无遮挡高清| 久久精品国产精品亚洲精品| 欧美在线999| 中文字幕在线不卡| 国产一区二区女| 欧美日本视频在线| 亚洲欧美激情小说另类| 成人三级伦理片| 精品国产凹凸成av人网站| 天天av天天翘天天综合网| 91老师片黄在线观看| 亚洲国产成人在线| 狠狠色丁香婷婷综合久久片| 欧美一区二区私人影院日本| 一区二区三区免费网站| 99久久久久免费精品国产| 国产午夜精品一区二区三区视频| 久久99精品国产.久久久久久| 欧美日韩免费一区二区三区| 一区二区高清视频在线观看| www.亚洲在线| 亚洲国产精品传媒在线观看| 国产精品中文字幕日韩精品| 精品福利在线导航| 久久99精品国产91久久来源| 日韩欧美亚洲国产另类| 青青青伊人色综合久久| 制服丝袜日韩国产| 亚洲成a人v欧美综合天堂下载| 一本色道**综合亚洲精品蜜桃冫 | 亚洲国产美女搞黄色| kk眼镜猥琐国模调教系列一区二区| 久久午夜免费电影| 精品一区二区三区的国产在线播放| 欧美一级高清片| 男人的j进女人的j一区| 欧美一区二区视频观看视频| 蜜臀久久99精品久久久久宅男| 91精品国产色综合久久不卡蜜臀| 首页亚洲欧美制服丝腿| 91精品国产综合久久精品图片 | 国产一区二区久久| 亚洲精品一区二区在线观看| 久久电影国产免费久久电影| 久久综合色综合88| 国产伦精品一区二区三区在线观看| 日韩精品一区二区三区四区| 狠狠色丁香久久婷婷综合_中| 久久美女艺术照精彩视频福利播放| 国产在线视频精品一区| 久久久99精品久久| 成人app网站| 亚洲美腿欧美偷拍| 国产欧美1区2区3区| 国产精品一区二区在线观看不卡| 中日韩av电影| 成人激情av网| 久久久综合网站| 日韩欧美资源站| 日韩欧美一级二级三级久久久| 欧美三区在线视频| 国产午夜一区二区三区| 国内成人免费视频| 精品日韩成人av| 精品一区二区三区在线观看| 日韩精品在线一区| 久久国产婷婷国产香蕉| 日韩精品一区在线观看| 国产综合色在线视频区| 久久久久亚洲综合| 国产91精品久久久久久久网曝门 | 精品国产伦一区二区三区观看体验| 天天色天天爱天天射综合| 制服丝袜亚洲网站| 日韩激情一区二区| 91精品中文字幕一区二区三区| 香蕉成人啪国产精品视频综合网| 欧美日韩一区二区三区在线| 图片区小说区国产精品视频| 91麻豆精品国产91久久久久| 久久福利资源站| 久久久久久久综合日本| 国产a久久麻豆| 亚洲色图.com| 欧美日韩在线综合| 日日摸夜夜添夜夜添国产精品 | 国产精品1区2区3区在线观看| 久久免费精品国产久精品久久久久 | 日韩一区二区高清| 久久99精品久久久久久动态图 | 日本韩国欧美一区二区三区| 亚洲一区二区三区视频在线播放| 欧美精品日日鲁夜夜添| 久久精工是国产品牌吗| 欧美国产综合一区二区| 色欧美乱欧美15图片| 天堂资源在线中文精品| 精品国产乱码久久久久久蜜臀| 国产成人精品亚洲日本在线桃色| 国产精品久久久久一区二区三区| 91黄视频在线| 麻豆精品视频在线观看| 国产精品天美传媒沈樵| 欧美视频日韩视频在线观看| 激情另类小说区图片区视频区| 国产精品乱子久久久久| 91福利在线免费观看| 看片网站欧美日韩| 中文字幕 久热精品 视频在线 | 欧美裸体bbwbbwbbw| 国产乱子伦视频一区二区三区| 亚洲乱码日产精品bd| 日韩一区二区三区高清免费看看| 国产成人丝袜美腿| 亚洲18色成人| 国产日韩av一区| 欧美日韩久久久久久| 国产成人精品影视| 手机精品视频在线观看| 国产精品久久久久三级| 91精品欧美久久久久久动漫| 99精品欧美一区二区三区小说| 麻豆精品久久精品色综合| 亚洲男人电影天堂| 欧美精品一区二区三区久久久| 色噜噜偷拍精品综合在线| 国产在线不卡一区| 午夜精品久久久久久久99樱桃| 国产精品激情偷乱一区二区∴| 日韩视频在线你懂得| 色香蕉久久蜜桃| 成人精品国产一区二区4080| 麻豆91在线播放免费| 亚洲资源在线观看| 国产精品美女久久久久久久久 | 成人深夜福利app|