[SCM] Samba Shared Repository - branch master updated

Andreas Schneider asn at samba.org
Tue May 26 11:23:03 UTC 2020


The branch, master has been updated
       via  c40e354fe1f libgpo: Remove unused code
       via  b2e418369b4 s3-net: disable net_ads_gpo_apply() and net_ads_gpo_refresh()
      from  da766db4e8a libsmb: Apply some const to parse_finfo_id_both_directory_info()

https://git.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit c40e354fe1fde2adcb16f5df7539d8ba41bb902b
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Nov 11 15:56:32 2019 +0100

    libgpo: Remove unused code
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>
    Reviewed-by: Andreas Schneider <asn at samba.org>
    
    Autobuild-User(master): Andreas Schneider <asn at cryptomilk.org>
    Autobuild-Date(master): Tue May 26 11:22:07 UTC 2020 on sn-devel-184

commit b2e418369b41dd1238d66a759545b0d8bc88bf74
Author: David Mulder <dmulder at suse.com>
Date:   Fri Oct 12 04:10:43 2018 -0600

    s3-net: disable net_ads_gpo_apply() and net_ads_gpo_refresh()
    
    These are now handled in samba-gpupdate, and the
    net ads gpo refresh has not worked for some time.
    
    Signed-off-by: David Mulder <dmulder at suse.com>
    Reviewed-by: Stefan Metzmacher <metze at samba.org>
    Reviewed-by: Andreas Schneider <asn at samba.org>

-----------------------------------------------------------------------

Summary of changes:
 libgpo/gpo.h                |  14 ---
 libgpo/gpo_fetch.c          | 104 -------------------
 libgpo/gpo_util.c           | 121 ----------------------
 source3/utils/net_ads_gpo.c | 245 --------------------------------------------
 4 files changed, 484 deletions(-)


Changeset truncated at 500 lines:

diff --git a/libgpo/gpo.h b/libgpo/gpo.h
index 0bae44aeca9..740a5588f2c 100644
--- a/libgpo/gpo.h
+++ b/libgpo/gpo.h
@@ -166,10 +166,6 @@ NTSTATUS gpo_explode_filesyspath(TALLOC_CTX *mem_ctx,
 				 char **service,
 				 char **nt_path,
 				 char **unix_path);
