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

📄 net_rap.c

📁 samba-3.0.22.tar.gz 编译smb服务器的源码
💻 C
📖 第 1 页 / 共 2 页
字号:
	struct cli_state *cli;	int ret;		if (argc == 0)                 return net_rap_printq_usage(argc, argv);	if (!(cli = net_make_ipc_connection(0)))                 return -1;	d_printf(PRINTQ_ENUM_DISPLAY, cli->desthost); /* list header */	ret = cli_NetPrintQGetInfo(cli, argv[0], enum_queue, enum_jobs);	cli_shutdown(cli);	return ret;}static int rap_printq_delete(int argc, const char **argv){	struct cli_state *cli;	int ret;		if (argc == 0)                 return net_rap_printq_usage(argc, argv);	if (!(cli = net_make_ipc_connection(0)))                 return -1;	ret = cli_printjob_del(cli, atoi(argv[0]));	cli_shutdown(cli);	return ret;}int net_rap_printq(int argc, const char **argv){	struct cli_state *cli;	int ret;		struct functable func[] = {		{"INFO", rap_printq_info},		{"DELETE", rap_printq_delete},		{NULL, NULL}	};	if (argc == 0) {		if (!(cli = net_make_ipc_connection(0))) 			return -1;		d_printf(PRINTQ_ENUM_DISPLAY, cli->desthost); /* list header */		ret = cli_NetPrintQEnum(cli, enum_queue, enum_jobs);		cli_shutdown(cli);		return ret;	}	return net_run_function(argc, argv, func, net_rap_printq_usage);}	static int net_rap_user_usage(int argc, const char **argv){	return net_help_user(argc, argv);} 	static void user_fn(const char *user_name, void *state){	d_printf("%-21.21s\n", user_name);}static void long_user_fn(const char *user_name, const char *comment,			 const char * home_dir, const char * logon_script, 			 void *state){	d_printf("%-21.21s %s\n",		 user_name, comment);}static void group_member_fn(const char *user_name, void *state){	d_printf("%-21.21s\n", user_name);}static int rap_user_delete(int argc, const char **argv){	struct cli_state *cli;	int ret;		if (argc == 0) {		d_printf("\n\nUser name not specified\n");                return net_rap_user_usage(argc, argv);	}	if (!(cli = net_make_ipc_connection(0)))                 return -1;	ret = cli_NetUserDelete(cli, argv[0]);	cli_shutdown(cli);	return ret;}static int rap_user_add(int argc, const char **argv){	struct cli_state *cli;	int ret;	RAP_USER_INFO_1 userinfo;	if (argc == 0) {		d_printf("\n\nUser name not specified\n");                return net_rap_user_usage(argc, argv);	}	if (!(cli = net_make_ipc_connection(0)))                return -1;				safe_strcpy(userinfo.user_name, argv[0], sizeof(userinfo.user_name)-1);	if (opt_flags == -1)                 opt_flags = 0x21; 				userinfo.userflags = opt_flags;	userinfo.reserved1 = '\0';	userinfo.comment = smb_xstrdup(opt_comment);	userinfo.priv = 1; 	userinfo.home_dir = NULL;	userinfo.logon_script = NULL;	ret = cli_NetUserAdd(cli, &userinfo);	cli_shutdown(cli);	return ret;}static int rap_user_info(int argc, const char **argv){	struct cli_state *cli;	int ret;	if (argc == 0) {		d_printf("\n\nUser name not specified\n");                return net_rap_user_usage(argc, argv);	}	if (!(cli = net_make_ipc_connection(0)))                return -1;	ret = cli_NetUserGetGroups(cli, argv[0], group_member_fn, NULL);	cli_shutdown(cli);	return ret;}int net_rap_user(int argc, const char **argv){	int ret = -1;	struct functable func[] = {		{"ADD", rap_user_add},		{"INFO", rap_user_info},		{"DELETE", rap_user_delete},		{NULL, NULL}	};	if (argc == 0) {		struct cli_state *cli;		if (!(cli = net_make_ipc_connection(0)))                        goto done;		if (opt_long_list_entries) {			d_printf("\nUser name             Comment"\				 "\n-----------------------------\n");			ret = cli_RNetUserEnum(cli, long_user_fn, NULL);			cli_shutdown(cli);			goto done;		}		ret = cli_RNetUserEnum0(cli, user_fn, NULL); 		cli_shutdown(cli);		goto done;	}	ret = net_run_function(argc, argv, func, net_rap_user_usage); done:	if (ret != 0) {		DEBUG(1, ("Net user returned: %d\n", ret));	}	return ret;}int net_rap_group_usage(int argc, const char **argv){	return net_help_group(argc, argv);}static void long_group_fn(const char *group_name, const char *comment,			  void *state){	d_printf("%-21.21s %s\n", group_name, comment);}static void group_fn(const char *group_name, void *state){	d_printf("%-21.21s\n", group_name);}static int rap_group_delete(int argc, const char **argv){	struct cli_state *cli;	int ret;	if (argc == 0) {		d_printf("\n\nGroup name not specified\n");                return net_rap_group_usage(argc, argv);	}	if (!(cli = net_make_ipc_connection(0)))                return -1;	ret = cli_NetGroupDelete(cli, argv[0]);	cli_shutdown(cli);	return ret;}static int rap_group_add(int argc, const char **argv){	struct cli_state *cli;	int ret;	RAP_GROUP_INFO_1 grinfo;	if (argc == 0) {		d_printf("\n\nGroup name not specified\n");                return net_rap_group_usage(argc, argv);	}	if (!(cli = net_make_ipc_connection(0)))                return -1;				/* BB check for length 21 or smaller explicitly ? BB */	safe_strcpy(grinfo.group_name, argv[0], sizeof(grinfo.group_name)-1);	grinfo.reserved1 = '\0';	grinfo.comment = smb_xstrdup(opt_comment);		ret = cli_NetGroupAdd(cli, &grinfo);	cli_shutdown(cli);	return ret;}int net_rap_group(int argc, const char **argv){	struct functable func[] = {		{"ADD", rap_group_add},		{"DELETE", rap_group_delete},		{NULL, NULL}	};	if (argc == 0) {		struct cli_state *cli;		int ret;		if (!(cli = net_make_ipc_connection(0)))                        return -1;		if (opt_long_list_entries) {			d_printf("Group name            Comment\n");			d_printf("-----------------------------\n");			ret = cli_RNetGroupEnum(cli, long_group_fn, NULL);			cli_shutdown(cli);			return ret;		}		ret = cli_RNetGroupEnum0(cli, group_fn, NULL); 		cli_shutdown(cli);		return ret;	}	return net_run_function(argc, argv, func, net_rap_group_usage);}int net_rap_groupmember_usage(int argc, const char **argv){	d_printf(	 "net rap groupmember LIST <group> [misc. options] [targets]"\	 "\n\t Enumerate users in a group\n"\	 "\nnet rap groupmember DELETE <group> <user> [misc. options] "\	 "[targets]\n\t Delete sepcified user from specified group\n"\	 "\nnet rap groupmember ADD <group> <user> [misc. options] [targets]"\	 "\n\t Add specified user to specified group\n");	net_common_flags_usage(argc, argv);	return -1;}static int rap_groupmember_add(int argc, const char **argv){	struct cli_state *cli;	int ret;	if (argc != 2) {		d_printf("\n\nGroup or user name not specified\n");                return net_rap_groupmember_usage(argc, argv);	}	if (!(cli = net_make_ipc_connection(0)))                return -1;	ret = cli_NetGroupAddUser(cli, argv[0], argv[1]);	cli_shutdown(cli);	return ret;}static int rap_groupmember_delete(int argc, const char **argv){	struct cli_state *cli;	int ret;	if (argc != 2) {		d_printf("\n\nGroup or user name not specified\n");                return net_rap_groupmember_usage(argc, argv);	}		if (!(cli = net_make_ipc_connection(0)))                return -1;	ret = cli_NetGroupDelUser(cli, argv[0], argv[1]);	cli_shutdown(cli);	return ret;}static int rap_groupmember_list(int argc, const char **argv){	struct cli_state *cli;	int ret;	if (argc == 0) {		d_printf("\n\nGroup name not specified\n");                return net_rap_groupmember_usage(argc, argv);	}	if (!(cli = net_make_ipc_connection(0)))                return -1;	ret = cli_NetGroupGetUsers(cli, argv[0], group_member_fn, NULL ); 	cli_shutdown(cli);	return ret;}int net_rap_groupmember(int argc, const char **argv){	struct functable func[] = {		{"ADD", rap_groupmember_add},		{"LIST", rap_groupmember_list},		{"DELETE", rap_groupmember_delete},		{NULL, NULL}	};		return net_run_function(argc, argv, func, net_rap_groupmember_usage);}int net_rap_validate_usage(int argc, const char **argv){	d_printf("net rap validate <username> [password]\n"\		 "\tValidate user and password to check whether they"\		 " can access target server or domain\n");	net_common_flags_usage(argc, argv);	return -1;}int net_rap_validate(int argc, const char **argv){	return errmsg_not_implemented();}int net_rap_service_usage(int argc, const char **argv){	d_printf("net rap service [misc. options] [targets] \n"\		 "\tlists all running service daemons on target server\n");	d_printf("\nnet rap service START <name> [service startup arguments]"\		 " [misc. options] [targets]"\		 "\n\tStart named service on remote server\n");	d_printf("\nnet rap service STOP <name> [misc. options] [targets]\n"\		 "\n\tStop named service on remote server\n");    	net_common_flags_usage(argc, argv);	return -1;}static int rap_service_start(int argc, const char **argv){	return errmsg_not_implemented();}static int rap_service_stop(int argc, const char **argv){	return errmsg_not_implemented();}static void service_fn(const char *service_name, const char *dummy,		       void *state){	d_printf("%-21.21s\n", service_name);}int net_rap_service(int argc, const char **argv){	struct functable func[] = {		{"START", rap_service_start},		{"STOP", rap_service_stop},		{NULL, NULL}	};	if (argc == 0) {		struct cli_state *cli;		int ret;		if (!(cli = net_make_ipc_connection(0))) 			return -1;		if (opt_long_list_entries) {			d_printf("Service name          Comment\n");			d_printf("-----------------------------\n");			ret = cli_RNetServiceEnum(cli, long_group_fn, NULL);		}		ret = cli_RNetServiceEnum(cli, service_fn, NULL); 		cli_shutdown(cli);		return ret;	}	return net_run_function(argc, argv, func, net_rap_service_usage);}int net_rap_password_usage(int argc, const char **argv){	d_printf(	 "net rap password <user> <oldpwo> <newpw> [misc. options] [target]\n"\	 "\tchanges the password for the specified user at target\n"); 		return -1;}int net_rap_password(int argc, const char **argv){	struct cli_state *cli;	int ret;		if (argc < 3)                 return net_rap_password_usage(argc, argv);	if (!(cli = net_make_ipc_connection(0)))                 return -1;	/* BB Add check for password lengths? */	ret = cli_oem_change_password(cli, argv[0], argv[2], argv[1]);	cli_shutdown(cli);	return ret;}int net_rap_admin_usage(int argc, const char **argv){	d_printf(   "net rap admin <remote command> [cmd args [env]] [misc. options] [targets]"\   "\n\texecutes a remote command on an os/2 target server\n"); 		return -1;}int net_rap_admin(int argc, const char **argv){	return errmsg_not_implemented();}/* The help subsystem for the RAP subcommand */int net_rap_usage(int argc, const char **argv){	d_printf("  net rap domain \tto list domains \n"\		 "  net rap file \t\tto list open files on a server \n"\		 "  net rap group \tto list user groups  \n"\		 "  net rap groupmember \tto list users in a group \n"\		 "  net rap password \tto change the password of a user\n"\		 "  net rap printq \tto list the print queues on a server\n"\		 "  net rap server \tto list servers in a domain\n"\		 "  net rap session \tto list clients with open sessions to a server\n"\		 "  net rap share \tto list shares exported by a server\n"\		 "  net rap user \t\tto list users\n"\		 "  net rap validate \tto check whether a user and the corresponding password are valid\n"\		 "  net rap help\n"\		 "\nType \"net help <option>\" to get more information on that option\n\n");	net_common_flags_usage(argc, argv);	return -1;}/*  handle "net rap help *" subcommands*/int net_rap_help(int argc, const char **argv){	struct functable func[] = {		{"FILE", net_rap_file_usage},		{"SHARE", net_rap_share_usage},		{"SESSION", net_rap_session_usage},		{"SERVER", net_rap_server_usage},		{"DOMAIN", net_rap_domain_usage},		{"PRINTQ", net_rap_printq_usage},		{"USER", net_rap_user_usage},		{"GROUP", net_rap_group_usage},		{"VALIDATE", net_rap_validate_usage},		{"GROUPMEMBER", net_rap_groupmember_usage},		{"ADMIN", net_rap_admin_usage},		{"SERVICE", net_rap_service_usage},		{"PASSWORD", net_rap_password_usage},		{NULL, NULL}};	return net_run_function(argc, argv, func, net_rap_usage);}/* Entry-point for all the RAP functions. */int net_rap(int argc, const char **argv){	struct functable func[] = {		{"FILE", net_rap_file},		{"SHARE", net_rap_share},		{"SESSION", net_rap_session},		{"SERVER", net_rap_server},		{"DOMAIN", net_rap_domain},		{"PRINTQ", net_rap_printq},		{"USER", net_rap_user},		{"GROUP", net_rap_group},		{"VALIDATE", net_rap_validate},		{"GROUPMEMBER", net_rap_groupmember},		{"ADMIN", net_rap_admin},		{"SERVICE", net_rap_service},			{"PASSWORD", net_rap_password},		{"HELP", net_rap_help},		{NULL, NULL}	};		return net_run_function(argc, argv, func, net_rap_usage);}

⌨️ 快捷键说明

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