diff options
author | Günther Deschner <gd@samba.org> | 2008-07-17 22:44:24 +0200 |
---|---|---|
committer | Günther Deschner <gd@samba.org> | 2008-07-18 17:29:28 +0200 |
commit | c703304f557021c78ba0ad24e9b2e7b42147b8fd (patch) | |
tree | ed21a9304eebc1414626ae390f992988b78f5771 /source3/lib/netapi/localgroup.c | |
parent | 6565087b7313b4ebaa1cc6df8ff888f3fd49ecf6 (diff) | |
download | samba-c703304f557021c78ba0ad24e9b2e7b42147b8fd.tar.gz samba-c703304f557021c78ba0ad24e9b2e7b42147b8fd.tar.bz2 samba-c703304f557021c78ba0ad24e9b2e7b42147b8fd.zip |
netapi: add caching of samr policy handles.
Guenther
(This used to be commit bf8453da9af1be788955204cc581c5143a854072)
Diffstat (limited to 'source3/lib/netapi/localgroup.c')
-rw-r--r-- | source3/lib/netapi/localgroup.c | 88 |
1 files changed, 46 insertions, 42 deletions
diff --git a/source3/lib/netapi/localgroup.c b/source3/lib/netapi/localgroup.c index 2c1e9dfc4c..faf57cc5fa 100644 --- a/source3/lib/netapi/localgroup.c +++ b/source3/lib/netapi/localgroup.c @@ -187,7 +187,9 @@ WERROR NetLocalGroupAdd_r(struct libnetapi_ctx *ctx, SAMR_ALIAS_ACCESS_LOOKUP_INFO, &alias_handle); - rpccli_samr_Close(pipe_cli, ctx, &builtin_handle); + if (ctx->disable_policy_handle_cache) { + libnetapi_samr_close_builtin_handle(ctx, &builtin_handle); + } if (W_ERROR_IS_OK(werr)) { werr = WERR_ALIAS_EXISTS; @@ -244,14 +246,11 @@ WERROR NetLocalGroupAdd_r(struct libnetapi_ctx *ctx, if (is_valid_policy_hnd(&alias_handle)) { rpccli_samr_Close(pipe_cli, ctx, &alias_handle); } - if (is_valid_policy_hnd(&domain_handle)) { - rpccli_samr_Close(pipe_cli, ctx, &domain_handle); - } - if (is_valid_policy_hnd(&builtin_handle)) { - rpccli_samr_Close(pipe_cli, ctx, &builtin_handle); - } - if (is_valid_policy_hnd(&connect_handle)) { - rpccli_samr_Close(pipe_cli, ctx, &connect_handle); + + if (ctx->disable_policy_handle_cache) { + libnetapi_samr_close_domain_handle(ctx, &domain_handle); + libnetapi_samr_close_builtin_handle(ctx, &builtin_handle); + libnetapi_samr_close_connect_handle(ctx, &connect_handle); } return werr; @@ -315,7 +314,9 @@ WERROR NetLocalGroupDel_r(struct libnetapi_ctx *ctx, SEC_STD_DELETE, &alias_handle); - rpccli_samr_Close(pipe_cli, ctx, &builtin_handle); + if (ctx->disable_policy_handle_cache) { + libnetapi_samr_close_builtin_handle(ctx, &builtin_handle); + } if (W_ERROR_IS_OK(werr)) { goto delete_alias; @@ -339,7 +340,9 @@ WERROR NetLocalGroupDel_r(struct libnetapi_ctx *ctx, SEC_STD_DELETE, &alias_handle); - rpccli_samr_Close(pipe_cli, ctx, &domain_handle); + if (ctx->disable_policy_handle_cache) { + libnetapi_samr_close_domain_handle(ctx, &domain_handle); + } if (!W_ERROR_IS_OK(werr)) { goto done; @@ -366,14 +369,11 @@ WERROR NetLocalGroupDel_r(struct libnetapi_ctx *ctx, if (is_valid_policy_hnd(&alias_handle)) { rpccli_samr_Close(pipe_cli, ctx, &alias_handle); } - if (is_valid_policy_hnd(&domain_handle)) { - rpccli_samr_Close(pipe_cli, ctx, &domain_handle); - } - if (is_valid_policy_hnd(&builtin_handle)) { - rpccli_samr_Close(pipe_cli, ctx, &builtin_handle); - } - if (is_valid_policy_hnd(&connect_handle)) { - rpccli_samr_Close(pipe_cli, ctx, &connect_handle); + + if (ctx->disable_policy_handle_cache) { + libnetapi_samr_close_domain_handle(ctx, &domain_handle); + libnetapi_samr_close_builtin_handle(ctx, &builtin_handle); + libnetapi_samr_close_connect_handle(ctx, &connect_handle); } return werr; @@ -493,7 +493,9 @@ WERROR NetLocalGroupGetInfo_r(struct libnetapi_ctx *ctx, SAMR_ALIAS_ACCESS_LOOKUP_INFO, &alias_handle); - rpccli_samr_Close(pipe_cli, ctx, &builtin_handle); + if (ctx->disable_policy_handle_cache) { + libnetapi_samr_close_builtin_handle(ctx, &builtin_handle); + } if (W_ERROR_IS_OK(werr)) { goto query_alias; @@ -517,7 +519,9 @@ WERROR NetLocalGroupGetInfo_r(struct libnetapi_ctx *ctx, SAMR_ALIAS_ACCESS_LOOKUP_INFO, &alias_handle); - rpccli_samr_Close(pipe_cli, ctx, &domain_handle); + if (ctx->disable_policy_handle_cache) { + libnetapi_samr_close_domain_handle(ctx, &domain_handle); + } if (!W_ERROR_IS_OK(werr)) { goto done; @@ -547,14 +551,11 @@ WERROR NetLocalGroupGetInfo_r(struct libnetapi_ctx *ctx, if (is_valid_policy_hnd(&alias_handle)) { rpccli_samr_Close(pipe_cli, ctx, &alias_handle); } - if (is_valid_policy_hnd(&domain_handle)) { - rpccli_samr_Close(pipe_cli, ctx, &domain_handle); - } - if (is_valid_policy_hnd(&builtin_handle)) { - rpccli_samr_Close(pipe_cli, ctx, &builtin_handle); - } - if (is_valid_policy_hnd(&connect_handle)) { - rpccli_samr_Close(pipe_cli, ctx, &connect_handle); + + if (ctx->disable_policy_handle_cache) { + libnetapi_samr_close_domain_handle(ctx, &domain_handle); + libnetapi_samr_close_builtin_handle(ctx, &builtin_handle); + libnetapi_samr_close_connect_handle(ctx, &connect_handle); } return werr; @@ -672,7 +673,9 @@ WERROR NetLocalGroupSetInfo_r(struct libnetapi_ctx *ctx, SAMR_ALIAS_ACCESS_SET_INFO, &alias_handle); - rpccli_samr_Close(pipe_cli, ctx, &builtin_handle); + if (ctx->disable_policy_handle_cache) { + libnetapi_samr_close_builtin_handle(ctx, &builtin_handle); + } if (W_ERROR_IS_OK(werr)) { goto set_alias; @@ -698,7 +701,9 @@ WERROR NetLocalGroupSetInfo_r(struct libnetapi_ctx *ctx, goto done; } - rpccli_samr_Close(pipe_cli, ctx, &domain_handle); + if (ctx->disable_policy_handle_cache) { + libnetapi_samr_close_domain_handle(ctx, &domain_handle); + } set_alias: @@ -727,14 +732,11 @@ WERROR NetLocalGroupSetInfo_r(struct libnetapi_ctx *ctx, if (is_valid_policy_hnd(&alias_handle)) { rpccli_samr_Close(pipe_cli, ctx, &alias_handle); } - if (is_valid_policy_hnd(&domain_handle)) { - rpccli_samr_Close(pipe_cli, ctx, &domain_handle); - } - if (is_valid_policy_hnd(&builtin_handle)) { - rpccli_samr_Close(pipe_cli, ctx, &builtin_handle); - } - if (is_valid_policy_hnd(&connect_handle)) { - rpccli_samr_Close(pipe_cli, ctx, &connect_handle); + + if (ctx->disable_policy_handle_cache) { + libnetapi_samr_close_domain_handle(ctx, &domain_handle); + libnetapi_samr_close_builtin_handle(ctx, &builtin_handle); + libnetapi_samr_close_connect_handle(ctx, &connect_handle); } return werr; @@ -915,9 +917,11 @@ WERROR NetLocalGroupEnum_r(struct libnetapi_ctx *ctx, return werr; } - libnetapi_samr_close_domain_handle(ctx, &domain_handle); - libnetapi_samr_close_builtin_handle(ctx, &builtin_handle); - libnetapi_samr_close_connect_handle(ctx, &connect_handle); + if (ctx->disable_policy_handle_cache) { + libnetapi_samr_close_domain_handle(ctx, &domain_handle); + libnetapi_samr_close_builtin_handle(ctx, &builtin_handle); + libnetapi_samr_close_connect_handle(ctx, &connect_handle); + } return werr; } |