summaryrefslogtreecommitdiff
path: root/source4/libnet/libnet_domain.c
diff options
context:
space:
mode:
authorRafal Szczesniak <mimir@samba.org>2007-07-18 21:24:37 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 15:01:11 -0500
commit0d80514173fad381a5ccd9d52cbc7b735bfd2d35 (patch)
tree5b2b8c521da041f142999f75e9385998ed36dd33 /source4/libnet/libnet_domain.c
parent5fa17c14a5f58312b63445636a904cbf79d10f21 (diff)
downloadsamba-0d80514173fad381a5ccd9d52cbc7b735bfd2d35.tar.gz
samba-0d80514173fad381a5ccd9d52cbc7b735bfd2d35.tar.bz2
samba-0d80514173fad381a5ccd9d52cbc7b735bfd2d35.zip
r23959: add more monitor messages support that's been sitting around on my
laptop for a while. rafal (This used to be commit c257363adbc2e8ab577bb86a5b4dbef3caf802ef)
Diffstat (limited to 'source4/libnet/libnet_domain.c')
-rw-r--r--source4/libnet/libnet_domain.c47
1 files changed, 43 insertions, 4 deletions
diff --git a/source4/libnet/libnet_domain.c b/source4/libnet/libnet_domain.c
index 989a4ecf5c..d2be697055 100644
--- a/source4/libnet/libnet_domain.c
+++ b/source4/libnet/libnet_domain.c
@@ -1,4 +1,4 @@
- /*
+/*
Unix SMB/CIFS implementation.
Copyright (C) Rafal Szczesniak 2005
@@ -100,6 +100,15 @@ static void continue_domain_open_close(struct rpc_request *req)
c->status = dcerpc_ndr_request_recv(req);
if (!composite_is_ok(c)) return;
+ if (s->monitor_fn) {
+ struct monitor_msg msg;
+
+ msg.type = rpc_close;
+ msg.data = NULL;
+ msg.data_size = 0;
+ s->monitor_fn(&msg);
+ }
+
/* reset domain handle and associated data in libnet_context */
s->ctx->samr.name = NULL;
s->ctx->samr.access_mask = 0;
@@ -136,6 +145,15 @@ static void continue_domain_open_connect(struct rpc_request *req)
c->status = dcerpc_ndr_request_recv(req);
if (!composite_is_ok(c)) return;
+ if (s->monitor_fn) {
+ struct monitor_msg msg;
+
+ msg.type = rpc_connect;
+ msg.data = NULL;
+ msg.data_size = 0;
+ s->monitor_fn(&msg);
+ }
+
r = &s->lookup;
/* prepare for samr_LookupDomain call */
@@ -165,6 +183,18 @@ static void continue_domain_open_lookup(struct rpc_request *req)
/* receive samr_LookupDomain reply */
c->status = dcerpc_ndr_request_recv(req);
+ if (s->monitor_fn) {
+ struct monitor_msg msg;
+ struct msg_rpc_lookup_domain data;
+
+ data.domain_name = s->domain_name.string;
+
+ msg.type = rpc_lookup_domain;
+ msg.data = (void*)&data;
+ msg.data_size = sizeof(data);
+ s->monitor_fn(&msg);
+ }
+
r = &s->open;
/* check the rpc layer status */
@@ -204,6 +234,15 @@ static void continue_domain_open_open(struct rpc_request *req)
c->status = dcerpc_ndr_request_recv(req);
if (!composite_is_ok(c)) return;
+ if (s->monitor_fn) {
+ struct monitor_msg msg;
+
+ msg.type = rpc_open_domain;
+ msg.data = NULL;
+ msg.data_size = 0;
+ s->monitor_fn(&msg);
+ }
+
composite_done(c);
}
@@ -248,7 +287,7 @@ struct composite_context *libnet_DomainOpenSamr_send(struct libnet_context *ctx,
s->rpcconn.in.dcerpc_iface = &dcerpc_table_samr;
/* send rpc pipe connect request */
- rpcconn_req = libnet_RpcConnect_send(ctx, c, &s->rpcconn);
+ rpcconn_req = libnet_RpcConnect_send(ctx, c, &s->rpcconn, s->monitor_fn);
if (composite_nomem(rpcconn_req, c)) return c;
composite_continue(c, rpcconn_req, continue_domain_open_rpc_connect, c);
@@ -389,7 +428,7 @@ struct composite_context* libnet_DomainOpenLsa_send(struct libnet_context *ctx,
s->rpcconn.in.dcerpc_iface = &dcerpc_table_lsarpc;
/* send rpc pipe connect request */
- rpcconn_req = libnet_RpcConnect_send(ctx, c, &s->rpcconn);
+ rpcconn_req = libnet_RpcConnect_send(ctx, c, &s->rpcconn, s->monitor_fn);
if (composite_nomem(rpcconn_req, c)) return c;
composite_continue(c, rpcconn_req, continue_rpc_connect_lsa, c);
@@ -1079,7 +1118,7 @@ struct composite_context* libnet_DomainList_send(struct libnet_context *ctx,
s->rpcconn.in.name = s->hostname;
s->rpcconn.in.dcerpc_iface = &dcerpc_table_samr;
- rpcconn_req = libnet_RpcConnect_send(ctx, c, &s->rpcconn);
+ rpcconn_req = libnet_RpcConnect_send(ctx, c, &s->rpcconn, s->monitor_fn);
if (composite_nomem(rpcconn_req, c)) return c;
composite_continue(c, rpcconn_req, continue_rpc_connect, c);