summaryrefslogtreecommitdiff
path: root/source4/librpc
diff options
context:
space:
mode:
Diffstat (limited to 'source4/librpc')
-rw-r--r--source4/librpc/config.mk9
-rw-r--r--source4/librpc/rpc/dcerpc.c7
-rw-r--r--source4/librpc/tables.pl5
3 files changed, 14 insertions, 7 deletions
diff --git a/source4/librpc/config.mk b/source4/librpc/config.mk
index 06254a6748..03367bdf17 100644
--- a/source4/librpc/config.mk
+++ b/source4/librpc/config.mk
@@ -302,14 +302,9 @@ librpc/gen_ndr/tables.c: librpc/gen_ndr/ndr_*.h
@$(PERL) librpc/tables.pl --output=librpc/gen_ndr/tables.c \
librpc/gen_ndr/ndr_*.h
-[SUBSYSTEM::NDR_IFACE_TABLE]
-NOPROTO = YES
-OBJ_FILES = gen_ndr/tables.o
-
[SUBSYSTEM::NDR_ALL]
-INIT_FUNCTION = dcerpc_table_init
-OBJ_FILES = rpc/table.o
-REQUIRED_SUBSYSTEMS = NDR_IFACE_TABLE NDR_AUDIOSRV NDR_ECHO NDR_DCERPC NDR_EXCHANGE \
+OBJ_FILES = rpc/table.o gen_ndr/tables.o
+REQUIRED_SUBSYSTEMS = NDR_AUDIOSRV NDR_ECHO NDR_DCERPC NDR_EXCHANGE \
NDR_DSBACKUP NDR_EFS NDR_MISC NDR_LSA NDR_DFS NDR_DRSUAPI \
NDR_POLICYAGENT NDR_UNIXINFO NDR_SAMR NDR_SPOOLSS NDR_WKSSVC NDR_SRVSVC NDR_ATSVC \
NDR_EVENTLOG NDR_EPMAPPER NDR_DBGIDL NDR_DSSETUP NDR_MSGSVC NDR_WINS \
diff --git a/source4/librpc/rpc/dcerpc.c b/source4/librpc/rpc/dcerpc.c
index df71be7651..0269eb9919 100644
--- a/source4/librpc/rpc/dcerpc.c
+++ b/source4/librpc/rpc/dcerpc.c
@@ -29,6 +29,13 @@
#include "libcli/composite/composite.h"
#include "auth/gensec/gensec.h"
+NTSTATUS dcerpc_init(void)
+{
+ gensec_init();
+
+ return NT_STATUS_OK;
+}
+
static void dcerpc_ship_next_request(struct dcerpc_connection *c);
/* destroy a dcerpc connection */
diff --git a/source4/librpc/tables.pl b/source4/librpc/tables.pl
index 5757dc000a..7ef1dbd14a 100644
--- a/source4/librpc/tables.pl
+++ b/source4/librpc/tables.pl
@@ -82,6 +82,11 @@ print TABLEC <<EOF;
NTSTATUS dcerpc_table_init(void)
{
+ static BOOL initialized = False;
+
+ if (initialized) return NT_STATUS_OK;
+ initialized = True;
+
$init_fns
return NT_STATUS_OK;