- install Samba-specific headers in $INCLUDEDIR/samba-4.0. talloc.h, tdb.h and
ldb.h belong in $INCLUDEDIR
- add register function to smbtorture
-- init functions per shared library / binary
- - gensec, com
- - rpc/ndr ??
- - list not automatically generated
- - utility function for 'init mutex'
- install shared modules
- improve (un)install scripts (rewrite in perl?)
- proper #include dependencies
+- determine dependencies from #include lines ?
@$(PERL) librpc/tables.pl --output=librpc/gen_ndr/tables.c \
librpc/gen_ndr/ndr_*.h
+[SUBSYSTEM::NDR_IFACE_TABLE]
+OBJ_FILES = gen_ndr/tables.o
+NOPROTO = YES
+
[SUBSYSTEM::NDR_ALL]
-OBJ_FILES = rpc/table.o gen_ndr/tables.o
+OBJ_FILES = rpc/table.o
PRIVATE_PROTO_HEADER = rpc/dcerpc_table.h
-REQUIRED_SUBSYSTEMS = NDR_AUDIOSRV NDR_ECHO NDR_DCERPC NDR_EXCHANGE \
+REQUIRED_SUBSYSTEMS = NDR_IFACE_TABLE 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 \
}
+NTSTATUS dcerpc_register_builtin_interfaces();
+
+NTSTATUS dcerpc_table_init(void)
+{
+ static BOOL initialized = False;
+
+ if (initialized) return NT_STATUS_OK;
+ initialized = True;
+
+ dcerpc_register_builtin_interfaces();
+
+ return NT_STATUS_OK;
+}
while (my $line = <FILE>) {
if ($line =~ /extern const struct dcerpc_interface_table (\w+);/) {
$found = 1;
- $init_fns.="\tlibrpc_register_interface(&$1);\n";
+ $init_fns.="\tstatus = librpc_register_interface(&$1);\n";
+ $init_fns.="\tif (NT_STATUS_IS_ERR(status)) return status;\n\n";
}
}
print TABLEC <<EOF;
-NTSTATUS dcerpc_table_init(void)
+NTSTATUS dcerpc_register_builtin_interfaces(void)
{
- static BOOL initialized = False;
-
- if (initialized) return NT_STATUS_OK;
- initialized = True;
+ NTSTATUS status;
$init_fns