summaryrefslogtreecommitdiffstats
path: root/source4/rpc_server/dcom/oxidresolver.c
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2004-11-02 14:52:45 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 13:05:21 -0500
commit5f6ec5270df147f1bd534a25f86866831aa816e8 (patch)
treeffc493c26fcedd299ec69f6a27a2d3678ebd03a9 /source4/rpc_server/dcom/oxidresolver.c
parenta2fd2488c79902dfe1de764bea4f619ec6107fed (diff)
downloadsamba-5f6ec5270df147f1bd534a25f86866831aa816e8.tar.gz
samba-5f6ec5270df147f1bd534a25f86866831aa816e8.tar.xz
samba-5f6ec5270df147f1bd534a25f86866831aa816e8.zip
r3486: Add RemoteActivation server
(This used to be commit 0987a5fdd6425a85823f57fe5b596bb6c404bce8)
Diffstat (limited to 'source4/rpc_server/dcom/oxidresolver.c')
-rw-r--r--source4/rpc_server/dcom/oxidresolver.c30
1 files changed, 28 insertions, 2 deletions
diff --git a/source4/rpc_server/dcom/oxidresolver.c b/source4/rpc_server/dcom/oxidresolver.c
index 2ccf136cadb..76fa6a760ee 100644
--- a/source4/rpc_server/dcom/oxidresolver.c
+++ b/source4/rpc_server/dcom/oxidresolver.c
@@ -24,6 +24,24 @@
#include "librpc/gen_ndr/ndr_oxidresolver.h"
#include "rpc_server/dcerpc_server.h"
+struct OXIDObject
+{
+ struct GUID OID;
+};
+
+struct PingSet
+{
+ HYPER_T id;
+ struct OXIDObject *objects;
+ struct PingSet *prev, *next;
+};
+
+/* Maximum number of missed ping calls before a client is presumed
+ * gone */
+#define MAX_MISSED_PINGS 3
+
+/* Maximum number of seconds between two ping calls */
+#define MAX_PING_TIME 60
/*
ResolveOxid
@@ -44,13 +62,18 @@ static WERROR SimplePing(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx
return WERR_NOT_SUPPORTED;
}
-
/*
ComplexPing
*/
static WERROR ComplexPing(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
struct ComplexPing *r)
{
+ struct PingSet *ps;
+
+ /* If r->in.SetId == 0, create new PingSet */
+
+ /* Otherwise, look up pingset by id */
+
return WERR_NOT_SUPPORTED;
}
@@ -61,7 +84,7 @@ static WERROR ComplexPing(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ct
static WERROR ServerAlive(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
struct ServerAlive *r)
{
- return WERR_NOT_SUPPORTED;
+ return WERR_OK;
}
@@ -84,6 +107,9 @@ static WERROR ServerAlive2(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_c
return WERR_NOT_SUPPORTED;
}
+/* FIXME: Regularly ping objects in use by local programs on
+ * remote servers */
+
/* include the generated boilerplate */
#include "librpc/gen_ndr/ndr_oxidresolver_s.c"