mirror of
https://github.com/samba-team/samba.git
synced 2025-01-05 09:18:06 +03:00
e427f58622
The main difference in this new version is the extra data structure generated
between the IDL data structure and the NDR parser:
IDL -> NDR -> { ndr_parser, ndr_header, eparser, etc }
This makes the ndr_parser.pm internals much more sane.
Other changes include:
- Remove unnecessary calls with NDR_BUFFERS (for example, GUID doesn't have any buffers, just scalars) as well as some (unnecessary) nested setting of flags.
- Parse array loops in the C code rather then calling ndr_pull_array(). This allows us to have, for example, arrays of pointers or arrays of pointers to arrays, etc..
- Use if() {} rather then if () goto foo; everywhere
- NDR_IN no longer implies LIBNDR_FLAG_REF_ALLOC
- By default, top level pointers are now "ref" (as is the default in
most other IDL compilers). This can be overridden using the
default_pointer_top() property.
- initial work on new ethereal parser generators by Alan DeKok and me
- pidl now writes errors in the standard format used by compilers, which
is parsable by most editors
- ability to warn about the fact that pidl extension(s) have been used,
useful for making sure IDL files work with other IDL compilers.
oh, and there's probably some other things I can't think of right now..
(This used to be commit 13cf227615
)
103 lines
2.8 KiB
Plaintext
103 lines
2.8 KiB
Plaintext
#include "idl_types.h"
|
|
|
|
/*
|
|
dssetup interface definition
|
|
*/
|
|
|
|
[
|
|
uuid("3919286a-b10c-11d0-9ba8-00c04fd92ef5"),
|
|
version(0.0),
|
|
endpoint("ncacn_np:[\\pipe\\lsarpc]", "ncacn_np:[\\pipe\\lsass]", "ncacn_ip_tcp:", "ncalrpc:"),
|
|
pointer_default(unique),
|
|
pointer_default_top(unique),
|
|
helpstring("Active Directory Setup")
|
|
] interface dssetup
|
|
{
|
|
/**********************************************/
|
|
/* Function 0x00 */
|
|
|
|
typedef enum {
|
|
DS_ROLE_STANDALONE_WORKSTATION = 0,
|
|
DS_ROLE_MEMBER_WORKSTATION = 1,
|
|
DS_ROLE_STANDALONE_SERVER = 2,
|
|
DS_ROLE_MEMBER_SERVER = 3,
|
|
DS_ROLE_BACKUP_DC = 4,
|
|
DS_ROLE_PRIMARY_DC = 5
|
|
} dssetup_DsRole;
|
|
|
|
typedef [bitmap32bit] bitmap {
|
|
DS_ROLE_PRIMARY_DS_RUNNING = 0x00000001,
|
|
DS_ROLE_PRIMARY_DS_MIXED_MODE = 0x00000002,
|
|
DS_ROLE_UPGRADE_IN_PROGRESS = 0x00000004,
|
|
DS_ROLE_PRIMARY_DOMAIN_GUID_PRESENT = 0x01000000
|
|
} dssetup_DsRoleFlags;
|
|
|
|
typedef struct {
|
|
dssetup_DsRole role;
|
|
dssetup_DsRoleFlags flags;
|
|
unistr *domain;
|
|
unistr *dns_domain;
|
|
unistr *forest;
|
|
GUID domain_guid;
|
|
} dssetup_DsRolePrimaryDomInfoBasic;
|
|
|
|
typedef [v1_enum] enum {
|
|
DS_ROLE_NOT_UPGRADING = 0,
|
|
DS_ROLE_UPGRADING = 1
|
|
} dssetup_DsUpgrade;
|
|
|
|
typedef enum {
|
|
DS_ROLE_PREVIOUS_UNKNOWN = 0,
|
|
DS_ROLE_PREVIOUS_PRIMARY = 1,
|
|
DS_ROLE_PREVIOUS_BACKUP = 2
|
|
} dssetup_DsPrevious;
|
|
|
|
typedef struct {
|
|
dssetup_DsUpgrade upgrading;
|
|
dssetup_DsPrevious previous_role;
|
|
} dssetup_DsRoleUpgradeStatus;
|
|
|
|
typedef enum {
|
|
DS_ROLE_OP_IDLE = 0,
|
|
DS_ROLE_OP_ACTIVE = 1,
|
|
DS_ROLE_OP_NEEDS_REBOOT = 2
|
|
} dssetup_DsRoleOp;
|
|
|
|
typedef struct {
|
|
dssetup_DsRoleOp status;
|
|
} dssetup_DsRoleOpStatus;
|
|
|
|
typedef enum {
|
|
DS_ROLE_BASIC_INFORMATION = 1,
|
|
DS_ROLE_UPGRADE_STATUS = 2,
|
|
DS_ROLE_OP_STATUS = 3
|
|
} dssetup_DsRoleInfoLevel;
|
|
|
|
typedef [switch_type(dssetup_DsRoleInfoLevel)] union {
|
|
[case(DS_ROLE_BASIC_INFORMATION)] dssetup_DsRolePrimaryDomInfoBasic basic;
|
|
[case(DS_ROLE_UPGRADE_STATUS)] dssetup_DsRoleUpgradeStatus upgrade;
|
|
[case(DS_ROLE_OP_STATUS)] dssetup_DsRoleOpStatus opstatus;
|
|
} dssetup_DsRoleInfo;
|
|
|
|
WERROR dssetup_DsRoleGetPrimaryDomainInformation(
|
|
[in] dssetup_DsRoleInfoLevel level,
|
|
[out,switch_is(level)] dssetup_DsRoleInfo *info
|
|
);
|
|
|
|
/*
|
|
w2k3 has removed all the calls below from their implementation.
|
|
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();
|
|
}
|