summaryrefslogtreecommitdiff
path: root/source3/lib
diff options
context:
space:
mode:
authorVolker Lendecke <vl@samba.org>2010-09-21 15:41:23 -0700
committerKarolin Seeger <kseeger@samba.org>2010-09-27 21:29:04 +0200
commit5764e042af1d62c158d850d5918162f576accc32 (patch)
tree8bec66fed27c5287ad9a1c2db894c4fd750b373a /source3/lib
parent72b1f4f4d3db0b84bb9b87e97fb3bfe97ecb7f11 (diff)
downloadsamba-5764e042af1d62c158d850d5918162f576accc32.tar.gz
s3: Remove a global variable in bugfix for bug 7665
(cherry picked from commit cf364274cbae996fbe186b2c2792b212f189e26a)
Diffstat (limited to 'source3/lib')
-rw-r--r--source3/lib/netapi/cm.c17
-rw-r--r--source3/lib/netapi/netapi_private.h1
2 files changed, 11 insertions, 7 deletions
diff --git a/source3/lib/netapi/cm.c b/source3/lib/netapi/cm.c
index cb86181e261..97a5968ee37 100644
--- a/source3/lib/netapi/cm.c
+++ b/source3/lib/netapi/cm.c
@@ -36,16 +36,15 @@ struct client_pipe_connection {
struct rpc_pipe_client *pipe;
};
-static struct client_ipc_connection *ipc_connections = NULL;
-
/********************************************************************
********************************************************************/
-static struct client_ipc_connection *ipc_cm_find(const char *server_name)
+static struct client_ipc_connection *ipc_cm_find(
+ struct libnetapi_private_ctx *priv_ctx, const char *server_name)
{
struct client_ipc_connection *p;
- for (p = ipc_connections; p; p = p->next) {
+ for (p = priv_ctx->ipc_connections; p; p = p->next) {
if (strequal(p->cli->desthost, server_name)) {
return p;
}
@@ -61,6 +60,8 @@ static WERROR libnetapi_open_ipc_connection(struct libnetapi_ctx *ctx,
const char *server_name,
struct client_ipc_connection **pp)
{
+ struct libnetapi_private_ctx *priv_ctx =
+ (struct libnetapi_private_ctx *)ctx->private_data;
struct user_auth_info *auth_info = NULL;
struct cli_state *cli_ipc = NULL;
struct client_ipc_connection *p;
@@ -69,7 +70,7 @@ static WERROR libnetapi_open_ipc_connection(struct libnetapi_ctx *ctx,
return WERR_INVALID_PARAM;
}
- p = ipc_cm_find(server_name);
+ p = ipc_cm_find(priv_ctx, server_name);
if (p) {
*pp = p;
return WERR_OK;
@@ -123,7 +124,7 @@ static WERROR libnetapi_open_ipc_connection(struct libnetapi_ctx *ctx,
}
p->cli = cli_ipc;
- DLIST_ADD(ipc_connections, p);
+ DLIST_ADD(priv_ctx->ipc_connections, p);
*pp = p;
@@ -135,9 +136,11 @@ static WERROR libnetapi_open_ipc_connection(struct libnetapi_ctx *ctx,
WERROR libnetapi_shutdown_cm(struct libnetapi_ctx *ctx)
{
+ struct libnetapi_private_ctx *priv_ctx =
+ (struct libnetapi_private_ctx *)ctx->private_data;
struct client_ipc_connection *p;
- for (p = ipc_connections; p; p = p->next) {
+ for (p = priv_ctx->ipc_connections; p; p = p->next) {
cli_shutdown(p->cli);
}
diff --git a/source3/lib/netapi/netapi_private.h b/source3/lib/netapi/netapi_private.h
index effe2eb9a07..d0f7756d162 100644
--- a/source3/lib/netapi/netapi_private.h
+++ b/source3/lib/netapi/netapi_private.h
@@ -43,6 +43,7 @@ struct libnetapi_private_ctx {
struct policy_handle builtin_handle;
} samr;
+ struct client_ipc_connection *ipc_connections;
};
NET_API_STATUS libnetapi_get_password(struct libnetapi_ctx *ctx, char **password);