summaryrefslogtreecommitdiff
path: root/source4/librpc
diff options
context:
space:
mode:
Diffstat (limited to 'source4/librpc')
-rw-r--r--source4/librpc/config.mk31
-rw-r--r--source4/librpc/dcerpc_atsvc.pc.in11
-rw-r--r--source4/librpc/idl/audiosrv.idl30
-rw-r--r--source4/librpc/idl/browser.idl24
-rw-r--r--source4/librpc/idl/dfs.idl14
-rw-r--r--source4/librpc/idl/drsblobs.idl2
-rw-r--r--source4/librpc/idl/drsuapi.idl26
-rw-r--r--source4/librpc/idl/dsbackup.idl34
-rw-r--r--source4/librpc/idl/dssetup.idl20
-rw-r--r--source4/librpc/idl/efs.idl14
-rw-r--r--source4/librpc/idl/epmapper.idl2
-rw-r--r--source4/librpc/idl/eventlog.idl36
-rw-r--r--source4/librpc/idl/frsapi.idl12
-rw-r--r--source4/librpc/idl/frsrpc.idl20
-rw-r--r--source4/librpc/idl/irpc.idl2
-rw-r--r--source4/librpc/idl/lsa.idl70
-rw-r--r--source4/librpc/idl/msgsvc.idl10
-rw-r--r--source4/librpc/idl/nbt.idl4
-rw-r--r--source4/librpc/idl/netlogon.idl16
-rw-r--r--source4/librpc/idl/ntsvcs.idl130
-rw-r--r--source4/librpc/idl/oxidresolver.idl2
-rw-r--r--source4/librpc/idl/remact.idl2
-rw-r--r--source4/librpc/idl/spoolss.idl104
-rw-r--r--source4/librpc/idl/srvsvc.idl24
-rw-r--r--source4/librpc/idl/svcctl.idl14
-rw-r--r--source4/librpc/idl/w32time.idl6
-rw-r--r--source4/librpc/idl/winbind.idl34
-rw-r--r--source4/librpc/idl/winreg.idl8
-rw-r--r--source4/librpc/ndr.pc.in2
-rw-r--r--source4/librpc/ndr/libndr.h171
-rw-r--r--source4/librpc/ndr/ndr.c8
-rw-r--r--source4/librpc/ndr/uuid.c2
-rw-r--r--source4/librpc/rpc/dcerpc.c13
-rw-r--r--source4/librpc/rpc/dcerpc.h130
-rw-r--r--source4/librpc/rpc/dcerpc_auth.c5
-rw-r--r--source4/librpc/rpc/dcerpc_connect.c11
-rw-r--r--source4/librpc/rpc/dcerpc_error.c2
-rw-r--r--source4/librpc/rpc/dcerpc_schannel.c3
-rw-r--r--source4/librpc/rpc/dcerpc_secondary.c11
-rw-r--r--source4/librpc/rpc/dcerpc_smb.c7
-rw-r--r--source4/librpc/rpc/dcerpc_smb2.c1
-rw-r--r--source4/librpc/rpc/dcerpc_sock.c1
-rw-r--r--source4/librpc/rpc/dcerpc_util.c23
-rw-r--r--source4/librpc/tests/binding_string.c1
44 files changed, 729 insertions, 364 deletions
diff --git a/source4/librpc/config.mk b/source4/librpc/config.mk
index bb81888d12..cb679d20bb 100644
--- a/source4/librpc/config.mk
+++ b/source4/librpc/config.mk
@@ -3,7 +3,7 @@
[LIBRARY::LIBNDR]
PRIVATE_PROTO_HEADER = ndr/libndr_proto.h
PUBLIC_DEPENDENCIES = LIBSAMBA-ERRORS LIBTALLOC LIBSAMBA-UTIL CHARSET \
- LIBSAMBA-CONFIG
+ LIBSAMBA-HOSTCONFIG
LIBNDR_OBJ_FILES = $(addprefix librpc/ndr/, ndr.o ndr_basic.o ndr_string.o uuid.o)
@@ -21,7 +21,7 @@ PUBLIC_HEADERS += librpc/ndr/libndr.h
[BINARY::ndrdump]
INSTALLDIR = BINDIR
PRIVATE_DEPENDENCIES = \
- LIBSAMBA-CONFIG \
+ LIBSAMBA-HOSTCONFIG \
LIBSAMBA-UTIL \
LIBPOPT \
POPT_SAMBA \
@@ -457,10 +457,13 @@ RPC_NDR_SVCCTL_OBJ_FILES = librpc/gen_ndr/ndr_svcctl_c.o
PUBLIC_HEADERS += librpc/gen_ndr/ndr_svcctl_c.h
-[SUBSYSTEM::dcerpc_atsvc]
+[LIBRARY::dcerpc_atsvc]
PUBLIC_DEPENDENCIES = dcerpc NDR_ATSVC
+VERSION = 0.0.1
+SO_VERSION = 0
dcerpc_atsvc_OBJ_FILES = librpc/gen_ndr/ndr_atsvc_c.o
+PC_FILES += librpc/dcerpc_atsvc.pc
PUBLIC_HEADERS += librpc/gen_ndr/ndr_atsvc_c.h
@@ -504,10 +507,10 @@ PUBLIC_DEPENDENCIES = dcerpc NDR_INITSHUTDOWN
RPC_NDR_INITSHUTDOWN_OBJ_FILES = librpc/gen_ndr/ndr_initshutdown_c.o
-[SUBSYSTEM::dcerpc_mgmt]
+[SUBSYSTEM::RPC_NDR_MGMT]
PRIVATE_DEPENDENCIES = NDR_MGMT
-dcerpc_mgmt_OBJ_FILES = librpc/gen_ndr/ndr_mgmt_c.o
+RPC_NDR_MGMT_OBJ_FILES = librpc/gen_ndr/ndr_mgmt_c.o
[SUBSYSTEM::RPC_NDR_PROTECTED_STORAGE]
PUBLIC_DEPENDENCIES = dcerpc NDR_PROTECTED_STORAGE
@@ -574,6 +577,7 @@ PRIVATE_DEPENDENCIES = \
samba-socket LIBCLI_RESOLVE LIBCLI_SMB LIBCLI_SMB2 \
LIBNDR NDR_DCERPC RPC_NDR_EPMAPPER \
NDR_SCHANNEL RPC_NDR_NETLOGON \
+ RPC_NDR_MGMT \
gensec LIBCLI_AUTH LIBCLI_RAW \
LP_RESOLVE
PUBLIC_DEPENDENCIES = CREDENTIALS
@@ -709,7 +713,7 @@ RPC_EJS_IRPC_OBJ_FILES = librpc/gen_ndr/ndr_irpc_ejs.o
[PYTHON::swig_dcerpc]
SWIG_FILE = rpc/dcerpc.i
-PUBLIC_DEPENDENCIES = LIBCLI_SMB NDR_MISC LIBSAMBA-UTIL LIBSAMBA-CONFIG dcerpc_samr RPC_NDR_LSA DYNCONFIG
+PUBLIC_DEPENDENCIES = LIBCLI_SMB NDR_MISC LIBSAMBA-UTIL LIBSAMBA-HOSTCONFIG dcerpc_samr RPC_NDR_LSA DYNCONFIG
swig_dcerpc_OBJ_FILES = librpc/rpc/dcerpc_wrap.o
@@ -766,6 +770,21 @@ PRIVATE_DEPENDENCIES = RPC_NDR_WKSSVC
python_wkssvc_OBJ_FILES = librpc/gen_ndr/py_wkssvc.o
+[PYTHON::python_dfs]
+PRIVATE_DEPENDENCIES = RPC_NDR_DFS
+
+python_dfs_OBJ_FILES = gen_ndr/py_dfs.o
+
+[PYTHON::python_unixinfo]
+PRIVATE_DEPENDENCIES = RPC_NDR_UNIXINFO
+
+python_unixinfo_OBJ_FILES = gen_ndr/py_unixinfo.o
+
+[PYTHON::python_drsuapi]
+PRIVATE_DEPENDENCIES = RPC_NDR_DRSUAPI
+
+python_drsuapi_OBJ_FILES = gen_ndr/py_drsuapi.o
+
[PYTHON::python_dcerpc_security]
python_dcerpc_security_OBJ_FILES = librpc/gen_ndr/py_security.o
diff --git a/source4/librpc/dcerpc_atsvc.pc.in b/source4/librpc/dcerpc_atsvc.pc.in
new file mode 100644
index 0000000000..060485c3fc
--- /dev/null
+++ b/source4/librpc/dcerpc_atsvc.pc.in
@@ -0,0 +1,11 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: dcerpc_atsvc
+Description: DCE/RPC client library - ATSVC
+Requires.private: dcerpc ndr
+Version: 0.0.1
+Libs: -L${libdir} -ldcerpc_atsvc
+Cflags: -I${includedir} -DHAVE_IMMEDIATE_STRUCTURES=1
diff --git a/source4/librpc/idl/audiosrv.idl b/source4/librpc/idl/audiosrv.idl
index 9b9399ffee..1b059868ff 100644
--- a/source4/librpc/idl/audiosrv.idl
+++ b/source4/librpc/idl/audiosrv.idl
@@ -5,19 +5,19 @@
helpstring("Audio Server")
] interface audiosrv
{
- void audiosrv_CreatezoneFactoriesList();
- void audiosrv_CreateGfxFactoriesList();
- void audiosrv_CreateGfxList();
- void audiosrv_RemoveGfx();
- void audiosrv_AddGfx();
- void audiosrv_ModifyGfx();
- void audiosrv_OpenGfx();
- void audiosrv_Logon();
- void audiosrv_Logoff();
- void audiosrv_RegisterSessionNotificationEvent();
- void audiosrv_UnregisterSessionNotificationEvent();
- void audiosrv_SessionConnectState();
- void audiosrv_DriverOpenDrvRegKey();
- void audiosrv_AdvisePreferredDeviceChange();
- void audiosrv_GetPnpInfo();
+ [todo] void audiosrv_CreatezoneFactoriesList();
+ [todo] void audiosrv_CreateGfxFactoriesList();
+ [todo] void audiosrv_CreateGfxList();
+ [todo] void audiosrv_RemoveGfx();
+ [todo] void audiosrv_AddGfx();
+ [todo] void audiosrv_ModifyGfx();
+ [todo] void audiosrv_OpenGfx();
+ [todo] void audiosrv_Logon();
+ [todo] void audiosrv_Logoff();
+ [todo] void audiosrv_RegisterSessionNotificationEvent();
+ [todo] void audiosrv_UnregisterSessionNotificationEvent();
+ [todo] void audiosrv_SessionConnectState();
+ [todo] void audiosrv_DriverOpenDrvRegKey();
+ [todo] void audiosrv_AdvisePreferredDeviceChange();
+ [todo] void audiosrv_GetPnpInfo();
}
diff --git a/source4/librpc/idl/browser.idl b/source4/librpc/idl/browser.idl
index 5cc2475119..5b05be9cbb 100644
--- a/source4/librpc/idl/browser.idl
+++ b/source4/librpc/idl/browser.idl
@@ -9,50 +9,50 @@ interface browser
{
/******************/
/* Function 0x00 */
- NTSTATUS BrowserrServerEnum();
+ [todo] NTSTATUS BrowserrServerEnum();
/******************/
/* Function 0x01 */
- NTSTATUS BrowserrDebugCall();
+ [todo] NTSTATUS BrowserrDebugCall();
/******************/
/* Function 0x02 */
- NTSTATUS BrowserrQueryOtherDomains();
+ [todo] NTSTATUS BrowserrQueryOtherDomains();
/******************/
/* Function 0x03 */
- NTSTATUS BrowserrResetNetlogonState();
+ [todo] NTSTATUS BrowserrResetNetlogonState();
/******************/
/* Function 0x04 */
- NTSTATUS BrowserrDebugTrace();
+ [todo] NTSTATUS BrowserrDebugTrace();
/******************/
/* Function 0x05 */
- NTSTATUS BrowserrQueryStatistics();
+ [todo] NTSTATUS BrowserrQueryStatistics();
/******************/
/* Function 0x06 */
- NTSTATUS BrowserResetStatistics();
+ [todo] NTSTATUS BrowserResetStatistics();
/******************/
/* Function 0x07 */
- NTSTATUS NetrBrowserStatisticsClear();
+ [todo] NTSTATUS NetrBrowserStatisticsClear();
/******************/
/* Function 0x08 */
- NTSTATUS NetrBrowserStatisticsGet();
+ [todo] NTSTATUS NetrBrowserStatisticsGet();
/******************/
/* Function 0x09 */
- NTSTATUS BrowserrSetNetlogonState();
+ [todo] NTSTATUS BrowserrSetNetlogonState();
/******************/
/* Function 0x0a */
- NTSTATUS BrowserrQueryEmulatedDomains();
+ [todo] NTSTATUS BrowserrQueryEmulatedDomains();
/******************/
/* Function 0x0b */
- NTSTATUS BrowserrServerEnumEx();
+ [todo] NTSTATUS BrowserrServerEnumEx();
}
diff --git a/source4/librpc/idl/dfs.idl b/source4/librpc/idl/dfs.idl
index dbbd15039c..b279f555d9 100644
--- a/source4/librpc/idl/dfs.idl
+++ b/source4/librpc/idl/dfs.idl
@@ -308,16 +308,16 @@ import "misc.idl";
);
/* Function 0x06 */
- WERROR dfs_Rename();
+ [todo] WERROR dfs_Rename();
/* Function 0x07 */
- WERROR dfs_Move();
+ [todo] WERROR dfs_Move();
/* Function 0x08 */
- WERROR dfs_ManagerGetConfigInfo();
+ [todo] WERROR dfs_ManagerGetConfigInfo();
/* Function 0x09 */
- WERROR dfs_ManagerSendSiteInfo();
+ [todo] WERROR dfs_ManagerSendSiteInfo();
/* Function 0x0a */
typedef struct {
@@ -399,10 +399,10 @@ import "misc.idl";
);
/* Function 0x13 */
- WERROR dfs_Add2();
+ [todo] WERROR dfs_Add2();
/* Function 0x14 */
- WERROR dfs_Remove2();
+ [todo] WERROR dfs_Remove2();
/* Function 0x15 */
[public] WERROR dfs_EnumEx(
@@ -414,5 +414,5 @@ import "misc.idl";
);
/* Function 0x16 */
- WERROR dfs_SetInfo2();
+ [todo] WERROR dfs_SetInfo2();
}
diff --git a/source4/librpc/idl/drsblobs.idl b/source4/librpc/idl/drsblobs.idl
index eaea6aa30e..f8cbdac8c5 100644
--- a/source4/librpc/idl/drsblobs.idl
+++ b/source4/librpc/idl/drsblobs.idl
@@ -1,6 +1,6 @@
#include "idl_types.h"
-import "drsuapi.idl";
+import "drsuapi.idl", "misc.idl";
[
uuid("12345778-1234-abcd-0001-00000001"),
diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl
index fb24122e26..9652571668 100644
--- a/source4/librpc/idl/drsuapi.idl
+++ b/source4/librpc/idl/drsuapi.idl
@@ -666,7 +666,7 @@ interface drsuapi
/* TODO ... */
} drsuapi_DsReplicaAddOptions;
- WERROR DRSUAPI_REPLICA_ADD();
+ [todo] WERROR DRSUAPI_REPLICA_ADD();
/*****************/
/* Function 0x06 */
@@ -676,7 +676,7 @@ interface drsuapi
/* TODO ... */
} drsuapi_DsReplicaDeleteOptions;
- WERROR DRSUAPI_REPLICA_DEL();
+ [todo] WERROR DRSUAPI_REPLICA_DEL();
/*****************/
/* Function 0x07 */
@@ -685,11 +685,11 @@ interface drsuapi
DRSUAPI_DS_REPLICA_MODIFY_WRITEABLE = 0x00000002
} drsuapi_DsReplicaModifyOptions;
- WERROR DRSUAPI_REPLICA_MODIFY();
+ [todo] WERROR DRSUAPI_REPLICA_MODIFY();
/*****************/
/* Function 0x08 */
- WERROR DRSUAPI_VERIFY_NAMES();
+ [todo] WERROR DRSUAPI_VERIFY_NAMES();
/*****************/
/* Function 0x09 */
@@ -732,7 +732,7 @@ interface drsuapi
[case(1)] drsuapi_DsGetMembershipsRequest1 req1;
} drsuapi_DsGetMembershipsRequest;
- WERROR drsuapi_DsGetMemberships(
+ [todo] WERROR drsuapi_DsGetMemberships(
[in] policy_handle *bind_handle,
[in,out] int32 level,
[in] [switch_is(level)] drsuapi_DsGetMembershipsRequest req,
@@ -741,7 +741,7 @@ interface drsuapi
/*****************/
/* Function 0x0a */
- WERROR DRSUAPI_INTER_DOMAIN_MOVE();
+ [todo] WERROR DRSUAPI_INTER_DOMAIN_MOVE();
/*****************/
/* Function 0x0b */
@@ -774,7 +774,7 @@ interface drsuapi
[case(1)] drsuapi_DsGetNT4ChangeLogInfo1 info1;
} drsuapi_DsGetNT4ChangeLogInfo;
- WERROR drsuapi_DsGetNT4ChangeLog(
+ [todo] WERROR drsuapi_DsGetNT4ChangeLog(
[in] policy_handle *bind_handle,
[in,out] uint32 level,
[in] [switch_is(level)] drsuapi_DsGetNT4ChangeLogRequest req,
@@ -849,7 +849,7 @@ interface drsuapi
[case(1)] drsuapi_DsNameCtr1 *ctr1;
} drsuapi_DsNameCtr;
- WERROR drsuapi_DsCrackNames(
+ [todo] WERROR drsuapi_DsCrackNames(
[in] policy_handle *bind_handle,
[in, out] int32 level,
[in,switch_is(level)] drsuapi_DsNameRequest req,
@@ -920,7 +920,7 @@ interface drsuapi
/*****************/
/* Function 0x0f */
- WERROR DRSUAPI_REMOVE_DS_DOMAIN();
+ [todo] WERROR DRSUAPI_REMOVE_DS_DOMAIN();
/*****************/
/* Function 0x10 */
@@ -1138,7 +1138,7 @@ interface drsuapi
/*****************/
/* Function 0x12 */
- WERROR DRSUAPI_EXECUTE_KCC();
+ [todo] WERROR DRSUAPI_EXECUTE_KCC();
/*****************/
/* Function 0x13 */
@@ -1419,7 +1419,7 @@ interface drsuapi
/*****************/
/* Function 0x14 */
- WERROR DRSUAPI_ADD_SID_HISTORY();
+ [todo] WERROR DRSUAPI_ADD_SID_HISTORY();
/*****************/
/* Function 0x15 */
@@ -1452,11 +1452,11 @@ interface drsuapi
/*****************/
/* Function 0x16 */
- WERROR DRSUAPI_REPLICA_VERIFY_OBJECTS();
+ [todo] WERROR DRSUAPI_REPLICA_VERIFY_OBJECTS();
/*****************/
/* Function 0x17 */
- WERROR DRSUAPI_GET_OBJECT_EXISTENCE();
+ [todo] WERROR DRSUAPI_GET_OBJECT_EXISTENCE();
/*****************/
/* Function 0x18 */
diff --git a/source4/librpc/idl/dsbackup.idl b/source4/librpc/idl/dsbackup.idl
index 21dca8fa0e..72e8bf9c2b 100644
--- a/source4/librpc/idl/dsbackup.idl
+++ b/source4/librpc/idl/dsbackup.idl
@@ -5,15 +5,15 @@
helpstring("Backup support for Active Directory")
] interface ad_backup
{
- void HrRBackupPrepare();
- void HrRBackupEnd();
- void HrRBackupGetAttachmentInformation();
- void HrRBackupOpenFile();
- void HrRBackupRead();
- void HrRBackupClose();
- void HrRBackupGetBackupLogs();
- void HrRBackupTruncateLogs();
- void HrRBackupPing();
+ [todo] void HrRBackupPrepare();
+ [todo] void HrRBackupEnd();
+ [todo] void HrRBackupGetAttachmentInformation();
+ [todo] void HrRBackupOpenFile();
+ [todo] void HrRBackupRead();
+ [todo] void HrRBackupClose();
+ [todo] void HrRBackupGetBackupLogs();
+ [todo] void HrRBackupTruncateLogs();
+ [todo] void HrRBackupPing();
}
[
@@ -23,12 +23,12 @@
helpstring("Restoring Active Directory backups")
] interface ad_restore
{
- void HrRIsNTDSOnline();
- void HrRRestorePrepare();
- void HrRRestoreRegister();
- void HrRRestoreRegisterComplete();
- void HrRRestoreGetDatabaseLocations();
- void HrRRestoreEnd();
- void HrRRestoreSetCurrentLogNumber();
- void HrRRestoreCheckLogsForBackup();
+ [todo] void HrRIsNTDSOnline();
+ [todo] void HrRRestorePrepare();
+ [todo] void HrRRestoreRegister();
+ [todo] void HrRRestoreRegisterComplete();
+ [todo] void HrRRestoreGetDatabaseLocations();
+ [todo] void HrRRestoreEnd();
+ [todo] void HrRRestoreSetCurrentLogNumber();
+ [todo] void HrRRestoreCheckLogsForBackup();
}
diff --git a/source4/librpc/idl/dssetup.idl b/source4/librpc/idl/dssetup.idl
index af6350cc43..14de9f7633 100644
--- a/source4/librpc/idl/dssetup.idl
+++ b/source4/librpc/idl/dssetup.idl
@@ -88,14 +88,14 @@ import "misc.idl";
These stubs are left here only as a way of documenting the names
of the calls in case they ever turn up on the wire.
*/
- WERROR dssetup_DsRoleDnsNameToFlatName();
- WERROR dssetup_DsRoleDcAsDc();
- WERROR dssetup_DsRoleDcAsReplica();
- WERROR dssetup_DsRoleDemoteDc();
- WERROR dssetup_DsRoleGetDcOperationProgress();
- WERROR dssetup_DsRoleGetDcOperationResults();
- WERROR dssetup_DsRoleCancel();
- WERROR dssetup_DsRoleServerSaveStateForUpgrade();
- WERROR dssetup_DsRoleUpgradeDownlevelServer();
- WERROR dssetup_DsRoleAbortDownlevelServerUpgrade();
+ [todo] WERROR dssetup_DsRoleDnsNameToFlatName();
+ [todo] WERROR dssetup_DsRoleDcAsDc();
+ [todo] WERROR dssetup_DsRoleDcAsReplica();
+ [todo] WERROR dssetup_DsRoleDemoteDc();
+ [todo] WERROR dssetup_DsRoleGetDcOperationProgress();
+ [todo] WERROR dssetup_DsRoleGetDcOperationResults();
+ [todo] WERROR dssetup_DsRoleCancel();
+ [todo] WERROR dssetup_DsRoleServerSaveStateForUpgrade();
+ [todo] WERROR dssetup_DsRoleUpgradeDownlevelServer();
+ [todo] WERROR dssetup_DsRoleAbortDownlevelServerUpgrade();
}
diff --git a/source4/librpc/idl/efs.idl b/source4/librpc/idl/efs.idl
index 62fefda606..4279b08d13 100644
--- a/source4/librpc/idl/efs.idl
+++ b/source4/librpc/idl/efs.idl
@@ -18,13 +18,13 @@ WERROR EfsRpcOpenFileRaw(
[in] uint32 Flags
);
-WERROR EfsRpcReadFileRaw(
+[todo] WERROR EfsRpcReadFileRaw(
[in,ref] policy_handle *pvContext
/* incomplete */
);
-WERROR EfsRpcWriteFileRaw(
+[todo] WERROR EfsRpcWriteFileRaw(
[in,ref] policy_handle *pvContext
/* incomplete */
);
@@ -70,12 +70,12 @@ WERROR EfsRpcQueryRecoveryAgents(
[out,ref,unique] ENCRYPTION_CERTIFICATE_HASH_LIST **pRecoveryAgents
);
-WERROR EfsRpcRemoveUsersFromFile(
+[todo] WERROR EfsRpcRemoveUsersFromFile(
[in] [charset(UTF16),string] uint16 FileName[]
/* [in] ENCRYPTION_CERTIFICATE_LIST Hashes*/
);
-WERROR EfsRpcAddUsersToFile(
+[todo] WERROR EfsRpcAddUsersToFile(
[in] [charset(UTF16),string] uint16 FileName[]
/* [in] ENCRYPTION_CERTIFICATE_LIST Hashes*/
);
@@ -96,13 +96,13 @@ WERROR EfsRpcSetFileEncryptionKey(
[in] [unique] ENCRYPTION_CERTIFICATE *pEncryptionCertificate
);
-WERROR EfsRpcNotSupported(
+[todo] WERROR EfsRpcNotSupported(
);
-WERROR EfsRpcFileKeyInfo(
+[todo] WERROR EfsRpcFileKeyInfo(
);
-WERROR EfsRpcDuplicateEncryptionInfoFile(
+[todo] WERROR EfsRpcDuplicateEncryptionInfoFile(
);
}
diff --git a/source4/librpc/idl/epmapper.idl b/source4/librpc/idl/epmapper.idl
index 60ff338ec4..ea04878094 100644
--- a/source4/librpc/idl/epmapper.idl
+++ b/source4/librpc/idl/epmapper.idl
@@ -310,5 +310,5 @@ interface epmapper
/**********************/
/* Function 0x07 */
- error_status_t epm_MapAuth();
+ [todo] error_status_t epm_MapAuth();
}
diff --git a/source4/librpc/idl/eventlog.idl b/source4/librpc/idl/eventlog.idl
index 3defd99400..ee42300c7c 100644
--- a/source4/librpc/idl/eventlog.idl
+++ b/source4/librpc/idl/eventlog.idl
@@ -65,7 +65,7 @@ import "lsa.idl", "security.idl";
/******************/
/* Function: 0x01 */
- NTSTATUS eventlog_BackupEventLogW();
+ [todo] NTSTATUS eventlog_BackupEventLogW();
/******************/
/* Function: 0x02 */
@@ -75,7 +75,7 @@ import "lsa.idl", "security.idl";
/******************/
/* Function: 0x03 */
- NTSTATUS eventlog_DeregisterEventSource();
+ [todo] NTSTATUS eventlog_DeregisterEventSource();
/******************/
/* Function: 0x04 */
@@ -86,11 +86,11 @@ import "lsa.idl", "security.idl";
/******************/
/* Function: 0x05 */
- NTSTATUS eventlog_GetOldestRecord();
+ [todo] NTSTATUS eventlog_GetOldestRecord();
/******************/
/* Function: 0x06 */
- NTSTATUS eventlog_ChangeNotify();
+ [todo] NTSTATUS eventlog_ChangeNotify();
/******************/
/* Function: 0x07 */
@@ -105,11 +105,11 @@ import "lsa.idl", "security.idl";
/******************/
/* Function: 0x08 */
- NTSTATUS eventlog_RegisterEventSourceW();
+ [todo] NTSTATUS eventlog_RegisterEventSourceW();
/******************/
/* Function: 0x09 */
- NTSTATUS eventlog_OpenBackupEventLogW();
+ [todo] NTSTATUS eventlog_OpenBackupEventLogW();
/******************/
/* Function: 0x0a */
@@ -125,51 +125,51 @@ import "lsa.idl", "security.idl";
/*****************/
/* Function 0x0b */
- NTSTATUS eventlog_ReportEventW();
+ [todo] NTSTATUS eventlog_ReportEventW();
/*****************/
/* Function 0x0c */
- NTSTATUS eventlog_ClearEventLogA();
+ [todo] NTSTATUS eventlog_ClearEventLogA();
/******************/
/* Function: 0x0d */
- NTSTATUS eventlog_BackupEventLogA();
+ [todo] NTSTATUS eventlog_BackupEventLogA();
/*****************/
/* Function 0x0e */
- NTSTATUS eventlog_OpenEventLogA();
+ [todo] NTSTATUS eventlog_OpenEventLogA();
/*****************/
/* Function 0x0f */
- NTSTATUS eventlog_RegisterEventSourceA();
+ [todo] NTSTATUS eventlog_RegisterEventSourceA();
/*****************/
/* Function 0x10 */
- NTSTATUS eventlog_OpenBackupEventLogA();
+ [todo] NTSTATUS eventlog_OpenBackupEventLogA();
/*****************/
/* Function 0x11 */
- NTSTATUS eventlog_ReadEventLogA();
+ [todo] NTSTATUS eventlog_ReadEventLogA();
/*****************/
/* Function 0x12 */
- NTSTATUS eventlog_ReportEventA();
+ [todo] NTSTATUS eventlog_ReportEventA();
/*****************/
/* Function 0x13 */
- NTSTATUS eventlog_RegisterClusterSvc();
+ [todo] NTSTATUS eventlog_RegisterClusterSvc();
/*****************/
/* Function 0x14 */
- NTSTATUS eventlog_DeregisterClusterSvc();
+ [todo] NTSTATUS eventlog_DeregisterClusterSvc();
/*****************/
/* Function 0x15 */
- NTSTATUS eventlog_WriteClusterEvents();
+ [todo] NTSTATUS eventlog_WriteClusterEvents();
/*****************/
/* Function 0x16 */
- NTSTATUS eventlog_GetLogIntormation();
+ [todo] NTSTATUS eventlog_GetLogIntormation();
/*****************/
/* Function 0x17 */
diff --git a/source4/librpc/idl/frsapi.idl b/source4/librpc/idl/frsapi.idl
index 2931a83da4..11593f479a 100644
--- a/source4/librpc/idl/frsapi.idl
+++ b/source4/librpc/idl/frsapi.idl
@@ -13,19 +13,19 @@ interface frsapi
{
/****************/
/* Function 0x00 */
- void FRSAPI_VERIFY_PROMOTION();
+ [todo] void FRSAPI_VERIFY_PROMOTION();
/****************/
/* Function 0x01 */
- void FRSAPI_PROMOTION_STATUS();
+ [todo] void FRSAPI_PROMOTION_STATUS();
/****************/
/* Function 0x02 */
- void FRSAPI_START_DEMOTION();
+ [todo] void FRSAPI_START_DEMOTION();
/****************/
/* Function 0x03 */
- void FRSAPI_COMMIT_DEMOTION();
+ [todo] void FRSAPI_COMMIT_DEMOTION();
/****************/
/* Function 0x04 */
@@ -49,7 +49,7 @@ interface frsapi
/****************/
/* Function 0x06 */
- void FRSAPI_VERIFY_PROMOTION_W();
+ [todo] void FRSAPI_VERIFY_PROMOTION_W();
/****************/
/* Function 0x07 */
@@ -106,7 +106,7 @@ interface frsapi
/****************/
/* Function 0x09 */
- void FRSAPI_WRITER_COMMAND();
+ [todo] void FRSAPI_WRITER_COMMAND();
/****************/
/* Function 0x0a */
diff --git a/source4/librpc/idl/frsrpc.idl b/source4/librpc/idl/frsrpc.idl
index 6a0ec394d0..1019a25b28 100644
--- a/source4/librpc/idl/frsrpc.idl
+++ b/source4/librpc/idl/frsrpc.idl
@@ -128,41 +128,41 @@ interface frsrpc
/*****************/
/* Function 0x01 */
- void FRSRPC_VERIFY_PROMOTION_PARENT();
+ [todo] void FRSRPC_VERIFY_PROMOTION_PARENT();
/*****************/
/* Function 0x02 */
- void FRSRPC_START_PROMOTION_PARENT();
+ [todo] void FRSRPC_START_PROMOTION_PARENT();
/*****************/
/* Function 0x03 */
- void FRSRPC_NOP();
+ [todo] void FRSRPC_NOP();
/*****************/
/* Function 0x04 */
- void FRSRPC_BACKUP_COMPLETE();
+ [todo] void FRSRPC_BACKUP_COMPLETE();
/*****************/
/* Function 0x05 */
- void FRSRPC_BACKUP_COMPLETE_5();
+ [todo] void FRSRPC_BACKUP_COMPLETE_5();
/*****************/
/* Function 0x06 */
- void FRSRPC_BACKUP_COMPLETE_6();
+ [todo] void FRSRPC_BACKUP_COMPLETE_6();
/*****************/
/* Function 0x07 */
- void FRSRPC_BACKUP_COMPLETE_7();
+ [todo] void FRSRPC_BACKUP_COMPLETE_7();
/*****************/
/* Function 0x08 */
- void FRSRPC_BACKUP_COMPLETE_8();
+ [todo] void FRSRPC_BACKUP_COMPLETE_8();
/*****************/
/* Function 0x09 */
- void FRSRPC_BACKUP_COMPLETE_9();
+ [todo] void FRSRPC_BACKUP_COMPLETE_9();
/*****************/
/* Function 0x0a */
- void FRSRPC_VERIFY_PROMOTION_PARENT_EX();
+ [todo] void FRSRPC_VERIFY_PROMOTION_PARENT_EX();
}
diff --git a/source4/librpc/idl/irpc.idl b/source4/librpc/idl/irpc.idl
index 0a53494049..2c659aa785 100644
--- a/source4/librpc/idl/irpc.idl
+++ b/source4/librpc/idl/irpc.idl
@@ -1,6 +1,6 @@
#include "idl_types.h"
-import "security.idl", "nbt.idl";
+import "misc.idl", "security.idl", "nbt.idl";
/*
definitions for irpc primitives
diff --git a/source4/librpc/idl/lsa.idl b/source4/librpc/idl/lsa.idl
index 3159a7d16d..93cfdee201 100644
--- a/source4/librpc/idl/lsa.idl
+++ b/source4/librpc/idl/lsa.idl
@@ -4,7 +4,7 @@
lsa interface definition
*/
-import "security.idl";
+import "misc.idl", "security.idl";
[ uuid("12345778-1234-abcd-ef00-0123456789ab"),
version(0.0),
@@ -94,12 +94,12 @@ import "security.idl";
/******************/
/* Function: 0x04 */
- NTSTATUS lsa_SetSecObj ();
+ [todo] NTSTATUS lsa_SetSecObj ();
/******************/
/* Function: 0x05 */
- NTSTATUS lsa_ChangePassword ();
+ [todo] NTSTATUS lsa_ChangePassword ();
/******************/
@@ -273,7 +273,7 @@ import "security.idl";
/******************/
/* Function: 0x09 */
- NTSTATUS lsa_ClearAuditLog ();
+ [todo] NTSTATUS lsa_ClearAuditLog ();
/******************/
/* Function: 0x0a */
@@ -338,7 +338,7 @@ import "security.idl";
/******************/
/* Function: 0x0e */
- typedef enum {
+ typedef [public] enum {
SID_NAME_USE_NONE = 0,/* NOTUSED */
SID_NAME_USER = 1, /* user */
SID_NAME_DOM_GRP = 2, /* domain group */
@@ -477,15 +477,15 @@ import "security.idl";
);
/* Function: 0x15 */
- NTSTATUS lsa_GetQuotasForAccount();
+ [todo] NTSTATUS lsa_GetQuotasForAccount();
/* Function: 0x16 */
- NTSTATUS lsa_SetQuotasForAccount();
+ [todo] NTSTATUS lsa_SetQuotasForAccount();
/* Function: 0x17 */
- NTSTATUS lsa_GetSystemAccessAccount();
+ [todo] NTSTATUS lsa_GetSystemAccessAccount();
/* Function: 0x18 */
- NTSTATUS lsa_SetSystemAccessAccount();
+ [todo] NTSTATUS lsa_SetSystemAccessAccount();
/* Function: 0x19 */
NTSTATUS lsa_OpenTrustedDomain(
@@ -599,7 +599,7 @@ import "security.idl";
);
/* Function: 0x1b */
- NTSTATUS lsa_SetInformationTrustedDomain();
+ [todo] NTSTATUS lsa_SetInformationTrustedDomain();
/* Function: 0x1c */
[public] NTSTATUS lsa_OpenSecret(
@@ -659,7 +659,7 @@ import "security.idl";
);
/* Function: 0x22 */
- NTSTATUS lsa_DeleteObject();
+ [todo] NTSTATUS lsa_DeleteObject();
/*******************/
@@ -713,7 +713,7 @@ import "security.idl";
);
/* Function: 0x28 */
- NTSTATUS lsa_SetTrustedDomainInfo();
+ [todo] NTSTATUS lsa_SetTrustedDomainInfo();
/* Function: 0x29 */
NTSTATUS lsa_DeleteTrustedDomain(
[in] policy_handle *handle,
@@ -721,9 +721,9 @@ import "security.idl";
);
/* Function: 0x2a */
- NTSTATUS lsa_StorePrivateData();
+ [todo] NTSTATUS lsa_StorePrivateData();
/* Function: 0x2b */
- NTSTATUS lsa_RetrievePrivateData();
+ [todo] NTSTATUS lsa_RetrievePrivateData();
/**********************/
@@ -800,7 +800,7 @@ import "security.idl";
/* Function 0x33 */
- NTSTATUS lsa_CreateTrustedDomainEx();
+ [todo] NTSTATUS lsa_CreateTrustedDomainEx();
/* Function 0x34 */
NTSTATUS lsa_CloseTrustedDomainEx(
@@ -858,7 +858,7 @@ import "security.idl";
);
/* Function 0x38 */
- NTSTATUS lsa_TestCall();
+ [todo] NTSTATUS lsa_TestCall();
/**********************/
/* Function 0x39 */
@@ -914,31 +914,31 @@ import "security.idl";
);
/* Function 0x3b */
- NTSTATUS lsa_CreateTrustedDomainEx2();
+ [todo] NTSTATUS lsa_CreateTrustedDomainEx2();
/* Function 0x3c */
- NTSTATUS lsa_CREDRWRITE();
+ [todo] NTSTATUS lsa_CREDRWRITE();
/* Function 0x3d */
- NTSTATUS lsa_CREDRREAD();
+ [todo] NTSTATUS lsa_CREDRREAD();
/* Function 0x3e */
- NTSTATUS lsa_CREDRENUMERATE();
+ [todo] NTSTATUS lsa_CREDRENUMERATE();
/* Function 0x3f */
- NTSTATUS lsa_CREDRWRITEDOMAINCREDENTIALS();
+ [todo] NTSTATUS lsa_CREDRWRITEDOMAINCREDENTIALS();
/* Function 0x40 */
- NTSTATUS lsa_CREDRREADDOMAINCREDENTIALS();
+ [todo] NTSTATUS lsa_CREDRREADDOMAINCREDENTIALS();
/* Function 0x41 */
- NTSTATUS lsa_CREDRDELETE();
+ [todo] NTSTATUS lsa_CREDRDELETE();
/* Function 0x42 */
- NTSTATUS lsa_CREDRGETTARGETINFO();
+ [todo] NTSTATUS lsa_CREDRGETTARGETINFO();
/* Function 0x43 */
- NTSTATUS lsa_CREDRPROFILELOADED();
+ [todo] NTSTATUS lsa_CREDRPROFILELOADED();
/**********************/
/* Function 0x44 */
@@ -967,16 +967,16 @@ import "security.idl";
);
/* Function 0x45 */
- NTSTATUS lsa_CREDRGETSESSIONTYPES();
+ [todo] NTSTATUS lsa_CREDRGETSESSIONTYPES();
/* Function 0x46 */
- NTSTATUS lsa_LSARREGISTERAUDITEVENT();
+ [todo] NTSTATUS lsa_LSARREGISTERAUDITEVENT();
/* Function 0x47 */
- NTSTATUS lsa_LSARGENAUDITEVENT();
+ [todo] NTSTATUS lsa_LSARGENAUDITEVENT();
/* Function 0x48 */
- NTSTATUS lsa_LSARUNREGISTERAUDITEVENT();
+ [todo] NTSTATUS lsa_LSARUNREGISTERAUDITEVENT();
/* Function 0x49 */
typedef struct {
@@ -1024,10 +1024,10 @@ import "security.idl";
);
/* Function 0x4a */
- NTSTATUS lsa_LSARSETFORESTTRUSTINFORMATION();
+ [todo] NTSTATUS lsa_LSARSETFORESTTRUSTINFORMATION();
/* Function 0x4b */
- NTSTATUS lsa_CREDRRENAME();
+ [todo] NTSTATUS lsa_CREDRRENAME();
/*****************/
/* Function 0x4c */
@@ -1055,15 +1055,15 @@ import "security.idl";
);
/* Function 0x4e */
- NTSTATUS lsa_LSAROPENPOLICYSCE();
+ [todo] NTSTATUS lsa_LSAROPENPOLICYSCE();
/* Function 0x4f */
- NTSTATUS lsa_LSARADTREGISTERSECURITYEVENTSOURCE();
+ [todo] NTSTATUS lsa_LSARADTREGISTERSECURITYEVENTSOURCE();
/* Function 0x50 */
- NTSTATUS lsa_LSARADTUNREGISTERSECURITYEVENTSOURCE();
+ [todo] NTSTATUS lsa_LSARADTUNREGISTERSECURITYEVENTSOURCE();
/* Function 0x51 */
- NTSTATUS lsa_LSARADTREPORTSECURITYEVENT();
+ [todo] NTSTATUS lsa_LSARADTREPORTSECURITYEVENT();
}
diff --git a/source4/librpc/idl/msgsvc.idl b/source4/librpc/idl/msgsvc.idl
index 09878ac7a4..d196daf06b 100644
--- a/source4/librpc/idl/msgsvc.idl
+++ b/source4/librpc/idl/msgsvc.idl
@@ -7,10 +7,10 @@
helpstring("Messaging Service")
] interface msgsvc
{
- void NetrMessageNameAdd();
- void NetrMessageNameEnum();
- void NetrMessageNameGetInfo();
- void NetrMessageNameDel();
+ [todo] void NetrMessageNameAdd();
+ [todo] void NetrMessageNameEnum();
+ [todo] void NetrMessageNameGetInfo();
+ [todo] void NetrMessageNameDel();
}
[
@@ -18,5 +18,5 @@
version(1.0)
] interface msgsvcsend
{
- void NetrSendMessage();
+ [todo] void NetrSendMessage();
}
diff --git a/source4/librpc/idl/nbt.idl b/source4/librpc/idl/nbt.idl
index 17304bfa0d..aa88360882 100644
--- a/source4/librpc/idl/nbt.idl
+++ b/source4/librpc/idl/nbt.idl
@@ -8,9 +8,9 @@
encoding if it doesn't work out
*/
-import "security.idl", "svcctl.idl";
+import "misc.idl", "security.idl", "svcctl.idl";
[
-helper("libcli/nbt/nbtname.h")
+helper("libcli/nbt/libnbt.h")
]
interface nbt
{
diff --git a/source4/librpc/idl/netlogon.idl b/source4/librpc/idl/netlogon.idl
index d06c2acdd4..6da496a486 100644
--- a/source4/librpc/idl/netlogon.idl
+++ b/source4/librpc/idl/netlogon.idl
@@ -4,7 +4,7 @@
who contributed!
*/
-import "lsa.idl", "samr.idl", "security.idl", "nbt.idl";
+import "misc.idl", "lsa.idl", "samr.idl", "security.idl", "nbt.idl";
#include "idl_types.h"
@@ -983,11 +983,11 @@ interface netlogon
/*****************/
/* Function 0x15 */
- WERROR netr_NETRLOGONDUMMYROUTINE1();
+ [todo] WERROR netr_NETRLOGONDUMMYROUTINE1();
/****************/
/* Function 0x16 */
- WERROR netr_NETRLOGONSETSERVICEBITS();
+ [todo] WERROR netr_NETRLOGONSETSERVICEBITS();
/****************/
/* Function 0x17 */
@@ -999,11 +999,11 @@ interface netlogon
/****************/
/* Function 0x18 */
- WERROR netr_NETRLOGONCOMPUTESERVERDIGEST();
+ [todo] WERROR netr_NETRLOGONCOMPUTESERVERDIGEST();
/****************/
/* Function 0x19 */
- WERROR netr_NETRLOGONCOMPUTECLIENTDIGEST();
+ [todo] WERROR netr_NETRLOGONCOMPUTECLIENTDIGEST();
/****************/
/* Function 0x1a */
@@ -1128,7 +1128,7 @@ interface netlogon
/****************/
/* Function 0x20 */
- WERROR netr_NETRLOGONSENDTOSAM();
+ [todo] WERROR netr_NETRLOGONSENDTOSAM();
/****************/
/* Function 0x21 */
@@ -1164,7 +1164,7 @@ interface netlogon
/****************/
/* Function 0x23 */
- WERROR netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN();
+ [todo] WERROR netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN();
/****************/
/* Function 0x24 */
@@ -1332,5 +1332,5 @@ interface netlogon
/****************/
/* Function 0x2e */
- WERROR netr_NETRSERVERGETTRUSTINFO();
+ [todo] WERROR netr_NETRSERVERGETTRUSTINFO();
}
diff --git a/source4/librpc/idl/ntsvcs.idl b/source4/librpc/idl/ntsvcs.idl
index 05ba68e727..1cdf8eecaa 100644
--- a/source4/librpc/idl/ntsvcs.idl
+++ b/source4/librpc/idl/ntsvcs.idl
@@ -9,69 +9,69 @@
]
interface ntsvcs
{
- void PNP_Disconnect();
- void PNP_Connect();
- void PNP_GetVersion();
- void PNP_GetGlobalState();
- void PNP_InitDetection();
- void PNP_ReportLogOn();
- void PNP_ValidateDeviceInstance();
- void PNP_GetRootDeviceInstance();
- void PNP_GetRelatedDeviceInstance();
- void PNP_EnumerateSubKeys();
- void PNP_GetDeviceList();
- void PNP_GetDeviceListSize();
- void PNP_GetDepth();
- void PNP_GetDeviceRegProp();
- void PNP_SetDeviceRegProp();
- void PNP_GetClassInstance();
- void PNP_CreateKey();
- void PNP_DeleteRegistryKey();
- void PNP_GetClassCount();
- void PNP_GetClassName();
- void PNP_DeleteClassKey();
- void PNP_GetInterfaceDeviceAlias();
- void PNP_GetInterfaceDeviceList();
- void PNP_GetInterfaceDeviceListSize();
- void PNP_RegisterDeviceClassAssociation();
- void PNP_UnregisterDeviceClassAssociation();
- void PNP_GetClassRegProp();
- void PNP_SetClassRegProp();
- void PNP_CreateDevInst();
- void PNP_DeviceInstanceAction();
- void PNP_GetDeviceStatus();
- void PNP_SetDeviceProblem();
- void PNP_DisableDevInst();
- void PNP_UninstallDevInst();
- void PNP_AddID();
- void PNP_RegisterDriver();
- void PNP_QueryRemove();
- void PNP_RequestDeviceEject();
- void PNP_IsDockStationPresent();
- void PNP_RequestEjectPC();
- void PNP_HwProfFlags();
- void PNP_GetHwProfInfo();
- void PNP_AddEmptyLogConf();
- void PNP_FreeLogConf();
- void PNP_GetFirstLogConf();
- void PNP_GetNextLogConf();
- void PNP_GetLogConfPriority();
- void PNP_AddResDes();
- void PNP_FreeResDes();
- void PNP_GetNextResDes();
- void PNP_GetResDesData();
- void PNP_GetResDesDataSize();
- void PNP_ModifyResDes();
- void PNP_DetectResourceLimit();
- void PNP_QueryResConfList();
- void PNP_SetHwProf();
- void PNP_QueryArbitratorFreeData();
- void PNP_QueryArbitratorFreeSize();
- void PNP_RunDetection();
- void PNP_RegisterNotification();
- void PNP_UnregisterNotification();
- void PNP_GetCustomDevProp();
- void PNP_GetVersionInternal();
- void PNP_GetBlockedDriverInfo();
- void PNP_GetServerSideDeviceInstallFlags();
+ [todo] void PNP_Disconnect();
+ [todo] void PNP_Connect();
+ [todo] void PNP_GetVersion();
+ [todo] void PNP_GetGlobalState();
+ [todo] void PNP_InitDetection();
+ [todo] void PNP_ReportLogOn();
+ [todo] void PNP_ValidateDeviceInstance();
+ [todo] void PNP_GetRootDeviceInstance();
+ [todo] void PNP_GetRelatedDeviceInstance();
+ [todo] void PNP_EnumerateSubKeys();
+ [todo] void PNP_GetDeviceList();
+ [todo] void PNP_GetDeviceListSize();
+ [todo] void PNP_GetDepth();
+ [todo] void PNP_GetDeviceRegProp();
+ [todo] void PNP_SetDeviceRegProp();
+ [todo] void PNP_GetClassInstance();
+ [todo] void PNP_CreateKey();
+ [todo] void PNP_DeleteRegistryKey();
+ [todo] void PNP_GetClassCount();
+ [todo] void PNP_GetClassName();
+ [todo] void PNP_DeleteClassKey();
+ [todo] void PNP_GetInterfaceDeviceAlias();
+ [todo] void PNP_GetInterfaceDeviceList();
+ [todo] void PNP_GetInterfaceDeviceListSize();
+ [todo] void PNP_RegisterDeviceClassAssociation();
+ [todo] void PNP_UnregisterDeviceClassAssociation();
+ [todo] void PNP_GetClassRegProp();
+ [todo] void PNP_SetClassRegProp();
+ [todo] void PNP_CreateDevInst();
+ [todo] void PNP_DeviceInstanceAction();
+ [todo] void PNP_GetDeviceStatus();
+ [todo] void PNP_SetDeviceProblem();
+ [todo] void PNP_DisableDevInst();
+ [todo] void PNP_UninstallDevInst();
+ [todo] void PNP_AddID();
+ [todo] void PNP_RegisterDriver();
+ [todo] void PNP_QueryRemove();
+ [todo] void PNP_RequestDeviceEject();
+ [todo] void PNP_IsDockStationPresent();
+ [todo] void PNP_RequestEjectPC();
+ [todo] void PNP_HwProfFlags();
+ [todo] void PNP_GetHwProfInfo();
+ [todo] void PNP_AddEmptyLogConf();
+ [todo] void PNP_FreeLogConf();
+ [todo] void PNP_GetFirstLogConf();
+ [todo] void PNP_GetNextLogConf();
+ [todo] void PNP_GetLogConfPriority();
+ [todo] void PNP_AddResDes();
+ [todo] void PNP_FreeResDes();
+ [todo] void PNP_GetNextResDes();
+ [todo] void PNP_GetResDesData();
+ [todo] void PNP_GetResDesDataSize();
+ [todo] void PNP_ModifyResDes();
+ [todo] void PNP_DetectResourceLimit();
+ [todo] void PNP_QueryResConfList();
+ [todo] void PNP_SetHwProf();
+ [todo] void PNP_QueryArbitratorFreeData();
+ [todo] void PNP_QueryArbitratorFreeSize();
+ [todo] void PNP_RunDetection();
+ [todo] void PNP_RegisterNotification();
+ [todo] void PNP_UnregisterNotification();
+ [todo] void PNP_GetCustomDevProp();
+ [todo] void PNP_GetVersionInternal();
+ [todo] void PNP_GetBlockedDriverInfo();
+ [todo] void PNP_GetServerSideDeviceInstallFlags();
}
diff --git a/source4/librpc/idl/oxidresolver.idl b/source4/librpc/idl/oxidresolver.idl
index ac028cec29..95c8a1c5f0 100644
--- a/source4/librpc/idl/oxidresolver.idl
+++ b/source4/librpc/idl/oxidresolver.idl
@@ -10,7 +10,7 @@
(used by DCOM)
*/
-import "orpc.idl";
+import "misc.idl", "orpc.idl";
[
uuid("99fcfec4-5260-101b-bbcb-00aa0021347a"),
diff --git a/source4/librpc/idl/remact.idl b/source4/librpc/idl/remact.idl
index 58d976e078..2165ecfc81 100644
--- a/source4/librpc/idl/remact.idl
+++ b/source4/librpc/idl/remact.idl
@@ -3,7 +3,7 @@
http://www.grimes.demon.co.uk/DCOM/DCOMSpec.htm
*/
-import "orpc.idl";
+import "misc.idl", "orpc.idl";
[
uuid("4d9f4ab8-7d1c-11cf-861e-0020af6e7c57"),
diff --git a/source4/librpc/idl/spoolss.idl b/source4/librpc/idl/spoolss.idl
index 2144393ebd..6b4b0b8a16 100644
--- a/source4/librpc/idl/spoolss.idl
+++ b/source4/librpc/idl/spoolss.idl
@@ -3,7 +3,7 @@
/*
spoolss interface definitions
*/
-import "security.idl", "winreg.idl";
+import "misc.idl", "security.idl", "winreg.idl";
[ uuid("12345678-1234-abcd-ef00-0123456789ab"),
version(1.0),
@@ -386,14 +386,14 @@ import "security.idl", "winreg.idl";
/******************/
/* Function: 0x05 */
- WERROR spoolss_AddPrinter(
+ [todo] WERROR spoolss_AddPrinter(
/* This function is not implemented in Samba 3 as no
clients have been observed using it. */
);
/******************/
/* Function: 0x06 */
- WERROR spoolss_DeletePrinter(
+ [todo] WERROR spoolss_DeletePrinter(
);
/******************/
@@ -442,7 +442,7 @@ import "security.idl", "winreg.idl";
/******************/
/* Function: 0x09 */
- WERROR spoolss_AddPrinterDriver(
+ [todo] WERROR spoolss_AddPrinterDriver(
);
typedef struct {
@@ -564,7 +564,7 @@ import "security.idl", "winreg.idl";
/******************/
/* Function: 0x0b */
- WERROR spoolss_GetPrinterDriver(
+ [todo] WERROR spoolss_GetPrinterDriver(
);
/******************/
@@ -602,7 +602,7 @@ import "security.idl", "winreg.idl";
/******************/
/* Function: 0x0e */
- WERROR spoolss_AddPrintProcessor(
+ [todo] WERROR spoolss_AddPrintProcessor(
);
/******************/
@@ -644,7 +644,7 @@ import "security.idl", "winreg.idl";
/******************/
/* Function: 0x10 */
- WERROR spoolss_GetPrintProcessorDirectory(
+ [todo] WERROR spoolss_GetPrintProcessorDirectory(
);
/******************/
@@ -713,12 +713,12 @@ import "security.idl", "winreg.idl";
/******************/
/* Function: 0x18 */
- WERROR spoolss_AddJob(
+ [todo] WERROR spoolss_AddJob(
);
/******************/
/* Function: 0x19 */
- WERROR spoolss_ScheduleJob(
+ [todo] WERROR spoolss_ScheduleJob(
);
/******************/
@@ -806,7 +806,7 @@ import "security.idl", "winreg.idl";
/******************/
/* Function: 0x1c */
- WERROR spoolss_WaitForPrinterChange(
+ [todo] WERROR spoolss_WaitForPrinterChange(
);
/******************/
@@ -1022,79 +1022,79 @@ import "security.idl", "winreg.idl";
/******************/
/* Function: 0x26 */
- WERROR spoolss_ConfigurePort(
+ [todo] WERROR spoolss_ConfigurePort(
);
/******************/
/* Function: 0x27 */
- WERROR spoolss_DeletePort(
+ [todo] WERROR spoolss_DeletePort(
);
/******************/
/* Function: 0x28 */
- WERROR spoolss_CreatePrinterIC(
+ [todo] WERROR spoolss_CreatePrinterIC(
);
/******************/
/* Function: 0x29 */
- WERROR spoolss_PlayGDIScriptOnPrinterIC(
+ [todo] WERROR spoolss_PlayGDIScriptOnPrinterIC(
);
/******************/
/* Function: 0x2a */
- WERROR spoolss_DeletePrinterIC(
+ [todo] WERROR spoolss_DeletePrinterIC(
);
/******************/
/* Function: 0x2b */
- WERROR spoolss_AddPrinterConnection(
+ [todo] WERROR spoolss_AddPrinterConnection(
);
/******************/
/* Function: 0x2c */
- WERROR spoolss_DeletePrinterConnection(
+ [todo] WERROR spoolss_DeletePrinterConnection(
);
/******************/
/* Function: 0x2d */
- WERROR spoolss_PrinterMessageBox(
+ [todo] WERROR spoolss_PrinterMessageBox(
/* Marked as obsolete in MSDN. "Not necessary and has
no effect". */
);
/******************/
/* Function: 0x2e */
- WERROR spoolss_AddMonitor(
+ [todo] WERROR spoolss_AddMonitor(
);
/******************/
/* Function: 0x2f */
- WERROR spoolss_DeleteMonitor(
+ [todo] WERROR spoolss_DeleteMonitor(
);
/******************/
/* Function: 0x30 */
- WERROR spoolss_DeletePrintProcessor(
+ [todo] WERROR spoolss_DeletePrintProcessor(
);
/******************/
/* Function: 0x31 */
- WERROR spoolss_AddPrintProvidor(
+ [todo] WERROR spoolss_AddPrintProvidor(
);
/******************/
/* Function: 0x32 */
- WERROR spoolss_DeletePrintProvidor(
+ [todo] WERROR spoolss_DeletePrintProvidor(
);
/******************/
/* Function: 0x33 */
- WERROR spoolss_EnumPrintProcDataTypes(
+ [todo] WERROR spoolss_EnumPrintProcDataTypes(
);
/******************/
/* Function: 0x34 */
- WERROR spoolss_ResetPrinter(
+ [todo] WERROR spoolss_ResetPrinter(
);
/******************/
@@ -1115,12 +1115,12 @@ import "security.idl", "winreg.idl";
/******************/
/* Function: 0x36 */
- WERROR spoolss_FindFirstPrinterChangeNotification(
+ [todo] WERROR spoolss_FindFirstPrinterChangeNotification(
);
/******************/
/* Function: 0x37 */
- WERROR spoolss_FindNextPrinterChangeNotification(
+ [todo] WERROR spoolss_FindNextPrinterChangeNotification(
);
/******************/
@@ -1131,7 +1131,7 @@ import "security.idl", "winreg.idl";
/******************/
/* Function: 0x39 */
- WERROR spoolss_RouterFindFirstPrinterChangeNotificationOld(
+ [todo] WERROR spoolss_RouterFindFirstPrinterChangeNotificationOld(
);
/******************/
@@ -1147,7 +1147,7 @@ import "security.idl", "winreg.idl";
/******************/
/* Function: 0x3b */
- WERROR spoolss_RouterReplyPrinter(
+ [todo] WERROR spoolss_RouterReplyPrinter(
);
/******************/
@@ -1158,22 +1158,22 @@ import "security.idl", "winreg.idl";
/******************/
/* Function: 0x3d */
- WERROR spoolss_AddPortEx(
+ [todo] WERROR spoolss_AddPortEx(
);
/******************/
/* Function: 0x3e */
- WERROR spoolss_RouterFindFirstPrinterChangeNotification(
+ [todo] WERROR spoolss_RouterFindFirstPrinterChangeNotification(
);
/******************/
/* Function: 0x3f */
- WERROR spoolss_SpoolerInit(
+ [todo] WERROR spoolss_SpoolerInit(
);
/******************/
/* Function: 0x40 */
- WERROR spoolss_ResetPrinterEx(
+ [todo] WERROR spoolss_ResetPrinterEx(
);
typedef [enum16bit] enum {
@@ -1239,7 +1239,7 @@ import "security.idl", "winreg.idl";
/******************/
/* Function: 0x42 */
- WERROR spoolss_RouterRefreshPrinterChangeNotification(
+ [todo] WERROR spoolss_RouterRefreshPrinterChangeNotification(
);
typedef struct {
@@ -1295,7 +1295,7 @@ import "security.idl", "winreg.idl";
/******************/
/* Function: 0x44 */
- WERROR spoolss_44(
+ [todo] WERROR spoolss_44(
);
typedef struct {
@@ -1399,7 +1399,7 @@ import "security.idl", "winreg.idl";
/******************/
/* Function: 0x47 */
- WERROR spoolss_47(
+ [todo] WERROR spoolss_47(
);
/******************/
@@ -1425,17 +1425,17 @@ import "security.idl", "winreg.idl";
/******************/
/* Function: 0x4a */
- WERROR spoolss_4a(
+ [todo] WERROR spoolss_4a(
);
/******************/
/* Function: 0x4b */
- WERROR spoolss_4b(
+ [todo] WERROR spoolss_4b(
);
/******************/
/* Function: 0x4c */
- WERROR spoolss_4c(
+ [todo] WERROR spoolss_4c(
);
/******************/
@@ -1492,32 +1492,32 @@ import "security.idl", "winreg.idl";
/******************/
/* Function: 0x52 */
- WERROR spoolss_DeletePrinterKey(
+ [todo] WERROR spoolss_DeletePrinterKey(
);
/******************/
/* Function: 0x53 */
- WERROR spoolss_53(
+ [todo] WERROR spoolss_53(
);
/******************/
/* Function: 0x54 */
- WERROR spoolss_DeletePrinterDriverEx(
+ [todo] WERROR spoolss_DeletePrinterDriverEx(
);
/******************/
/* Function: 0x55 */
- WERROR spoolss_55(
+ [todo] WERROR spoolss_55(
);
/******************/
/* Function: 0x56 */
- WERROR spoolss_56(
+ [todo] WERROR spoolss_56(
);
/******************/
/* Function: 0x57 */
- WERROR spoolss_57(
+ [todo] WERROR spoolss_57(
);
/******************/
@@ -1536,36 +1536,36 @@ import "security.idl", "winreg.idl";
/******************/
/* Function: 0x59 */
- [public] WERROR spoolss_AddPrinterDriverEx(
+ [public,todo] WERROR spoolss_AddPrinterDriverEx(
);
/******************/
/* Function: 0x5a */
- WERROR spoolss_5a(
+ [todo] WERROR spoolss_5a(
);
/******************/
/* Function: 0x5b */
- WERROR spoolss_5b(
+ [todo] WERROR spoolss_5b(
);
/******************/
/* Function: 0x5c */
- WERROR spoolss_5c(
+ [todo] WERROR spoolss_5c(
);
/******************/
/* Function: 0x5d */
- WERROR spoolss_5d(
+ [todo] WERROR spoolss_5d(
);
/******************/
/* Function: 0x5e */
- WERROR spoolss_5e(
+ [todo] WERROR spoolss_5e(
);
/******************/
/* Function: 0x5f */
- WERROR spoolss_5f(
+ [todo] WERROR spoolss_5f(
);
}
diff --git a/source4/librpc/idl/srvsvc.idl b/source4/librpc/idl/srvsvc.idl
index 8ef49413bc..703f3281cf 100644
--- a/source4/librpc/idl/srvsvc.idl
+++ b/source4/librpc/idl/srvsvc.idl
@@ -1370,7 +1370,7 @@ import "security.idl", "svcctl.idl";
/******************/
/* Function: 0x22 */
- WERROR srvsvc_NETRPRNAMECANONICALIZE(
+ [todo] WERROR srvsvc_NETRPRNAMECANONICALIZE(
);
/******************/
@@ -1464,56 +1464,56 @@ import "security.idl", "svcctl.idl";
/******************/
/* Function: 0x2b */
- WERROR srvsvc_NETRDFSGETVERSION(
+ [todo] WERROR srvsvc_NETRDFSGETVERSION(
);
/******************/
/* Function: 0x2c */
- WERROR srvsvc_NETRDFSCREATELOCALPARTITION(
+ [todo] WERROR srvsvc_NETRDFSCREATELOCALPARTITION(
);
/******************/
/* Function: 0x2d */
- WERROR srvsvc_NETRDFSDELETELOCALPARTITION(
+ [todo] WERROR srvsvc_NETRDFSDELETELOCALPARTITION(
);
/******************/
/* Function: 0x2e */
- WERROR srvsvc_NETRDFSSETLOCALVOLUMESTATE(
+ [todo] WERROR srvsvc_NETRDFSSETLOCALVOLUMESTATE(
);
/******************/
/* Function: 0x2f */
- WERROR srvsvc_NETRDFSSETSERVERINFO(
+ [todo] WERROR srvsvc_NETRDFSSETSERVERINFO(
);
/******************/
/* Function: 0x30 */
- WERROR srvsvc_NETRDFSCREATEEXITPOINT(
+ [todo] WERROR srvsvc_NETRDFSCREATEEXITPOINT(
);
/******************/
/* Function: 0x31 */
- WERROR srvsvc_NETRDFSDELETEEXITPOINT(
+ [todo] WERROR srvsvc_NETRDFSDELETEEXITPOINT(
);
/******************/
/* Function: 0x32 */
- WERROR srvsvc_NETRDFSMODIFYPREFIX(
+ [todo] WERROR srvsvc_NETRDFSMODIFYPREFIX(
);
/******************/
/* Function: 0x33 */
- WERROR srvsvc_NETRDFSFIXLOCALVOLUME(
+ [todo] WERROR srvsvc_NETRDFSFIXLOCALVOLUME(
);
/******************/
/* Function: 0x34 */
- WERROR srvsvc_NETRDFSMANAGERREPORTSITEINFO(
+ [todo] WERROR srvsvc_NETRDFSMANAGERREPORTSITEINFO(
);
/******************/
/* Function: 0x35 */
- WERROR srvsvc_NETRSERVERTRANSPORTDELEX(
+ [todo] WERROR srvsvc_NETRSERVERTRANSPORTDELEX(
);
}
diff --git a/source4/librpc/idl/svcctl.idl b/source4/librpc/idl/svcctl.idl
index 8f368ef878..615f4e3dab 100644
--- a/source4/librpc/idl/svcctl.idl
+++ b/source4/librpc/idl/svcctl.idl
@@ -115,12 +115,12 @@ import "misc.idl";
/*****************/
/* Function 0x04 */
- WERROR svcctl_QueryServiceObjectSecurity(
+ [todo] WERROR svcctl_QueryServiceObjectSecurity(
);
/*****************/
/* Function 0x05 */
- WERROR svcctl_SetServiceObjectSecurity(
+ [todo] WERROR svcctl_SetServiceObjectSecurity(
);
/*****************/
@@ -132,7 +132,7 @@ import "misc.idl";
/*****************/
/* Function 0x07 */
- WERROR svcctl_SetServiceStatus(
+ [todo] WERROR svcctl_SetServiceStatus(
);
/*****************/
@@ -143,7 +143,7 @@ import "misc.idl";
/*****************/
/* Function 0x09 */
- WERROR svcctl_NotifyBootConfigStatus(
+ [todo] WERROR svcctl_NotifyBootConfigStatus(
);
/*****************/
@@ -408,12 +408,12 @@ import "misc.idl";
/*****************/
/* Function 0x22 */
- WERROR svcctl_GetCurrentGroupeStateW(
+ [todo] WERROR svcctl_GetCurrentGroupeStateW(
);
/*****************/
/* Function 0x23 */
- WERROR svcctl_EnumServiceGroupW(
+ [todo] WERROR svcctl_EnumServiceGroupW(
);
/*****************/
@@ -494,6 +494,6 @@ import "misc.idl";
/*****************/
/* Function 0x2b */
- WERROR svcctl_SCSendTSMessage(
+ [todo] WERROR svcctl_SCSendTSMessage(
);
}
diff --git a/source4/librpc/idl/w32time.idl b/source4/librpc/idl/w32time.idl
index c3c6e014de..4839899629 100644
--- a/source4/librpc/idl/w32time.idl
+++ b/source4/librpc/idl/w32time.idl
@@ -14,8 +14,8 @@ interface w32time
/*****************/
/* Function 0x00 */
- WERROR w32time_SyncTime();
+ [todo] WERROR w32time_SyncTime();
- WERROR w32time_GetNetLogonServiceBits();
- WERROR w32time_QueryProviderStatus();
+ [todo] WERROR w32time_GetNetLogonServiceBits();
+ [todo] WERROR w32time_QueryProviderStatus();
}
diff --git a/source4/librpc/idl/winbind.idl b/source4/librpc/idl/winbind.idl
index 29649c0ea7..5cefb38f75 100644
--- a/source4/librpc/idl/winbind.idl
+++ b/source4/librpc/idl/winbind.idl
@@ -3,8 +3,8 @@
*/
#include "idl_types.h"
-
-import "netlogon.idl";
+
+import "netlogon.idl", "lsa.idl", "security.idl";
[
uuid("245f3e6b-3c5d-6e21-3a2d-2a3d645b7221"),
@@ -16,6 +16,24 @@ interface winbind
typedef [switch_type(uint16)] union netr_LogonLevel netr_LogonLevel;
typedef [switch_type(uint16)] union netr_Validation netr_Validation;
+ typedef enum {
+ ID_TYPE_NOT_SPECIFIED,
+ ID_TYPE_UID,
+ ID_TYPE_GID,
+ ID_TYPE_BOTH
+ } id_type;
+
+ typedef struct {
+ uint32 id;
+ id_type type;
+ } unixid;
+
+ typedef struct {
+ unixid *unixid;
+ dom_sid *sid;
+ NTSTATUS status;
+ } id_mapping;
+
/* a call to get runtime informations */
void winbind_information(/* TODO */);
@@ -35,4 +53,16 @@ interface winbind
[out] [switch_is(validation_level)] netr_Validation validation,
[out] uint8 authoritative
);
+
+ typedef [v1_enum] enum {
+ WINBIND_IDMAP_LEVEL_SIDS_TO_XIDS = 1,
+ WINBIND_IDMAP_LEVEL_XIDS_TO_SIDS = 2
+ } winbind_get_idmap_level;
+
+ NTSTATUS winbind_get_idmap(
+ [in] winbind_get_idmap_level level,
+ [in] uint32 count,
+ [in,out] [size_is(count)] id_mapping ids[]
+ );
+
}
diff --git a/source4/librpc/idl/winreg.idl b/source4/librpc/idl/winreg.idl
index 5e5d5542b6..1e01a91197 100644
--- a/source4/librpc/idl/winreg.idl
+++ b/source4/librpc/idl/winreg.idl
@@ -249,7 +249,7 @@ import "lsa.idl", "security.idl";
/******************/
/* Function: 0x12 */
- WERROR winreg_ReplaceKey(
+ [todo] WERROR winreg_ReplaceKey(
);
/******************/
@@ -295,7 +295,7 @@ import "lsa.idl", "security.idl";
/******************/
/* Function: 0x17 */
- WERROR winreg_UnLoadKey(
+ [todo] WERROR winreg_UnLoadKey(
);
/******************/
@@ -375,7 +375,7 @@ import "lsa.idl", "security.idl";
/******************/
/* Function: 0x1f */
- WERROR winreg_SaveKeyEx(
+ [todo] WERROR winreg_SaveKeyEx(
);
/******************/
@@ -396,6 +396,6 @@ import "lsa.idl", "security.idl";
/******************/
/* Function: 0x22 */
- WERROR winreg_QueryMultipleValues2(
+ [todo] WERROR winreg_QueryMultipleValues2(
);
}
diff --git a/source4/librpc/ndr.pc.in b/source4/librpc/ndr.pc.in
index ed4c459214..2f4d95006f 100644
--- a/source4/librpc/ndr.pc.in
+++ b/source4/librpc/ndr.pc.in
@@ -5,7 +5,7 @@ includedir=@includedir@
Name: ndr
Description: Network Data Representation Core Library
-Requires: samba-config talloc
+Requires: samba-hostconfig talloc
Version: 0.0.1
Libs: -L${libdir} -lndr
Cflags: -I${includedir} -DHAVE_IMMEDIATE_STRUCTURES=1
diff --git a/source4/librpc/ndr/libndr.h b/source4/librpc/ndr/libndr.h
index 731ef0f60b..2439c386db 100644
--- a/source4/librpc/ndr/libndr.h
+++ b/source4/librpc/ndr/libndr.h
@@ -1,6 +1,7 @@
/*
Unix SMB/CIFS implementation.
rpc interface definitions
+
Copyright (C) Andrew Tridgell 2003
This program is free software; you can redistribute it and/or modify
@@ -17,11 +18,16 @@
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
+/* This is a public header file that is installed as part of Samba.
+ * If you remove any functions or change their signature, update
+ * the so version number. */
+
#ifndef __LIBNDR_H__
#define __LIBNDR_H__
#include <talloc.h>
#include "lib/util/util.h" /* for discard_const */
+#include <sys/time.h>
#include "lib/charset/charset.h"
/*
@@ -287,8 +293,7 @@ typedef void (*ndr_print_fn_t)(struct ndr_print *, const char *, const void *);
typedef void (*ndr_print_function_t)(struct ndr_print *, const char *, int, const void *);
#include "libcli/util/error.h"
-#include "librpc/gen_ndr/ndr_misc.h"
-#include "librpc/ndr/libndr_proto.h"
+#include "librpc/gen_ndr/misc.h"
extern const struct ndr_syntax_id ndr_transfer_syntax;
extern const struct ndr_syntax_id ndr64_transfer_syntax;
@@ -333,5 +338,167 @@ void ndr_print_dom_sid28(struct ndr_print *ndr, const char *name, const struct d
size_t ndr_size_dom_sid28(const struct dom_sid *sid, int flags);
void ndr_print_ipv4_addr(struct ndr_print *ndr, const char *name, const struct in_addr *_ip);
void ndr_print_GUID(struct ndr_print *ndr, const char *name, const struct GUID *guid);
+enum ndr_err_code ndr_push_struct_blob(DATA_BLOB *blob, TALLOC_CTX *mem_ctx, struct smb_iconv_convenience *iconv_convenience, const void *p, ndr_push_flags_fn_t fn);
+enum ndr_err_code ndr_push_union_blob(DATA_BLOB *blob, TALLOC_CTX *mem_ctx, struct smb_iconv_convenience *iconv_convenience, void *p, uint32_t level, ndr_push_flags_fn_t fn);
+size_t ndr_size_struct(const void *p, int flags, ndr_push_flags_fn_t push);
+size_t ndr_size_union(const void *p, int flags, uint32_t level, ndr_push_flags_fn_t push);
+uint32_t ndr_push_get_relative_base_offset(struct ndr_push *ndr);
+void ndr_push_restore_relative_base_offset(struct ndr_push *ndr, uint32_t offset);
+enum ndr_err_code ndr_push_setup_relative_base_offset1(struct ndr_push *ndr, const void *p, uint32_t offset);
+enum ndr_err_code ndr_push_setup_relative_base_offset2(struct ndr_push *ndr, const void *p);
+enum ndr_err_code ndr_push_relative_ptr1(struct ndr_push *ndr, const void *p);
+enum ndr_err_code ndr_push_relative_ptr2(struct ndr_push *ndr, const void *p);
+uint32_t ndr_pull_get_relative_base_offset(struct ndr_pull *ndr);
+void ndr_pull_restore_relative_base_offset(struct ndr_pull *ndr, uint32_t offset);
+enum ndr_err_code ndr_pull_setup_relative_base_offset1(struct ndr_pull *ndr, const void *p, uint32_t offset);
+enum ndr_err_code ndr_pull_setup_relative_base_offset2(struct ndr_pull *ndr, const void *p);
+enum ndr_err_code ndr_pull_relative_ptr1(struct ndr_pull *ndr, const void *p, uint32_t rel_offset);
+enum ndr_err_code ndr_pull_relative_ptr2(struct ndr_pull *ndr, const void *p);
+size_t ndr_align_size(uint32_t offset, size_t n);
+struct ndr_pull *ndr_pull_init_blob(const DATA_BLOB *blob, TALLOC_CTX *mem_ctx, struct smb_iconv_convenience *iconv_convenience);
+enum ndr_err_code ndr_pull_advance(struct ndr_pull *ndr, uint32_t size);
+struct ndr_push *ndr_push_init_ctx(TALLOC_CTX *mem_ctx, struct smb_iconv_convenience *iconv_convenience);
+DATA_BLOB ndr_push_blob(struct ndr_push *ndr);
+enum ndr_err_code ndr_push_expand(struct ndr_push *ndr, uint32_t extra_size);
+void ndr_print_debug_helper(struct ndr_print *ndr, const char *format, ...) PRINTF_ATTRIBUTE(2,3);
+void ndr_print_string_helper(struct ndr_print *ndr, const char *format, ...) PRINTF_ATTRIBUTE(2,3);
+void ndr_print_debug(ndr_print_fn_t fn, const char *name, void *ptr);
+void ndr_print_union_debug(ndr_print_fn_t fn, const char *name, uint32_t level, void *ptr);
+void ndr_print_function_debug(ndr_print_function_t fn, const char *name, int flags, void *ptr);
+char *ndr_print_struct_string(TALLOC_CTX *mem_ctx, ndr_print_fn_t fn, const char *name, void *ptr);
+char *ndr_print_union_string(TALLOC_CTX *mem_ctx, ndr_print_fn_t fn, const char *name, uint32_t level, void *ptr);
+char *ndr_print_function_string(TALLOC_CTX *mem_ctx,
+ ndr_print_function_t fn, const char *name,
+ int flags, void *ptr);
+void ndr_set_flags(uint32_t *pflags, uint32_t new_flags);
+enum ndr_err_code ndr_pull_error(struct ndr_pull *ndr,
+ enum ndr_err_code ndr_err,
+ const char *format, ...) PRINTF_ATTRIBUTE(3,4);
+enum ndr_err_code ndr_push_error(struct ndr_push *ndr,
+ enum ndr_err_code ndr_err,
+ const char *format, ...) PRINTF_ATTRIBUTE(3,4);
+enum ndr_err_code ndr_pull_subcontext_start(struct ndr_pull *ndr,
+ struct ndr_pull **_subndr,
+ size_t header_size,
+ ssize_t size_is);
+enum ndr_err_code ndr_pull_subcontext_end(struct ndr_pull *ndr,
+ struct ndr_pull *subndr,
+ size_t header_size,
+ ssize_t size_is);
+enum ndr_err_code ndr_push_subcontext_start(struct ndr_push *ndr,
+ struct ndr_push **_subndr,
+ size_t header_size,
+ ssize_t size_is);
+enum ndr_err_code ndr_push_subcontext_end(struct ndr_push *ndr,
+ struct ndr_push *subndr,
+ size_t header_size,
+ ssize_t size_is);
+enum ndr_err_code ndr_token_store(TALLOC_CTX *mem_ctx,
+ struct ndr_token_list **list,
+ const void *key,
+ uint32_t value);
+enum ndr_err_code ndr_token_retrieve_cmp_fn(struct ndr_token_list **list, const void *key, uint32_t *v, comparison_fn_t _cmp_fn, bool _remove_tok);
+enum ndr_err_code ndr_token_retrieve(struct ndr_token_list **list, const void *key, uint32_t *v);
+uint32_t ndr_token_peek(struct ndr_token_list **list, const void *key);
+enum ndr_err_code ndr_pull_array_size(struct ndr_pull *ndr, const void *p);
+uint32_t ndr_get_array_size(struct ndr_pull *ndr, const void *p);
+enum ndr_err_code ndr_check_array_size(struct ndr_pull *ndr, void *p, uint32_t size);
+enum ndr_err_code ndr_pull_array_length(struct ndr_pull *ndr, const void *p);
+uint32_t ndr_get_array_length(struct ndr_pull *ndr, const void *p);
+enum ndr_err_code ndr_check_array_length(struct ndr_pull *ndr, void *p, uint32_t length);
+enum ndr_err_code ndr_push_set_switch_value(struct ndr_push *ndr, const void *p, uint32_t val);
+enum ndr_err_code ndr_pull_set_switch_value(struct ndr_pull *ndr, const void *p, uint32_t val);
+enum ndr_err_code ndr_print_set_switch_value(struct ndr_print *ndr, const void *p, uint32_t val);
+uint32_t ndr_push_get_switch_value(struct ndr_push *ndr, const void *p);
+uint32_t ndr_pull_get_switch_value(struct ndr_pull *ndr, const void *p);
+uint32_t ndr_print_get_switch_value(struct ndr_print *ndr, const void *p);
+enum ndr_err_code ndr_pull_struct_blob(const DATA_BLOB *blob, TALLOC_CTX *mem_ctx, struct smb_iconv_convenience *iconv_convenience, void *p, ndr_pull_flags_fn_t fn);
+enum ndr_err_code ndr_pull_struct_blob_all(const DATA_BLOB *blob, TALLOC_CTX *mem_ctx, struct smb_iconv_convenience *iconv_convenience, void *p, ndr_pull_flags_fn_t fn);
+enum ndr_err_code ndr_pull_union_blob(const DATA_BLOB *blob, TALLOC_CTX *mem_ctx, struct smb_iconv_convenience *iconv_convenience, void *p, uint32_t level, ndr_pull_flags_fn_t fn);
+enum ndr_err_code ndr_pull_union_blob_all(const DATA_BLOB *blob, TALLOC_CTX *mem_ctx, struct smb_iconv_convenience *iconv_convenience, void *p, uint32_t level, ndr_pull_flags_fn_t fn);
+
+/* from libndr_basic.h */
+#define NDR_SCALAR_PROTO(name, type) \
+enum ndr_err_code ndr_push_ ## name(struct ndr_push *ndr, int ndr_flags, type v); \
+enum ndr_err_code ndr_pull_ ## name(struct ndr_pull *ndr, int ndr_flags, type *v); \
+void ndr_print_ ## name(struct ndr_print *ndr, const char *var_name, type v);
+
+#define NDR_BUFFER_PROTO(name, type) \
+enum ndr_err_code ndr_push_ ## name(struct ndr_push *ndr, int ndr_flags, const type *v); \
+enum ndr_err_code ndr_pull_ ## name(struct ndr_pull *ndr, int ndr_flags, type *v); \
+void ndr_print_ ## name(struct ndr_print *ndr, const char *var_name, const type *v);
+
+NDR_SCALAR_PROTO(uint8, uint8_t)
+NDR_SCALAR_PROTO(int8, int8_t)
+NDR_SCALAR_PROTO(uint16, uint16_t)
+NDR_SCALAR_PROTO(int16, int16_t)
+NDR_SCALAR_PROTO(uint32, uint32_t)
+NDR_SCALAR_PROTO(int32, int32_t)
+NDR_SCALAR_PROTO(udlong, uint64_t)
+NDR_SCALAR_PROTO(udlongr, uint64_t)
+NDR_SCALAR_PROTO(dlong, int64_t)
+NDR_SCALAR_PROTO(hyper, uint64_t)
+NDR_SCALAR_PROTO(pointer, void *)
+NDR_SCALAR_PROTO(time_t, time_t)
+NDR_SCALAR_PROTO(NTSTATUS, NTSTATUS)
+NDR_SCALAR_PROTO(WERROR, WERROR)
+NDR_SCALAR_PROTO(NTTIME, NTTIME)
+NDR_SCALAR_PROTO(NTTIME_1sec, NTTIME)
+NDR_SCALAR_PROTO(NTTIME_hyper, NTTIME)
+NDR_SCALAR_PROTO(DATA_BLOB, DATA_BLOB)
+NDR_SCALAR_PROTO(ipv4address, const char *)
+NDR_SCALAR_PROTO(string, const char *)
+
+enum ndr_err_code ndr_pull_policy_handle(struct ndr_pull *ndr, int ndr_flags, struct policy_handle *r);
+enum ndr_err_code ndr_push_policy_handle(struct ndr_push *ndr, int ndr_flags, const struct policy_handle *r);
+void ndr_print_policy_handle(struct ndr_print *ndr, const char *name, const struct policy_handle *r);
+bool policy_handle_empty(struct policy_handle *h);
+
+void ndr_check_padding(struct ndr_pull *ndr, size_t n);
+enum ndr_err_code ndr_pull_generic_ptr(struct ndr_pull *ndr, uint32_t *v);
+enum ndr_err_code ndr_pull_ref_ptr(struct ndr_pull *ndr, uint32_t *v);
+enum ndr_err_code ndr_pull_bytes(struct ndr_pull *ndr, uint8_t *data, uint32_t n);
+enum ndr_err_code ndr_pull_array_uint8(struct ndr_pull *ndr, int ndr_flags, uint8_t *data, uint32_t n);
+enum ndr_err_code ndr_push_align(struct ndr_push *ndr, size_t size);
+enum ndr_err_code ndr_pull_align(struct ndr_pull *ndr, size_t size);
+enum ndr_err_code ndr_push_bytes(struct ndr_push *ndr, const uint8_t *data, uint32_t n);
+enum ndr_err_code ndr_push_zero(struct ndr_push *ndr, uint32_t n);
+enum ndr_err_code ndr_push_array_uint8(struct ndr_push *ndr, int ndr_flags, const uint8_t *data, uint32_t n);
+enum ndr_err_code ndr_push_unique_ptr(struct ndr_push *ndr, const void *p);
+enum ndr_err_code ndr_push_full_ptr(struct ndr_push *ndr, const void *p);
+enum ndr_err_code ndr_push_ref_ptr(struct ndr_push *ndr);
+void ndr_print_struct(struct ndr_print *ndr, const char *name, const char *type);
+void ndr_print_enum(struct ndr_print *ndr, const char *name, const char *type, const char *val, uint32_t value);
+void ndr_print_bitmap_flag(struct ndr_print *ndr, size_t size, const char *flag_name, uint32_t flag, uint32_t value);
+void ndr_print_bitmap_flag(struct ndr_print *ndr, size_t size, const char *flag_name, uint32_t flag, uint32_t value);
+void ndr_print_ptr(struct ndr_print *ndr, const char *name, const void *p);
+void ndr_print_union(struct ndr_print *ndr, const char *name, int level, const char *type);
+void ndr_print_bad_level(struct ndr_print *ndr, const char *name, uint16_t level);
+void ndr_print_array_uint8(struct ndr_print *ndr, const char *name, const uint8_t *data, uint32_t count);
+uint32_t ndr_size_DATA_BLOB(int ret, const DATA_BLOB *data, int flags);
+
+/* strings */
+uint32_t ndr_charset_length(const void *var, charset_t chset);
+size_t ndr_string_array_size(struct ndr_push *ndr, const char *s);
+uint32_t ndr_size_string(int ret, const char * const* string, int flags);
+enum ndr_err_code ndr_pull_string_array(struct ndr_pull *ndr, int ndr_flags, const char ***_a);
+enum ndr_err_code ndr_push_string_array(struct ndr_push *ndr, int ndr_flags, const char **a);
+void ndr_print_string_array(struct ndr_print *ndr, const char *name, const char **a);
+uint32_t ndr_string_length(const void *_var, uint32_t element_size);
+enum ndr_err_code ndr_check_string_terminator(struct ndr_pull *ndr, uint32_t count, uint32_t element_size);
+enum ndr_err_code ndr_pull_charset(struct ndr_pull *ndr, int ndr_flags, const char **var, uint32_t length, uint8_t byte_mul, charset_t chset);
+enum ndr_err_code ndr_push_charset(struct ndr_push *ndr, int ndr_flags, const char *var, uint32_t length, uint8_t byte_mul, charset_t chset);
+
+/* GUIDs */
+bool GUID_equal(const struct GUID *u1, const struct GUID *u2);
+NTSTATUS GUID_from_string(const char *s, struct GUID *guid);
+NTSTATUS NS_GUID_from_string(const char *s, struct GUID *guid);
+struct GUID GUID_zero(void);
+bool GUID_all_zero(const struct GUID *u);
+int GUID_compare(const struct GUID *u1, const struct GUID *u2);
+char *GUID_string(TALLOC_CTX *mem_ctx, const struct GUID *guid);
+char *GUID_string2(TALLOC_CTX *mem_ctx, const struct GUID *guid);
+char *NS_GUID_string(TALLOC_CTX *mem_ctx, const struct GUID *guid);
+struct GUID GUID_random(void);
#endif /* __LIBNDR_H__ */
diff --git a/source4/librpc/ndr/ndr.c b/source4/librpc/ndr/ndr.c
index e6da096403..40852456bc 100644
--- a/source4/librpc/ndr/ndr.c
+++ b/source4/librpc/ndr/ndr.c
@@ -163,7 +163,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_expand(struct ndr_push *ndr, uint32_t extra_
return NDR_ERR_SUCCESS;
}
-_PUBLIC_ void ndr_print_debug_helper(struct ndr_print *ndr, const char *format, ...) _PRINTF_ATTRIBUTE(2,3)
+_PUBLIC_ void ndr_print_debug_helper(struct ndr_print *ndr, const char *format, ...)
{
va_list ap;
char *s = NULL;
@@ -181,7 +181,7 @@ _PUBLIC_ void ndr_print_debug_helper(struct ndr_print *ndr, const char *format,
free(s);
}
-_PUBLIC_ void ndr_print_string_helper(struct ndr_print *ndr, const char *format, ...) _PRINTF_ATTRIBUTE(2,3)
+_PUBLIC_ void ndr_print_string_helper(struct ndr_print *ndr, const char *format, ...)
{
va_list ap;
int i;
@@ -346,7 +346,7 @@ _PUBLIC_ void ndr_set_flags(uint32_t *pflags, uint32_t new_flags)
*/
_PUBLIC_ enum ndr_err_code ndr_pull_error(struct ndr_pull *ndr,
enum ndr_err_code ndr_err,
- const char *format, ...) _PRINTF_ATTRIBUTE(3,4)
+ const char *format, ...)
{
char *s=NULL;
va_list ap;
@@ -367,7 +367,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_error(struct ndr_pull *ndr,
*/
_PUBLIC_ enum ndr_err_code ndr_push_error(struct ndr_push *ndr,
enum ndr_err_code ndr_err,
- const char *format, ...) _PRINTF_ATTRIBUTE(3,4)
+ const char *format, ...)
{
char *s=NULL;
va_list ap;
diff --git a/source4/librpc/ndr/uuid.c b/source4/librpc/ndr/uuid.c
index e92df22494..1e6ee0a3db 100644
--- a/source4/librpc/ndr/uuid.c
+++ b/source4/librpc/ndr/uuid.c
@@ -110,7 +110,7 @@ _PUBLIC_ NTSTATUS NS_GUID_from_string(const char *s, struct GUID *guid)
/**
* generate a random GUID
*/
-struct GUID GUID_random(void)
+_PUBLIC_ struct GUID GUID_random(void)
{
struct GUID guid;
diff --git a/source4/librpc/rpc/dcerpc.c b/source4/librpc/rpc/dcerpc.c
index a379398f19..5e32f6f5bf 100644
--- a/source4/librpc/rpc/dcerpc.c
+++ b/source4/librpc/rpc/dcerpc.c
@@ -24,13 +24,14 @@
#include "lib/util/dlinklist.h"
#include "lib/events/events.h"
#include "librpc/rpc/dcerpc.h"
+#include "librpc/rpc/dcerpc_proto.h"
#include "librpc/gen_ndr/ndr_misc.h"
#include "librpc/gen_ndr/ndr_dcerpc.h"
#include "libcli/composite/composite.h"
#include "auth/gensec/gensec.h"
#include "param/param.h"
-NTSTATUS dcerpc_init(void)
+_PUBLIC_ NTSTATUS dcerpc_init(void)
{
gensec_init(global_loadparm);
@@ -98,7 +99,7 @@ static struct dcerpc_connection *dcerpc_connection_init(TALLOC_CTX *mem_ctx,
}
/* initialise a dcerpc pipe. */
-struct dcerpc_pipe *dcerpc_pipe_init(TALLOC_CTX *mem_ctx, struct event_context *ev,
+_PUBLIC_ struct dcerpc_pipe *dcerpc_pipe_init(TALLOC_CTX *mem_ctx, struct event_context *ev,
struct smb_iconv_convenience *ic)
{
struct dcerpc_pipe *p;
@@ -1104,7 +1105,7 @@ static void dcerpc_ship_next_request(struct dcerpc_connection *c)
return the event context for a dcerpc pipe
used by callers who wish to operate asynchronously
*/
-struct event_context *dcerpc_event_context(struct dcerpc_pipe *p)
+_PUBLIC_ struct event_context *dcerpc_event_context(struct dcerpc_pipe *p)
{
return p->conn->event_ctx;
}
@@ -1503,7 +1504,7 @@ _PUBLIC_ NTSTATUS dcerpc_ndr_request_recv(struct rpc_request *req)
this can be used when you have ndr push/pull functions in the
standard format
*/
-NTSTATUS dcerpc_ndr_request(struct dcerpc_pipe *p,
+_PUBLIC_ NTSTATUS dcerpc_ndr_request(struct dcerpc_pipe *p,
const struct GUID *object,
const struct ndr_interface_table *table,
uint32_t opnum,
@@ -1524,7 +1525,7 @@ NTSTATUS dcerpc_ndr_request(struct dcerpc_pipe *p,
/*
a useful function for retrieving the server name we connected to
*/
-const char *dcerpc_server_name(struct dcerpc_pipe *p)
+_PUBLIC_ const char *dcerpc_server_name(struct dcerpc_pipe *p)
{
if (!p->conn->transport.target_hostname) {
if (!p->conn->transport.peer_name) {
@@ -1688,7 +1689,7 @@ NTSTATUS dcerpc_alter_context_recv(struct composite_context *ctx)
/*
send a dcerpc alter_context request
*/
-NTSTATUS dcerpc_alter_context(struct dcerpc_pipe *p,
+_PUBLIC_ NTSTATUS dcerpc_alter_context(struct dcerpc_pipe *p,
TALLOC_CTX *mem_ctx,
const struct ndr_syntax_id *syntax,
const struct ndr_syntax_id *transfer_syntax)
diff --git a/source4/librpc/rpc/dcerpc.h b/source4/librpc/rpc/dcerpc.h
index 7c6aa7513b..805f5463a9 100644
--- a/source4/librpc/rpc/dcerpc.h
+++ b/source4/librpc/rpc/dcerpc.h
@@ -20,6 +20,10 @@
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
+/* This is a public header file that is installed as part of Samba.
+ * If you remove any functions or change their signature, update
+ * the so version number. */
+
#ifndef __DCERPC_H__
#define __DCERPC_H__
@@ -233,6 +237,130 @@ struct smbcli_tree;
struct smb2_tree;
struct socket_address;
-#include "librpc/rpc/dcerpc_proto.h"
+NTSTATUS dcerpc_pipe_connect(TALLOC_CTX *parent_ctx,
+ struct dcerpc_pipe **pp,
+ const char *binding,
+ const struct ndr_interface_table *table,
+ struct cli_credentials *credentials,
+ struct event_context *ev,
+ struct loadparm_context *lp_ctx);
+NTSTATUS dcerpc_ndr_request_recv(struct rpc_request *req);
+struct rpc_request *dcerpc_ndr_request_send(struct dcerpc_pipe *p,
+ const struct GUID *object,
+ const struct ndr_interface_table *table,
+ uint32_t opnum,
+ TALLOC_CTX *mem_ctx,
+ void *r);
+const char *dcerpc_server_name(struct dcerpc_pipe *p);
+struct dcerpc_pipe *dcerpc_pipe_init(TALLOC_CTX *mem_ctx, struct event_context *ev,
+ struct smb_iconv_convenience *ic);
+NTSTATUS dcerpc_pipe_open_smb(struct dcerpc_pipe *p,
+ struct smbcli_tree *tree,
+ const char *pipe_name);
+NTSTATUS dcerpc_bind_auth_none(struct dcerpc_pipe *p,
+ const struct ndr_interface_table *table);
+NTSTATUS dcerpc_fetch_session_key(struct dcerpc_pipe *p,
+ DATA_BLOB *session_key);
+struct composite_context;
+NTSTATUS dcerpc_secondary_connection_recv(struct composite_context *c,
+ struct dcerpc_pipe **p2);
+NTSTATUS dcerpc_parse_binding(TALLOC_CTX *mem_ctx, const char *s, struct dcerpc_binding **b_out);
+
+struct composite_context* dcerpc_pipe_connect_b_send(TALLOC_CTX *parent_ctx,
+ struct dcerpc_binding *binding,
+ const struct ndr_interface_table *table,
+ struct cli_credentials *credentials,
+ struct event_context *ev,
+ struct loadparm_context *lp_ctx);
+
+NTSTATUS dcerpc_pipe_connect_b_recv(struct composite_context *c, TALLOC_CTX *mem_ctx,
+ struct dcerpc_pipe **p);
+
+NTSTATUS dcerpc_pipe_connect_b(TALLOC_CTX *parent_ctx,
+ struct dcerpc_pipe **pp,
+ struct dcerpc_binding *binding,
+ const struct ndr_interface_table *table,
+ struct cli_credentials *credentials,
+ struct event_context *ev,
+ struct loadparm_context *lp_ctx);
+const char *dcerpc_errstr(TALLOC_CTX *mem_ctx, uint32_t fault_code);
+
+NTSTATUS dcerpc_pipe_auth(TALLOC_CTX *mem_ctx,
+ struct dcerpc_pipe **p,
+ struct dcerpc_binding *binding,
+ const struct ndr_interface_table *table,
+ struct cli_credentials *credentials,
+ struct loadparm_context *lp_ctx);
+char *dcerpc_binding_string(TALLOC_CTX *mem_ctx, const struct dcerpc_binding *b);
+NTSTATUS dcerpc_secondary_connection(struct dcerpc_pipe *p,
+ struct dcerpc_pipe **p2,
+ struct dcerpc_binding *b);
+NTSTATUS dcerpc_bind_auth_schannel(TALLOC_CTX *tmp_ctx,
+ struct dcerpc_pipe *p,
+ const struct ndr_interface_table *table,
+ struct cli_credentials *credentials,
+ struct loadparm_context *lp_ctx,
+ uint8_t auth_level);
+struct event_context *dcerpc_event_context(struct dcerpc_pipe *p);
+NTSTATUS dcerpc_init(void);
+struct smbcli_tree *dcerpc_smb_tree(struct dcerpc_connection *c);
+uint16_t dcerpc_smb_fnum(struct dcerpc_connection *c);
+NTSTATUS dcerpc_secondary_context(struct dcerpc_pipe *p,
+ struct dcerpc_pipe **pp2,
+ const struct ndr_interface_table *table);
+NTSTATUS dcerpc_alter_context(struct dcerpc_pipe *p,
+ TALLOC_CTX *mem_ctx,
+ const struct ndr_syntax_id *syntax,
+ const struct ndr_syntax_id *transfer_syntax);
+
+NTSTATUS dcerpc_bind_auth(struct dcerpc_pipe *p,
+ const struct ndr_interface_table *table,
+ struct cli_credentials *credentials,
+ struct loadparm_context *lp_ctx,
+ uint8_t auth_type, uint8_t auth_level,
+ const char *service);
+struct composite_context* dcerpc_pipe_connect_send(TALLOC_CTX *parent_ctx,
+ const char *binding,
+ const struct ndr_interface_table *table,
+ struct cli_credentials *credentials,
+ struct event_context *ev, struct loadparm_context *lp_ctx);
+NTSTATUS dcerpc_pipe_connect_recv(struct composite_context *c,
+ TALLOC_CTX *mem_ctx,
+ struct dcerpc_pipe **pp);
+
+NTSTATUS dcerpc_epm_map_binding(TALLOC_CTX *mem_ctx, struct dcerpc_binding *binding,
+ const struct ndr_interface_table *table, struct event_context *ev,
+ struct loadparm_context *lp_ctx);
+struct composite_context* dcerpc_secondary_auth_connection_send(struct dcerpc_pipe *p,
+ struct dcerpc_binding *binding,
+ const struct ndr_interface_table *table,
+ struct cli_credentials *credentials,
+ struct loadparm_context *lp_ctx);
+NTSTATUS dcerpc_secondary_auth_connection_recv(struct composite_context *c,
+ TALLOC_CTX *mem_ctx,
+ struct dcerpc_pipe **p);
+
+struct composite_context* dcerpc_secondary_connection_send(struct dcerpc_pipe *p,
+ struct dcerpc_binding *b);
+void dcerpc_log_packet(const struct ndr_interface_table *ndr,
+ uint32_t opnum, uint32_t flags,
+ DATA_BLOB *pkt);
+NTSTATUS dcerpc_binding_build_tower(TALLOC_CTX *mem_ctx, struct dcerpc_binding *binding, struct epm_tower *tower);
+
+NTSTATUS dcerpc_floor_get_lhs_data(struct epm_floor *epm_floor, struct ndr_syntax_id *syntax);
+
+enum dcerpc_transport_t dcerpc_transport_by_tower(struct epm_tower *tower);
+
+NTSTATUS dcerpc_ndr_request(struct dcerpc_pipe *p,
+ const struct GUID *object,
+ const struct ndr_interface_table *table,
+ uint32_t opnum,
+ TALLOC_CTX *mem_ctx,
+ void *r);
+
+NTSTATUS dcerpc_binding_from_tower(TALLOC_CTX *mem_ctx,
+ struct epm_tower *tower,
+ struct dcerpc_binding **b_out);
+
#endif /* __DCERPC_H__ */
diff --git a/source4/librpc/rpc/dcerpc_auth.c b/source4/librpc/rpc/dcerpc_auth.c
index f80ef86413..f990029f1d 100644
--- a/source4/librpc/rpc/dcerpc_auth.c
+++ b/source4/librpc/rpc/dcerpc_auth.c
@@ -25,6 +25,7 @@
#include "libcli/composite/composite.h"
#include "auth/gensec/gensec.h"
#include "librpc/rpc/dcerpc.h"
+#include "librpc/rpc/dcerpc_proto.h"
#include "param/param.h"
/*
@@ -86,7 +87,7 @@ NTSTATUS dcerpc_bind_auth_none_recv(struct composite_context *ctx)
/*
Perform sync non-authenticated dcerpc bind
*/
-NTSTATUS dcerpc_bind_auth_none(struct dcerpc_pipe *p,
+_PUBLIC_ NTSTATUS dcerpc_bind_auth_none(struct dcerpc_pipe *p,
const struct ndr_interface_table *table)
{
struct composite_context *ctx;
@@ -372,7 +373,7 @@ NTSTATUS dcerpc_bind_auth_recv(struct composite_context *creq)
@retval NTSTATUS status code
*/
-NTSTATUS dcerpc_bind_auth(struct dcerpc_pipe *p,
+_PUBLIC_ NTSTATUS dcerpc_bind_auth(struct dcerpc_pipe *p,
const struct ndr_interface_table *table,
struct cli_credentials *credentials,
struct loadparm_context *lp_ctx,
diff --git a/source4/librpc/rpc/dcerpc_connect.c b/source4/librpc/rpc/dcerpc_connect.c
index 361be4adcd..cc7f2ddbaa 100644
--- a/source4/librpc/rpc/dcerpc_connect.c
+++ b/source4/librpc/rpc/dcerpc_connect.c
@@ -30,6 +30,7 @@
#include "libcli/smb2/smb2.h"
#include "libcli/smb2/smb2_calls.h"
#include "librpc/rpc/dcerpc.h"
+#include "librpc/rpc/dcerpc_proto.h"
#include "auth/credentials/credentials.h"
#include "param/param.h"
#include "libcli/resolve/resolve.h"
@@ -705,7 +706,7 @@ static void dcerpc_connect_timeout_handler(struct event_context *ev, struct time
start a request to open a rpc connection to a rpc pipe, using
specified binding structure to determine the endpoint and options
*/
-struct composite_context* dcerpc_pipe_connect_b_send(TALLOC_CTX *parent_ctx,
+_PUBLIC_ struct composite_context* dcerpc_pipe_connect_b_send(TALLOC_CTX *parent_ctx,
struct dcerpc_binding *binding,
const struct ndr_interface_table *table,
struct cli_credentials *credentials,
@@ -782,7 +783,7 @@ struct composite_context* dcerpc_pipe_connect_b_send(TALLOC_CTX *parent_ctx,
/*
receive result of a request to open a rpc connection to a rpc pipe
*/
-NTSTATUS dcerpc_pipe_connect_b_recv(struct composite_context *c, TALLOC_CTX *mem_ctx,
+_PUBLIC_ NTSTATUS dcerpc_pipe_connect_b_recv(struct composite_context *c, TALLOC_CTX *mem_ctx,
struct dcerpc_pipe **p)
{
NTSTATUS status;
@@ -804,7 +805,7 @@ NTSTATUS dcerpc_pipe_connect_b_recv(struct composite_context *c, TALLOC_CTX *mem
open a rpc connection to a rpc pipe, using the specified
binding structure to determine the endpoint and options - sync version
*/
-NTSTATUS dcerpc_pipe_connect_b(TALLOC_CTX *parent_ctx,
+_PUBLIC_ NTSTATUS dcerpc_pipe_connect_b(TALLOC_CTX *parent_ctx,
struct dcerpc_pipe **pp,
struct dcerpc_binding *binding,
const struct ndr_interface_table *table,
@@ -833,7 +834,7 @@ static void continue_pipe_connect_b(struct composite_context *ctx);
binding to determine the endpoint and options.
The string is to be parsed to a binding structure first.
*/
-struct composite_context* dcerpc_pipe_connect_send(TALLOC_CTX *parent_ctx,
+_PUBLIC_ struct composite_context* dcerpc_pipe_connect_send(TALLOC_CTX *parent_ctx,
const char *binding,
const struct ndr_interface_table *table,
struct cli_credentials *credentials,
@@ -928,7 +929,7 @@ NTSTATUS dcerpc_pipe_connect_recv(struct composite_context *c,
Open a rpc connection to a rpc pipe, using the specified string
binding to determine the endpoint and options - sync version
*/
-NTSTATUS dcerpc_pipe_connect(TALLOC_CTX *parent_ctx,
+_PUBLIC_ NTSTATUS dcerpc_pipe_connect(TALLOC_CTX *parent_ctx,
struct dcerpc_pipe **pp,
const char *binding,
const struct ndr_interface_table *table,
diff --git a/source4/librpc/rpc/dcerpc_error.c b/source4/librpc/rpc/dcerpc_error.c
index 6394f9cf26..6ea4563ae6 100644
--- a/source4/librpc/rpc/dcerpc_error.c
+++ b/source4/librpc/rpc/dcerpc_error.c
@@ -40,7 +40,7 @@ static const struct dcerpc_fault_table dcerpc_faults[] =
{ NULL, 0}
};
-const char *dcerpc_errstr(TALLOC_CTX *mem_ctx, uint32_t fault_code)
+_PUBLIC_ const char *dcerpc_errstr(TALLOC_CTX *mem_ctx, uint32_t fault_code)
{
int idx = 0;
diff --git a/source4/librpc/rpc/dcerpc_schannel.c b/source4/librpc/rpc/dcerpc_schannel.c
index 68e211afae..5588b43dcd 100644
--- a/source4/librpc/rpc/dcerpc_schannel.c
+++ b/source4/librpc/rpc/dcerpc_schannel.c
@@ -28,6 +28,7 @@
#include "librpc/gen_ndr/ndr_netlogon.h"
#include "librpc/gen_ndr/ndr_netlogon_c.h"
#include "auth/credentials/credentials.h"
+#include "librpc/rpc/dcerpc_proto.h"
struct schannel_key_state {
struct dcerpc_pipe *pipe;
@@ -396,7 +397,7 @@ NTSTATUS dcerpc_bind_auth_schannel_recv(struct composite_context *c)
/*
Perform schannel authenticated bind - sync version
*/
-NTSTATUS dcerpc_bind_auth_schannel(TALLOC_CTX *tmp_ctx,
+_PUBLIC_ NTSTATUS dcerpc_bind_auth_schannel(TALLOC_CTX *tmp_ctx,
struct dcerpc_pipe *p,
const struct ndr_interface_table *table,
struct cli_credentials *credentials,
diff --git a/source4/librpc/rpc/dcerpc_secondary.c b/source4/librpc/rpc/dcerpc_secondary.c
index ab98215180..abc67ad38b 100644
--- a/source4/librpc/rpc/dcerpc_secondary.c
+++ b/source4/librpc/rpc/dcerpc_secondary.c
@@ -27,6 +27,7 @@
#include "libcli/composite/composite.h"
#include "lib/events/events.h"
#include "librpc/rpc/dcerpc.h"
+#include "librpc/rpc/dcerpc_proto.h"
#include "auth/credentials/credentials.h"
#include "param/param.h"
#include "libcli/resolve/resolve.h"
@@ -50,7 +51,7 @@ static void continue_pipe_open(struct composite_context *c);
Send request to create a secondary dcerpc connection from a primary
connection
*/
-struct composite_context* dcerpc_secondary_connection_send(struct dcerpc_pipe *p,
+_PUBLIC_ struct composite_context* dcerpc_secondary_connection_send(struct dcerpc_pipe *p,
struct dcerpc_binding *b)
{
struct composite_context *c;
@@ -183,7 +184,7 @@ static void continue_pipe_open(struct composite_context *c)
Receive result of secondary rpc connection request and return
second dcerpc pipe.
*/
-NTSTATUS dcerpc_secondary_connection_recv(struct composite_context *c,
+_PUBLIC_ NTSTATUS dcerpc_secondary_connection_recv(struct composite_context *c,
struct dcerpc_pipe **p2)
{
NTSTATUS status = composite_wait(c);
@@ -206,7 +207,7 @@ NTSTATUS dcerpc_secondary_connection_recv(struct composite_context *c,
If the primary is a SMB connection then the secondary connection
will be on the same SMB connection, but using a new fnum
*/
-NTSTATUS dcerpc_secondary_connection(struct dcerpc_pipe *p,
+_PUBLIC_ NTSTATUS dcerpc_secondary_connection(struct dcerpc_pipe *p,
struct dcerpc_pipe **p2,
struct dcerpc_binding *b)
{
@@ -234,7 +235,7 @@ struct sec_auth_conn_state {
static void dcerpc_secondary_auth_connection_bind(struct composite_context *ctx);
static void dcerpc_secondary_auth_connection_continue(struct composite_context *ctx);
-struct composite_context* dcerpc_secondary_auth_connection_send(struct dcerpc_pipe *p,
+_PUBLIC_ struct composite_context* dcerpc_secondary_auth_connection_send(struct dcerpc_pipe *p,
struct dcerpc_binding *binding,
const struct ndr_interface_table *table,
struct cli_credentials *credentials,
@@ -306,7 +307,7 @@ static void dcerpc_secondary_auth_connection_continue(struct composite_context *
/*
Receive an authenticated pipe, created as a secondary connection
*/
-NTSTATUS dcerpc_secondary_auth_connection_recv(struct composite_context *c,
+_PUBLIC_ NTSTATUS dcerpc_secondary_auth_connection_recv(struct composite_context *c,
TALLOC_CTX *mem_ctx,
struct dcerpc_pipe **p)
{
diff --git a/source4/librpc/rpc/dcerpc_smb.c b/source4/librpc/rpc/dcerpc_smb.c
index 718ce694c5..26fe433b09 100644
--- a/source4/librpc/rpc/dcerpc_smb.c
+++ b/source4/librpc/rpc/dcerpc_smb.c
@@ -24,6 +24,7 @@
#include "libcli/raw/libcliraw.h"
#include "libcli/composite/composite.h"
#include "librpc/rpc/dcerpc.h"
+#include "librpc/rpc/dcerpc_proto.h"
/* transport private information used by SMB pipe transport */
struct smb_private {
@@ -540,7 +541,7 @@ NTSTATUS dcerpc_pipe_open_smb_recv(struct composite_context *c)
return status;
}
-NTSTATUS dcerpc_pipe_open_smb(struct dcerpc_pipe *p,
+_PUBLIC_ NTSTATUS dcerpc_pipe_open_smb(struct dcerpc_pipe *p,
struct smbcli_tree *tree,
const char *pipe_name)
{
@@ -552,7 +553,7 @@ NTSTATUS dcerpc_pipe_open_smb(struct dcerpc_pipe *p,
/*
return the SMB tree used for a dcerpc over SMB pipe
*/
-struct smbcli_tree *dcerpc_smb_tree(struct dcerpc_connection *c)
+_PUBLIC_ struct smbcli_tree *dcerpc_smb_tree(struct dcerpc_connection *c)
{
struct smb_private *smb;
@@ -567,7 +568,7 @@ struct smbcli_tree *dcerpc_smb_tree(struct dcerpc_connection *c)
/*
return the SMB fnum used for a dcerpc over SMB pipe (hack for torture operations)
*/
-uint16_t dcerpc_smb_fnum(struct dcerpc_connection *c)
+_PUBLIC_ uint16_t dcerpc_smb_fnum(struct dcerpc_connection *c)
{
struct smb_private *smb;
diff --git a/source4/librpc/rpc/dcerpc_smb2.c b/source4/librpc/rpc/dcerpc_smb2.c
index a0094b8bae..8adca4caba 100644
--- a/source4/librpc/rpc/dcerpc_smb2.c
+++ b/source4/librpc/rpc/dcerpc_smb2.c
@@ -26,6 +26,7 @@
#include "libcli/smb2/smb2_calls.h"
#include "libcli/raw/ioctl.h"
#include "librpc/rpc/dcerpc.h"
+#include "librpc/rpc/dcerpc_proto.h"
/* transport private information used by SMB2 pipe transport */
struct smb2_private {
diff --git a/source4/librpc/rpc/dcerpc_sock.c b/source4/librpc/rpc/dcerpc_sock.c
index 76389f0d74..7480beae33 100644
--- a/source4/librpc/rpc/dcerpc_sock.c
+++ b/source4/librpc/rpc/dcerpc_sock.c
@@ -27,6 +27,7 @@
#include "lib/stream/packet.h"
#include "libcli/composite/composite.h"
#include "librpc/rpc/dcerpc.h"
+#include "librpc/rpc/dcerpc_proto.h"
#include "libcli/resolve/resolve.h"
#include "param/param.h"
diff --git a/source4/librpc/rpc/dcerpc_util.c b/source4/librpc/rpc/dcerpc_util.c
index b8128baf43..3b8768ccc2 100644
--- a/source4/librpc/rpc/dcerpc_util.c
+++ b/source4/librpc/rpc/dcerpc_util.c
@@ -28,6 +28,7 @@
#include "librpc/gen_ndr/ndr_epmapper_c.h"
#include "librpc/gen_ndr/ndr_dcerpc.h"
#include "librpc/gen_ndr/ndr_misc.h"
+#include "librpc/rpc/dcerpc_proto.h"
#include "auth/credentials/credentials.h"
#include "param/param.h"
@@ -236,7 +237,7 @@ const char *epm_floor_string(TALLOC_CTX *mem_ctx, struct epm_floor *epm_floor)
/*
form a binding string from a binding structure
*/
-char *dcerpc_binding_string(TALLOC_CTX *mem_ctx, const struct dcerpc_binding *b)
+_PUBLIC_ char *dcerpc_binding_string(TALLOC_CTX *mem_ctx, const struct dcerpc_binding *b)
{
char *s = talloc_strdup(mem_ctx, "");
int i;
@@ -302,7 +303,7 @@ char *dcerpc_binding_string(TALLOC_CTX *mem_ctx, const struct dcerpc_binding *b)
/*
parse a binding string into a dcerpc_binding structure
*/
-NTSTATUS dcerpc_parse_binding(TALLOC_CTX *mem_ctx, const char *s, struct dcerpc_binding **b_out)
+_PUBLIC_ NTSTATUS dcerpc_parse_binding(TALLOC_CTX *mem_ctx, const char *s, struct dcerpc_binding **b_out)
{
struct dcerpc_binding *b;
char *options;
@@ -437,7 +438,7 @@ NTSTATUS dcerpc_parse_binding(TALLOC_CTX *mem_ctx, const char *s, struct dcerpc_
return NT_STATUS_OK;
}
-NTSTATUS dcerpc_floor_get_lhs_data(struct epm_floor *epm_floor, struct ndr_syntax_id *syntax)
+_PUBLIC_ NTSTATUS dcerpc_floor_get_lhs_data(struct epm_floor *epm_floor, struct ndr_syntax_id *syntax)
{
TALLOC_CTX *mem_ctx = talloc_init("floor_get_lhs_data");
struct ndr_pull *ndr = ndr_pull_init_blob(&epm_floor->lhs.lhs_data, mem_ctx, NULL);
@@ -633,7 +634,7 @@ enum dcerpc_transport_t dcerpc_transport_by_endpoint_protocol(int prot)
return (unsigned int)-1;
}
-enum dcerpc_transport_t dcerpc_transport_by_tower(struct epm_tower *tower)
+_PUBLIC_ enum dcerpc_transport_t dcerpc_transport_by_tower(struct epm_tower *tower)
{
int i;
@@ -659,7 +660,7 @@ enum dcerpc_transport_t dcerpc_transport_by_tower(struct epm_tower *tower)
return (unsigned int)-1;
}
-NTSTATUS dcerpc_binding_from_tower(TALLOC_CTX *mem_ctx,
+_PUBLIC_ NTSTATUS dcerpc_binding_from_tower(TALLOC_CTX *mem_ctx,
struct epm_tower *tower,
struct dcerpc_binding **b_out)
{
@@ -715,7 +716,7 @@ NTSTATUS dcerpc_binding_from_tower(TALLOC_CTX *mem_ctx,
return NT_STATUS_OK;
}
-NTSTATUS dcerpc_binding_build_tower(TALLOC_CTX *mem_ctx, struct dcerpc_binding *binding, struct epm_tower *tower)
+_PUBLIC_ NTSTATUS dcerpc_binding_build_tower(TALLOC_CTX *mem_ctx, struct dcerpc_binding *binding, struct epm_tower *tower)
{
const enum epm_protocol *protseq = NULL;
int num_protocols = -1, i;
@@ -1009,7 +1010,7 @@ NTSTATUS dcerpc_epm_map_binding_recv(struct composite_context *c)
/*
Get endpoint mapping for rpc connection
*/
-NTSTATUS dcerpc_epm_map_binding(TALLOC_CTX *mem_ctx, struct dcerpc_binding *binding,
+_PUBLIC_ NTSTATUS dcerpc_epm_map_binding(TALLOC_CTX *mem_ctx, struct dcerpc_binding *binding,
const struct ndr_interface_table *table, struct event_context *ev,
struct loadparm_context *lp_ctx)
{
@@ -1329,7 +1330,7 @@ NTSTATUS dcerpc_pipe_auth_recv(struct composite_context *c, TALLOC_CTX *mem_ctx,
This may change *p, as it rebinds to a new pipe due to authentication fallback
*/
-NTSTATUS dcerpc_pipe_auth(TALLOC_CTX *mem_ctx,
+_PUBLIC_ NTSTATUS dcerpc_pipe_auth(TALLOC_CTX *mem_ctx,
struct dcerpc_pipe **p,
struct dcerpc_binding *binding,
const struct ndr_interface_table *table,
@@ -1355,7 +1356,7 @@ NTSTATUS dcerpc_generic_session_key(struct dcerpc_connection *c,
/*
fetch the user session key - may be default (above) or the SMB session key
*/
-NTSTATUS dcerpc_fetch_session_key(struct dcerpc_pipe *p,
+_PUBLIC_ NTSTATUS dcerpc_fetch_session_key(struct dcerpc_pipe *p,
DATA_BLOB *session_key)
{
return p->conn->security_state.session_key(p->conn, session_key);
@@ -1368,7 +1369,7 @@ NTSTATUS dcerpc_fetch_session_key(struct dcerpc_pipe *p,
this triggers on a debug level of >= 10
*/
-void dcerpc_log_packet(const struct ndr_interface_table *ndr,
+_PUBLIC_ void dcerpc_log_packet(const struct ndr_interface_table *ndr,
uint32_t opnum, uint32_t flags,
DATA_BLOB *pkt)
{
@@ -1403,7 +1404,7 @@ void dcerpc_log_packet(const struct ndr_interface_table *ndr,
this uses dcerpc_alter_context() to create a new dcerpc context_id
*/
-NTSTATUS dcerpc_secondary_context(struct dcerpc_pipe *p,
+_PUBLIC_ NTSTATUS dcerpc_secondary_context(struct dcerpc_pipe *p,
struct dcerpc_pipe **pp2,
const struct ndr_interface_table *table)
{
diff --git a/source4/librpc/tests/binding_string.c b/source4/librpc/tests/binding_string.c
index 5e6fb04515..01cdfae80d 100644
--- a/source4/librpc/tests/binding_string.c
+++ b/source4/librpc/tests/binding_string.c
@@ -22,6 +22,7 @@
#include "includes.h"
#include "librpc/gen_ndr/epmapper.h"
#include "librpc/rpc/dcerpc.h"
+#include "librpc/rpc/dcerpc_proto.h"
#include "torture/torture.h"
static bool test_BindingString(struct torture_context *tctx,