-NTSTATUS gpo_fetch_files(TALLOC_CTX *mem_ctx,
-                         ADS_STRUCT *ads,
-                         const char *cache_dir,
-			 const struct GROUP_POLICY_OBJECT *gpo);
 NTSTATUS gpo_get_sysvol_gpt_version(TALLOC_CTX *mem_ctx,
 				    const char *unix_path,
 				    uint32_t *sysvol_version,
@@ -232,16 +228,6 @@ NTSTATUS gpo_process_gpo_list(TALLOC_CTX *mem_ctx,
 			      const struct GROUP_POLICY_OBJECT *changed_gpo_list,
 			      const char *extensions_guid_filter,
 			      uint32_t flags);
-NTSTATUS check_refresh_gpo(ADS_STRUCT *ads,
-			   TALLOC_CTX *mem_ctx,
-                           const char *cache_dir,
-			   uint32_t flags,
-			   const struct GROUP_POLICY_OBJECT *gpo);
-NTSTATUS check_refresh_gpo_list(ADS_STRUCT *ads,
-				TALLOC_CTX *mem_ctx,
-                                const char *cache_dir,
-				uint32_t flags,
-				const struct GROUP_POLICY_OBJECT *gpo_list);
 NTSTATUS gpo_get_unix_path(TALLOC_CTX *mem_ctx,
                            const char *cache_dir,
 			   const struct GROUP_POLICY_OBJECT *gpo,
diff --git a/libgpo/gpo_fetch.c b/libgpo/gpo_fetch.c
index 3740d4e4b57..31d510db2a2 100644
--- a/libgpo/gpo_fetch.c
+++ b/libgpo/gpo_fetch.c
@@ -82,110 +82,6 @@ NTSTATUS gpo_explode_filesyspath(TALLOC_CTX *mem_ctx,
 	return NT_STATUS_OK;
 }
 
-/****************************************************************
- prepare the local disc storage for "unix_path"
-****************************************************************/
-
-static NTSTATUS gpo_prepare_local_store(TALLOC_CTX *mem_ctx,
-                                        const char *cache_dir,
-					const char *unix_path)
-{
-	char *current_dir;
-	char *tok;
-
-	current_dir = talloc_strdup(mem_ctx, cache_dir);
-	NT_STATUS_HAVE_NO_MEMORY(current_dir);
-
-	if ((mkdir(cache_dir, 0644)) < 0 && errno != EEXIST) {
-		return NT_STATUS_ACCESS_DENIED;
-	}
-
-	while (next_token_talloc(mem_ctx, &unix_path, &tok, "/")) {
-		if (strequal(tok, GPO_CACHE_DIR)) {
-			break;
-		}
-	}
-
-	while (next_token_talloc(mem_ctx, &unix_path, &tok, "/")) {
-		current_dir = talloc_asprintf_append_buffer(current_dir, "/%s", tok);
-		NT_STATUS_HAVE_NO_MEMORY(current_dir);
-
-		if ((mkdir(current_dir, 0644)) < 0 && errno != EEXIST) {
-			return NT_STATUS_ACCESS_DENIED;
-		}
-	}
-
-	return NT_STATUS_OK;
-}
-
-static NTSTATUS gpo_connect_server(ADS_STRUCT *ads,
-                                   const char *server, const char *service, void *ret_cli)
-{
-	NTSTATUS result;
-	struct cli_state *cli;
-
-	result = cli_full_connection(&cli,
-			lp_netbios_name(),
-			server,
-			NULL, 0,
-			service, "A:",
-			ads->auth.user_name, NULL,
-			ads->auth.password,
-			CLI_FULL_CONNECTION_USE_KERBEROS |
-			CLI_FULL_CONNECTION_FALLBACK_AFTER_KERBEROS,
-			SMB_SIGNING_REQUIRED);
-	if (!NT_STATUS_IS_OK(result)) {
-		DEBUG(10,("check_refresh_gpo: "
-				"failed to connect: %s\n",
-				nt_errstr(result)));
-		return result;
-	}
-	*(struct cli_state **) ret_cli = cli;
-	return NT_STATUS_OK;
-}
-
-/****************************************************************
- download a full GPO via CIFS
-****************************************************************/
-
-NTSTATUS gpo_fetch_files(TALLOC_CTX *mem_ctx,
-                         ADS_STRUCT *ads,
-                         const char *cache_dir,
-			 const struct GROUP_POLICY_OBJECT *gpo)
-{
-	NTSTATUS result;
-	char *server, *service, *nt_path, *unix_path;
-	char *nt_ini_path, *unix_ini_path;
-	struct cli_state *cli = NULL;
-
-
-	result = gpo_explode_filesyspath(mem_ctx, cache_dir, gpo->file_sys_path,
-					 &server, &service, &nt_path,
-					 &unix_path);
-	NT_STATUS_NOT_OK_RETURN(result);
-
-	/* for now reuse the existing ds connection */
-
-	result = gpo_connect_server(ads, server, service, &cli);
-	NT_STATUS_NOT_OK_RETURN(result);
-
-	result = gpo_prepare_local_store(mem_ctx, cache_dir, unix_path);
-	NT_STATUS_NOT_OK_RETURN(result);
-
-	unix_ini_path = talloc_asprintf(mem_ctx, "%s/%s", unix_path, GPT_INI);
-	nt_ini_path = talloc_asprintf(mem_ctx, "%s\\%s", nt_path, GPT_INI);
-	NT_STATUS_HAVE_NO_MEMORY(unix_ini_path);
-	NT_STATUS_HAVE_NO_MEMORY(nt_ini_path);
-
-	result = gpo_copy_file(mem_ctx, cli, nt_ini_path, unix_ini_path);
-	NT_STATUS_NOT_OK_RETURN(result);
-
-	result = gpo_sync_directories(mem_ctx, cli, nt_path, unix_path);
-	NT_STATUS_NOT_OK_RETURN(result);
-
-	return NT_STATUS_OK;
-}
-
 /****************************************************************
  get the locally stored gpt.ini version number
 ****************************************************************/
diff --git a/libgpo/gpo_util.c b/libgpo/gpo_util.c
index 6ad5c3b7f2f..c6d35841335 100644
--- a/libgpo/gpo_util.c
+++ b/libgpo/gpo_util.c
@@ -467,127 +467,6 @@ NTSTATUS gpo_process_gpo_list(TALLOC_CTX *mem_ctx,
 	return status;
 }
 
-
-/****************************************************************
- check whether the version number in a GROUP_POLICY_OBJECT match those of the
- locally stored version. If not, fetch the required policy via CIFS
-****************************************************************/
-
-NTSTATUS check_refresh_gpo(ADS_STRUCT *ads,
-			   TALLOC_CTX *mem_ctx,
-                           const char *cache_dir,
-			   uint32_t flags,
-			   const struct GROUP_POLICY_OBJECT *gpo)
-{
-	NTSTATUS result;
-	char *server = NULL;
-	char *share = NULL;
-	char *nt_path = NULL;
-	char *unix_path = NULL;
-	uint32_t sysvol_gpt_version = 0;
-	char *display_name = NULL;
-
-	result = gpo_explode_filesyspath(mem_ctx, cache_dir, gpo->file_sys_path,
-					 &server, &share, &nt_path, &unix_path);
-
-	if (!NT_STATUS_IS_OK(result)) {
-		goto out;
-	}
-
-	result = gpo_get_sysvol_gpt_version(mem_ctx,
-					    unix_path,
-					    &sysvol_gpt_version,
-					    &display_name);
-	if (!NT_STATUS_IS_OK(result) &&
-	    !NT_STATUS_EQUAL(result, NT_STATUS_NO_SUCH_FILE)) {
-		DEBUG(10,("check_refresh_gpo: "
-			"failed to get local gpt version: %s\n",
-			nt_errstr(result)));
-		goto out;
-	}
-
-	DEBUG(10,("check_refresh_gpo: versions gpo %d sysvol %d\n",
-		gpo->version, sysvol_gpt_version));
-
-	/* FIXME: handle GPO_INFO_FLAG_FORCED_REFRESH from flags */
-
-	while (gpo->version > sysvol_gpt_version) {
-
-		DEBUG(1,("check_refresh_gpo: need to refresh GPO\n"));
-
-		result = gpo_fetch_files(mem_ctx, ads, cache_dir, gpo);
-		if (!NT_STATUS_IS_OK(result)) {
-			goto out;
-		}
-
-		result = gpo_get_sysvol_gpt_version(mem_ctx,
-						    unix_path,
-						    &sysvol_gpt_version,
-						    &display_name);
-		if (!NT_STATUS_IS_OK(result)) {
-			DEBUG(10,("check_refresh_gpo: "
-				"failed to get local gpt version: %s\n",
-				nt_errstr(result)));
-			goto out;
-		}
-
-		if (gpo->version == sysvol_gpt_version) {
-			break;
-		}
-	}
-
-	DEBUG(10,("Name:\t\t\t%s (%s)\n", gpo->display_name, gpo->name));
-	DEBUGADD(10,("sysvol GPT version:\t%d (user: %d, machine: %d)\n",
-		sysvol_gpt_version,
-		GPO_VERSION_USER(sysvol_gpt_version),
-		GPO_VERSION_MACHINE(sysvol_gpt_version)));
-	DEBUGADD(10,("LDAP GPO version:\t%d (user: %d, machine: %d)\n",
-		gpo->version,
-		GPO_VERSION_USER(gpo->version),
-		GPO_VERSION_MACHINE(gpo->version)));
-	DEBUGADD(10,("LDAP GPO link:\t\t%s\n", gpo->link));
-
-	result = NT_STATUS_OK;
-
- out:
-	return result;
-
-}
-
-/****************************************************************
- check whether the version numbers in the gpo_list match the locally stored, if
- not, go and get each required GPO via CIFS
- ****************************************************************/
-
-NTSTATUS check_refresh_gpo_list(ADS_STRUCT *ads,
-				TALLOC_CTX *mem_ctx,
-				const char *cache_dir,
-				uint32_t flags,
-				const struct GROUP_POLICY_OBJECT *gpo_list)
-{
-	NTSTATUS result = NT_STATUS_UNSUCCESSFUL;
-	const struct GROUP_POLICY_OBJECT *gpo;
-
-	if (!gpo_list) {
-		return NT_STATUS_INVALID_PARAMETER;
-	}
-
-	for (gpo = gpo_list; gpo; gpo = gpo->next) {
-
-		result = check_refresh_gpo(ads, mem_ctx, cache_dir, flags, gpo);
-		if (!NT_STATUS_IS_OK(result)) {
-			goto out;
-		}
-	}
-
-	result = NT_STATUS_OK;
-
- out:
-	/* FIXME close cli connection */
-
-	return result;
-}
-
 /****************************************************************
 ****************************************************************/
 
diff --git a/source3/utils/net_ads_gpo.c b/source3/utils/net_ads_gpo.c
index 4a2d19a4ba5..1c6508bc653 100644
--- a/source3/utils/net_ads_gpo.c
+++ b/source3/utils/net_ads_gpo.c
@@ -26,147 +26,6 @@
 
 #ifdef HAVE_ADS
 
-static int net_ads_gpo_refresh(struct net_context *c, int argc, const char **argv)
-{
-	TALLOC_CTX *mem_ctx;
-	ADS_STRUCT *ads;
-	ADS_STATUS status;
-	const char *dn = NULL;
-	struct GROUP_POLICY_OBJECT *gpo_list = NULL;
-	struct GROUP_POLICY_OBJECT *read_list = NULL;
-	uint32_t uac = 0;
-	uint32_t flags = 0;
-	struct GROUP_POLICY_OBJECT *gpo;
-	NTSTATUS result;
-	struct security_token *token = NULL;
-	char *gpo_cache_path;
-
-	if (argc < 1 || c->display_usage) {
-		d_printf("%s\n%s\n%s",
-			 _("Usage:"),
-			 _("net ads gpo refresh <username|machinename>"),
-			 _("  Lists all GPOs assigned to an account and "
-			   "downloads them\n"
-			   "    username\tUser to refresh GPOs for\n"
-			   "    machinename\tMachine to refresh GPOs for\n"));
-		return -1;
-	}
-
-	mem_ctx = talloc_init("net_ads_gpo_refresh");
-	if (mem_ctx == NULL) {
-		return -1;
-	}
-
-	status = ads_startup(c, false, &ads);
-	if (!ADS_ERR_OK(status)) {
-		d_printf(_("failed to connect AD server: %s\n"), ads_errstr(status));
-		goto out;
-	}
-
-	status = ads_find_samaccount(ads, mem_ctx, argv[0], &uac, &dn);
-	if (!ADS_ERR_OK(status)) {
-		d_printf(_("failed to find samaccount for %s\n"), argv[0]);
-		goto out;
-	}
-
-	if (uac & UF_WORKSTATION_TRUST_ACCOUNT) {
-		flags |= GPO_LIST_FLAG_MACHINE;
-	}
-
-	d_printf(_("\n%s: '%s' has dn: '%s'\n\n"),
-		(uac & UF_WORKSTATION_TRUST_ACCOUNT) ? _("machine") : _("user"),
-		argv[0], dn);
-
-	d_printf(_("* fetching token "));
-	if (uac & UF_WORKSTATION_TRUST_ACCOUNT) {
-		status = gp_get_machine_token(ads, mem_ctx, dn, &token);
-	} else {
-		status = ads_get_sid_token(ads, mem_ctx, dn, &token);
-	}
-
-	if (!ADS_ERR_OK(status)) {
-		d_printf(_("failed: %s\n"), ads_errstr(status));
-		goto out;
-	}
-	d_printf(_("finished\n"));
-
-	d_printf(_("* fetching GPO List "));
-	status = ads_get_gpo_list(ads, mem_ctx, dn, flags, token, &gpo_list);
-	if (!ADS_ERR_OK(status)) {
-		d_printf(_("failed: %s\n"),
-			 ads_errstr(status));
-		goto out;
-	}
-	d_printf(_("finished\n"));
-
-	d_printf(_("* Refreshing Group Policy Data "));
-	gpo_cache_path = cache_path(talloc_tos(), GPO_CACHE_DIR);
-	if (gpo_cache_path == NULL) {
-		d_printf(_("failed: %s\n"), nt_errstr(NT_STATUS_NO_MEMORY));
-		goto out;
-	}
-	result = check_refresh_gpo_list(ads, mem_ctx,
-					gpo_cache_path,
-					flags,
-					gpo_list);
-	TALLOC_FREE(gpo_cache_path);
-	if (!NT_STATUS_IS_OK(result)) {
-		d_printf(_("failed: %s\n"), nt_errstr(result));
-		goto out;
-	}
-	d_printf(_("finished\n"));
-
-	d_printf(_("* storing GPO list to registry "));
-
-	{
-		WERROR werr = gp_reg_state_store(mem_ctx, flags, dn,
-						 token, gpo_list);
-		if (!W_ERROR_IS_OK(werr)) {
-			d_printf(_("failed: %s\n"), win_errstr(werr));
-			goto out;
-		}
-	}
-
-	d_printf(_("finished\n"));
-
-	if (c->opt_verbose) {
-
-		d_printf(_("* dumping GPO list\n"));
-
-		for (gpo = gpo_list; gpo; gpo = gpo->next) {
-			dump_gpo(gpo, 0);
-		}
-	}
-
-	d_printf(_("* re-reading GPO list from registry "));
-
-	{
-		WERROR werr = gp_reg_state_read(mem_ctx, flags,
-						&token->sids[0],
-						&read_list);
-		if (!W_ERROR_IS_OK(werr)) {
-			d_printf(_("failed: %s\n"), win_errstr(werr));
-			goto out;
-		}
-	}
-
-	d_printf(_("finished\n"));
-
-	if (c->opt_verbose) {
-
-		d_printf(_("* dumping GPO list from registry\n"));
-
-		for (gpo = read_list; gpo; gpo = gpo->next) {
-			dump_gpo(gpo, 0);
-		}
-	}
-
- out:
-	ads_destroy(&ads);
-	talloc_destroy(mem_ctx);
-	return 0;
-}
-
 static int net_ads_gpo_list_all(struct net_context *c, int argc, const char **argv)
 {
 	ADS_STRUCT *ads;
@@ -324,92 +183,6 @@ out:
 	return 0;
 }
 
-static int net_ads_gpo_apply(struct net_context *c, int argc, const char **argv)
-{
-	TALLOC_CTX *mem_ctx;
-	ADS_STRUCT *ads;
-	ADS_STATUS status;
-	const char *dn = NULL;
-	struct GROUP_POLICY_OBJECT *gpo_list;
-	uint32_t uac = 0;
-	uint32_t flags = 0;
-	struct security_token *token = NULL;
-	const char *filter = NULL;
-
-	if (argc < 1 || c->display_usage) {
-		d_printf("Usage:\n"
-			 "net ads gpo apply <username|machinename>\n"
-			 "  Apply GPOs for machine/user\n"
-			 "    username\tUsername to apply GPOs for\n"
-			 "    machinename\tMachine to apply GPOs for\n");
-		return -1;
-	}
-
-	mem_ctx = talloc_init("net_ads_gpo_apply");
-	if (mem_ctx == NULL) {
-		goto out;
-	}
-
-	if (argc >= 2) {
-		filter = cse_gpo_name_to_guid_string(argv[1]);
-	}
-
-	status = ads_startup(c, false, &ads);
-	/* filter = cse_gpo_name_to_guid_string("Security"); */
-
-	if (!ADS_ERR_OK(status)) {
-		d_printf("got: %s\n", ads_errstr(status));
-		goto out;
-	}
-
-	status = ads_find_samaccount(ads, mem_ctx, argv[0], &uac, &dn);
-	if (!ADS_ERR_OK(status)) {
-		d_printf("failed to find samaccount for %s: %s\n",
-			argv[0], ads_errstr(status));
-		goto out;
-	}
-
-	if (uac & UF_WORKSTATION_TRUST_ACCOUNT) {
-		flags |= GPO_LIST_FLAG_MACHINE;
-	}
-
-	if (c->opt_verbose) {
-		flags |= GPO_INFO_FLAG_VERBOSE;
-	}
-
-	d_printf("%s: '%s' has dn: '%s'\n",
-		(uac & UF_WORKSTATION_TRUST_ACCOUNT) ? "machine" : "user",
-		argv[0], dn);
-
-	if (uac & UF_WORKSTATION_TRUST_ACCOUNT) {
-		status = gp_get_machine_token(ads, mem_ctx, dn, &token);
-	} else {
-		status = ads_get_sid_token(ads, mem_ctx, dn, &token);
-	}
-
-	if (!ADS_ERR_OK(status)) {
-		goto out;


-- 
Samba Shared Repository



More information about the samba-cvs mailing list