diff options
Diffstat (limited to 'source4')
-rw-r--r-- | source4/librpc/idl/browse.idl | 111 |
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; +} |