summaryrefslogtreecommitdiff
path: root/source4
diff options
context:
space:
mode:
Diffstat (limited to 'source4')
-rw-r--r--source4/librpc/idl/browse.idl111
1 files changed, 111 insertions, 0 deletions
diff --git a/source4/librpc/idl/browse.idl b/source4/librpc/idl/browse.idl
new file mode 100644
index 0000000000..b957e0dc62
--- /dev/null
+++ b/source4/librpc/idl/browse.idl
@@ -0,0 +1,111 @@
+#include "idl_types.h"
+
+/*
+ IDL structures for Browse service over mailslot operations
+*/
+
+[ uuid("1-2-3-4"),
+ depends(security)
+] interface browse
+{
+ const string browse_mailslot = "\\MAILSLOT\\BROWSE";
+
+ typedef enum {
+ HostAnnouncement = 1,
+ AnnouncementRequest = 2,
+ Election = 8,
+ GetBackupListReq = 9,
+ GetBackupListResp = 10,
+ BecomeBackup = 11,
+ DomainAnnouncment = 12,
+ MasterAnnouncement = 13,
+ ResetBrowserState = 14,
+ LocalMasterAnnouncement = 15
+ } brow_opcodes;
+
+ typedef bitmap {
+ SV_TYPE_WORKSTATION = 0x00000001,
+ SV_TYPE_SERVER = 0x00000002,
+ SV_TYPE_SQLSERVER = 0x00000004,
+ SV_TYPE_DOMAIN_CTRL = 0x00000008,
+ SV_TYPE_DOMAIN_BAKCTRL = 0x00000010,
+ SV_TYPE_TIME_SOURCE = 0x00000020,
+ SV_TYPE_AFP = 0x00000040,
+ SV_TYPE_NOVELL = 0x00000080,
+ SV_TYPE_DOMAIN_MEMBER = 0x00000100,
+ SV_TYPE_PRINTQ_SERVER = 0x00000200,
+ SV_TYPE_DIALIN_SERVER = 0x00000400,
+ SV_TYPE_XENIX_SERVER = 0x00000800,
+ SV_TYPE_NT = 0x00001000,
+ SV_TYPE_POTENTIAL_BROWSER = 0x00010000,
+ SV_TYPE_BACKUP_BROWSER = 0x00020000,
+ SV_TYPE_MASTER_BROWSER = 0x00040000,
+ SV_TYPE_DOMAIN_MASTER = 0x00080000,
+ SV_TYPE_LOCAL_LIST_ONLY = 0x40000000,
+ SV_TYPE_DOMAIN_ENUM = 0x80000000
+ } brow_server_type;
+
+ typedef struct {
+ uint8 update_count;
+ uint32 ttl;
+ char name[16];
+ uint8 os_major;
+ uint8 os_minor;
+ uint32 server_type;
+ astring comment;
+ } host_announcement;
+
+ typedef struct {
+ uint8 unknown;
+ astring ResponseComputerName;
+ } request_announcement;
+
+ typedef struct {
+ uint8 count;
+ uint32 token;
+ } backup_list_request;
+
+ typedef struct {
+ uint8 count;
+ uint32 token;
+ astring BackupServerList[count];
+ } backup_list_response;
+
+ typedef struct {
+ astring BrowserToPromote;
+ } become_backup;
+
+ typedef struct {
+ uint8 version;
+ uint32 criteria;
+ uint32 time_up; /* In milliseconds */
+ uint32 reserved; /* Must be zero */
+ astring ServerName;
+ } election_request;
+
+ typedef struct {
+ uint8 options;
+ } reset_state;
+
+ typedef struct {
+ astring MasterBrowserServerName;
+ } master_announcement;
+
+ typedef [nodiscriminant] union {
+ [case(HostAnnouncement)] host_announcement host_annoucement;
+ [case(AnnouncementRequest)] request_announcement announcement_request;
+ [case(Election)] election_request election_request;
+ [case(GetBackupListReq)] backup_list_request backup_list_request;
+ [case(GetBackupListResp)] backup_list_response backup_list_response;
+ [case(BecomeBackup)] become_backup become_backup;
+ [case(DomainAnnouncement)] master_announcement domain_announcement;
+ [case(MasterAnnouncement)] master_announcement master_announcement;
+ [case(ResetBrowserState)] reset_state reset_browser_state;
+ [case(LocalMasterAnnouncement)] master_announcement local_master_announcement;
+ } browse_payload;
+
+ typedef [public] struct {
+ browse_opcode opcode;
+ browse_payload payload;
+ } browse_packet;
+}